클린 코드 11장을 읽고 시스템 제작과 사용의 분리, Main 분리, 추상 팩토리, 의존성 주입 개념을 예제와 함께 정리합니다.
Java/Spring 테스트 강의를 들으며 배운 의존성 주입과 의존성 역전을 활용해 Clock 같은 외부 의존을 테스트 가능하게 만드는 방법을 정리합니다.
회원가입 중복 검증 로직을 담은 Service 계층을 구현하고, given-when-then 패턴으로 정상 케이스와 예외 케이스를 테스트합니다.
순수 JDBC로 MemberRepository를 구현하고, SpringConfig의 빈 설정만 바꿔서 메모리 저장소를 DB로 교체하는 과정을 정리합니다.
수정자 주입 대신 생성자 주입을 권장하는 이유와, 롬복의 @RequiredArgsConstructor로 생성자 코드를 줄이는 방법을 정리합니다.
스프링에서 @Autowired로 조회한 빈이 2개 이상일 때 발생하는 충돌을 필드명 매칭, @Qualifier, @Primary로 해결하는 방법을 정리합니다.
문자열 기반 @Qualifier의 오타 위험을 없애기 위해 전용 애노테이션을 직접 만들어 타입 안전하게 의존관계를 주입하는 방법을 정리합니다.
스프링 빈을 자동 등록과 수동 등록 중 어떤 기준으로 선택해야 하는지, 업무 로직과 기술 지원 로직을 나누어 정리합니다.
@Component 애노테이션이 붙은 클래스를 스프링 빈으로 자동 등록하고, 생성자를 통해 의존관계를 자동으로 주입받는 컴포넌트 스캔 방식을 정리합니다.
아직 데이터베이스가 정해지지 않은 상황에서 SpringConfig 자바 클래스로 스프링 빈을 직접 등록하는 방법을 정리합니다.