본문 바로가기

BE/Node12

관점 지향 프로그래밍(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.
[Mongoose] 스키마 var mongoose = require('mongoose'); mongoose.connect(url);//url => mongodb://localhost/collections var exampleSchema = new mongoose.Schema({ name:{ type:String, required:true } age:Number number:Schema.Types.ObjectId created:{ type:Date, default:Date.now } binary:Buffer, living:Boolean mixed:Schema.Types.Mixed array:[], arrayNumber:[Number], arrayString:[String] }); var Data = mongoose.model('da.. 2021. 9. 24.