본문 바로가기

728x90
반응형

블로거

[스프링 부트 쇼핑몰 프로젝트 with JPA] 개발 환경 구축 2(Lombok 라이브러리 이용, MySQL 설치) ◎ Lombok 라이브러리 추가 ▷ setting → plugins에 lombok을 설치하면 되지만 나타나지 않으므로 pom.xml에 내용을 추가해줍니다. ◎ pom.xml에 lombok 추가 org.projectlombok lombok ​ 메이븐에 아래와 같이 추가되는 것을 볼 수 있습니다. ◎ setting → annotation processors → enable annotation processing 체크 ▷ 어노테이션을 입력하면 사용할 수 있게 만듦 ◎ Lombok 라이브러리 ▷ 자주 사용하는 어노테이션 ◎ Lombok을 이용한 예제 1. UserDto 클래스 생성 package com.example; import lombok.Getter; import lombok.Setter; import l.. 더보기
[스프링 부트 쇼핑몰 프로젝트 with JPA] 개발 환경 구축 1(스프링 부트) ◎ 스프링 부트 특징 (1) 내장 서버를 이용해 별도의 설정 없이 독립적인 실행이 가능한 스프링 애플리케이션 (2) 톰캣, 제티 또는 언더로우와 같은 웹 애플리케이션(WAS) 자체 내장 (3) 빌드 구성을 단순화하기 위한 'Spring Boot Starter' 의존성 제공 (4) XML 설정 없이 단순 자바 수준의 설정 방식 제공 ▷ XML 설정이 스프링보다 적음 (5) JAR를 이용해 자바 옵션만으로 배포 가능 (6) 애플리케이션의 모니터링과 관리를 위한 스프링 액추에이터 제공 ◎ 개발 환경 (1) 운영체제 : 윈도우 (2) 통합개발환경 (IDE) : 인텔리제이 (3) JDK 버전 : JDK 11 (4) 스프링 부트 버전 : 2.5.2 → 2.7.0(스프링 스타터) (5) 데이터베이스 : MySQL (.. 더보기
[스프링 부트 쇼핑몰 프로젝트 with JPA] Spring Data JPA 2(Repository 설계, 쿼리 메소드) https://bobo12.tistory.com/328 4. Repository 설계 ▷ Data Access Object의 역할을 하는 Repository 인터페이스 설계 ▷ 첫 번째 제네릭 타입에는 엔티티 타입 클래스, 두 번째 제네릭 타입에는 클래스의 기본키 타입 세팅 ◎ ItemRepository.java 인터페이스 생성 package com.shop.repository; import com.shop.entity.Item; import org.springframework.data.jpa.repository.JpaRepository; public interface ItemRepository extends JpaRepository { }​ ◎ JpaRepository에서 지원하는 메소드 ▷ JpaRe.. 더보기
[스프링 부트 쇼핑몰 프로젝트 with JPA] Spring Data JPA 1(ORM, 상품 엔티티, 영속성) 1. JPA (1) JPA(Jave Persistence API’)는 자바 ORM 기술에 대한 API 표준 (2) ORM이란 ‘Object Relational Mapping’의 약자로 객체(java)와 관계형 데이터베이스(SQL) 매핑 ▷ JPA는 ORM의 기술 표준 명세로 자바에서 제공하는 API ▷ JPA는 인터페이스고 구현한 가장 대표적인 오픈소스가 Hibernate(하이버네이트) ◎ JPA 장점 (1) 특정 데이터베이스에 종속되지 않음 ▷ 처음 선택한 데이터베이스를 변경하기 어렵지만 JPA는 추상화한 데이터 접근 계층을 제공 ▷ 설정 파일에 어떤 데이터베이스를 사용하는지 알려주면 얼마든지 데이터베이스를 변경 (2) 객체지향적으로 설계 가능 ▷ JPA를 사용하면 데이터베이스 설계 중심 패러다임에서 .. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch17 Ajax 댓글 처리 8 https://bobo12.tistory.com/324 7. 댓글 페이지의 화면 처리 ▷ 게시물을 조회하는 페이지에 들어오면 기본적으로 가장 오래된 댓글들을 가져와서 1페이지에 보여줌 ▷ 1페이지의 게시물을 가져올 때 해당 게시물의 댓글의 숫자를 파악해서 댓글의 페이지 번호를 출력함 ▷ 댓글이 추가되면 댓글의 숫자만을 가져와서 최종 페이지를 찾아서 이동함 ▷ 댓글의 수정과 삭제 후에는 다시 동일 페이지를 호출함 (1) 댓글 페이지 계산과 출력 ▷ Ajax로 가져오는 데이터가 replyCnt와 list라는 데이터로 구성되므로 이를 처리하는 reply.js의 내용 역시 이를 처리하는 구조로 수정함 ◎ reply.js 내용 수정 ... (생략) ... function getList(param, callback.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch17 Ajax 댓글 처리 7(댓글의 페이징 처리) https://bobo12.tistory.com/323 6. 댓글의 페이징 처리 ▷ 현재까지 작성된 예제는 해당 게시물의 전체 댓글을 가져와서 화면에 출력했을 때 문제는 댓글의 숫자가 많을 경우 ▷ 댓글의 숫자가 많다면 데이터베이스에서 많은 양의 데이터를 가져와야하고, 이는 성능상의 문제를 가져올 수 있음 ▷ 이런 문제를 페이징 처리를 이용해서 처리함 (1) 데이터베이스의 인덱스 설계 ▷ 댓글에 대해서 우선적으로 고려해야하는 일은 tbl_reply 테이블을 접근할 때 댓글의 번호(rno)가 중심이 아니라 게시물의 번호(bno)가 중심이 된다는 점임 ▷ 댓글을 조회할 때에는 해당 게시물의 댓글을 가져오기 때문에 'tbl_reply where bno = 200 order by rno asc'와 같은 방식으로.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch17 Ajax 댓글 처리 6 (이벤트 처리, HTML 처리) https://bobo12.tistory.com/322 5. 이벤트 처리와 HTML 처리 ▷ Ajax 처리까지는 완료, 남은 작업은 화면에서 버튼 등에서 발생하는 이벤트 감지하고 Ajax 호출 결과 반영 (1) 댓글 목록 처리 ▷ 별도의 를 생성해서 댓글의 목록 처리를 해야 함. ▷ 게시글과 관련된 화면 아래쪽에 를 추가 후 나중에 화면의 모습을 파악할 수 있도록 간단한 텍스트 구성 ... (생략) ... Reply //확인필요 user00 2023-03-30 11:30 Good job! ... 생략 ... ▷ 댓글의 목록은 태그 내에서 태그를 이용해서 처리 ▷ 각 태그는 하나의 댓글을 의미하므로 수정이나 삭제 시 이를 클릭함 ▷ 수정이나 삭제 시에는 반드시 댓글 번호(rno)가 필요하므로 data-rn.. 더보기
[코드로 배우는 스프링 웹 프로젝트] ch17 Ajax 댓글 처리 5 (댓글의 목록, 삭제 및 갱신, 수정, 조회 처리) https://bobo12.tistory.com/320 (3) 댓글의 목록 처리 ▷ http://localhost:8080/replies/pages/2005745/1, http://localhost:8080/replies/pages/2005745/1.json 형태로 데이터 먼저 확인 가능 ◎ getJSON() 사용 ▷ reply.js에서는 Ajax 호출을 담당하므로, jQuery의 getJSON()을 이용해서 처리할 수 있음 ◎ reply.sp 수정 console.log("Reply Module........"); var replyService = (function(){ ...(생략)... function getList(param, callback, error){ var bno = param.bno; v.. 더보기

728x90
반응형