본문 바로가기

Javascript/Node.js18

Wiring Pattern - 생성자 디자인 패턴 모듈 와이어링 (Wiring) 모든 어플리케이션은 여러 컴포넌트를 연결한 결과임 연결 방식은 프로젝트의 유지보수 및 성공에 중요함 컴포넌트 A가 주어진 기능을 수행하기 위해 컴포넌트 B가 필요. = A는 B에 종속적이다. = B는 A의 종속성 싱글톤 패턴과 종속성 주입 패턴을 사용하는 서로 다른 두 가지 접근방법을 사용해 종속성 모델링 하는 방법을 봅시다. 1. 싱글톤 종속성 두 모듈을 서로 연결하는 간단한 방법으로 모듈 시스템을 활용 종속성들을 묶는 방식은 사실상 싱글톤 Ex) DB 연결을 위한 싱글톤 인스턴스, 간단한 블로깅 어플 구현 // db.js import { dirname, join } from 'path'; import { fileURLToPath } from 'url'; import sq.. 2022. 2. 3.
Singleton Pattern - 생성자 디자인 패턴 싱글톤(Singleton) "인스턴스가 하나만 존재하도록 접근을 중앙 집중화" 객체지향에서 가장 많이 사용 Node 에서 논의할 가치가 없지만 알아두면 좋음 Node개발자가 알아둬야 할 몇가지 주의사항과 제약사항 존재 상태 정보의 공유 리소스 사용의 최적화 리소스에 대한 접근 동기화 Ex) 데이터 베이스에 대한 접근을 제공하는 일반적인 DB 클래스 // Database.js export class Databse { constructor (dbName, connectionDetails) { // ... } // ... } 전형적인 구현은 일반적으로 연결풀 (connection pool)을 유지함 => 각 요청에 대해 새로운 DB 인스턴스를 만들 필요 없음 DB 인스턴스는 대기중인 트랜잭션 목록 같은 일부 .. 2022. 2. 3.
Domenic Revealing Constructor Pattern - 생성자 디자인 패턴 공개 생성자? (Domenic Revealing Constructor Pattern) 일반적인 디자인 패턴 아님, JS 독자적임 https://blog.domenic.me/the-revealing-constructor-pattern/ The Revealing Constructor Pattern I want to document an interesting pattern we’ve seen emerge in some recent web platform specs, including promises and streams. I’m calling it the revealing constructor pattern. The Promises Example Let’s take the case of promis... bl.. 2022. 2. 3.
Builder Pattern - 생성자 디자인 패턴 빌더 "유창한 인터페이스를 제공, 복잡한 객체의 생성을 단순화" 단계별로 객체를 만들 수 있음 => 가독성, 일반적인 개발자 사용성 향상 가장 좋은 상황 : 인자의 목록이 길거나, 많은 복잡한 매개 변수를 입력해서 사용하는 생성자가 있는 클래스 class Boat { constructor ( hasMotor, motorCount, mototBrand, motorModel, hasSails, sailsCount, sailsMaterial, sailsColor, ... ) } const myBoat = new Boat(ture, 2, 'Best Motor Co.', 'OM123', true, 1, 'fabric', 'white', 'blue', false); 어쩔거야 이거, 맨날 칠거니? 오류가 발생하기 쉽.. 2022. 2. 3.
Factory Pattern - 생성자 디자인 패턴 팩토리 "특정 구현으로부터 객체의 생성을 분리" 가장 일반적인 디자인 패턴 팩토리는 함수일 뿐이라서 사용자에게 더 적은 유연성을 제공 (사용자 관점) 팩토리는 클로저를 활용하여 캡슐화를 강제하는데 사용 할 수 있음 1 객체 생성과 구현의 분리 JS는 단순성, 유용성, 작은 노출을 선호 => 함수형 방식 선호 객체 인스턴스 생성 시 실제로 new 연산자 / Object.create() 대신 팩토리 호출이 편하고 유연함 객체 생성과 구현을 분리 새 인스턴스의 생성을 감싸서 객체 생성시 더 많은 유연성과 제어를 제공 (프로그램 관점) 특정 조건에 따라 다른 유형의 객체를 반환할 수있음 클래스를 숨겨 확장이나 수정하는것을 막음 // 특정 유형의 객체에 바인딩 function createImage (name) {.. 2022. 2. 3.
디자인 패턴 디자인 패턴 : 반복된 문제에 대한 재사용 가능한 해결책 객체지향의 디자인 패턴을 JS 에 적용 다만 JS에서 실제 클래스나 추상 인터페이스를 가지고 있지 않음 따라서, 전통적 디자인 패턴 구현 불가능 할 수 있음 그러나 근본적인 아이디어, 당면한 문제에 대한 해결방식은 동일함 생성자 디자인 패턴 매우 기본적이고 필수적인 패턴입니다. Factory Pattern - 생성자 디자인 패턴 팩토리 "특정 구현으로부터 객체의 생성을 분리" 가장 일반적인 디자인 패턴 팩토리는 함수일 뿐이라서 사용자에게 더 적은 유연성을 제공 (사용자 관점) 팩토리는 클로저를 활용하 blancpaix.tistory.com Builder Pattern - 생성자 디자인 패턴 빌더 "유창한 인터페이스를 제공, 복잡한 객체의 생성을 단.. 2022. 2. 3.