Spring/카테캠 - TIL

Spring/카테캠 - TIL

TIL [0802] : 6주차 과제 수행 (통합테스트, API 문서 작성, 배포)

6주차 카카오 테크 캠퍼스 2단계 - BE - 6주차 클론 과제 과제명 1. 카카오 클라우드 배포 과제 설명 1. 통합테스트를 구현하시오. 2. API문서를 구현하시오. (swagger, restdoc, word로 직접 작성, 공책에 적어서 제출 등 모든 방법이 다 가능합니다) 3. 프론트앤드에 입장을 생각해본뒤 어떤 문서를 가장 원할지 생각해본뒤 API문서를 작성하시오. 4. 카카오 클라우드에 배포하시오. 과제 상세 : 수강생들이 과제를 진행할 때, 유념해야할 것 아래 항목은 반드시 포함하여 과제 수행해주세요! 통합테스트가 구현되었는가? API문서가 구현되었는가? 배포가 정상적으로 되었는가? 프로그램이 정상 작동되고 있는가? API 문서에 실패 예시가 작성되었는가? 코드리뷰 관련: PR시, 아래 내용을..

Spring/카테캠 - TIL

응답값 검증

null 검증 resultActions.andExpect(jsonPath("$.success").value("true")); //resultActions.andExpect(jsonPath("$.response").value("null")); //에러 resultActions.andExpect(jsonPath("$.response").doesNotExist()); //null인지 확인 null인지 검증하기 위해서는 value로 검증하지 않고 doesNotExist()로 검증한다. [ ] 빈 리스트 검증 resultActions2.andExpect(jsonPath("$.response.products.length()").value(0)); //빈 리스트 검증 resultActions2.andExpect(js..

Spring/카테캠 - TIL

TIL [0731, 0801] : 6주차 강의 (WebMvcConfig, 통합테스트, API Docs, 배포)

외부 경로에 사진 폴더 연결하기 WebMvcConfig 만들기 @Configuration //컴포넌트 스캔 public class WebMvcConfig implements WebMvcConfigurer { @Value("${file.path}") //application.yml에서 경로 가져오기 (./images/) private String filePath; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { WebMvcConfigurer.super.addResourceHandlers(registry); //Resource Handler 등록 // 1. 윈도우 절대경로 file:///c:/images/ // 2. ..

Spring/카테캠 - TIL

TIL [0728] 카카오테크캠퍼스 5주차 과제 (기능 구현 + 예외 처리)

5주차 카카오 테크 캠퍼스 2단계 - BE - 5주차 클론 과제 과제명 코드 리팩토링 과제 설명 카카오 쇼핑 프로젝트 전체 코드를 리팩토링한다 - AOP로 유효성검사 적용하기 - GlobalExceptionHanlder 구현하기 - 장바구니 담기 -> 예외 처리하기 - 장바구니 수정(주문하기) -> 예외처리하기 - 결재하기 기능 구현 (장바구니가 꼭 초기화 되어야함) - 주문결과 확인 기능 구현 과제 상세 : 수강생들이 과제를 진행할 때, 유념해야할 것 아래 항목은 반드시 포함하여 과제 수행해주세요! AOP가 적용되었는가? GlobalExceptionHandler가 적용되었는가? 장바구니 담기시 모든 예외가 처리 완료되었는가? 장바구니 수정시 모든 예외가 처리 완료되었는가? 결재하기와 주문결과 확인 코드..

Spring/카테캠 - TIL

카카오테크캠퍼스 4주차 코드리뷰

PR 안녕하세요 멘토님! :) 작성한 코드에 대해 부족한 점, 잘못된 점, 잘한 점 등 아낌없이 조언해주시면 감사드리겠습니다! 😊 코드 작성하면서 어려웠던 점 BDDMockito 사용시 given 패턴에서 인자 설정 오류으로 인해 Stubbing이 되지 않는 문제가 발생하였고, any()와 anyInt()를 이용해 해결했습니다. Controller 테스트에서 Spring Security의 userDetails 값을 불러오지 못해 문제가 발생하였고, @WithMockUser로는 해결이 되지 않았습니다. 직접 Authentication 객체를 생성하여 주입하고, SecurityContextHolder의 Context에 설정하여 해결했습니다. Bean Validation에서 @NotEmpty, @NotBlan..

Spring/카테캠 - TIL

TIL [0727] : 기능 구현, AOP 개념 정리

과제 수행 내용 (필수) : 강의를 들으며 모르는 개념 정리 5주차 과제를 수행하였습니다. (기능 구현) 내일 join fetch를 수행하는 것과 repository에서 조회하는 것의 쿼리를 비교해볼 생각입니다. AOP 개념에 대해 확실히 공부하고 어느정도 감을 잡은 것 같아 좋았습니다. 영속성 컨텍스트를 고려하여 DTO로 응답을 생성하였습니다. 더티체킹이 수행되는 시점이 @Transactional메서드 종료 후이므로 그 전에 DB 조회시 영속성 컨텍스트의 내용과 달라져 위험이 발생할 수 있습니다. 이때에는 명시적으로 DB에 반영하는 flush()를 사용함을 알 수 있었습니다. 또한 부모 트랜잭션과 자식 트랜잭션의 관계에 대해 생각해보았습니다. 금일 과제 수행 (코드 작성) 하면서 어려웠던 점 (선택) ..

Spring/카테캠 - TIL

TIL [0726] : 5주차 강의 - 상품 목록, 상세보기, 장바구니 담기, 조회, 업데이트

상품 목록보기 (기능 1) 응답 Json { "success": true, "response": [ { "id": 1, "productName": "기본에 슬라이딩 지퍼백 크리스마스/플라워에디션 에디션 외 주방용품 특가전", "description": "", "image": "/images/1.jpg", "price": 1000 }, { "id": 2, "productName":"[황금약단밤 골드]2022년산 햇밤 칼집밤700g외/군밤용/생율", "description": "", "image": "/images/2.jpg", "price": 2000 } ], "error": null } 응답 DTO package com.example.kakao.product; import lombok.Getter; im..

Spring/카테캠 - TIL

TIL [0725] : 5주차 강의 - 코드 리팩토링(GlobalExceptionHandler, AOP)

Global ExceptionHandler (글로벌 익셉션 핸들러) 애플리케이션 내에서 발생할 수 있는 예외를 전역적으로 처리하는 방법 - Spring 프레임워크에서 제공 주로 @RestControllerAdvice 어노테이션과 함께 사용됨 RESTful API에서 발생하는 예외를 처리하는데 유용 ✅ Controller에서 발생하는 예외들을 한 클래스에서 처리할 수 있다. @RestControllerAdvice @ControllerAdvice + @ResponseBody(JSON 객체 리턴) @ControllerAdvice 모든 @Controller에서 발생하는 예외들에 대해 전역적으로 처리 가능한 @ExceptionHandler 📌 예외 발생시 일관된 응답이 가능하다. 📌 반복되는 try-catch문 ..

mint*
'Spring/카테캠 - TIL' 카테고리의 글 목록