- 모르는 키워드
- 혼자 구현하기 어려운 것들
- Spring의 큰 틀에서 이해하자
- 수업 때 언급 된 내용 위주로 맥락 파악 할 것
01. 글로벌 익셉션 핸들러 적용
- DispatcherServlet에서 Exception 제어를 하는 것의 장점이 뭐냐
- DispatcherServlet이 책임을 지게 되는거임
- Java의 Reflection은 무엇인가?
- Reflection으로 구현 되었다는게 무엇인가
- Controller의 책임은 무엇이냐
- @Controller의 역할 : View Resolver 관련
- @RestController의 역할 : Message Converter 관련
- @RestControllerAdvice : DispatcherServlet이 throw가 날라오면 해당 어노테이션이 있는 파일을 찾아 던져준다
- 주의 사항 : DispatcherServlet 앞에서 예외가 터지면 어떡하냐?
- Spring Security에서 예외처리하는 이유이기도 하다
02. AOP 관점 지향 프로그래밍
- AOP 관점 지향 프로그래밍의 의미
- 관심사를 분리하여, 코드의 모듈화를 개선함, 가독성 향상
- 부가 기능을 지우는 프로그래밍
- 질문 : DispatcherServlet으로 구현 할 수 없는 것인가? 구현 할 수 있을거 같다
- AOP 용어정리
- Aspect : advice와 pointcut이 사용 된 곳을 의미한다
- JoinPoint : 어느 포인트(시점)에서 실행 될지를 결정한다
- Pointcut
- Aspect-oriented programming (AOP)로 구현 되었다
- Java 어노테이션을 사용하는 것을 추천한다
- AOP 적용 방법
- Custom하여 직접 구현
- 이미 만들어져 있는 어노테이션 사용
- 특정 정규 표현이 들어올 때만 작동
04. 상품 목록 조회
- JPA - Service - Controller까지 구현하고, 예외처리까지 할 줄 알아야 한다
- 각 계층의 책임에 유의 할 것
- Ex. 서비스는 비지니스 로직, 트랜잭션, DTO변환에 책임이 있다
아래 데이터가 반복되어 컬렉션으로 만들어지게 한다
{
"id": 1,
"productName": "기본에 슬라이딩 지퍼백 크리스마스/플라워에디션 에디션 외 주방용품 특가
전",
"description": "",
"image": "/images/1.jpg",
"price": 1000
}
05. 상품 상세 보기
화면 설계를 보고, API로 데이터를 어떻게 뿌려줄지 생각하고, DTO를 만들자
-
Entity 노출시키지 말아라 : 위험하다
-
개인적으로 DTO는 공유하지 않고, 따로 만들어주는게 좋다 생각한다
-
우리 서비스 구현 맥락에서는 쓸데 없는 조회 2번을 막아야 한다
-
native query 사용하는 방법
06. 장바구니 담기
- 트랜잭션은 최대한 짧게 가져가자
- 예외처리를 할 때, 트랜잭션 타고, db에서 터져서, 롤백되면 얼마나 리소스 낭비인가?
- 프론트에서 들어오는 데이터는 꼭 검증해야 한다
- @profile로는 어떻게 구동 시킬지를 결정 가능하다
- 서버, 로컬 등등
- application.yml에서 구동
07. 장바구니 조회
- 쿼리를 똑똑하게 프론트에 뿌려주자
- Stream, Filter, Distinct에 대해서 제대로 이해하고 사용하자
궁금한 키워드
- Mongo DB가 읽기에 최적화 되어 있는가?
- 드라이빙/드라이븐 테이블, 랜덤 액세스, PK
08. 장바구니 업데이트 주문
- 어떻게 넘겨주든, 검증 된 데이터를 반환을 할 때 프론트가 받기 편하게 넘겨주자
- 프로젝트 동작 확인 - 쿼리 최적화
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'프로젝트 > 카카오 테크 캠퍼스' 카테고리의 다른 글
🐥 카카오 테크 캠퍼스 - 2단계 5주차 과제 분석 (0) | 2023.07.25 |
---|---|
Postman Token 값 자동 갱신 (0) | 2023.07.25 |
🐥 카카오 테크 캠퍼스 - 2단계 4주차 과제 분석 (0) | 2023.07.19 |
🐥 카카오테크캠퍼스 - 2단계 3주차 과제 구현 (0) | 2023.07.14 |
🐥 카카오테크캠퍼스 - 2단계 3주차 과제 개요 (0) | 2023.07.12 |