인프런

    웹 페이지 만들기

    웹 페이지 만들기

    목차 프로젝트 생성 요구사항 분석 상품 도메인 개발 상품 서비스 HTML 상품 목록 - 타임 리프 상품 상세 상품 등록 폼 상품 등록 처리 - @ModelAttribute 상품 수정 PRG Post/Redirect/Get RedirectAttributes 정리 프로젝트 생성 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io 프로젝트 선택 Project: Gradle Project Language: Java Spring Boot: 2.4.x Project Metadata Group: hello Artifact: item-service Name: item-service Package name: hello.itemservice Packaging: Jar (주..

    기본 기능

    기본 기능

    목차 프로젝트 생성 로깅 간단히 알아보기 요청 매핑 요청 매핑 - API 예시 HTTP 요청 - 기본, 헤더 조회 HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form HTTP 요청 파라미터 - @RequestParam HTTP 요청 파라미터 - @ModelAttribute HTTP 요청 메시지 - 단순 텍스트 HTTP 요청 메시지 - JSON HTTP 응답 - 정적 리소스, 뷰 템플릿 HTTP 응답 - HTTP API, 메시지 바디에 직접 입력 HTTP 메시지 컨버터 요청 매핑 헨들러 어뎁터 구조 프로젝트 생성 프로젝트 선택 Project: Gradle Project Language: Java Spring Boot: 2.4.x Project Metadata Group: hello Artifact..

    서블릿, JSP, MVC 패턴

    서블릿, JSP, MVC 패턴

    목차 회원 관리 웹 애플리케이션 요구사항 서블릿으로 회원 관리 웹 애플리케이션 만들기 JSP로 회원 관리 웹 애플리케이션 만들기 MVC 패턴 - 개요 MVC 패턴 - 적용 MVC 패턴 - 한계 회원 관리 웹 애플리케이션 요구사항 회원 정보 이름: username 나이: age 기능 요구사항 회원 저장 회원 목록 조회 회원 도메인 모델 회원 도메인 모델 package hello.servlet.domain.member; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Member { private Long id; private String username; private int age; public Member() { } pu..

    서블릿

    서블릿

    목차 프로젝트 생성 Hello 서블릿 HttpServletRequest - 개요 HttpServletRequest - 기본 사용법 HTTP 요청 데이터 - 개요 HTTP 요청 데이터 - GET 쿼리 파라미터 HTTP 요청 데이터 - POST HTML Form HTTP 요청 데이터 - API 메시지 바디 - 단순 텍스트 2. 서블릿 - HTTP 요청 데이터 - API 메시지 바디 - JSON HttpServletResponse - 기본 사용법 HTTP 응답 데이터 - 단순 텍스트, HTML HTTP 응답 데이터 - API JSON 정리 프로젝트 생성 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io 프로젝트 선택 Project: Gradle Project..

    API 개발 고급 - 실무 필수 최적화

    API 개발 고급 - 실무 필수 최적화

    API 개발 고급 - 실무 필수 최적화 OSIV(Open Session In View)와 성능 최적화 OSIV와 성능 최적화 Open Session In View: 하이버네이트에선 Seesion Open EntityManager In View: JPA에선 EntityManager (관례상 OSIV라 한다.) OSIV ON spring.jpa.open-in-view : true -> 기본값 WARN 7781 --- [ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view r..

    API 개발 고급 - 컬렉션 조회 최적화

    API 개발 고급 - 컬렉션 조회 최적화

    API 개발 고급 - 컬렉션 조회 최적화 주문 조회 V1: 엔티티 직접 노출 주문 조회 V2: 엔티티를 DTO로 변환 주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화 주문 조회 V3.1: 엔티티를 DTO로 변환 - 페이징과 한계 돌파 주문 조회 V4: JPA에서 DTO 직접 조회 주문 조회 V5: JPA에서 DTO 직접 조회 - 컬렉션 조회 최적화 주문 조회 V6: JPA에서 DTO로 직접 조회, 플랫 데이터 최적화 주문내역에서 추가로 주문한 상품 정보를 추가로 조회하자.(OneToMany)를 조회하고, 최적화하는 방법을 알아보자. Order 기준으로 컬렉션인 OrderItem 와 Item 이 필요하다. 앞의 예제에서는 toOne(OneToOne, ManyToOne) 관계만 있었다. 이번에..

    API 개발 고급 - 지연 로딩과 조회 성능 최적화

    API 개발 고급 - 지연 로딩과 조회 성능 최적화

    API 개발 고급 - 지연 로딩과 조회 성능 최적화 간단한 주문 조회 V1: 엔티티를 직접 노출 간단한 주문 조회 V2: 엔티티를 DTO로 변환 간단한 주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화 간단한 주문 조회 V4: JPA에서 DTO로 바로 조회 주문 + 배송정보 + 회원을 조회하는 API를 만들자 지연 로딩 때문에 발생하는 성능 문제를 단계적으로 해결해보자. 참고: 지금부터 설명하는 내용은 정말 중요합니다. 실무에서 JPA를 사용하려면 100% 이해해야 합니다. > 안그러면 엄청난 시간을 날리고 강사를 원망하면서 인생을 허비하게 됩니다. 간단한 주문 조회 V1: 엔티티를 직접 노출 ( 엔티티 노출은 사용 권장 X, 꼭 필요한 정보만 노출 ) OrderSimpleApiControl..

    API 개발 고급 - 조회용 샘플 데이터 입력

    API 개발 고급 - 조회용 샘플 데이터 입력

    API 개발 고급 - 조회용 샙플 데이터 입력 조회용 샘플 데이터 입력 조회용 샘플 데이터 입력 API 개발 고급 설명을 위해 샘플 데이터를 입력하자. userA JPA1 BOOK JPA2 BOOK userB SPRING1 BOOK SPRING2 BOOK package myjpabook.jpashop; import lombok.RequiredArgsConstructor; import myjpabook.jpashop.domain.*; import myjpabook.jpashop.domain.item.Book; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactiona..

    API 개발 기본

    API 개발 기본

    API 개발 기본 회원 등록 API 회원 수정 API 회원 조회 API postman 설치 (https://www.getpostman.com) 회원 등록 API package myjpabook.jpashop.api; import lombok.Data; import lombok.RequiredArgsConstructor; import myjpabook.jpashop.domain.Member; import myjpabook.jpashop.service.MemberService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org..

    웹 계층 개발

    웹 계층 개발

    웹 계층 개발 홈 화면 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 상품 등록 상품 목록 상품 수정 변경 감지와 병합 상품 주문 홈 화면과 레이아웃 홈 컨트롤러 등록 package jpabook.jpashop.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HomController { Logger log = L..