Design Pattern?


소프트웨어 공학론에서, 좋은 코드를 설계하기 위한 일종의 설계 디자인 방법론이다.

실무적으로 프로그래머들 사이에서 대중적으로 인정받는 일반화된 효율적인 설계 방식이다.

 

 

 

좋은 코드


좋은 코드란, 프로그램 개발 시에 맞닥뜨리는 여러 문제나 애로 사항들을 해결하고 만족할 수 있는 적절하게 짜여진 코드라고 볼 수 있다.

 

확장과 수정에 용이하며, 설계 이후 추가적인 유지 보수에 비용이 적게 들어가며

코드가 명확하고 단순하며

재사용성이 높고

리소스의 낭비가 없는 효율적인.

 

객체지향적 관점에서 이러한 부분을 구체적으로 명시하여 5가지 원칙으로 제시한 것이 SOLID이다.

 

 

 

 

SOLID


SOLID 원칙은 워낙에 유명하고, 알고 있으면 처음엔 와닿지 않더라도 개발하다보면 체감이 확 되는 내용이라 객체지향적 개발을 하는 프로그래머라면 두고두고 봐야하는 내용같다.

 

S

Single Responsibility Principle (SRP) : 단일 책임 원칙. 하나의 클래스는 하나의 책임만 가져야 한다.

 

O

Open/Closed PRinciple (OCP) : 개방 폐쇄 원칙. 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.

 

L

Liskov Substitution Principle(LSP) : 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.

 

I

Interface segregation Principle(ISP) : 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.

 

D

Dependency Inversion Principle(DIP) : 프로그래머는 추상화에 의존하며 구체화에 의존하면 안된다.

 

 

 

 

GoF 디자인 패턴


Gang of Fout는 유명한 개발자 4명인데, 디자인 패턴을 체계화한 사람들이다.

GoF 디자인 패턴은 생성(Creational) 패턴, 구조(Structural) 패턴, 행위(Behavioral) 패턴으로 구분된다.

 

SOLID 철학이 녹아있다.

 

생성 패턴

객체 생성과 관련한다.

추상 팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글턴

 

구조 패턴

클래스 및 객체를 조합해 더 큰 구조를 만드는 것과 관련한다.

어댑터, 브리지, 컴포지트, 데코레이터, 퍼사드, 플라이웨이트, 프록시

 

행위 패턴

클래스 및 객체 간의 알고리즘이나 책임 분배와 관련한다.

책임 연쇄, 커맨드, 인터프리터, 반복자, 메멘토, 옵서버, 상태, 전략, 템플릿 메소드, 비지터

 

 

 

+ Recent posts