강의 요약 섹션 7. Mock을 마주하는 자세 Test Double Dummy : 아무 것도 하지 않는 깡통 객체 Fake : 단순한 형태로 동일한 기능은 수행하나, 프로덕션에서 쓰기에는 부족한 객체 (ex. FakeRepository) Stub : 테스트에서 요청한 것에 대해 미리 준비한 결과를 제공하는 객체 그 외에는 응답하지 않습니다. (상태 검증) ...
@Mock 목적: 객체를 단순히 Mocking하여 테스트에서 사용할 수 있도록 합니다. 사용 범위: Spring 컨텍스트와 무관한 일반적인 단위 테스트에 사용됩니다. 특징: 실제 구현체를 대체하는 Mock 객체를 생성합니다. Spring 컨텍스트를 로드하지 않으며 독립적인 테스트 환경에서 사용됩니다. 사용 시점: 단일 클래스와 메서드의 동작을 격리하여 테스...
Layered Architecture Layered Architecture는 소프트웨어의 기능을 계층별로 분리하여 설계하는 방식으로 모듈화 와 관심사 의 분리를 통해 유지보수성과 확장성을 높이는 데 중점을 둡니다. 각 레이어는 특정 역할을 수행하며 상위 및 하위 레이어와 제한적으로 상호작용합니다. 아래는 주요 레이어의 특징과 테스트 작성법을 정리한 내용입니...
강의 요약 섹션 6. Spring & JPA 기반 테스트 Presentation Layer 외부 세계의 요청을 가장 먼저 받는 계층 파라미터에 대한 최소한의 검증을 수행한다. Business Layer 비즈니스 로직을 구현하는 역할 Persistence Layer와의 상호작용(Data를 읽고 쓰는 행위)을 통해 비즈니스 로직을 전개시킨다. 트랜잭션을 보장해...
Reable Code 강의 요약 섹션 6. 코드 다듬기 주석의 양면성 주석이 많다는 것은, 그만큼 비즈니스 요구사항을 코드에 잘 못 녹였다는 이야기. 코드를 설명하는 주석을 쓰면, 코드가 아니라 주석에 의존한다. 주석에 의존하여 코드를 작성하면, 적절하지 않은 추상화 레벨을 갖게 되어 낮은 품질의 코드가 만들어진다. 우리가 가진 모든 표현 방법을 총동원해 ...
강의 요약 섹션 2. 추상 (抽象) 우리가 클린 코드를 추구하는 이유 가독성 글이 잘 읽힌다. 이해가 잘 된다. 유지보수 하기가 수월하다. 우리의 시간과 자원이 절약된다. 추상이란? 사물을 정확하게 이해하기 위해서 사물이 지니고 있는 여러 가지 측면 가운데서 특정한 측면만을 가려내어 포착하는 것이다. 어떤 일면만을 추상하는 것은 다른 측면을 버린다는 것과 ...