본문 바로가기
반응형

전체 글281

[NestJS] 타입 종류_Swagger NestJS 다양한 타입_Swagger에 표시하기 단순 타입 (number, string 등) @ApiProperty({ type: Number, }) age: number; @ApiProperty({ type: String, }) name: string; Arrays(배열) 속성이 배열인 경우 아래와 같이 배열 유형을 수동으로 지정해야 한다. @ApiProperty({ type: [String] }) skills: string[]; 배열의 첫 번째 요소로 유형을 포함하거나(위에 표시된 대로) isArray속성을 true로 설정한다. Circular dependencies(순환 종속성) 클래스 간에 순환 종속성이 있는 경우 지연 함수를 사용하여 SwaggerModule유형 정보를 제공한다. @ApiPro.. 2023. 2. 10.
[js] Object(json)에서 key, value값 추출 Object(json)에서 key값 리턴 = Object.keys() , value값 리턴 = Object.values() Object.keys() 메소드는 주어진 객체의 속성 이름들을 일반적인 반복문과 동일한 순서로 순회되는 열거할 수 있는 배열로 반환한다. Object.values()메소드는 전달된 파라미터 객체가 가지는 (열거 가능한) 속성의 값들로 이루어진 배열을 리턴한다. 이 배열은 for...in 구문과 동일한 순서를 가진다. * 단 순서만 동일하지, for...in반복문은 프로토타입 체인 또한 열거한다는 점에서 차이가 있다. Object.keys() 메소드를 이용한 json객체에서 keys추출 const objectO = { c: 3, b: 2, a: 1, }; console.log(Obje.. 2023. 2. 9.
[Next.js] Warning: A component is Changing an uncontrolled input to be controlled Error [React] 경고: 구성 요소가 제어되지 않은 입력을 제어하도록 변경하고 있습니다. 에러 구성 요소가 제어되지 않은 입력을 제어하도록 변경하고 있습니다. 기본적으로 말 뜻대로 react 구성요소가 제어할 수 없는 (선언되지 않거나, 제어할 수 없는) 입력을 제어하도록 변경하고 있을 때, 나타나는 경고로 화면에 값이 표현되지 않거나 동작자체가 이상해질 때(체크 박스, 라디오 박스 등 개발자가 의도한대로 동작하지 않음)도 있는 반면에 동작은 정상적으로 되는데 콘솔창에 나타날 때도 있다. 에러가 발생하며 동작자체가 이상해질 경우 * 겪어본 해결방법 1. 사용하려는 값이 의도한대로 존재하는가? 확인해보기 내가 사용하고 제어하려는 값 (변수, state) 등의 값이 내가 의도한대로 들어가지 않았을 경우가 있다... 2023. 2. 9.
[NestJS] Type(타입)_Swagger Swagger에서 parameters(매개변수)의 타입 * Parameter(매개변수)의 속성 유형을 명시적으로 설정하려면 type키를 사용한다. @ApiProperty({ type: Number, }) age: number; 물론 명시적으로 타입을 작성하지 않아도 Swagger 모델에 타입이 명시되기는 한다. export class CreateUserDto { @ApiProperty({ type: Number }) name: string; @ApiProperty({}) age: number; @ApiProperty({ type: String }) major: string; } 위와 같은 코드가 있다면 Swagger에서 표시될 때, 해당 Swagger에서 알 수 있듯이 @ApiProperty({}) ag.. 2023. 2. 9.
[js] 빈 값을 가진 json key 제거 /** * 빈 값을 가진 json key 제거 */ const deleteKeyJsonObject = (wantDelteObj) => { Object.keys(wantDelteObj).map((key) => { if (wantDelteObj[key] === undefined || wantDelteObj[key] === null) { delete wantDelteObj[key]; } }); }; const userJson = { name: "홍길동", age: null, major: "", hi: undefined, } console.log("삭제 전: ", userJson) deleteKeyJsonObject(userJson); console.log("삭제 후: ",userJson) 출력값 삭제 전: {.. 2023. 2. 8.
[NestJS] Parameters(매개변수)_Swagger Swagger에서 parameters(매개변수)의 선언 SwaggerModule은 경로 핸들러에서 모든 @Body(), @Query() 및 @Param() 데코레이터를 검색하여 API 문서를 생성한다. 리플렉션(reflection)을 활용하여 해당 모델 정의를 생성한다. @Post() async create(@Body() createUserDto: CreateUserDto) { this.usersService.create(createUserDto); } 본문 정의를 명시적으로 설정하려면 @ApiBody() 데코레이터(@nestjs/swagger 패키지)를 사용한다. CreateUserDto를 기반으로 다음 모델 정의 Swagger UI가 생성된다. export class CreateUserDto { na.. 2023. 2. 8.
useState로 배열, 객체의 값 변경(체크박스 구현) ReactNative, Nest.js 등에서 useState의 state, setState로 배열([]) 혹은 객체({})의 값 변경 배열의 값([]) 변경 배열의 값 변경에 실패하는 경우 const [checkList, setCheckList] = useState([]); ... /** * 체크박스 handler * @param e: React.ChangeEvent */ const onCheckHandler = (e: React.ChangeEvent) => { let changeList = checkList; // 배열의 주소를 공유하게 된다. changeList[Number(e.target.id)] = true; // 객체의 주소를 공유하기 때문에 원본의 내용도 함께 바뀐다. // setState는 .. 2023. 2. 8.
[NestJS] Security(보안) Nestjs에서 사용하는 보안 메커니즘 정의 및 인증 활성화(cookie, oAuth2 등) OpenAPI_Security(보안) 특정 작업에 사용해야 하는 보안 메커니즘을 정의하려면 @ApiSecurity() 데코레이터를 사용한다. @ApiSecurity('basic') @Controller('test') export class TestController {} 애플리케이션을 실행하기 전에 DocumentBuilder를 사용하여 기본 문서에 보안 정의를 추가해야 한다. const options = new DocumentBuilder().addSecurity('basic', { type: 'http', scheme: 'basic', }); 가장 널리 사용되는 인증 기술 중 일부는 내장되어 있다. (예: B.. 2023. 2. 7.
[NestJS] OpenAPI 데코레이터 종류 OpenAPI 데코레이터 종류 모음 사용 가능한 모든 OpenAPI 데코레이터는 핵심 데코레이터와 구별하기 위해 Api 접두사가 있다. import { IsString } from 'class-validator' import { ApiProperty } from '@nestjs/swagger' ... @IsString() @ApiProperty() name: string; ... @IsString() = 문자열(string)인지 판별하는 유효성 검사 데코레이터 (validation)로 class-validator에서 가져와서 사용할 수 있다. @ApiProperty() = 데코레이터는 nestjs/swagger에 자체 내장되어있는 데코레이터이고 type 인자로 해당 데코레이터로 데코레이팅 된 클래스를 넘.. 2023. 2. 7.
[NestJS] OpenAPI OpenAPI란? RESTfulAPI를 설명하는 데 사용되는 언어 독립적인 정의 형식이다. Nest는 데코레이터를 활용하여 이러한 사양을 생성할 수 있는 전용 모듈을 제공한다. NestJS -> OpenAPI 문서 https://swagger.io/specification/ OpenAPI Specification - Version 3.0.3 | Swagger OpenAPI Specification Version 3.1.0 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this docu.. 2023. 2. 7.
반응형