생성패턴중 빌터패턴에 대해서
https://brunch.co.kr/@eddwardpark/38
빌더 패턴(Builder pattern)이란 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴이다.
위키에 정의된 빌더패턴이다.
여러분이 개발자가 아닌 이상 외계어로 들릴것이다.
필자또한 20개가 넘는 객체지향 패턴중 실제 사용해 보고 이해하는 패턴은 몇개 없다.
직접 사용해 보기전에는 이런 개념들이 머리속에 잘 들어오지 않는다.
필자는 앞으로 우리 주변의 상황을 시각화하여 각각의 객체지향 패턴 개념을 정리해보고자 한다.
빌더 패턴을 시작으로 필자와 함께 여러 패턴들을 같이 알아가 보자.
푸드코트에서 캐셔에게 불고기 햄버거 세트를 주문한다.
주문은 햄버거에 치즈 1장, 피클은 빼고, 베이컨 추가하고 음료는 사이다로 감튀는 소금 없는것을 요청한다.
캐셔는 햄버거 점원에게 주문사항을 건넨다.
햄버거 점원은 주문 내용에 맞게 빵을 깔고 해당하는 토핑들을 조합하여 내가 원하는 햄버거를 만든다.
그리고 사이다를 준비하고 소금 안친 감튀를 준비하여 '에드워드 팍님~ 주문한 햄버거 나왔습니다.'를 외친다.
햄버거 매장에서 준비된 내용물을 받아 맛있게 먹는다.
이런 일련의 과정속에 햄버거를 만드는 과정이 빌더 패턴과 닮아있다.
햄버거 점원은 주문자가 원하는 햄버거에 따라 각각의 재료들을 단계별로 구성하여 햄버거를 만든다.
빌더 역할을 햄버거 점원이 하는것이다.
여기서 좀더 살펴볼 부분은 캐셔이다.
캐셔는 푸드코드에서 햄버거 주문은 햄버거 점원에게, 만두 주문은 만두 점원에게, 초밥 주문은 초밥 점원에게 전달한다.
캐셔는 디렉터로서 클라이언트와 빌더를 이어주는 역할을 하고 있다.
이와는 대조적으로 동네 분식집에서 만두를 시키면 사장님이 주문을 받고 주문한 만두를 만든다.
디렉터는 푸드코트처럼 복잡한 음식 주문을 처리하는데 있어 필요하지만 분식집에서는 필요가 없게 된다.
https://github.com/fbeline/design-patterns-JS/blob/master/src/creational/builder/builder.js
위의 이미지는 빌더 예제 코드이다.
브라우저에서 서버에 요청을 보낼때 url, method, payload 의 내용을 순차적으로 생성하여 요청을 보낸다.
url은 브라우저에서 요청을 보낼 서버의 주소이다.
https://brunch.co.kr/@eddwardpark/35
method는 서버에 요청을 보낼때 CRUD중 보내고자 하는 목적에 맞게 설정해야한다.
https://brunch.co.kr/@eddwardpark/19
payload는 요청을 보내는 내용이다.