imjihye***
2024-08-25

20가지 이상의 디자인 패턴으로 배우는 최신 웹 개발

리액트, Vue.js, 앵귤러와 같은 라이브러리와 프레임워크의 활용도가 높아짐에 따라 애플리케이션을 복잡하게 구현할 수 있게 되었다. 그에 맞추어 기존 자바스크립트의 디자인 패턴뿐만 아니라 각 프레임워크에서의 디자인 패턴을 활용할 수 있어야 했다. ‘자바스크립트+리액트 디자인 패턴’은 이러한 취지에 걸맞게 자바스크립트와 리액트에서의 디자인 패턴을 두루 볼 수 있게 제작되었다. 디자인 패턴이 개발된 배경부터 시작하여 20가지 이상의 디자인 패턴, 최신 웹 애플리케이션에서 빼놓을 수 없는 렌더링과 성능 패턴까지 전방위적인 내용을 다룬다.
모듈, 관찰자, 중재자 패턴과 같은 전통적인 디자인 패턴보다는 프로미스, 비동기와 같은 새로운 패턴과 MVC, MVP, MVVM과 같은 아키텍처와 최신 프레임워크와의 호환성에 대해 중점을 둔다. 또, 리액트로 웹 애플리케이션을 구축하는데 필수적인 Hooks, 고차 컴포넌트, 렌더링 Props 패턴에 대해서도 엿볼 수 있다. 패턴에 대한 개념뿐 아니라 모범 사례도 제공되어 웹 애플리케이션을 개발하는 이상적인 방식에 대해서도 습득할 수 있다. 유지보수와 확장, 성능 개선에 대해서도 공부할 수 있는 기회를 얻게 될 것이다.
공통 패턴을 구축하고 나면 코드를 체계화하는 데 도움이 된다. 또, 코드를 쉽게 이해할 수 있어 개발자 간의 소통이 원활해지는 효과도 있다. 과거의 문제 해결 방법을 차용하여 최적화된 방법을 도출할 수도 있다. 이토록 다양한 장점을 지닌 공통 패턴은 프레임워크나 상황에 무조건적으로 적용되진 않는다. 체계화에 도움이 될 뿐 설계 상의 모든 문제를 해결해 줄 수 없고 뛰어난 개발자의 역량을 대체할 수도 없기 때문이다. 유연한 사고를 가지며 공통 패턴을 활용하는 것이 설계와 개발에 큰 도움이 될 것이다.
패턴은 소프트웨어 설계에서 반복되는 문제와 주제에 적용할 수 있도록 재사용이 가능한 템플릿을 의미한다. 디자인 패턴이 개발자들에게 유용한 이유는 검증된 방법, 재사용 가능성, 쉬운 이해, 개발 이슈 방지, 코드 양 축소 등이 있다. 종합적으로 개발에 투입되는 시간과 사고를 방지하고 개발 관련 소통을 원활하게 하는데 그 의의가 있다.
프로토 패턴이란 아직 패턴성 검증을 모두 통과하지 못한 미숙한 패턴을 의미한다. 운영 단계에서도 사용할 수 있는 좋은 패턴으로 간주하기 위해서는 몇 가지 특징에 부합해야 한다. 특징은 아래와 같다.
- 특정 문제를 해결할 수 있다
- 명쾌한 해결책이 없다
- 확실한 기능만을 말한다
- 관계를 설명한다
물론 위의 특징에 부합하지 못하는 경우더라도 상황에 따라 좋은 패턴으로 자리할 수 있다.
패턴을 작성한 이와 사용하는 이는 패턴의 사용 목적을 분명히 인지하고 있어야 한다. 그렇지 않다면 적절하지 못한 때에 패턴을 적용하는 경우가 발생할 수 있기 때문이다. 패턴 작성자는 패턴의 설계, 구현 방법 및 목적을 설명해야 한다.
- 컨텍스트: 패턴이 적용되는 상황
- 집중 목표: 패턴을 적용할 때 고려해야 하는 목표
- 구성: 제시된 상황과 고려해야 하는 점들을 해결하는 구성
첫 단계는 위의 세 가지 사항들을 정의하는 것이다. 이후 이름, 설명과 같이 구체적으로 정의를 시작한다. 패턴 작성자의 설명에 따라 사용하게 될 사람의 이해도도 높아질 것이다.
디자인 패턴은 대표적으로 세 가지 유형으로 분류된다. 어떤 문제를 해결하는지가 분류의 기준이다. 생성 패턴은 주어진 상황에 적합한 객체를 생성하는 방법에 중점을 둔다. 구조 패턴은 객체의 구성과 각 객체 간의 관계를 인식하는 방법에 중점을 둔다. 행위 패턴은 시스템 내의 객체 간 커뮤니케이션을 개선하거나 간소화하는 방법에 중점을 둔다. 생성, 구조, 행위라는 세 가지의 대분류 아래에는 생성자, 팩토리, 추상, 싱글톤 등 상세 분류가 등장한다. 이 역시 특정한 목적에 따라 각기 존재하는 것이다. 이러한 하위 패턴들은 뒤에서도 특징과 예제 패턴으로 습득할 수 있다. 디자인 패턴의 개념들을 명확히 이해한 뒤에 차근차근 상세하게 파고들어간다.
✔️ 종합 평가
- ‘자바스크립트+리액트 디자인 패턴’을 읽으며 가장 처음 받았던 인상은 구조화가 굉장히 잘 되어 있다는 점이었다. 디자인 패턴이라는 광범위한 개념을 설명한 뒤 그의 당위성을 설명한다. 그 이후 패턴의 유형과 하위 유형, 또 그 하위 유형에 대해 상세히 기술한다. 이러한 설명 구조 덕에 머릿속에 개념을 쉽게 정리해나갈 수 있었다.
- 디자인 패턴은 1과 0으로 판단할 수 없다. 아키텍처를 그리는 것과 같이 완전한 진리가 존재하는 것이 아니므로 다양한 요소를 고려하여 유연하게 대처할 수 있어야 한다. 저자의 설명 뒤에 덧붙인 ‘NOTE’를 통해 유념해야 할 사항을 인지할 수 있었다.
"한빛미디어 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."