[되새김질] 의존성에 대한 고찰

jeyong·2024년 2월 26일
0
post-thumbnail
post-custom-banner

해당 게시물은 인프런 "Java/Spring 주니어 개발자를 위한 오답노트" 강의를 참고하여 작성한 글 입니다.

1. SOLID

객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙이다. 언제나 마음에 달고 살자

참고: https://ko.wikipedia.org/wiki/SOLID_(%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84)

2. 인터페이스 분리 원칙 (Interface segregation principle)

  • 인터페이스: "이 기능을 사용하고 싶다면 이 방법을 사용하세요." 라고 알려주는 것이다.
  • API도 하나의 인터페이스라고 볼 수 있다.

3. 의존관계 역전 원칙 (Dependency inversion principle)

  • 인터페이스를 사용하면 지켜지는 원칙이다.

- DI vs DIP?

  • DI : Dependency Injection
  • DIP : Dependency Inversion

참고 : https://velog.io/@betterfuture4/Spring-IoC-DI-DIP

4. 의존성을 드러내라

변하는 값인 시간을 드러냄으로써 의존성을 파악할 수 있다.

다른 사람이 코드를 봤을때 이해하기 쉽고, 테스트 코드를 작성하기 쉽다.

5. 의존성을 추상화 시켜라

의존성을 드러내기만 하면 폭탄돌리기 게임 발생한다.

의존성이 인터페이스가 되어있어서 추상화 되어있었다면, 주입 받아서 해결할 수 있다.

의존성을 추상화하여 주입 받음으로써 즉, 의존성 역전 원리를 이용하여 컴파일 타임과 런타임의 의존성을 다르게 할 수 있다.

인터페이스 분리 원칙과 의존관계 역전 원칙을 포함한 SOLID 원칙들은 코드의 결합도를 낮추고, 의존성을 관리하는 데 중점을 둔다. 이를 통해, 변경에 유연하게 대응할 수 있는 소프트웨어를 만들 수 있으며, 이는 장기적으로 프로젝트의 성공을 좌우하는 결정적 요소가 된다고 생각한다.

profile
노를 젓다 보면 언젠가는 물이 들어오겠지.
post-custom-banner

0개의 댓글