Search

#010 #싱글톤 패턴

floatfirstTOC: right
YAML
복사

 싱글톤 패턴이란?

싱글톤 패턴이란 객체의 인스턴스가 오직 한 개만 생성되게 하는 패턴. 추후에 생성된 객체를 또 생성할 필요가 없으므로 메모리의 누수를 방지 할 수 있다. 주로 전역적으로 해당 객체를 사용해야될 경우 필요!! 다른 클래스간의 데이터 공유가 쉽다. app.ts에서 앱의 싱글톤 패턴을 적용해보자.

 필요사항

1. 클래스 내부에 'static' 변수를 만들어 인스턴스를 저장한다. 2. 생성자를 'private'으로 만들어 외부에서 직접 인스턴스를 생성하지 못하도록 한다. 3. 인스턴스를 반환하는 정적 메서드를 만들어서, 해당 메소드를 통해서만 인스턴스에 접근할 수 있도록 한다.
JavaScript
복사

 클래스 생성

static 변수로 해당 클래스의 인스턴스를 선언한다. → 생성자는 private설정을 적용해서 외부에서 생성하지 못하도록 한다.

 getInstance 메소드

getInstance 메소드를 static으로 선언하여서 Server클래스의 인스턴스가 없이도 호출할 수 있게 설정한다. : Server 이 부분은 TypeScript문법으로서 해당 반환 타입이 Server임을 나타낸다.

 내부 기능들 메소드로 관리

 setRoute

setRoute 메소드를 내부 메소드로 지정하고 미들웨어를 등록한다.

 setMiddleware

Server 내부에 setMiddleware 함수를 설정한다. logging middleware 들어오는 모든 요청을 기록하기 위한 미들웨어이다. json middleware 들어오는 모든 요청의 본문을 JSON으로 파싱하기 위한 미들웨어이다. route middleware 요청을 라우팅하기 위한 미들웨어 404 middleware 요청이 어떤 라우팅도 찾지 못했을때 처리하는 미들웨어 를 등록!

 listen

미들웨어를 먼저 설정한 뒤에, 서버 요청을 수신하기 위해서 listen메소드 내부에서 순서에 맞게 생성하기 위한 의도

 init 메소드

init 메소드는 애플리케이션의 초기화를 담당하는 역할을 한다. 이 메서드가 서버 인스턴스를 생성하고, 서버가 활성화 될 수 있도록 listen()메소드를 호출한다.