카테고리 없음

TIL 0409 (Express , 싱글톤 패턴)

하초 2023. 4. 9. 14:15

Expres란

NodeJs를 위한 웹 애플리케이션 프레임워크 

 

라우팅 

엔드포인트(URI) 및 특정한 요청 메소드(GET, POST 등)에 대하여 응답하는 방식을 결정하는 것. 

다음과 같은 구조를 가진다. 

app.METHOD(PATH, HANDLER) 
app.GET('/home', goHome)

app: express의 인스턴스 

METHOD: http 요청 메소드 (GET,POST,PUT,DELETE ...) 

PATH: 서버의 경로(엔드포인트) 

HANDLER: 경로가 일치할 경우, 실행되는 함수 

 

미들웨어

요청과 응답, 그리고 애플리케이션의 요청-응답 주기 중 그 다음 미들웨어 함수에 대해 액세스 권한을 가지는 함수. 

데이터를 주고 받는 중, 중간 매개역할을 하며 요청을 수행하기 전에 특정 액션을 취해준다. ex) 요청 처리 전에, 로깅하기. 

미들웨어의 역할은 다음과 같다. 

  • 모든 코드 실행 
  • 요청 및 응답 오브젝트(res, req)에 대한 변경을 실행 
  • 요청-응답 주기 종료 
  • 다음 미들웨어 호출 

미들웨어가 함수의 요청-응답 주기를 종료하지 않을 때는 next()를 호출해 다음 미들웨어를 실행시켜줘야한다. 

 

싱글톤 패턴

객체의 인스턴트가 오직 하나만 생성되는 패턴. 

 

메모리 절약.

최초의 한번의 new 연산을 통해 객체를 만들어 고정된 메모리 영역을 사용한다. 따라서 동일 객체에 접근 시 메모리 낭비를 막을 수 있다. 

 

데이터 공유 용이

만들어진 인스턴스는 전역에서 사용되기 때문에, 다른 클래스들의 인스턴트가 접근하여 사용할 수 있다. 

 

단점

다른 클래스간의 결합도가 높아져, 유지 보수가 힘들고 테스트가 어려워질 수 있다.

멀티 스레드 환경에서의 동기화 처리가 필요하다.