Back-end(6)
-
TypeORM
Node.js 환경에서 사용하는 ORM(Object-Relational Mapping) 라이브러리다.DB의 테이블과 js/ts의 객체(클래스)를 자동 매핑한다.SQL 쿼리를 직접 작성하지 않고, 객체 지향적으로 DB를 다룰 수 있게 한다. 설치npm install typeorm @nestjs/typeorm pgPostgreSQL : pg, MySQL : mysql2, SQLite : sqlite3 등 사용 DB에 따라 드라이버를 설치한다.npm install @nestjs/config.env(환경변수) 파일을 쉽게 관리하고 애플리케이션 전역에서 안전히 사용할 수 있도록 도와주는 공식 모듈.역할프로젝트 루트의 .env 파일을 자동으로 읽어 process.env에 값을 주입한다.스키마로 환경변수의 필수 여부..
2025.07.11 -
NestJS[1]_main
nest new project로 NestJS 프로젝트를 생성하면, 기본적으로 Hello World!를 출력하는 코드 구조가 포함된다.그중 main.ts를 살펴보자. main.tsimport { NestFactory } from '@nestjs/core';import { AppModule } from './app.module';async function bootstrap() { const app = await NestFactory.create(AppModule); await app.listen(process.env.PORT ?? 3000);}bootstrap();bootstrap()디자인 라이브러리인 줄만 알았는데, NestJS의 함수로는 애플리케이션을 초기화하는 함수다.NestFactory.creat..
2025.07.10 -
NestJS[0]_개요, 실행
NestJS서버 애플리케이션을 만들기 위한 프레임워크.Node.js 환경에서 동작하며, Javascript 기술 사용.TypeScript 기반으로 코드 안정성과 유지보수성이 높다.구조적 아키텍처 : Module, Controller, Provider Module애플리케이션 구성의 기본 단위로, 관련 기능을 하나의 묶음으로 만드는 컨테이너 역할.예) 유저 관리 기능 : 유저 CRUD에 필요한 코드(class)들을 UserModule이라는 하나의 모듈로 묶어 관리.Spring의 @Configuration이나 Java의 package에 가깝다.프레임워크가 Singleton으로 관리.역할기능적 분리 : 각 기능을 독립된 모듈 단위로 쪼개어 책임을 명확히 분리.캡슐화 : 관련 컨트롤러, 프로바이더, 다른 모듈 등..
2025.07.09 -
서버의 HTTP 요청 응답 과정
서버 실행(main 메서드 실행)여기서 서버는 컨테이너인 tomcat에 내장된 간이 웹 서버를 기준으로 한다.Spring Boot에서 제공하는 tomcat은 main문을 포함하지 않아 개발자가 가지고 있어야 한다.@SpringBootApplicationpublic class MyWeb2Application { public static void main(String[] args) { SpringApplication.run(MyWeb2Application.class, args); }} Class Loader -> Bytecode Verifier -> MachineCodeGenerator?를 거치고 8080포트 번호를 가진 서버 프로그램을 실행한다. Connection Pool, Thread PoolSpri..
2025.05.10 -
Pydantic
[점프 투 FastAPI] 2-04-3 Pydantic으로 입출력 스펙을 정의한다. Pydantic에 대해 왜 사용하고 어떤 기능을 하는지 자세히 알아보자. Pydantic Request, Response 모델 정의. type annotation으로 데이터 검증과 설정 관리. 입출력 항목의 개수와 타입 설정. 입출력 항목의 필수값 체크. 유저 친화적 에러 제공. parsing 라이브러리로, 입력값을 정의된 타입으로 변환하여 모델의 타입과 제약 조건 보장. JSON이나 dict 변환 가능. BaseModel 아래와 같이 타입을 정의하고 설정한 타입과 일치하지 않으면 에러를 발생시킨다. UUID(Universally Unique IDentifier) : 고유성 보장, 주로 db의 Primary Key로 사용..
2024.04.02 -
의존성 주입_Depends
[점프 투 FastAPI] 2-04-2에서 @contextlib.contextmanager과 함께 with문을 사용해서 세션을 할당하고 반환하는 과정을 FastAPI의 Depends로 간단히 수정했다. Depends와 의존성 주입은 뭐지? from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from database import get_db from models import Question router = APIRouter( prefix="/api/question", ) @router.get("/list") def question_list(db: Session = Depends(get_db)): _question_list = ..
2024.03.30