디자인 패턴이란
프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것
을 의미합니다.-주홍철, [면접을 위한 CS 전공지식 노트], 길벗(2022), p.16
디자인 패턴에 대해 들어본 적은 있었으나, 전체 소프트웨어 시스템의 아키텍처에 대해 공부할 때 사용했던 개념이었기 때문에 관련 개념이겠거니 생각하며 보았던 기억이 있다.
하지만 CS 공부를 본격적으로 시작하려고 하니, 뭔가 전체 소프트웨어 시스템의 아키텍쳐라는 범위에서만 바라보았을 때, 이해가 안되는 부분들이 속속들이 생겨났다.
또 위에 언급된 디자인 패턴의 정의에 그 어느곳에도 소프트웨어 아키텍처라는 개념이 사용되지 않은 것을 보니, 내가 너무 한정적인 개념으로 바라보았다는 생각이 들었다.
(실제로 인터넷에 검색해봐도 나만 이런 생각을 했던 것 같기도 하다!ㅋㅋㅋ;)
디자인 패턴은
등에 사용된다.
디자인 패턴을 알고 있을때와 모르고 있을때 협업을 함께하는 coworker들과 형성할 수 있는 효율이 상이할 것이다. 각 디자인 패턴이 왜 발생을 했고, 그래서 어느 상황에 어떤 패턴이 쓰이는 지를 잘 알고 있으면 문제 해결이 빨라질 수 있다.
참고 사이트
링크 : https://refactoring.guru/ko/design-patterns