본문 바로가기

분류 전체보기

(287)
NestJS | API 만들기 (3) - Exception, Validation Built-in HTTP exceptions Nest가 기본적으로 제공하는 exception들이 있다.(HttpException을 기반으로 하는) BadRequestException UnauthorizedException NotFoundException ForbiddenException NotAcceptableException RequestTimeoutException 이외에도 여러 exception을 제공한다. https://docs.nestjs.com/exception-filters 서비스에서 Exception 처리하기! 가장 기본적인 exception처리를 해보자.. UserService에서 id로 찾은 user가 존재하지 않을 경우 NotFoundExcption을 발생하도록 한다. Promise가..
git flow 한 번만 천천히 읽으면 이해가 되는 거 였다.. 주요 브랜치 master 항상 production-ready 상태를 유지하는 브랜치 develop 다음 출시(release)를 준비하는 브랜치 출시할 준비가 되면 master브랜치로 병합(merge) 후 릴리즈 번호를 태그로 지정 지원 브랜치 주요 브랜치(master, develop)와는 달리 제한된 수명을 가진다. 팀원간 병렬 개발, 기능 추적, 신속한 버그 수정 등을 담당한다. feature develop브랜치로부터 생성 새로운 기능을 개발할 때 사용 기능 개발 시작 시 브랜치를 생성하고, 개발이 완료되면 develop브랜치로 병합 후 제거 개발자의 local repository에만 존재 먼저 기능에 관련된 이름의 브랜치를 생성한다. 주로 feature..
NestJS | API 만들기 (2) - Controller Controller 컨트롤러는 요청과 응답을 처리하는 곳. express에서 routing처리 하던 것과 거의 동일하다. @Controller데코레이터를 사용한다. @Controller데코레이터에 path prefix를 설정할 수 있다. @Controller('users')는 /users로 들어오는 모든 요청을 처리하게된다. import { Controller } from '@nestjs/common'; import { UserService } from './service/user.service'; @Controller('users') export class UserController { constructor(private readonly user..
NestJS | API 만들기 (1) - Repository 데이터베이스 connection 방법 Repository Pattern TypeORM이 Repository Pattern을 지원하기 때문에 Entity와 Repository를 사용할 수 있다. Entity @Entity를 포함한 엔티티 관련 데코레이터도 TypeORM이 지원해준다. import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column() name: string; @Column() address: string; } Custom Repository 리포지토리를 만들건데, Custom reposit..
NestJS | 데이터베이스 연결, 설정 정보를 입력하는 다양한 방법... (database connection) 필요한 종속성 설치 Nest는 TypeORM을 사용한다. @nestjs/typeorm이라는 자체 패키지를 제공하고 있다. npm install --save @nestjs/typeorm typeorm mysql2 TypeORM DB 연결! 1. app.module.ts에서 바로 설정값 넣어버리기 TypeOrmModule.forRoot()메서드로 커넥션에 필요한 정보를 입력한다. // app.module.ts import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; @Module({ imports: [ TypeOrmModule.forRoot({ type: 'mysql', host: 'localhost', ..
JS | Truthy와 Falsy Truthy & Falsy Truthy는 boolean에서 true로 여겨지는 값 Falsy는 boolean에서 false로 여겨지는 값 Truthy는 true같은, Falsy는 flase같은.. 그런 거란다.. Truthy true 0이나 NaN이 아닌 숫자 {} (빈 객체) [] (빈 배열) Falsy false 0, -0 혹은 NaN undefined null '' (빈 문자열) if(0) // false if('0') // true (not empty string) if(null) // false if('null') // true (not empty string) if([]) // true !! (Double NOT) !는 NOT연산자. 즉 true는 f..
React | Uncontrolled Components Controlled Components와 Uncontrolled Components In a controlled component, form data is handled by a React component. The alternative is uncontrolled components, where form data is handled by the DOM itself. Controlled Compoents는 DOM(, 와 같은)의 값(value)를 state에 유지하고, 사용자가 값을 변경할 때 마다 state도 변경된다. 아래 코드에서 name이라는 상태값을 만들고, onChange, 즉 사용자가 값을 변경할 때 마다 name상태값도 계속 변경된다. Controlled Components의 form da..
NestJS | 유효성 검사 validation NestJS재밌다.. DTO클래스 생성 글 작성 요청시 사용하는 DTO를 만든다. export class CreateRequestDto { readonly title: string; readonly author: string; readonly regDate: Date; } 아직 유효성 검사 처리가 되어있지 않아서, 아무런 값이나 요청해도 예외처리가 되지 않는다. @Controller('boards') export class BoradsController { constructor(private readonly boardService: BoardService) {} @Post() create(@Body() createDto: CreateRequestDto) { return this.boardService.c..