4. 옵저버 패턴
·
CS/디자인 패턴
옵저버 패턴(observer pattern)이란?옵저버 패턴은 주체가 어떤 객체(subject)의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴이다.주체 : 객체의 상태 변화를 보고 있는 관찰자옵저버 : 이 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들주체와 객체를 따로 두지 않고 상태가 변경되는 객체를 기반으로 구축하기도 한다. 옵저버 패턴을 활용한 서비스로는 트위터가 있다.내가 어떤 사람인 주체를 '팔로우'했다면 주체가 포스팅을 올리게 되면 알림이 '팔로워'에게 가야겠지..? 그렇답니다. 옵저버 패턴은 주로 이벤트 기반 시스템에 사용하며 MVC(Model-View-Control..
3. 전략 패턴
·
CS/디자인 패턴
전략 패턴(strategy pattern)이란?전략 패턴은 정책 패턴(policy pattern)이라고도 하며, 객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴이다.우리가 어떤 것을 살 때 네이버페이, 카카오페이 등 다양한 방법으로 결제하듯이 어떤 아이템을 살 때 LUNACard로 사는 것과 KAKAOCard로 사는 것을 구현한 예제이다.결제 방식의 '전략'만 바꿔서 두 가지 방식으로 결제하는 것을 구현했다.import java.text.DecimalFormat;import java.util.ArrayList;import java.util.List;interface PaymentStrategy {..
2. 팩토리 패턴
·
CS/디자인 패턴
팩토리(factory pattern)이란?팩토리 패턴은 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴.상위 클래스와 하위 클래스가 분리되기 때문에 느슨한 결합을 가진다.상위 클래스에서는 인스턴스 생성 방식에 대해 전혀 알 필요가 없기 때문에 더 많은 유연성을 갖게 된다.객체 생성 로직이 따로 떼어져 있기 때문에 코드를 리팩터링하더라도 한 곳만 고칠 수 있게 되니유지 보수성이 증가된다.자바스크립트의 팩토리 패턴자바스크립트에서 팩토리 패턴을 구현한다면 간단하게 new Object()로 구현할 수 있다.const num = new Object(42);co..
1. 싱글톤 패턴
·
CS/디자인 패턴
싱글톤 패턴(singleton pattern)이란?싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는 데 쓰이며보통 데이터베이스 연결 모듈에 많이 사용 장점 : 인스턴스를 생성할 때 드는 비용이 줄어든다.단점 : 의존성이 높아진다자바스크립트의 싱글톤 패턴자바스크립트에서는 리터럴 {} 또는 new Object로 객체를 생성하게 되면 다른 어떤 객체와도 같지 않기 때문에 이 자체만으로 싱글톤 패턴을 구현할 수 있다.const obj = { a: 27}const obj2 = { a: 27}console.log(obj === obj2)// false실제로 싱글톤 패턴은 보통 다음과 같은 코드로 구성된다.c..
0. 디자인 패턴
·
CS/디자인 패턴
디자인 패턴이란?디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의  '규약' 형태로 만들어 놓은 것을 의미 지금부터 다양한 디자인 패턴을 자바스크립트, 자바로 된 코드와 함께 보겠습니다.모든 코드는 별도의 프로그램을 설치하지 않고 웹에서 실행 가능합니다.자바스크립트 : https://playcode.io/new/자바 : https://www.tutorialspoint.com/compile_java_online.php
[NestJS] 2. Nest CLI로 프로젝트 생성하기
·
백엔드/NestJS
npm install -g @nestjs/cli // nestjs cli 설치nest new messages // 프로젝트 생성 (nest new [프로젝트명])프로젝트를 생성하면 수 많은 파일들이 생성된다.몇가지 살펴보자.package.json 파일에 "scripts" 섹션이 있고 프로젝트를 다루기 위해 사용할 수 있는 다양한 스크립트들이 있다가장 중요한 스크립트는 "start:dev"해당 스크립트를 사용하면 개발 모드에서 프로젝트를 시작하고 프로젝트를 변경할 때마다 서버가 자동으로 재시작프로젝트 실행npm run start:dev백지부터 시작하기 위해 app.?? 파일 4개 모두 삭제삭제하면 모듈이 없어서 오류가 발생할텐데 이 모듈을 nest cli를 사용하여 만들면 된다npm generate mod..
[NestJS] 1. Nest 기초
·
백엔드/NestJS
프로젝트 셋업참고TypeScript 사용NodeJS의 전반적인 전문지식을 갖고 있는 것으로 간주전체 과정Install depsSet up Typescript compiler settingsCreate a Nest module and controllerStart the app1. Install deps아무 폴더에서 프로젝트를 생성한다.나는 바탕화면 > NestJS 폴더 > scratch 폴더 여기서 진행했다.npm init -y //package.json 파일 생성 // 5가지 의존성 설치(오타 주의) npm install @nestjs/common@7.6.17 @nestjs/core@7.6.17 @nestjs/platform-expres@7.6.17 reflect-metadata@0.1.13 typesc..