전체 글
-
20221227화_공부 일지> Backend/NestJS 2022. 12. 28. 02:53
1. 유저 서비스 인터페이스 1) 기존에 생성되어 있던 create-user-dto에 생성과 관련된 dto 정의export class CreateUserDto { readonly name: string; readonly email: string; readonly password: string;}2)curl -X POST http://localhost:3000/users -H "Content-Type: application/json" -d '{"name": "name_example", "email":"email@example.com","password":"1234"}'유저를 생성했습니다. {"name":"name_example","email":"email@example.com","p..
-
20221222Thu_공부 일지> Backend/NestJS 2022. 12. 23. 02:21
1. Controller: 들어오는 요청을 받고, 처리된 결과를 응답으로 돌려주는 인터페이스 역할을 한다. 2. Header: => @Header decorator를 사용하여 커스텀 헤더 추가할 수 있다. //커스텀 Header: @Header데커레이터를 사용 (혹은, res.header()로 직접 설정 가능)@Header('key', "value")@Get('header/:id')findOne_Header(@Param('id') id: string) { if(+id 3. Redirection: => 종종 서버가 요청을 처리한 후, 요청을 보낸 클라이언트를 다른 페이지로 이동하고 싶을 경우, redirection 사용. => @Redirection decorator의 첫번째 인수는 ..
-
20221221Wed_공부 일지> Backend/NestJS 2022. 12. 22. 00:50
1. Decorator -> 다섯가지 종류: Method / Accessor / Property / Class / Param (pg.35~42) 2. Controller -> 정의: 들어오는 request를 받고, 처리된 response를 돌려주는 인터페이스 역할. -> 진행 방법: nest new project-name --skip-git => nest g resource name @Get('/hello')// 경로중에 / 는 생략할 수 있다.getHello(): string { return this.appService.getHello();} //와일드카드: 아래와 같이 와일드 카드를 사용해서 라우팅 패스를 작성할 수 있다.@Get('/ho*')getHello2(): string { re..
-
002_ECMAScript 중요 사항 (지속 추가 예정)> 기초/Javascript 2022. 7. 5. 16:47
1. Optional Chaining (?.) (2020) → 객체 프로퍼티에 접근하기 위해 길게 이어진 체인은 오류가 나기 쉬움 → 예제: item?.bike?.motorcycleNo * 상위 코드에서 item.bike가 undefined 될 경우 motorcycleNo 값을 도출하지 않는다. 2. null 병합 연산자 (??) (2020) → 예제: * 기존의 || 와 헷갈릴 수 있으나, 문서를 참고하면 아래와 같은 차이점이 있다. const headerText = response.settings.headerText || 'Hello, world!'; // Potentially unintended. '' is falsy, result: 'Hello, world!' const animationDurat..
-
001_JS_Object 타입에서 원하는 값 찾고 바꾸기> 기초/도와줘요! 2022. 6. 20. 18:09
state.form.userType = Object.values(state.form.userType).filter(i => i !== param).reduce((a,v)=>({ ...a, [v]: v}), {}) 설명: state.form.userType 이라는 Object 타입을 Array로 변경하고, filter()를 사용해서 들어오는 param값과 값을 하나씩 비교해서, 동일하지 않은 경우, reduce를 통해서 Custom Key-Value Pair로 만들어 기존에 Array로 만들어진 걸 Object로 변경 2. if ( state.resultSet.hasOwnProperty(id) ) { if (state.resultSet[id] !== value) { state.resultSet = { ....
-
001_CSS_Input의 text 타입에 숫자만 입력> Frontend/Publishing 2022. 6. 20. 11:26
Input 태그는 기본적으로 Number && String 입력가능합니다. 만약, 숫자만 입력하고 싶을때는 type="number"로 변경해도 됩니다만, 첫글자는 항상 아래의 사진과 같이 입력이 되더군요, 아래처럼 코딩하면, type을 text로 유지하면서, oninput을 사용하면 입력되는 내용이 숫자만 입력되게 할 수 있습니다. 해당 코드에서 .replace(/^0[^.]/, '0'); 을 제외하면 첫글자에 0을 입력할 수 있습니다.
-
009_TypeORM을 NestJS에 연결 - 1> Backend/NestJS 2022. 5. 27. 14:39
이번에는 TypeORM을 NestJS에 적용해보겠습니다. 우선, 새로운 프로젝트가 되나 Report와 User로 각각 저번처럼 하나씩 만들어줍니다. (나중에 여기에 추가할 예정) 코드를 작성하기전에, 우선 개념부터 잡아봅시다. TypeORM는 ORM 기술로, Entity Instance와 DB를 Mapping하여 DB를 편리하게 사용 할 수 있는 기능입니다. 기존 DB 같은 경우 [Select * From TableName Where name =1 ] 이런식이였으면, TypeORM을 사용하면, 객체.findOne({값}) 이런 식으로 작성 할 수 있습니다. TypeORM은 아래와 같이 다양한 DB에 적용가능합니다. RDBMS : MySQL / MariaDB / Postgres / SQLite / Micr..
-
007_NestJS_Service 와 Repository> Backend/NestJS 2022. 5. 18. 09:32
이번 장에는 Service와 Repository에 대해 이해해보겠습니다. 위의 사진을 보시면, Controller에서 Service로, Service에서 Repository로 이동되는 걸 알 수 있습니다. Service와 Repository의 차이를 보시면, 아래 표와 같은데, Service와 Repository의 가장 큰 차이는 Service는 비즈니스 로직을 수행하는 부분이고, Repository는 DB관련 로직을 수행한다는 점입니다. 쉽게 말하면, 일반적인 코딩을 Service에 & DB에 접속해서 정보를 가져오는건 Repository에 적으면 됩니다. 여기서 Repository는 Spring의 경우 DAO와 비슷한 역할을 한다고 생각하시면 됩니다. 차이점 더보기 https://bperhaps.t..