SOLID가 뭔데? 흔히 객체 지향 5대 원칙으로 불리는 이 SOLID 원칙은 SRP(단일 책임 원칙),* OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙)*을 말하며, 앞자를 딴 것으로, 프로그래머가
개방 폐쇄 원칙은 "확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다."를 의미한다. 조금 더 쉽게 풀어 쓰자면, "기능을 변경하거나 확장할 수 있으면서 그 기능을 사용하는 코드는 수정하지 않는다."를 뜻한다.한 가지 예시를 보자.위 사진은 자바 어플리케이션에서
리스코프 치환 원칙은 개방 폐쇄 원칙을 받쳐 주는 다형성에 관한 원칙을 제공한다.상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.상위 타입 SuperClass와 하위 타입 SubClass가 있다고 하자. 특정 메
인터페이스는 그 인터페이스를 사용하는 클라이언트를 기준으로 분리해야 한다. 즉, 클라이언트는 자신이 사용하는 메서드에만 의존해야 한다.C++ 로 게시판 모듈을 개발한다고 해보자. ArticleService 클래스의 기능은 아래와 같다.게시글 작성게시글 목록게시글 삭제기
고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다. 저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존해야 한다.고수준 모듈과 저수준 모듈을 정의하면 아래와 같다.고수준 모듈: 어떤 의미 있는 단일 기능을 제공하는 모듈저수준 모듈: 고수준 모듈의 기능을 구현하기