atelier3407.log
로그인
atelier3407.log
로그인
자바 스프링 주니어 개발자 오답노트 (3) - 의존성
최준호
·
2024년 7월 3일
팔로우
0
의존성
자바 스프링 주니어 개발자 오답노트
0
의존성
단일 책임 원칙
단일 책임 원칙이란 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는다. 클래스가 제공하는 모든 기능은 이 책임과 주의 깊게 부합해야 한다.
클래스는 하나의 목적만 가지고 있어야한다.
개방 폐쇄 원칙
확장에는 열려있고, 수정에는 닫혀있어야 한다라는 내용. 만약 새로운 기능을 추가하는데 기존에 있던 코드를 이것저것 건드려야 한다면 확장에는 닫혀있는 거고, 기능을 추가하는데 이 파일 저 파일 수정해야한다면 수정에는 열려있다는 겁니다.
따라서 기존의 코드에 새로운 코드를 추가함으로써 기능의 추가나 변경이 가능해야합니다.
리스코프 치환 원칙
자료형 S가 자료형 T의 하위형이라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 T의 객체를 자료형 S의 객체로 교체(치환)할 수 있어야한다는 원칙.
반대되는 예시로 보여줍니다. 사각형을 상속받는 정사각형이 높이를 변경함으로써 규칙이 깨지는걸 확인할 수 있습니다.
인터페이스 분리 원칙
인터페이스 : 서로 다른 두 개 이상의 독립된 컴퓨터 시스템 구성 요소 간에 정보를 교환하는 공유 경계이다.
예시로 인터페이스는 public 메소드를 의미합니다.
인터페이스 분리 원칙은 클라이언트가 자신이 잉용하지 않는 메소드에 의존하지 않아야 한다라는 말에 의미는
의존성 역전 원칙
상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 하낟.
추상화는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다.
위 예시를 보면 셰프라는 클래스는 햄버거를 만드는 메소드를 가지고 있습니다. 즉 셰프는 빵, 고기, 양상추, 소스, 햄버거에 의존한다고 볼 수 있습니다.
클래스를 사용하고 있기 때문입니다!
Dependency Injection과 Dependency Inversion은 다릅니다.
Dependency Injection(DI) : 의존성 주입
Dependency Inversion(SOLID - DIP) : 의존성 역전
맥도날드는 셰프라는 인터페이스를 통해 일을 시키는 것 뿐이고 햄버거 셰프는 셰프를 구현한 것뿐.
따라서 의존성 역전의 원칙은 화살표 방향을 반대로 바꾼 테크닉이다.
최준호
변화를 두려워하는 사람이 가장 불행한 사람이다.
팔로우
이전 포스트
자바 스프링 주니어 개발자 오답노트 (2) - 객체의 종류, 행동
다음 포스트
Java Spring boot 마스터하기 (1) - Spring Framework 시작하기
0개의 댓글
댓글 작성