ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 를 보면 역할과 구현 클래스가 한눈에 들어온다
    애플리케이션 전체 구성이 어떻게 되어있는지 빠르게 파악할 수 있다

Designed by Tistory.