분류 전체보기

    [nestjs] Service

    [nestjs] Service

    nestjs에서 Service를 생성하려면 다음 명령을 사용합니다. nest g s Service 이름을 입력하고 다음으로 넘어갑니다. Service가 생성되면 app.module.ts와 관련 파일이 생성되어 있음을 확인할 수 있습니다. import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { SchoolController } from './school/school.controller'; import { SchoolService } from './school/school.service'; @Module({ ..

    [nestjs] controller

    [nestjs] controller

    nestjs에서 controller를 추가하기 위해서는 CLI를 사용합니다. 우선 nest명령을 내려보면 위와 같이 설치 가능한 항목이 나열되는데 이를 통해 어떤 형태로 명령을 내릴 수 있는지 확인할 수 있습니다. 위 내용에 따라 신규로 무엇인가를 생성하려면 generate(줄여서g)가 필요하며 컨트롤러는 controller(줄여서 co)가 필요하다는 사실을 알 수 있습니다. 이러한 형식에 따라 다음 명령으로 controller를 생성합니다. nest g co 명령을 내리고 나면 생성할 Controller의 이름을 묻게 되는데 적당한 이름을 입력하고 다음으로 넘어갑니다. 예제에서는 school로 하였으며 이름을 입력하고 나면 Controller의 생성이 완료됩니다. Controller를 생성하고 나면 a..

    [nestjs] 시작하기

    [nestjs] 시작하기

    1. 구조 확인하기 우선 설치가 완료된 디렉터리에 가서 package.json을 확인합니다. "scripts": { "prebuild": "rimraf dist", "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start": "nest start", "start:dev": "nest start --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch"..

    [NestJS] 소개및 설치

    [NestJS] 소개및 설치

    ※ 아래 내용을 진행하기 위해서는 node.js와 Express, TypeScript의 설치가 먼저 선행되어야 합니다. node.js에서 웹서비스를 제공하는 데 사용되는 가장 대표적인 모듈이 Express입니다. NestJS는 NodeJS 프레임워크로서 Express 위에서 동작합니다. 또는 설정에 따라서 Express와 비슷한 다른 웹 모듈(fastify와 같은)에서도 동작할 수 있는데 중요한 점은 웹서비스를 만들기 위한 기본구조를 제공한다는 것입니다. TypeScript를 기본으로 사용하며 매우 쉽고 구조적으로 체게화된 서비스를 만들 수 있습니다. 우선 다음 방법으로 nest cli를 설치합니다. npm -i g @nestjs/cli 설치완료 후 nest 명령을 내려 설치가 정상적으로 되었는지 확인합..

    [TypeScript] tsconfig.json

    tsconfig.json 파일은 TypeScript 컴파일러의 옵션을 설정하는 파일이며 다음의 방법으로 파일을 생성할 수 있습니다. tsc --init 위 명령으로 인해 생성된 파일은 tsconfig.json이며 파일을 열어보면 대략 아래 내용들이 들어가 있음을 알 수 있습니다. { "compilerOptions": { /* Visit https://aka.ms/tsconfig.json to read more about this file */ /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ "target": "es5", /* Specify ECMAScript target version: 'ES3' (defau..

    [javascript] 모듈(module)

    Javascript에서 var변수를 선언하거나 함수를 정의하면 global에 등록되어서 window를 통해 곧바로 호출할 수 있습니다. 이게 문제가 될 수 있는건 중복되는 이름으로 변수나 함수가 선언되면 충돌을 일으킬 수 있다는 것입니다. 예를 들어 다음과 같이 a.js와 b.js에 공통적으로 add()라는 함수가 정의된 경우 function add(x, y) { return x + y; }; 중복되는 이름이 존재하기에 오류를 일으키게 됩니다. 이 문제를 해결하려면 각 js파일을 html페이지에서 모듈로 추가해야 합니다. 이렇게 하면 어떤 모듈에서 외부로 노출할 함수를 다음과 같이 export해야만 사용할 수 있게 됩니다. 그래서 a.js파일에 있는 add()함수를 아래와 같이 했다면 export def..

    [TypeScript] 일반화 (Generic)

    클래스나 함수에서 타입을 미리 결정짓지 않고 그것을 사용할 때 타입을 결정해 사용하는 것을 말합니다. let list = []; const Add = (x: number) => { list.push(x); }; Add(10); console.log(list[0]); 위 예제는 Add함수를 통해 list에 요소를 추가한 뒤 이를 보여주는 함수입니다. 그런데 Add를 보면 number만 받을 수 있습니다. 만약 string이나 기타 다른 형식이 다뤄져야 한다면 그에 맞는 형식의 배열과 변수를 모두 만들어야 한다는 뜻이 되지만 제네릭을 이용해 문제를 해결할 수도 있습니다. let list = []; function Add(x: T) { list.push(x); }; Add(10); Add('abc'); con..

    [TypeScript] 객체지향 프로그래밍

    [TypeScript] 객체지향 프로그래밍

    ※ Javascript에서의 객체지향과 크게 다르지 않습니다. TypeScript만의 객체지향을 말하는것이 아니니 주의해 주세요. 1. 클래스(Class) TypeScript에서 클래스는 아래와 같이 생성합니다. class Car { color: string = 'red'; speed: number = 0; Drive(acc): void { this.speed += acc; console.log('speed : ', this.speed); }; Stop(): void { this.speed = 0; console.log('stop'); }; }; const car = new Car(); console.log(car.color); Car라는 클래스는 color와 speed라는 멤버변수와 Drive(), S..