전체 글 69

NestJS에서 @Controller 의 역할

NestJS의 데코레이터로 컨트롤러 클래스를 정의할 때 사용함 * 컨트롤러 클래스: 특정 url을 사용하여 http요청 처리, 요청에 대한 응답 반환 - path: 컨트롤러에 연결된 기본 경로. /user 라고 지정하면 이 컨트롤러의 모든 경로는 /user로 시작함 - version: 컨트롤러의 API 버전을 지정함 - consumes: 컨트롤러에서 사용하는 모든 미디어 유형을 나타냄 (json, xml 등) - produces: 컨트롤러에서 생성하는 모든 미디어 유형을 나타냄 (json, xml 등) - security: 컨트롤러에서 사용하는 보안 정책을 나타냄 (jwt 등)

개발/NestJS 2023.04.10

class-vaildator 라이브러리

TypeScript와 JavaScript에서 클래스의 유효성 검사를 쉽게 할 수 있도록 도와줌 간단한 데코레이터를 사용하여 클래스 프로퍼티에 대한 검증 규칙을 지정할 수 있음 유효성 검사를 직접 구현하지 않아도되며 코드의 가독성과 유지보수성이 높아짐 ex) @IsNotEmpty(): 해당 필드가 비어있지 않는지 검사 ( null, undefined일 경우 유효성 검사 실패 )

db에서 index의 역할과 사용 이유

데이터베이스 내부에서 데이터 검색을 더욱 빠르게 하기 위해 사용함. 일반적으로 데이터베이스 내의 테이블의 컬럼중에서 검색할 때 자주 사용되는 컬럼을 대상으로 인덱스를 생성함 *db내에서 레코드를 저장할때 순서대로 정렬되지 않고 임의의 위치에 저장되는데 이 상황에서 검색을 하면 전체 레코드를 탐색해야 하기 때문에 오래걸림. index를 사용하여 검색할 필드에 대해 미리 정렬해 db내부에 저장하면 검색 속도를 향상시킬 수 있음 @@index -> 모델에 여러개의 index 지정

개발/DB 2023.04.07

NestJS에서 @UploadedFiles(), @Injectable()의 역할

@UploadedFiles() NestJS 데코레이터 요청 본문에서 업로드된 파일을 추출함 추출된 데이터는 컨트롤러 메소드의 파라미터로 전달됨 *사용시 multer 패키지와 같은 멀티 파트(form-data)요청을 처리하는 라이브러리 필요 @Injectable() NestJS 데코레이터 클래스를 하나의 provider로 사용할 수 있다. @Module을 사용해서 module에 등록하면 provider로 사용할 수 있다.

개발/NestJS 2023.04.05

dto 와 entity의 차이점

dto (Data Transfer Object) 데이터를 전달하기 위한 객체 데이터를 담아서 전달하는 바구니 주로 View와 Controller사이에서 데이터를 주고 받을 때 활용함 로직을 갖고있지 않는 순수한 데이터 객체. getter/setter 메소드만 갖고 이 외의 비즈니스 로직은 포함하지 않는다. *getter: 프로퍼티를 읽으려고 할 때 실햄됨 setter: value로 프로퍼티에 값을 할당하려고 할 때 실행됨 entity 실제 DB 테이블과 매핑되는 핵심 클래스 이를 기준으로 테이블이 생성되고 스키마가 변경된다. entity는 id로 구분되고 비즈니스로직을 포함할 수 있다.

개발/NestJS 2023.04.05

Swagger에서 ApiOkResponse(), ApiOperation(), ApiTags()의 역할

ApiOkResponse() Swagger 데코레이터 성공적인 API 호출(200)에 대한 응답을 정의함 ApiOperation() Swagger 데코레이터 API 엔드포인트에(Get,Post,Put,Delete) 대한 메타정보를 제공함 *메타정보: API의 설명, 요청 및 응답 페이로드, 성공/실패 상태 코드 및 예외처리 ApiTags() Swagger 데코레이터 API를 그룹화 하는 태그를 지정함 Swagger UI에서 그룹으로 API 검색 가능

개발/Swagger 2023.04.05