본문 바로가기
728x90
반응형

Dev/JPA35

[JPA] JPA 활용 II - 강좌 소개 강좌명 실전! 스프링 부트와 JPA활용 2 - API개발과 성능 최적화 강의목표 API 기능 개발 및 JPA 극한의 성능 최적화를 할 수 있도록 하는 것으로 복잡한 예제를 6단계로 나눠 성능 튜닝 진행 커리큘럼 API 개발 기본 : 기본적인 등록, 수정, 조회용 REST API를 개발 API 개발 고급 : 실무에서 JPA로 조회용 API를 개발할 때 주의점과 올바른 설계방향 제시, JPA 지연로딩 이슈 해결 및 단계별로 다양한 성능 최적화 방안 설명 실무 필수 최적화 : 스프링 부트와 JPA를 사용할 때 주의해서 사용하지 않으면 장애로 이어질 수 있는 OSIV 내용 학습 프로젝트 환경 스프링 부트 JPA Gradle Hibernate Thymeleaf H2 Database 참고 https://www.in.. 2021. 9. 29.
[JPA] JPA 활용 I - 웹 계층 개발 (2) 상품등록 상품등록 폼 객체 package jpabook.jpashop.controller; @Getter @Setter public class BookForm { private Long id; private String name; private int price; private int stockQuantity; private String author; private String isbn; } 상품 컨트롤러 구성 package jpabook.jpashop.controller; @Controller @RequiredArgsConstructor public class ItemController { private final ItemService itemService; @GetMapping("/items/new".. 2021. 9. 28.
[JPA] JPA 활용 I - 웹 계층 개발 (1) 홈 화면과 레이아웃 Thymeleaf를 이용하여 홈 화면을 구성한다. 홈 컨트롤러 구성 package jpabook.jpashop.controller; @Controller @Slf4j public class HomeController { @RequestMapping("/") public String home() { log.info("home controller"); return "home"; } } Slf4j를 이용하여 로그를 출력한다. 이때 Lombok의 @Slf4j 어노테이션을 사용하면 Logger logger = LoggerFactory.getRootLogger(getClass());와 동일한 동작을 한다. 리턴한 문자열과 스프링 부트의 타임리프 설정 값을 통해 렌더링 할 뷰를 찾는다. 스프링 부.. 2021. 9. 24.
[JPA] JPA 활용 I - 주문 도메인 개발 상품 주문, 주문내역 조회, 주문 취소 기능을 개발해보자 주문, 주문상품 엔티티 개발 엔티티 내에 핵심 비즈니스 로직을 구현 파일 경로 주문 엔티티 : main/java/jpabook/jpashop/domain/Order.java 주문상품 엔티티 : main/java/jpabook/jpashop/domain/OrderItem.java 소스 구현 주문 엔티티 @Entity @Table(name = "orders") @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fe.. 2021. 9. 23.
[JPA] JPA 활용 I - 상품 도메인 개발 상품 기능인 상품 등록, 조회, 수정 기능을 개발해보자 상품 엔티티 내 비즈니스 로직 추가 파일 경로 main/java/jpabook/jpashop/domain/item/Item.java 소스 구현 package jpabook.jpashop.domain.item; @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) // 싱글 테이블 전략 설정 @DiscriminatorColumn(name = "dtype") // 구분컬럼명 지정 @Getter @Setter public abstract class Item { @Id @GeneratedValue @Column(name = "item_id") private Long id; private String .. 2021. 9. 17.