spring
-
API 개발 고급 - 컬렉션 조회 최적화김영한(인프런 강의)/실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 2021. 2. 7. 15:48
코드 github.com/rlawls1991/Study_JPA_API 페치 조인 최적화 2021/02/06 - [김영한(인프런 강의)/실전! 스프링 부트와 JPA 활용 2 - API 개발과 성능 최적화] - API 개발과 성능 최적화 위 글을 보게 되면 엔티티가 직접 노출 되면 안 좋은지에 대해서 나오게 된다. LIst를 조회하게 되면 하위 엔티티까지 같이 조회하게 되어서 쿼리가 1+ N이 나오게된다. 이를 방지하기 위해서 페치 조인과 JPQL문을 사용해야 한다는 것을 알게 되었다. 그리고 파라미터가 나오게 된다면 criteria과 JPQL을 사용해야 되는 것까지 알게 되었다. 그렇다면 페치 조인의 장점과 문제점을 알아보자 패치조인 예제 public List findAllWithItem() { retur..
-
API 개발과 성능 최적화김영한(인프런 강의)/실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 2021. 2. 6. 13:57
코드 github.com/rlawls1991/Study_JPA_API 지연 로딩의 문제점 버전코드 github.com/rlawls1991/Study_JPA_API/commit/61b3534a503114dc6554cbf6433de3e4c1b2ddff 아래 컨트롤러를 보자 이 코드는 모든 주문들의 List을 가져오는 Controller API이다. @RestController @RequiredArgsConstructor public class OrderSimpleApiController { private final OrderRepository orderRepository; /** * V1. 엔티티 직접 노출 * - Hibernate5Module 모듈 등록, LAZY=null 처리 * - 양방향 관계 문제 발..
-
웹 애플리케이션 개발김영한(인프런 강의)/실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 2021. 2. 3. 11:43
예시 코드 github.com/rlawls1991/Study_JPA_Web_Application 목차 1. 요구사항 분석 2. 도메인 모델과 테이블 설계 3. 엔티티 클래스 4. 엔티티 설계시 주의점 1. 요구사항 분석 1-1. 최종 개발 화면 1-2. 기능 목록 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항 상품은 재고 관리가 필요하다. 상품의 종류는 도서, 음반, 영화가 있다. 상품을 카테고리로 구분할 수 있다. 상품 주문시 배송 정보를 입력할 수 있다 2. 도메인 모델과 테이블 설계 회원, 주문, 상품의 관계 회원은 여러 상품을 주문할 수 있다. 그리고 한 번 주문할 때 여러 상품을 선택할 수 있으므로 주문과..
-
REST API 보안 적용 - 2백기선(인프런 강의)/스프링 기반 REST API 개발 2021. 1. 29. 10:46
공부중인 GIT 주소 위 GIT주소에 개발 step 별로 commit 해두었다. 진행 과정 이벤트 조회 및 수정 REST API 개발 Account 도메인 추가 스프링 시큐리티 적용 예외 테스트 스프링 시큐리티 기본 설정 스프링 시큐리티 폼 인증 설정 스프링 시큐리티 OAuth2 인증 서버 설정 리소스 서버 설정 문자열을 외부 설정으로 빼내기 이벤트 API 점검 현재 사용자 조회 출력값 제한하기 5. 스프링 시큐리티 폼 인증 설정 @Override public void configure(HttpSecurity http) throws Exception { http .anonymous() //익명 사용자 허용 .and() .formLogin() // form인증 허용 .and() .authorizeReque..
-
REST API 보안 적용 - 1백기선(인프런 강의)/스프링 기반 REST API 개발 2021. 1. 27. 16:50
공부중인 GIT 주소 위 GIT주소에 개발 step 별로 commit 해두었다. 진행 과정 이벤트 조회 및 수정 REST API 개발 Account 도메인 추가 스프링 시큐리티 적용 예외 테스트 스프링 시큐리티 기본 설정 스프링 시큐리티 폼 인증 설정 스프링 시큐리티 OAuth2 인증 서버 설정 리소스 서버 설정 문자열을 외부 설정으로 빼내기 이벤트 API 점검 현재 사용자 조회 출력값 제한하기 1. Account 도메인 추가 2. 스프링 시큐리티 적용 스프링 시큐리티 스프링 5 부터는 웹이 2종류가 됨 Web flux Web servlet (이번 강의에서 이기준으로 설명) SecurityInterceptor 웹 요청 같은 경우는 srpingFilterChain이 연관이 되어있있음 웹 시큐리티 (Filt..
-
이벤트 조회 및 수정 REST API 개발백기선(인프런 강의)/스프링 기반 REST API 개발 2021. 1. 27. 14:06
공부중인 GIT 주소 위 GIT주소에 개발 step 별로 commit 해두었다. 진행 과정 이벤트 조회 및 수정 REST API 개발 테스트용 DB와 설정 분리 API 인덱스 만들기 이벤트 목록 조회 API 구현 이벤트 CRUD API 구현 이벤트 수정 API 구현 이벤트 삭제 API 구현 이벤트 조회 API 구현 이벤트 생성 API 구현 테스트 코드 리팩토링 1. 테스트용 DB와 설정 분리 테스트 할 때는 계속 H2를 사용해도 좋지만 애플리케이션 서버를 실행할 때 PostgreSQL을 사용하도록 변경하자. /scripts.md 참고 1-1. PostgreSQL 드라이버 의존성 추가 org.postgresql postgresql 1-2. 도커로 PostgreSQL 컨테이너 실행 docker run --n..
-
이벤트 생성 API 개발 -3백기선(인프런 강의)/스프링 기반 REST API 개발 2021. 1. 24. 17:23
공부중인 GIT 주소 위 GIT주소에 개발 step 별로 commit 해두었다. 진행되는 과정은 아래와 같다. 1. 입력값들을 전달하면 JSON 응답으로 201이 나오는지 확인. Location 헤더에 생성된 이벤트를 조회할 수 있는 URI 담겨 있는지 확인. id는 자동생성된 값으로 나오는지 확인 2. 입력값으로 누가 id나 eventStatus, offline, free 이런 데이터까지 같이 주면? Bad_Request로 응답 vs 받기로 한 값 이외는 무시 3. 입력 데이터가 이상한 경우 Bad_Request로 응답 입력값이 이상한 경우 에러 비즈니스 로직으로 검사할 수 있는 에러 에러 응답 메시지에 에러에 대한 정보가 있어야 한다. 4. 비즈니스 로직 적용 됐는지 응답 메시지 확인 offline과..
-
이벤트 생성 API 개발 -2백기선(인프런 강의)/스프링 기반 REST API 개발 2021. 1. 23. 16:52
공부중인 GIT 주소 위 GIT주소에 개발 step 별로 commit 해두었다. 진행되는 과정은 아래와 같다. 1. 입력값들을 전달하면 JSON 응답으로 201이 나오는지 확인. Location 헤더에 생성된 이벤트를 조회할 수 있는 URI 담겨 있는지 확인. id는 자동생성된 값으로 나오는지 확인 2. 입력값으로 누가 id나 eventStatus, offline, free 이런 데이터까지 같이 주면? Bad_Request로 응답 vs 받기로 한 값 이외는 무시 3. 입력 데이터가 이상한 경우 Bad_Request로 응답 입력값이 이상한 경우 에러 비즈니스 로직으로 검사할 수 있는 에러 에러 응답 메시지에 에러에 대한 정보가 있어야 한다. 4. 비즈니스 로직 적용 됐는지 응답 메시지 확인 offline과..