Node.js

자바스크립트는 합성된 단어들에 대해 두 번째 단어부터 해당 단어의 첫 번째 글자를 대문자로 바꿔서 표기하는 카멜 케이스를 사용한다. 예를 들어서, helloZeetoHelloHelloZeetoHello 위처럼 두 번째 단어부터 첫 번째 글자를 대문자로 표기해준다. 이에 반해서, 파이썬이나 데이터베이스는 이어지는 단어 사이에 언더스코어(_)를 넣어주는 스네이크 케이스를 사용한다. 즉, 둘의 네이밍 전략은 다르기 때문에 자바스크립트를 사용하고자 한다면, 웬만해서 변수명 등을 카멜 케이스로 바꿔주는 것이 중요하다. 보통 ORM을 통해서 database의 raw 값에 접근하면, 프로퍼티 이름이 스네이크 케이스로 전달된다. 이때, 이는 자바스크립트의 네이밍 전략과 맞지 않으므로, 프로퍼티명을 카멜 케이스로 바꿔주..
· Node.js
Turborepo 도입기 디프만에서 프로젝트를 진행하려고 하는데, 서버 언어로 TypeScript를 사용하고 있기 때문에 프론트엔드와 함께 레포지터리를 사용하기에 용이했다. 그래서 Yarn Berry를 통해서 monorepo를 구축할 계획이었다. 프론트와 백 모두 익숙하신 분께서 모노레포를 모두 구축해주셨고 이를 활용해서 프로젝트를 디벨롭 하고자 했다. 백엔드와 프론트엔드 모두 세팅이 안정적으로 완료됐지만, Next.js의 Vercel 배포가 Yarn Berry에서는 잘 동작하지 않는다는 것을 알게 됐고, 이를 대체하고자 Turborepo를 통해 모노레포를 구축하고자 했다. Turborepo란? 공식 문서 설명에 따르면, JavaScript나 TypeScript 코드를 위해 최적화된 빌드 시스템이라고 한..
TypeScript를 사용하여 NestJS + TypeORM 개발을 하던 도중, 문자열을 프로퍼티명으로 적어야 하는 상황이 생겼습니다. 상황상 컬럼을 Enum으로 둘 수 없었고, Enum의 요소들 각각을 컬럼으로 집어넣었습니다. 예를 들어서 element1, element2, element3가 하나의 컬럼에 있는 것이 아니라 각각의 element1, element2, element3로 컬럼이 독립적으로 존재하는 것입니다. 이 상황에 프론트에서 Enum에 속하는 element1, element2, element3을 someElement라는 속성의 값으로 전달을 하게 되면, 이를 업데이트를 해야 하는 상황이 왔었는데, 기존에는 프로퍼티에 element1, element2, element3를 이름으로 적어야 ..
Orders 관련 서비스 작성 1. Controller API Endpoint 추가 주문을 생성하는 API를 설계하도록 하겠습니다. 먼저 Controller에 Endpoint를 설정해줍니다. 단순하게 설정할 것이므로 경로는 루트 경로를 따르겠습니다. POST와 PATCH, PUT 등은 바디를 파라미터로 사용해야 합니다. 그렇기 때문에 DTO도 설정해줍니다. 바디와 같이 데이터가 서버로 요청이 올 때는 데이터를 외부에 호출시키지 않고 숨긴 상태로 전달하는 것이 좋습니다. 그래서 데이터 전송 객체(Data Transfer Object, DTO)가 사용됩니다. 완성된 코드는 아래와 같습니다. // orders.controller.ts @Post() async createOrder(@Body() request:..
턴태
'Node.js' 카테고리의 글 목록