OCP 3

es6 옵셔널 체이닝 에 대해 ?. 샘플 OCP

디자인 패턴의 OCP 를 공부하다 기록해 놓습니다. 아래와 같은 코드가 있습니다. const aa = 't'; if(aa == 't') console.log('ooo'); else consolelog('xxx'); 아주 단순한 코드죠 위 코드를 라우팅 테이블과 라우터로 변경해봅니다. const resultProcess = { table: { "true": () => { console.log('ooo'); }, "false": () => { console.log('xxx'); }, }, router(input) { return this.table[input == 't']?.(input); } }; resultProcess.router('t'); OCP 를 흉내내기 위해서 아주 간단한 코드로 작성했습니다. ..

프로그래밍/Js 2023.08.31

php 디자인 패턴의 템플릿 메소드 패턴 크롤링 puppeteer 이용한 예제

디자인 패턴의 템플릿 메소드 패턴에 대해 알아보려고 합니다. 크롤링을 주로 작업하면서 한개의 크롤러를 만들어 사용하다 여러가지 문제로 인해 여러개의 크롤러를 사용하기로 합니다. 이전까지는 curl 만 이용했지만 아래와 같이 curl 이외의 크롤러를 사용하기 위해 템플릿 메소드를 사용하기로 합니다. curl casperjs puppeteer 등등 다이어그램은 아래와 같습니다. ParseCurl 객체 ParsePuppeteer 객체 또는 다른 크롤러 추가시 OCP 를 만족하도록 추가만 해주면 됩니다. 다이어그램은 봤으니 프로그램을 살펴보도록 하겠습니다. 먼저 호스트 코드를 먼저 살펴보도록 하겠습니다. example.php

프로그래밍/Php 2023.02.02