대외활동/카카오테크캠퍼스

1. 통합테스트를 구현하시오. 2. API문서를 구현하시오. (swagger, restdoc, word로 직접 작성, 공책에 적어서 제출 등 모든 방법이 다 가능합니다) 3. 프론트앤드에 입장을 생각해본뒤 어떤 문서를 가장 원할지 생각해본뒤 API문서를 작성하시오. 4. 카카오 클라우드에 배포하시오. 통합 테스트 통합 테스트를 위한 application-test.yml을 사용하라 teardown.SQL(테스트 쿼리)를 DB에 입력하라 테스트는 기본적인 API 요구사항과 실패 테스트까지 진행하라 구현 목록 - Controller에도 예외처리 해줘야하지 않나? User 회원 가입: Post /join 로그인: Post /login` Order 결재: Post /orders/save 주문 조회: Get /or..
· DEV/Backend
문제 상황 🐥 카카오 테크 캠퍼스 - 2단계 5주차 과제 수행 중에 global Exception Handler를 사용하는 과제가 있었다 code를 작성하면서, 직접 에러를 확인하고 싶어서, 아래와 같이 핸들러를 작성하고 실행했다 @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(Exception500.class) public ResponseEntity serverError(Exception500 e){ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("잘 찾아왔다."); } } Controller 코드 : runtime Error를 예시로 삼았다 @..
과제 수행 조건 1. 장바구니 담기 -> 예외 처리하기 2. 장바구니 수정(주문하기) -> 예외 처리하기 3. 결제하기 기능 구현(장바구니가 꼭 초기화 되어야 함) 4. 주문결과 확인 기능 구현 1. 장바구니 담기 : /carts/add 해결해야 할 문제 동일한 옵션이 들어오면 예외처리 Dirty Checking : cartJPARepository.findByOptionIdAndUserId() 조회 존재하면 장바구니에 수량을 추가하는 업데이트 Controller @PostMapping("/carts/add") public ResponseEntity addCartList(@RequestBody @Valid List requestDTOs, Errors errors, @AuthenticationPrincipa..
과제 목표 카카오 쇼핑 프로젝트 전체 코드를 리팩토링한다 - AOP로 유효성검사 적용하기 - GlobalExceptionHanlder -> 예외 처리하기 - 구현하기 - 장바구니 담기 - 장바구니 수정(주문하기) -> 예외처리하기 - 결재하기 기능 구현 (장바구니가 꼭 초기화 되어야함) - 주문결과 확인 기능 구현 필수 적용 사항 AOP가 적용되었는가? GlobalExceptionHandler가 적용되었는가? 장바구니 담기시 모든 예외가 처리 완료되었는가? 장바구니 수정시 모든 예외가 처리 완료되었는가? 결재하기와 주문결과 확인 코드가 완료되었는가? 1. 장바구니 담기 : /carts/add @Transactional(readOnly = true) @RequiredArgsConstructor @Servi..
- 모르는 키워드 - 혼자 구현하기 어려운 것들 - Spring의 큰 틀에서 이해하자 - 수업 때 언급 된 내용 위주로 맥락 파악 할 것 01. 글로벌 익셉션 핸들러 적용 DispatcherServlet에서 Exception 제어를 하는 것의 장점이 뭐냐 DispatcherServlet이 책임을 지게 되는거임 Java의 Reflection은 무엇인가? Reflection으로 구현 되었다는게 무엇인가 Controller의 책임은 무엇이냐 @Controller의 역할 : View Resolver 관련 @RestController의 역할 : Message Converter 관련 @RestControllerAdvice : DispatcherServlet이 throw가 날라오면 해당 어노테이션이 있는 파일을 찾아..
· DEV/Java
Intro. 난, 손 발 달린 감자인가…? 🐥 카카오 테크 캠퍼스 - 2단계 4주차 과제 분석을 하고 과제를 수행하던 중, 컨트롤러 테스트에서 문제를 직면했다 "음흠, Product Controller에서 fakestore를 사용하니, MockBean을 만들어줘야지 그럼그럼"하면서 개발을 하고 있었는데 말이다, 분명히 데이터를 넣고, Request 내용을 출력했을 때 분명히 데이터가 출력이 되는데, 테스트 실행 결과에 response가 비어있다 기능 명세에 따르면 분명히, Request와 동일하게 데이터가 나와야 하는데 나오지 않는 것이다, 삽질 Get 요청에 Content 담아 전송 ResultActions result = mvc.perform( MockMvcRequestBuilders .get("/p..
핵심 지표 컨트롤러 단위테스트가 구현되었는가? Mockito를 이용하여 stub을 구현하였는가? 인증이 필요한 컨트롤러를 테스트할 수 있는가? 200 ok만 체크한 것은 아닌가? (해당 컨트롤러에서 제일 필요한 데이터에 대한 테스트가 구현되었는가?) 모든 요청과 응답이 json으로 처리되어 있는가? 과제 고도화 DB 연결 없이 컨트롤러 테스트를 모두 진행하라 Repository도 만들고, 서비스도 다 만들어서 테스트 User 단일 유저 조회: Get /users/{id} @GetMapping("/users/{id}") public ResponseEntity findById( @PathVariable Integer id, @AuthenticationPrincipal CustomUserDetails user..
· DEV/Java
Intro. 사건의 전말 🐥 카카오테크캠퍼스 - 2단계 3주차 과제 구현 피드백이 도착했다는 알림에 후다닥 달려갔다 3주차 과제는 Repository Test가 핵심이라, 관련 피드백이 달렸다 처음 멘토님의 피드백을 읽고, 잘이해가 되지 않았다 문제의 코드 나름 피드백은 반영하려 했지만, 멘토님이 원한 방향이 아닌거 같아 다시금 질문을 드렸다 결론 일반적으로 PK로 사용되는 Id는 자동 증가를 사용하는 경우가 있어, 테스트시에 변경 될 여지가 있다 핵심은 유니크하게 데이터를 구분하여, 변경의 위험을 탈출하라 전역 변수 테스트할때 아이디를 활용하여 조회하는 경우 ID는 자동증가를 사용하기 때문에 내가 원하는 아이디가 나오지 않아서 테스트가 실패할 수도 있습니다. 예를 들어 유저정보를 @BeforeEach ..
· DEV/Java
@Transactional 어노테이션은 Spring에서 데이터베이스 트랜잭션의 범위를 정의하기 위해 사용됩니다 이 어노테이션은 메서드(또는 클래스)를 트랜잭션 내에서 실행되도록 표시합니다. @Transactional 어노테이션은 클래스 수준, 메서드 수준 또는 둘 다에 적용할 수 있습니다. 클래스 수준에 적용하면 해당 클래스 내의 모든 메서드에 대한 기본 트랜잭션 동작이 설정됩니다. 트랜잭션 전파 트랜잭션 전파는 한 메서드에서 다른 메서드를 호출할 때 트랜잭션 동작이 어떻게 전파되는지를 정의합니다. 스프링은 @Transactional 어노테이션의 propagation 속성을 통해 다양한 전파 유형을 지원합니다. 일반적인 전파 유형은 다음과 같습니다: REQUIRED 메서드는 트랜잭션 내에서 실행되어야 합..
· DEV/Java
A - Atomicity Spring Boot에서, [[@Transactional]] 어노테이션을 사용하여 메서드의 원자성을 보장할 수 있습니다. 이 어노테이션은 메서드에서 발생하는 모든 데이터베이스 연산이 하나의 트랜잭션으로 처리되도록 합니다. 만약 메서드 내에서 어떤 예외가 발생하면, 해당 트랜잭션의 모든 연산은 롤백됩니다. @Service public class UserService { @Autowired private UserRepository userRepository; @Transactional public void updateUserEmail(Long id, String newEmail) { User user = userRepository.findById(id).orElseThrow(() -..
berom
'대외활동/카카오테크캠퍼스' 태그의 글 목록 (2 Page)