본문 바로가기

Backend

(112)
컬럼 Column, Row란? DB를 사용하다보면 'Column 컬럼'이라는 용어를 많이 접하게 되는데, 가끔가다가 이 두 가지의 차이점이 헷갈릴때가 있다. 물론 Row가 '행'이라는 개념과, Column이 '열'이라는 것은 알고있지만 이를 정확히 구분해야 DB나 SQL 사용 시에 헷갈림이 없으므로 이번 기회에 정리하고자 한다. 코드상에서는 다음과 같다. CREATE TABLE table_name { column_name1 data_type(size), -- 이거 하나하나가 컬럼 column_name2 data_type(size), column_name3 data_type(size), ... } 참고로, SQL에서 한 줄 라인의 주석은 --을 쓰고, 여러 줄의 주석은 /* ~ */을 사용한다. 결국 n개의 Column들이 모여서 1개..
controller의 역할 ※ 본 영상은 Nomad Coder의 'NestJS로 API 만들기' 영상을 보고 작성한 내용입니다. 1. NestJS의 Controller와 다른 프레임워크와의 유사성 Java-Spring의 Controller, Express의 controller/router의 기능과 같다. 저번 포스팅에서도 언급했던 것처럼, main.ts+Controller+Service 이 셋은 뗄레야 뗄 수 없는 관계이다. 2. @Module의 역할 Module 모듈은 하나의 기능을 하는 앱이라고 생각하면 된다. ex) 유튜브에서는 video 모듈, photo 모듈이 필요할 것이다. 인증에 관한 모듈은 auth 모듈이 될 것이다. 3. Controller와 main.ts 그리고 Service와의 관계 [ main.ts ] imp..
localhost:3000시 Hello World!는 어디서 오는걸까? ※ 본 내용은 노마드코더 'NestJS로 API만들기'를 정리한 내용입니다. 일단 결론부터 보죠. NestJS 프로젝트를 만들기 위해서 nest new 프로젝트 명령어를 통하여 NestJS 프로젝트를 하나 생성했습니다. 아직 코드를 추가한 것은 없고, 디폴트(기본) 내용으로만 npm run start:dev를 통해 실행결과를 알아보았습니다. localhost:3000번은 왜 쓰고, 왜 브라우저에 결과값으로 Hello World!가 보이는 것인지 하나하나 파헤쳐보겠습니다. [main.ts] import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap() { const a..
NestJS의 커맨드(명령어) 살펴보기 with Terminal Mac Terminal에 nest 를 입력하면 아래와 같이 Terminal에서 명령어로 파일을 만들때 어떤 축약어를 써야 하는지 한 눈에 볼 수 있다. 주로 module = mo, controller = co, service = s를 썼던 것 같다. 나머지는 일단 참고용으로 ~_~
[오류] TS2307: Cannot find module 'class-validator' or its corresponding type declarations 문제 상황 Nest.js에서 dto 파일에 class validator로부터 IsNotEmpty를 import 받아 사용하려던 중에 제목과 같이 TS2307: Cannot find module 'class-validator' or its corresponding type declarations 라는 에러가 발생하였다. 문제 원인 class-validator가 npm으로 설치되어 있지 않아 발생하는 문제였다. 문제 해결 터미널에서 아래와 같이 명령어를 입력한다. npm i --save class-validator class-transformer class validator을 설치하고 나면 import 부분의 class-validator 부분에서 빨간줄이 사라진다.
Nest.js에 모듈 추가하기(모듈,컨트롤러,서비스) Mac의 Terminal을 이용해서 Nest.js에 다양한 모듈을 추가하는 명령문들을 알아보자. 만약 boards 라는 이름의 모듈,컨트롤러,서비스를 생성한다고 하면(이들은 한 boards 라는 큰 디렉토리 안에 있는 모듈들이다) 모듈 nest g mo boards 컨트롤러 nest g co boards 서비스 nest g s boards 모듈 Module - mo 컨트롤러 controller - co 서비스 service - s 각각의 약어를 이용하여 터미널에 명령문을 입력해주면 된다.
pgAdmin4 사용해보기 - postgreSQL Management Tool Nest.js + postgreSQL을 사용하여 간단한 CRUD App을 만들어보려고 한다. 사용 환경 : MacOS 13.1 version을 사용하고 있는데 아마 Ventura 버전일 것이다. PostgreSQL은 이미 brew로 설치를 해 놓은 상태이다. Mac Terminal에서 psql postgres를 하면 postgreSQL과 연결된다. pgAdmin4 설치 (Management Tools for PostgreSQL) https://www.postgresql.org/ftp/pgadmin/pgadmin4/v6.20/macos/ PostgreSQL: File Browser www.postgresql.org macOS 기준이며, 아래의 pgadmin4~ .dmg 파일을 다운받아주면 된다. 설치가 완..
[오류] Invalid schematic "billing". Please, ensure that "billing" exists in this collection. 문제 상황 Nest.js에서 billing app을 만드려고 했는데 제목과 같이 Invalid schematic "billing". Please, ensure that "billing" exists in this collection. 라는 에러가 발생하였다. nest g billing 문제 원인 nest g app billing nest에서 app을 만들거면 app 키워드를 써줘야 하는데, 이 부분이 누락되어 에러가 발생하였다. app 키워드를 터미널 커맨드창에 삽입해주면 정상적으로 Nest.js의 프로젝트에서 billing app이 만들어진다.
Endpoint 엔드포인트 그게 몬데 API를 개발하다보면 endpoint 엔드포인트라는 용어를 자주 접하게 된다. 이제껏 엔드포인트를 접할때면 음.. 무언가의 끝자락인가?정도로 넘기고 크게 신경쓰지 않았으나 이번에 짚고 넘어가면 좋을 것 같아 정리해본다. Endpoint 메소드는 같은 URL들에 대해서도 다른 요청을 하게끔 구별하게 해주는 항목 ex) HTTP 메소드 URI (자원) Endpoint의 행위 POST http://api.domain.com/books 새로운 도서정보 생성 GET http://api.domain.com/books 도서정보 목록 조회 GET http://api.domain.com/books/1 1번 도서정보 조회 PUT http://api.domain.com/books/1 1번 도서정보 수정 DELETE http..
varchar의 의미 DB ERD를 이제까지는 폼만 만들어서 설계했다면, 이번부터는 제대로 형식에 맞춰서 설계하는 것을 연습하고 있다. 물론 Entity를 ERD에서 간단하게 설계하고 intelliJ로 넘어가서 제대로 된 설계를 시작했지만, 기초부터 잘 다져야 나중에 개발하는데도 큰 변동이 없을 것 같다. 그러던 중 varchar의 의미에 대해서 다시 되새기게 되었다. varchar이라고 하면 일단, 제대로 알아보기 전에 문자열?에 관련된 변수라고 생각을 했었다. varchar 의미 되새기기 - 가변길이 문자열 타입 - MySQL 4.1 버전 이후부터는 char(n), varchar(n)에서 n은 바이트 수가 아니라 글자수를 의미 - char은 고정길이 문자열 타입 / varchar은 가변의 문자열 타입 고정된 크기의 문자열..