프로젝트

Intro. Token 복사하기가, 귀찮다 🐥 카카오 테크 캠퍼스 - 2단계 5주차 강의 요약 후 Postman 테스트를 하는데, 로그인 할 때마다 Token을 복사하는게 너무 귀찮았다 이런거 이미 만들어져 있을거 같은데? 했는데 역시나 있었다 역시 세상은 넓고, 내가 한 생각은 이미 누군가 했다 해결 방법 새로운 Environment 생성 : 꼭 만들어야 합니다 새로운 환경을 만들어줍니다. 저는 Kakao라고 이름을 지정했습니다. 꼭 그리고 save 눌러주셔야 합니다 꼭꼭 Current Value에 우리의 Token이 들어갈겁니다 그리고, 오른쪽 상단에서 만들어둔 Kakao 환경으로 이동합니다 Test에 쿼리 작성 로그인으로 이동해서, Tests에 들어가 아래 코드를 입력합니다 // Assuming t..
- 모르는 키워드 - 혼자 구현하기 어려운 것들 - Spring의 큰 틀에서 이해하자 - 수업 때 언급 된 내용 위주로 맥락 파악 할 것 01. 글로벌 익셉션 핸들러 적용 DispatcherServlet에서 Exception 제어를 하는 것의 장점이 뭐냐 DispatcherServlet이 책임을 지게 되는거임 Java의 Reflection은 무엇인가? Reflection으로 구현 되었다는게 무엇인가 Controller의 책임은 무엇이냐 @Controller의 역할 : View Resolver 관련 @RestController의 역할 : Message Converter 관련 @RestControllerAdvice : DispatcherServlet이 throw가 날라오면 해당 어노테이션이 있는 파일을 찾아..
핵심 지표 컨트롤러 단위테스트가 구현되었는가? Mockito를 이용하여 stub을 구현하였는가? 인증이 필요한 컨트롤러를 테스트할 수 있는가? 200 ok만 체크한 것은 아닌가? (해당 컨트롤러에서 제일 필요한 데이터에 대한 테스트가 구현되었는가?) 모든 요청과 응답이 json으로 처리되어 있는가? 과제 고도화 DB 연결 없이 컨트롤러 테스트를 모두 진행하라 Repository도 만들고, 서비스도 다 만들어서 테스트 User 단일 유저 조회: Get /users/{id} @GetMapping("/users/{id}") public ResponseEntity findById( @PathVariable Integer id, @AuthenticationPrincipal CustomUserDetails user..
측정 지표 레퍼지터리 단위 테스트 구현 테스트 메서드의 격리성이 보장 되었는가 테스트 코드 쿼리 관련 메서드가 너무 많은 Select를 유발하지 않는가 과제 목적 핵심은 내가 JPA 테스트를 통해 원하는 데이터를 얻어낼 수 있는가!! 그 데이터를 얻기 위해 너무 많은 select가 유발되지 않았는가? 테스트를 통해 JPA를 좀 더 잘 이해하는 것이다. Product 전체 상품 목록 조회 @Test public void product_findAll_test() throws JsonProcessingException { // given int page = 0; int size = 9; // when PageRequest pageRequest = PageRequest.of(page, size); Page pr..
🐥 카카오테크캠퍼스 - 2단계 3주차 - 과제 - 레포지토리 단위테스트 1. 레포지토리 단위테스트를 구현하여 소스코드를 제출하시오. 2. 쿼리를 테스트하면서 가장 좋은 쿼리를 작성해보시오. 핵심 지표 레포지토리 단위테스트가 구현되었는가? 테스트 메서드끼리 유기적으로 연결되지 않았는가? (테스트는 격리성이 필요하다) Persistene Context를 clear하여서 테스트가 구현되었는가 (더미데이터를 JPA를 이용해서 insert 할 예정인데, 레포지토리 테스트시에 영속화된 데이터 때문에 쿼리를 제대로 보지 못할 수 있기 때문에) 테스트 코드의 쿼리 관련된 메서드가 너무 많은 select를 유발하지 않는지? (적절한 한방쿼리, 효율적인 in query, N+1 문제 등이 해결된 쿼리) 🥔 내가 잘 모르는..
🐥 카카오테크캠퍼스 - 2단계 2주차 과제 - 고려사항 요구사항 전체 API 주소 설계 API 요구사항 반영 API 명세를 위해 고민한 것들 Mock API Controller 구현 Spring Boot 컨트롤러 작성 완성된 소스코드 제출 Product 1. 전체 상품 목록 조회 - Method : Get - Local URL : http://localhost:8080/products - Param : page={number} 구현 사항 findAll(@RequestParam(defaultValue = "0") int page) 전체 상품 목록 조회 API는 Parmeter를 통해 페이지네이션을 고려하고 있습니다 default value를 주어 페이지별 상품 조회도 가능하도록 하였습니다 Controlle..
🐥 카카오테크캠퍼스 - 2단계 2주차 과제 - 고려사항 요구사항 전체 API 주소 설계 API 요구사항 반영 API 명세를 위해 고민한 것들 Mock API Controller 구현 Spring Boot 컨트롤러 작성 완성된 소스코드 제출 1. 전체 상품 목록 조회 - Method : Get - Local URL : http://localhost:8080/products - Param : page={number} 구현 사항 findAll(@RequestParam(defaultValue = "0") int page) 전체 상품 목록 조회 API는 Parmeter를 통해 페이지네이션을 고려하고 있습니다 default value를 주어 페이지별 상품 조회도 가능하도록 하였습니다 Controller @GetMa..
🐥 카카오테크캠퍼스 - 2단계 2주차 과제 - 예외처리 1. 전체 상품 목록 조회 Method : Get Local URL : http://localhost:8080/products Param : page= @GetMapping("/products") public ResponseEntity findAll(@RequestParam(defaultValue = "0") int page) { List responseDTO = new ArrayList(); // 상품 하나씩 집어넣기 responseDTO.add(new ProductRespFindAllDTO( 1, "기본에 슬라이딩 지퍼백 크리스마스/플라워에디션 에디션 외 주방용품 특가전", "", "/images/1.jpg", 1000 )); responseDT..
🐥 카카오테크캠퍼스 - 2단계 2주차 과제 과제 분석 요구사항 🐥 카카오테크캠퍼스 - 2단계 1주차 Entity 최종 설계에서 제공 받은 API 명세와 똑같은 응답 반환하는 Controller 구현 Data는 Dummy를 임의로 만들어서 구현 필수 제출 사항 API 주소 설계 소스 코드 API 구현 1. 전체 상품 목록 조회 Method : Get Local URL : http://localhost:8080/products Param : page= @GetMapping("/products") public ResponseEntity findAll(@RequestParam(defaultValue = "0") int page) { List responseDTO = new ArrayList(); // 상품 하나..
🐥 카카오테크캠퍼스 - 2단계 1주차 Entity 최종 설계 - 부족한 기능에 대한 요구사항을 미리 예상할 수 있는가? - (예를 들면 상품등록 api가 기존 요구사항에는 없는데 추후 필요하지는 않을지, 이런 부분들을 생각하였는지) - 요구사항에 맞는 API를 분석하고 사용자 시나리오를 설계하였는가? - (예를 들어 배포된 서버와 화면 설계를 제시해줄 예정인데, 특정 버튼을 클릭했을 때 어떤 API가 호출되어야 할지를 아는지) - 응답되는 데이터가 프론트앤드 화면에 모두 반영될 수 있는지를 체크하였는가? - (예를 들어 배송관련 비용이 있는데, 이런것들이 API에는 없는데 이런 부분을 캐치할 수 있는지) - 테이블 설계가 모든 API를 만족할 수 있게 나왔는가? - (테이블이 효율적으로 나왔는가 보다는 ..
berom
'프로젝트' 카테고리의 글 목록 (2 Page)