기타

'SOLID 원칙' 이란? (쉬운 설명 포함)

crazydeer 2023. 8. 27. 23:18
반응형

SOLID 원칙이란 아래 다섯가지 원칙들의 앞글자를 따서 만든 용어를 말합니다. 

 

  1. 단일 책임 원칙 (Single Responsibility Principle - SRP): 이 원칙은 하나의 클래스나 모듈은 단 하나의 주요한 책임을 가져야 한다는 뜻이에요. 예를 들어, 만약 우리가 과일을 판매하는 가게에서 일한다면, 과일을 팔고 가격을 계산하는 것이 우리의 책임입니다. 그런데 이 외에도 고객 정보를 관리한다거나 배송을 담당한다면 이 원칙에 어긋날 수 있겠죠.
  2. 개방/폐쇄 원칙 (Open/Closed Principle - OCP): 이 원칙은 코드를 수정하지 않고도 새로운 기능을 추가할 수 있도록 해야 한다는 원칙이에요. 기존 코드를 바꾸지 않고도 새로운 부분을 확장하거나 변경할 수 있으면 유용하겠죠.

  3. 리스코프 치환 원칙 (Liskov Substitution Principle - LSP): 이 원칙은 자식 클래스는 언제나 부모 클래스를 대체할 수 있어야 한다는 뜻이에요. 간단히 말해, 어떤 클래스가 다른 클래스의 기능을 잘못 대체하거나 덮어쓰면 안 된다는 것이죠.

  4. 인터페이스 분리 원칙 (Interface Segregation Principle - ISP): 이 원칙은 한 클래스가 자신이 사용하지 않는 인터페이스는 구현하면 안 된다는 것입니다. 필요한 기능만 인터페이스로 분리해서 사용하면 코드를 더 깔끔하게 유지할 수 있어요.

  5. 의존관계 역전 원칙 (Dependency Inversion Principle - DIP): 이 원칙은 상위 수준의 모듈은 하위 수준의 모듈에 의존해서는 안 되며, 양쪽 모듈 모두 추상화에 의존해야 한다는 것입니다. 즉, 중요한 것은 어떤 클래스가 아니라 인터페이스나 추상화에 의존하는 것이 중요하다는 원칙이에요.

 

아래는 8살 아이도 알아들을 수 있는 더 쉬운 설명입니다.

 

  1. 하나만 해요 (단일 책임 원칙 - SRP): 하나의 친구가 여러 가지 일을 하지 않아요. 한 친구는 한 가지 중요한 일만 할 수 있어요. 예를 들어, 공부하고 놀이를 하는 친구가 따로 있어요.

  2. 새로운 걸 넣고 기존 것은 건들이지 마요 (개방/폐쇄 원칙 - OCP): 새로운 장난감을 넣을 때, 예전에 있던 장난감은 바꾸지 않아요. 새 장난감을 추가할 때 예전 장난감을 망가뜨리지 않아요.

  3. 똑같은 일을 똑같은 방식으로 해요 (리스코프 치환 원칙 - LSP): 만약 같은 일을 하는 동물 친구가 있다면, 그 친구들은 서로 비슷한 방법으로 일을 해요. 예를 들어, 비행기와 헬리콥터는 비슷한 방법으로 하늘을 날아다녀요.

  4. 필요한 일만 받아들여요 (인터페이스 분리 원칙 - ISP): 친구끼리 장난감을 나누는데, 서로 필요한 것만 주고 받아요. 필요하지 않은 장난감은 주고 받지 않아요.

  5. 중요한 건 빼먹지 마요 (의존관계 역전 원칙 - DIP): 친구들끼리 놀 때, 중요한 건 친구 이름이 아니라 놀이를 하는 방법이에요. 중요한 건 놀이 방법을 따르는 거에요.

 

반응형