본문 바로가기

node.js7

3계층 아키텍처(Three-tier architecture) ### 1. 프레젠테이션 계층 (Presentation Layer)프레젠테이션 계층은 사용자로부터 요청을 받고 응답을 반환하는 역할을 합니다. 이 계층은 주로 컨트롤러(Controller)와 라우터(Router)로 구성됩니다.#### 컨트롤러 (`controllers` 디렉토리)**파일 내용:**- HTTP 요청을 처리합니다.- 입력 데이터를 검증합니다.- 비즈니스 로직을 처리하는 서비스 계층을 호출합니다.- 서비스 계층에서 받은 데이터를 응답으로 반환합니다.- 에러 처리를 수행합니다.#### 라우터 (`routes` 디렉토리)**파일 내용:**- URL 경로와 HTTP 메서드를 매핑하여 컨트롤러의 메서드를 호출합니다.- 필요한 미들웨어를 연결합니다.### 2. 비즈니스 로직 계층 (Business Lo.. 2024. 6. 12.
예시 ) services, controllers, routes 에 어떻게 구성하는지 <사용자 가져오기, 생성하기> ESM(ECMAScript Modules)을 사용하는 Node.js 프로젝트에서 `controllers`, `routes`, `services`를 어떻게 구성하는지에 대한 예시를 보여드리겠습니다. 이 예시는 백엔드 애플리케이션에서 사용자 관리를 처리하는 간단한 예시입니다.### 프로젝트 구조```my-project/├── src/│   ├── controllers/│   │   └── userController.js│   ├── routes/│   │   └── userRoutes.js│   ├── services/│   │   └── userService.js│   ├── models/│   │   └── userModel.js│   ├── app.js│   └── server.js└── package.. 2024. 6. 10.
JSON Web Token (JWT) 검증 후 후 필요한 속성을 추출하는 두 가지 접근 방식 비교, 장단점 어떤 방법이 더 좋은지는 상황과 개인의 선호도에 따라 달라질 수 있습니다. 각각의 방법에는 장단점이 있습니다. 아래에서 두 가지 접근 방식의 장단점을 비교해 보겠습니다.### 방법 1: 두 줄로 분리```javascriptconst decodedToken = jwt.verify(token, 'custom-secret-key');const userId = decodedToken.userId;```#### 장점:1. **가독성**: 각 단계를 명확하게 분리하여 가독성이 높습니다. 특히, JWT의 디코딩과 속성 접근이 명확하게 나눠져 있습니다.2. **디버깅 용이성**: 디코딩된 토큰을 변수에 할당하면, 디버깅 시에 중간 값을 쉽게 확인할 수 있습니다. 디코딩된 객체의 다른 속성들도 필요할 경우 접근하기 쉽습.. 2024. 5. 23.
package.json > type 패키지.json 파일의 "type" 속성은 프로젝트의 모듈 시스템을 정의하는 데 사용됩니다. 이 속성을 사용하여 프로젝트가 CommonJS나 ECMAScript 모듈 형식 중 어떤 것을 사용할지 지정할 수 있습니다.만약 "type" 속성을 "module"로 설정하면, 프로젝트 전체가 ECMAScript 모듈(ESM) 모드로 전환됩니다. 이는 프로젝트의 모든 JavaScript 파일이 ECMAScript 모듈 형식으로 작성되어야 함을 의미합니다. ECMAScript 모듈은 "import" 및 "export" 구문을 사용하여 모듈을 정의하고 내보내고 가져올 수 있습니다.하지만 "type" 속성을 "module"로 설정하는 것만으로는 CommonJS 형식으로 작성된 코드와의 호환성 문제가 발생할 수 있습니다... 2024. 5. 16.
HTTP 상태코드 HTTP 상태 코드(HTTP status code)는 웹 서버가 HTTP 요청에 대한 처리 결과를 클라이언트에게 전달하는 데 사용되는 코드입니다. 이 코드는 3자리 숫자로 이루어져 있으며, 각각의 숫자는 다음을 나타냅니다:- **1xx (Informational)**: 요청을 받았으며 처리 중입니다. 클라이언트는 추가 작업을 기다리거나 진행해야 합니다.- **2xx (Success)**: 요청이 성공적으로 처리되었습니다.- **3xx (Redirection)**: 요청을 완료하기 위해 추가 작업이 필요합니다. 보통 리디렉션을 의미합니다.- **4xx (Client Error)**: 클라이언트의 요청이 잘못되었거나 처리할 수 없습니다.- **5xx (Server Error)**: 서버가 유효한 요청을 수행.. 2024. 5. 14.
Body Parser의 위치 보통 Express 애플리케이션에서는 body-parser 미들웨어를 사용하여 HTTP 요청의 body에 포함된 데이터를 추출하는데, 이 미들웨어는 보통 애플리케이션의 진입점(entry point) 파일에 설정 2024. 5. 13.