-
AppConfig 리팩터링spring/스프링 핵심 원리 강의 내용 정리 2023. 12. 6. 21:38
바꾸기 전 AppConfig을 저장하는걸 깜빡했다...
이전 포스팅에 있으니 참고
AppConfig을 보면 중복도 있고, 역할에 따른 구현이 잘 안보인다
구성 정보에는 각각의 역할이 한눈에 보이는게 중요하다
역할이 드러나도록 만들어 보자
메소드 추출 기능을 사용해야 하는데...
다른 사람들은 ctrl + alt + m 이라는데 나는 alt + shift + m 이었다
찾는데 10분 걸려서 분노 게이지가 가득 찼다
AppConfig 에서 (new MemoryMemberRepository()) 가 있는 부분을 메소드 추출하여
MenberRepository 클래스 : memberRepository 로 추출했다
리팩터링 완료하면 내가 썻던 MemoryMemberRepository() 가 모두 memberRepository로 바뀌는 것을
볼 수 있다
또한 MemoryMemberRepository를 추출하여 반환하는 memberRepository 메서드를 생성해준다
이렇게 멤버 서비스의 역할, 멤버 리포지토리의 역할, 오더 서비스의 역할이 드러나게 됐다
FixDiscountPolicy 또한 마찬가지로 추출해준다
경험을 위해 이번엔 직접 타이핑 했다이렇게 하면 이 설정만 보고도 각각의 역할을 이해하기가 쉬워진다
정리하자면...
new MemoryMemberRepository() 이 부분이 중복 제거되었다
이제 MemoryMemberRepository 를 다른 구현체로 변경할 때 한 부분만 변경하면 된다
AppConfig 를 보면 역할과 구현 클래스가 한눈에 들어온다
애플리케이션 전체 구성이 어떻게 되어있는지 빠르게 파악할 수 있다'spring > 스프링 핵심 원리 강의 내용 정리' 카테고리의 다른 글
지금까지의 전체 흐름 정리 (1) 2023.12.07 새로운 구조와 할인 정책 적용 (1) 2023.12.07 관심사의 분리 (0) 2023.12.06 새로운 할인 정책 적용과 문제점 (1) 2023.12.06 새로운 할인 정책 개발 (1) 2023.12.06