Spring

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문 ..

Spring/카테캠 - TIL

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

Code Review 안녕하세요 멘토님! :) 작성한 코드에 대해 부족한 점, 잘못된 점, 잘한 점 등 아낌없이 조언해주시면 감사드리겠습니다! 😊 코드 작성하면서 어려웠던 점 즉시 로딩과 지연로딩에 대해 배우는 시간을 가졌습니다. Join과 Fetch Join의 차이에 대해 배우고, Fetch Join과 지연로딩과의 차이를 찾아 공부했습니다. 좋은 쿼리에 대해 생각해보는 시간을 가졌습니다. ✚ 코드 리뷰를 반영하여 2주차 과제를 개선했습니다. 😼 코드 리뷰시 중심적으로 리뷰해주셨으면 하는 부분 좋은 쿼리를 갖는 코드란? 제 생각으로는 하나의 작업을 수행할때 DB에 최소한의 쿼리를 날리는 것이라고 생각합니다. 이때 최소한의 쿼리를 날리면, 항상 그보다 많은 쿼리를 수행하는 것보다 짧은 시간이 걸리는지 궁..

Spring/카테캠 - TIL

카테캠 4주차 과제 중 문제 - 해결 (유효성 검사, Mockito 인자+anyInt, UserDetails 직접 주입)

@NotEmpty, @NotBlank 문자열에만 적용이 된다. @NotNull 기본타입에는 적용되지 않는다. 기본 타입은 java에서 기본값으로 초기화되기때문이다. @NotNull은 참조 타입에서만 적용된다. int 대신 Integer로 선언하면 적용이 됨을 확인할 수 있다. Collection은 @Valid로 유효성 검사가 불가능하다. @PostMapping("/carts/add") public ResponseEntity addCartList(@RequestBody @Valid List requestDTOs, Errors errors, @AuthenticationPrincipal CustomUserDetails userDetails) { customCollectionValidator.validate(r..

Spring/카테캠 - TIL

카카오테크캠퍼스 : 4주차 과제

카카오 테크 캠퍼스 2단계 - BE - 4주차 클론 과제 과제명 1. 컨트롤러 단위 테스트 과제 설명 1. 컨트롤러 단위테스트를 작성한뒤 소스코드를 업로드하시오. 2. stub을 구현하시오. 과제 상세 : 수강생들이 과제를 진행할 때, 유념해야할 것 아래 항목은 반드시 포함하여 과제 수행해주세요! 컨트롤러 단위테스트가 구현되었는가? Mockito를 이용하여 stub을 구현하였는가? 인증이 필요한 컨트롤러를 테스트할 수 있는가? 200 ok만 체크한 것은 아닌가? (해당 컨트롤러에서 제일 필요한 데이터에 대한 테스트가 구현되었는가?) 모든 요청과 응답이 json으로 처리되어 있는가? 작성한 코드 설명 ✅ BDDMockito를 이용한 Controller 단위 테스트 수행 ✅ @Valid로 유효성 검증 코드 ..

Spring/카테캠 - TIL

4주차 강의 : DTO 유효성 검사, Custom Exception, Controller와 Service의 책임, OSIV

3주차 과제 리뷰 Repository 테스트- 과제의 목표 1. Repository 테스트는 편리하다. 프로그램을 만들지 않아도 Repository 테스트가 가능하다. 2. 좋은 코드를 찾아낼 수 있다. 정상! 이미 만들어져있다. setUp 테스트 전 실행하는 코드 teardown 테스트가 종료된 후 실행되는 코드 dummy data 한 곳에 모아넣기 📌 테스트 시에 Log4j 사용하지 말기! Build 안됨 요청 DTO (Data Transfer Object) 유효성 검사 소프트웨어 개발에서 DTO 객체의 데이터가 요구사항에 맞는 유효한 값인지 확인하는 과정을 말한다. DTO는 주로 데이터 전송을 위해 사용되는 객체이다. 사용자 인터페이스(UI)와 비지니스 로직 간의 데이터 전달을 담당한다. DTO 생..

Spring/카테캠 - TIL

카테캠 : 2주차 코드 리뷰

코드 리뷰 안녕하세요 멘토님! :) 작성한 코드에 대해 부족한 점, 잘못된 점, 잘한 점 등 아낌없이 조언해주시면 감사드리겠습니다! 😊 코드 작성하면서 어려웠던 점 Restful한 API 설계 방법에 대해 생각해보는 시간을 가졌습니다. MockMvc를 사용한 테스트 방법을 배우는 시간을 가졌습니다. DTO를 잘 작성하는 방법에 대해 생각해보는 시간을 가졌습니다. 로그인 API에서 헤더에 Bearer 토큰을 포함하지 않으면, 인증되지 않은 사용자로 로그인이 막히게 되어있습니다. 하지만 토큰은 로그인 시마다 새롭게 부여되기때문에, 인증 방법에 대해 이해하기 어려웠습니다. ✅ 우선 저는 헤더에 Bearer 토큰이 존재하면 인증되도록 작성했는데, 올바른 방법이 아닌 것 같아 Spring Security를 공부해..

Spring/카테캠 - TIL

TIL [0714] : 3주차 과제 수행

과제명 1. 레포지토리 단위테스트 과제 설명 1. 레포지토리 단위테스트를 구현하여 소스코드를 제출하시오. 2. 쿼리를 테스트하면서 가장 좋은 쿼리를 작성해보시오. 과제 상세 : 수강생들이 과제를 진행할 때, 유념해야할 것 아래 항목은 반드시 포함하여 과제 수행해주세요! 레포지토리 단위테스트가 구현되었는가? 테스트 메서드끼리 유기적으로 연결되지 않았는가? (테스트는 격리성이 필요하다) Persistene Context를 clear하여서 테스트가 구현되었는가? (더미데이터를 JPA를 이용해서 insert 할 예정인데, 레포지토리 테스트시에 영속화된 데이터 때문에 쿼리를 제대로 보지 못할 수 있기 때문에) 테스트 코드의 쿼리 관련된 메서드가 너무 많은 select를 유발하지 않는지? (적절한 한방쿼리, 효율적..

mint*
'Spring' 카테고리의 글 목록 (3 Page)