2022-12-02

최찬호·2022년 12월 2일

코딩을 하는 방법

  1. 제발 코드작성하기 전에 글로써봐라.
  2. 변수, 상수 찾기
  3. 규칙을 찾기(반복문 or 함수분리) 흐름의변화를 주는 것은 무엇인가?
  4. 충분한 이해를 바탕으로 코드작성

spring-boot 의존관계오류

service layer를 작성하던 중 repository에 의존하지 않고 해당 repository를 의존하고 있으며 관련 메소드가 작성되어 있는 service를 의존하면 중복코드를 줄이고 service 메소드를 사용하면 로직흐름을 보기도 편하지 않을까? 란 생각으로 service에서 필요로 하는 다른 service를 의존하게 작성을 했는데 실행을 해보니 의존관계 오류를 만났다. 각 service가 생성되기 위해서는 서로를 필요로 하는 상황이 된 것이다. 해결방법은 여러가지가 있었다.
1. @Lazy 어노테이션 사용 2. setter 사용 3. 재설계
의존관계오류는 대부분이 설계의 오류라고 한다. 그런데 1, 2 번 방법은 개인적으로 생각하기에 근본적인 오류를 고치는 방식이 아니라고 생각한다. 객체 생성의 순서를 바꿔서 동작이 가능하게 하는 건데 그래도 양방향의존이라는 사실은 변하지 않는다고 생각한다. 그렇다면 3번 재설계인데 A -> B, B -> C 를 의존하게 하는 방식이라고 한다. 음... 사실 아직 감이 잘 안잡힌다. service간의 의존을 하면 안되는 건가? service간의 의존이 아닌 그 중간계층이 하나 더 필요한 건가? 일단 이 글을 작성하고나서도 찾아봐야겠다.

profile
체득하고 이해하자

0개의 댓글