TypeScript
-
Typescript Generic Function (제네릭 함수)카테고리 없음 2022. 3. 30. 22:44
Generic은 Java, C#과 같은 객체지향 프로그래밍에서 사용하는 기법이다. 제네릭은 어떠한 클래스 혹은 함수에서 사용할 타입을 그 함수나 클래스를 사용할 때 결정하는 프로그래밍 기법이다. 쉽게 말하면 메서드 매개변수의 구체적인 타입을 기재하지 않고 다양한 타입을 처리할 수 있는 기술이며, 잘만 사용한다면 코드의 재사용성을 높일 수 있다. 원래 javascripts는 타입 선언이 필요하지 않고, 그렇기에 특정 타입을 위해 만들어진 클래스나 함수도 타입에러를 런타임에서 일으킬 뿐이다. 그래서 javascript는 제네릭이란 말을 들을 일이 없다. 그래서 이런 타입 기반언어에서 generic을 사용하는데 Typescript에서도 사용할 수 있으며 함수, 인터페이스, 클래스의 재사용성을 높일 수 있다. ..
-
Node.js 이벤트 루프카테고리 없음 2022. 3. 16. 23:54
Node.js? 대부분의 노드 책을 펴자마자 알 수 있는 것은 Node.js는 V8 엔진 기반의 event-driven, 논블로킹, 싱글스레드 js 런타임 이다. 라고 말을 한다. Spring Boot 혹은 Spring MVC 같은 경우에는 멀티스레드 기반이다. 새로운 request가 올때마다 새로운 스레드를 하나씩 polling 한다. 하지만 Node 같은 경우에는 하나의 스레드 만으로 여러 비동기 작업을 블로킹 없이 수행할 수 있고 그 기반은 event-loop 가 존재 한다. 위 사진은 Node.js 의 구성도 인데 Node.js 는 C++로 작성된 런타임이고 그 내부에 V8 엔진과 libuv를 가지고 있다. libuv? libuv는 C++로 작성되었고, Node.js 가 사용하는 비동기 I/O 라..
-
Nest.js 개요와 라이프 사이클카테고리 없음 2022. 2. 9. 17:33
Nest.js 개요 Nest.js는 Node.js의 프레임 워크이다. 확장이 쉬우며, rest-api, graphql, microservice(non-http), websocket 의 템플릿을 cli 를 통해 자동으로 생성 해준다. Express/Fastify 기반의 서버를 제공한다. IoC를 구현 하는 프레임 워크로, 객체를 관리하고 생성을 책임지고 의존성을 관리하는 컨테이너이다. IoC란 제어의 역전 이란 말인데, 메서드나 객체의 호출작업을 개발자가 결정하는 것이 아니라 제어권을 제 3자(컨테이너) 에게 위임하는 것이다. DI와 밀접하게 관련이 되어있는데 아래 사진을 참고하면 될듯 하다. Nest.js 라이프 사이클 기본적인 순서는 다음과 같다. Middleware => Guards => Pre-In..