본문 바로가기

BE13

Nest.js(4) MySQL 설정 💡 ORM이란? ORM(Object-Relational Mapping)은 데이터베이스의 관계를 객체로 바꾸어 개발자가 OOP로 데이터베이스를 쉽게 다룰 수 있도록 해 주는 도구입니다. SQL문을 그대로 코드에 기술하고 그 결과를 쿼리셋으로 다루는 방식에서 세부 쿼리문을 추상화하는 것으로 발전하였습니다. 개발자는 ORM에서 제공하는 인터페이스를 통해 일반적인 라이브러리를 호출하듯 DB에 데이터를 업데이트하고 조회할 수 있습니다. 데이터베이스 설정 DBeaver와 MySql를 이용해서 개발 한다. ORM 가능한 기능중에 TypeORM 을 사용합니다. @nestjs/typeorm 패키지에서 제공하는 TypeOrmModule을 이용하여 DB에 연결할 수 있습니다. ... import { Type.. 2022. 6. 29.
관점 지향 프로그래밍(AOP) 관점 지향 프로그래밍(AOP, aspect-oriented programming)은 횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. - 위키피디아 백엔드 애플리케이션은 갖추어야 할 요구사항이 많이 있습니다. 여기서 요구사항이라 함은 서비스가 제공하는 핵심 기능을 해결하기 위한 사용자의 요구사항 뿐만 아니라 유효성 검사, 로깅, 보안, 트랜잭션과 같이 애플리케이션 전반에 걸쳐 제공해야 하는 공통 요소를 포함합니다. 이를 횡단관심사라고 부릅니다. 소스코드에서 횡단관심사를 따로 분리하여 구현하지 않으면 우리가 작성하는 애플리케이션의 코드는 횡단관심사의 코드와 섞여 뒤죽박죽이 되고 맙니다. 코드는 읽고 이해하기 힘들게 되고 모듈.. 2022. 6. 24.
Nest.js(2) 컨트롤러(Controller) Nest의 컨트롤러는 MVC패턴에서 말하는 그 컨트롤러를 말합니다. 컨트롤러는 들어오는 요청(request)를 받고 처리된 결과를 응답(response)으로 돌려주는 인터페이스 역할을 합니다. 컨트롤러는 서버로 들어오는 요청을 처리하고 응답을 가공합니다. 서버에서 제공하는 기능을 어떻게 클라이언트와 주고 받을 지에 대한 인터페이스를 정의하고 데이터의 구조를 기술합니다. 컨트롤러는 엔드포인트 라우팅(routing) 메커니즘을 통해 각 컨트롤러가 받을 수 있는 요청을 분류합니다. 컨트롤러를 사용 목적에 따라 구분하면 구조적이고 모듈화된 소프트웨어를 작성할 수 있습니다. 다른 Nest 구성요소에 대한 약어는 nest -h 명령어로 확인할 수 있습니다. $ nest g resour.. 2022. 6. 23.
Nest.js(1) Nest js - Node 기반을 둔 웹 API 프레임워크 Express, Fastify 프레임워크를 래핑하여 동작 - NestJS는 데이터베이스, ORM, 설정(Configuration), 유효성 검사 등 수많은 기능을 기본 제공하고 있습니다 - IoC(Inversion of Control, 제어역전), DI(Dependency Injection, 의존성 주입), AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)와 같은 객체지향 개념을 도입하였습니다. - 타입스크립트 Node.js 기반 웹 프레임워크가 갖춰야 할 필수 기능이라면 다음과 같은 것들이 있습니다. 최신 Ecma Script 지원 Typescript (선택사항이나 사용 추세가 계속 늘어나고 있음) CORS HT.. 2021. 11. 12.