디자인 패턴의 존재 이유
올바른 설계를 효율적으로 하기 위한 교과서라고 볼 수 있는 디자인 패턴
디자인 패턴은 왜 필요할까?
좋은 구조를 가진 객체지향 소프트웨어를 설계한다는 것은 쉬운 일이 아니다.
좋은 구조를 위해서 고려해야 할 점은 단순 구현이 아닌 확장성, 재사용성과 같은 것들도 같이 고려해야 한다.
우리는 개발을 하면서 경험이 쌓이다 보면, 전에 구현했던 코드와 유사한 기능을 구현할 때 이전의 코드들을 되돌아보곤 한다.
그렇게 이전 코드를 보며 재사용하기도 하고, 조금 더 개선해서 사용하기도 한다.
디자인 패턴은 설계자로 하여금 재사용이 가능한 설계는 선택하고, 재사용을 방해하는 설계는 배제하도록 도와준다.
또한 개발자는 디자인 패턴을 통해 레거시 시스템의 유지보수나 문서화도 개선할 수 있고, 클래스의 명세도 정확하게 할 수 있으며, 객체간의 상호작용 더 나아가 설계 의도까지 명확하게 정의할 수 있다.
사실 우리는 디자인 패턴을 이미 사용하고 있었다
나를 비롯한 많은 개발자들이 디자인 패턴을 공부할 때
'아, 내가 그 때 구현한 코드가 이런 패턴이라고 부르는구나'
라고 느낄 때가 있을 것이다. 이렇듯 디자인 패턴은 말 그대로 좋은 설계의 '교과서'이다.
지극히 개인적인 생각으로 개발자는 디자인 패턴을 마치 암기과목 외우듯이 달달 외울 필요까진 없다고 본다.
좋은 구조를 고민하고, 구현하다 보면 결국 그 설계 구조는 현재 정의된 디자인 패턴에 수렴하는 결과가 나올 것이라고 생각하기 때문이다.
하지만, 외운다는 느낌보다 각 패턴들을 왜 사용하는지 이해하는 식으로 학습해 나아가다 보면 자연스럽게 개발에 대한 식견이 넓어질 것이다. 그렇게 개발을 할 때 구조를 고민하는 시간을 확연히 줄일 수 있을 것이며 재사용성, 확장성이 높은 좋은 코드를 작성할 수 있을 것이다.
'Design Pattern' 카테고리의 다른 글
싱글톤 패턴(Singleton Pattern) (0) | 2024.07.16 |
---|