프로젝트에서 예외처리를 구현하며 다시 한 번 예외/에러에 대해 정리하기 위해 작성한 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. Exception과 Error Java에서는 Exception과 Error 두 가지 클래스로 예외 처리를 지원합니다. 둘 다...
Exception
스프링 빈 생명주기 관리
1. 글을 작성하게 된 계기 스프링을 사용하며 특정 시점에 작업을 처리 할 일이 있었는데, 이때까지 사용했던 방법과, 새로 알게 된 내용을 한 번에 정리하기 위해 글을 작성하게 되었습니다. 특정 시점은 스프링의 특정 빈이 초기화 되었을 때, 애플리케이션이 구동되었을 때와 같은 시점을 말합니다. 2. 라이프 사이클 The ...
Controller가 호출되기 까지 어떤 과정을 거칠까?
글을 작성하게 된 계기 사람들과 스프링 서버를 만들어보는 프로젝트를 진행하며 컨트롤러가 호출되기 까지의 과정이 궁금해졌고, 학습 과정에서 알게 된 내용을 정리하기 위해 글을 작성하게 되었습니다. 1. DispatcherServlet 초기화 브라우저에 http://localhost:8090/hello를 입력해서 DispatcherServl...
Timeout 테스트
외부 API를 호출하는 과정에서 Timeout을 어떻게 테스트할지에 대해 학습하며 작성된 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. 외부 API와 Timeout 깃허브를 통해 회원가입하는 시나리오를 살펴보겠습니다. 사용자가 회원가입 요청(1)을 보내면...
doReturn과 thenReturn
스프링 doReturn과 thenReturn에 대해 학습하며 작성된 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. doReturn과 thenReturn 두 메서드 모두 Mockito 프레임워크가 제공하는 메서드로, Stub으로 테스트 대역을 지정하고 Mo...
Blocking/Non-Blocking, Sync/Async의 특징과 차이점은 무엇일까?
글을 작성하게 된 계기 Blocking, Non-Blocking, Sync, Async의 개념을 명확하게 설명하지 못하는 것을 보고 이를 확실히 정리하기 위해 글을 작성하게 되었습니다. Blocking Non-Blocking Sync Async 1. Blocking / Non-Blocking Blocking과 Non-...
[Unit Testing] Unit Test Principles
단위테스트 책을 읽고 실습 하며 내용을 정리한 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. 단위 테스트 세 가지 스타일 단위 테스트에서 출력 기반 테스트, 상태 기반 테스트, 통신 기반 테스트 세 가지가 존재합니다. 하나의 테스트에서는 하나 또는 둘, ...
[Unit Testing] Unit Test Anti Pattern
단위테스트 책을 읽고 실습 하며 내용을 정리한 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. 비공개 메서드 단위 테스트 가능한 비공개 메서드를 테스트하면 안 됩니다. 비공개 메서드를 노출하면 테스트가 구현 세부 사항과 결합하고 결과적으로 리팩토링 내성이...
Custom Response
커스텀 응답에 대해 학습하는 과정에서 작성된 글입니다. 학습 과정에서 작성된 글이기 때문에 잘못된 내용이 있을 수 있으며, 이에 대한 지적이나 피드백은 언제든 환영입니다. 1. ResponseEntity의 한계 응답 데이터를 반환할 때 스프링이 제공해주는 ResponseEntity를 사용하면 간단하게 응답을 내려줄 수 있습니다. 내부에 빌...
왜 Wrapper Class를 왜 사용할까?
글을 작성하게 된 계기 스프링 코드를 보다 보면 래퍼 클래스(Wrapper Class)를 사용하는 것을 자주 볼 수 있습니다. 평소 이를 자주 사용하고 있었지만 래퍼 클래스의 장/단점에 대해 한 두 문장으로 요약하지 못했기에, 생각을 정리하고 싶어 글을 작성하게 되었습니다. 1. Wrapper Class 래퍼 클래스(Wrapper Cl...