본문 바로가기
반응형

분류 전체보기299

[NestJS] Swagger(스웨거)란? NestJS 형상관리 도구_스웨거(Swagger) Swagger(스웨거)는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크라고 설명하지만 쉽게 말하면 Swagger는 API 문서 자동화 도구이다. 1. API 문서를 따로 작성할 필요 없다. 2. 만약에 코드와 API 문서를 따로 관리하게 되면 코드를 수정하였는데 API 문서 최신화를 잊어버려서 다른 팀원들에게 공유된 API 문서가 실제 API와 다른 문제가 발생할 수 있다. -> 스웨거를 사용한다면 NestJS에서 코드를 수정하면서 API 문서를 같이 수정할 수 있다. 3. 다른 장점으로는 Swagger는 API를 테스트할 수 있는 GUI를 제공한다. NestJ.. 2023. 2. 6.
[Typescript] Decorator(데코레이터) 타입스크립트_ Decorator(@) 1. 데코레이터를 잘 사용하면 적절하게 관심사를 분리하여 관점 지향 프로그래밍을 적용한 코드를 작성할 수 있음 2. 타입스크립트의 데코레이터는 파이썬의 데코레이터나 자바의 어노테이션과 유사한 기능을 함 3. 클래스, 메서드, 접근자, 프로퍼티, 매개변수에 적용 가능 4. 각 요소의 선언부 앞에 @로 시작하는 데코레이터를 선언하면 데코레이터로 구현된 코드를 함께 실행 5. 예를 들어 다음 코드는 유저 생성 요청의 본문을 DTO로 표현한 클래스이다. class CreateUserDto{ @IsEmail() @MaxLength(60) readonly email: string; @IsString() @Matches(/^[A-Za-z\d!@#$%^&*()]{8,30}$/) r.. 2023. 2. 5.
[js] duck typing(덕 타이핑) with typescript [ts]_덕 타이핑(duck typing) - 타입 구성하기 자바스크립트는 변수에 어떠한 타입의 값도 할당할 수 있다. 일명 덕 타이핑이라 부른다. 타입스크립트도 여러 타입의 값을 할당할 수 있다. 이는여러 타입을 조합한 새로운 타입을 가지는 것이다. 유니언 (Union) 타입 유니언 타입이 위에서 설명했던 여러 타입을 조합한 타입이다. 다음 코드에서 getLength 함수의 인자로 받은 obj 객체는 string 또는 string 배열 타입을 가질 수 있다. function getLength(obj: string | string[]){ return obj.length; } 유니언 타입을 활용하면 변수가 가질 수 있는 값을 제한할 수도 있다. type Team = "Red" | "Blue"; 타입스크립트.. 2023. 2. 5.
[NestJS] Typescript(타입스크립트) NestJS에서 Typescript의 사용 변수 선언 타입스크립트에서 변수를 선언하는 방식은 다음과 같다. [선언키워드] [변수명]: [타입] 선언키워드: const, let 또는 var로 선언한다. const는 선언 후 재할당이 불가능하며 let과 var는 재할당이 가능하여 값을 바꿀 수 있다. 2023.02.04 - [언어/Javascript] - [js] const, let [js] const, let javascript의 변수 선언 ( const vs let ) javascript에서 변수를 선언하는 방법은 3가지 var, let, const가 있다. 하지만 변수 선언 방식 중 하나인 var는 사용을 지양하기 때문에 아래 코드 블록에는 let으로만 kfdd6630.tistory.com let과 v.. 2023. 2. 5.
[NestJS] 모듈, 컨트롤러, 서비스(Controller, Module, Service) NestJS의 아키텍처 구성 _ 모듈(Module), 컨트롤러(Controller), 서비스(Service), 프로바이더(Provider) * nest: using nestcli * g: generate * --no-spec: 테스트를 위한 소스 코드 생성하지 않음 모듈(Module) 모듈(Module) 생성하기 $ nest g module 'moduleName' --no-spec // generage를 g로 줄일 수 있다. $ nest g mo 'moduleName' // module을 mo로 줄일 수 있다. * generage를 g로 줄일 수 있다. module을 mo로 줄일 수 있다. NestJS 모듈: App Module안에 AuthModule과 같은 필요한 모듈들이 있으며 각 모듈안에 Contr.. 2023. 2. 5.
[NestJS] NestJS 실행 및 테스트 명령어 NestJS 개발모드, 워치모드, 생산모드, unit test, e2e test 등 명령어 명령어 모음 * 설치 $ npm install * Nest JS CLI로 NEST JS 시작 $ npm i -g @nestjs/cli $ nest new project-name * 잘 설치되었는지 확인 ( nest 버전 확인 ) $ nest --version * Nest.js 실행 개발모드( development ) 실행 $ npm run start 워치모드( watch mode ) 실행 $ npm run start:dev 생산모드( production mode ) 실행 $ npm run start:prod * 테스트 실행 유닛 테스트 ( unit tests ) 실행 $ npm run test End to eEnd.. 2023. 2. 5.
[NestJS] NestJS 설치 시 있는 파일? eslintrc.js, prettierrc, nest-cli.json, tsconfig.json, tsconfig.build.json, package.json 파일설명 * eslintrc.js: 개발자들이 특정한 규칙을 가지고 코드를 깔끔하게 짤수있게 도와주는 라이브러리 타입스크립트를 쓰는 가이드라인 제시, 문법에 오류가 나면 알려주는 역할 등등 * prettierrc: 주로 코드 형식을 맞추는데 사용합니다. 작은 따옴표(')를 사용할지 큰 따옴표(")를 사용할지, Indent 값을 2로 줄지 4로 줄지 등등, 에러를 찾는 것이 아닌 코드 포맷터 역할 * nest-cli.json: nest 프로젝트를 위해 특정한 설정을 할 수 있는 json 파일 * tsconfig.json: 어떻게 타입스크립트를 컴파일.. 2023. 2. 5.
[NestJS] NestJS 사용 이유(Why NestJS)? NestJS란? JavaScript 기반 백엔드 프레임워크 Nest(NestJs)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기위한 프레임워크이다. 왜 Nest JS인가..? 1. 프로그레시브 JavaScript를 사용하고 TypeScript로 빌드를 완벽하게 지원 (개발자가 순수 JavaScript로 코딩할 수 있음) 2. OOP(Object Oriented Programming), FP(Functional Programming), FRP(Functional Reactive Programming) 요소를 사용할 수 있게 해줌. 3. Nest JS는 내부적으로 Express (기본값)와 같은 강력한 HTTP 서버 프레임 워크를 사용 4. 개발자가 선택적으로 Fastify를 사용하.. 2023. 2. 5.
[js] 변수명 표기법 (var, let, cosnt) javascript에서 변수명 표기법 변수명이 해당 변수를 쉽게 설명할 수 있게 하려면 보통 여러 단어로 이뤄질 가능성이 높다. 이때 사용하는 두가지 방법으로 카멜케이스(camelCase) 와 스네이크 케이스(snake_case) 가 있다. 변수명은 몇가지 제약사항을 제외하고 자유롭게 작명할 수 있다. 하지만 일정한 규칙없이 변수명을 만들어가다보면 수 많은 변수를 사용하는 코드 내에서 혼란스럽고, 유지보수에 어려움을 겪을 수 있다. 이러한 점을 극복하기 위해 대표적으로 카멜 케이스와 스네이크 케이스를 사용한다. 카멜 케이스 (camelCase) var camelCase; let userLevel = 1; const userTeamPower = 1; * 단어와 단어 사이를 대문자로 구분하여 사용한다. (단.. 2023. 2. 4.
[js] const, let javascript의 변수 선언 ( const vs let ) javascript에서 변수를 선언하는 방법은 3가지 var, let, const가 있다. 하지만 변수 선언 방식 중 하나인 var는 사용을 지양하기 때문에 아래 코드 블록에는 let으로만 사용하지만 var도 동일하게 사용 가능하다. * 이유는 아래 링크에서 확인이 가능하다. 2023.02.04 - [언어/Javascript] - [js] var vs let [js] var, let javascript의 변수 선언 ( var vs let ) javascript에서 변수를 선언하는 방법은 3가지 var, let, const가 있다. var로 선언한 변수는 let으로 선언한 변수와 유사, 대부분의 경우에 let을 var로, var를 let으로 바.. 2023. 2. 4.
반응형