전체 글
-
[Node.js] NestJS 주요 기능 알아보기(DTO, Validation, Guard, 인증과 예외처리)📘 Node.js 2026. 8. 17. 22:15
NestJS의 전체적인 구조이전에 설명했던 내용들을 하나로 연결하면 아래와 같은 구조가 된다.Client │ │ HTTP Request ▼Controller │ │ 요청 처리 ▼Service │ │ 비즈니스 로직 ▼Repository / Model │ ▼Database 그리고 이러한 기능들을 Module이 묶어준다.AppModule│├── AuthModule│ ├── AuthController│ └── AuthService│├── UserModule│ ├── UserController│ └── UserService│└── DocumentModule ├── DocumentController └── DocumentService 이 구조를 이해하..
-
[Node.js] NestJS 구조 이해하기📘 Node.js 2026. 8. 17. 13:26
NestJS는 간단하게 이 세가지를 기억하면 된다. Controller → 요청 받기Service → 로직 처리Module → Controller + Service 관리 이 세가지를 기억하면서 프로젝트를 생성부터 해보겠다.1. NestJS 프로젝트 생성 🎈 NestJS는 CLI를 사용하면 프로젝트를 쉽게 생성할 수 있다.npm i -g @nestjs/clinest new my-project 프로젝트를 생성하면 기본적으로 다음과 비슷한 구조가 만들어진다.my-project/├── src/ # 실제 애플리케이션 코드│ ├── app.controller.ts # 요청(URL)을 받아서 응답│ ├── app.service.ts # 실제 비즈니스 로직│ ├── a..
-
[Node.js] NestJS란?📘 Node.js 2026. 8. 17. 12:58
1. NestJS를 알아보기 전에 👏 Node.js로 백엔드 서버를 개발해봤다면 한 번쯤 Express.js라는 프레임워크를 접해봤을 것이다.Express.js는 Node.js에서 서버를 만들 때 많~이 사용하는 웹 프레임워크로, 간단한 API부터 규모가 있는 서버까지 다양한 프로젝트에서 사용할 수 있다. 간단한 예를 들어 Express에서는 아래처럼 간단하게 API를 만들 수 있다.const express = require('express');const app = express();app.get('/hello', (req, res) => { res.json({ message: 'Hello World' });});app.listen(3000, () => { console.l..
-
[Node.js] JWT(Json Web Token)를 이용한 로그인 인증 구현📘 Node.js 2026. 7. 14. 01:25
🔑 JWT란?JWT(Json Web Token)는 서버가 사용자의 로그인 정보를 인증한 후 발급하는 토큰(Token) 기반의 인증 방식이다.기존의 Session 방식은 서버가 로그인한 사용자의 정보를 메모리나 DB에 저장하여 관리하지만,JWT는 로그인 정보를 토큰 안에 담아 클라이언트에게 전달한다.이후 클라이언트는 서버에 요청할 때마다 JWT를 함께 전송하고, 서버는 토큰의 유효성을 검사하여 사용자를 인증한다.즉, 서버가 별도의 로그인 세션을 저장하지 않아도 사용자를 식별할 수 있다. JWT 동작과정JWT 인증은 다음과 같은 순서로 동작한다. 1. 사용자 로그인2. 아이디 / 비밀번호 전송3. 서버에서 사용자 확인4. JWT 생성5. HttpOnly Cookie 저장6. 브라우저가 이후 요청마다 Coo..
-
[Vue.js] axios.defaults.withCredentials = true는 왜 사용하는 걸까?📗 Vue.js 2026. 7. 11. 04:52
JWT 로그인 기능을 구현하다 보면 자주 보게 되는 코드가 있다.axios.defaults.withCredentials = true; 처음에는 "쿠키를 보내기 위한 설정인가?" 정도로만 이해했지만, 실제로 로그인 기능을 구현하면서 이 옵션이 왜 필요한지 정확히 알게 되었다. 📗 먼저 알아야 하는 것나의 프로젝트의 구조는 다음과 같다.Vue3 : http://localhost:5173Node.js(Express) : http://localhost:3000프론트엔드와 백엔드의 포트가 다르기 때문에 브라우저 입장에서는 다른 Origin(출처) 으로 인식한다.Origin은 다음 3가지가 모두 같아야 한다.프로토콜(http/https)도메인(localhost)포트(5173, 3000)즉http://localho..
-
cloudflare R2 연동📘 Node.js 2026. 4. 7. 06:46
⭐ cloudflare R2란? cloudflare 자체는 플랫폼 전체를 의미하며 그중에 R2는 스토리지 기능 하나를 의미합니다.즉, cloudflare R2는 대용량 파일(이미지, 영상, 데이터 등)을 저장하는 클라우드 스토리지 서비스입니다. 🌍 특징1. AWS S3 등은 데이터를 꺼낼 때 비용이 들지만 R2는 데이터 다운로드 비용이 없음2. AWS S3 API와 거의 동일하여 기존 S3 코드 그대로 쓰기 쉬움3. cloudflare의 CDN 서비스와 결합되어 데이터 전송속도가 빠름AWS S3와 간단 비교구분Cloudflare R2AWS S3 (Standard)데이터 송신료무료 ($0)유료 (GB당 부과)저장 비용약 $0.015 / GB약 $0.023 / GB (리전별 상이)호환성S3 API 호환표준..
-
[Error] npm create vue@3 중 SyntaxError: The requested module 'node:util' does not provide an export named 'parseArgs'⚡ Error/📗 Vue.js 2025. 6. 9. 23:34
혹시 Vue3 시작하기를 보고 오신 분들 중에서npm create vue@3를 하셨을 때 위와 같이 뜨시는 분들은 Node버전을 꼭 체크해주시길 바랍니다! SyntaxError: The requested module 'node:util' does not provide an export named 'parseArgs' 위와 같은 에러는 Node.js 버전이 낮기 때문에 parseArgs를 지원하지 않기 때문에 생기는 오류라고 합니다. parseArgs에 생소한 저또한 찾아본 결과Node.js 16.17.0 이상에서 새롭게 도입된 함수로커맨드라인에서 전달된 인자들을 쉽게 처리하기 위한 내장 함수라고 합니다.import { parseArgs } from 'node:util';const args = parseA..
-
[백준] 14725번: 개미굴 (Node.js)📝 알고리즘/백준 2025. 4. 17. 13:28
접근방식문제를 살펴보면 우선 각 경로가 트라이 자료구조로 이루어져 있는 것을 확인할 수 있습니다. 트라이 자료구조란?검색을 빠르고 효율적으로 할 수 있도록 설계된 트리 기반 자료구조이며, 주로 단어 목록에서 단어를 검색하거나 자동 완성 기능, 사전 검색, 문자열 패턴 매칭 등에 사용됩니다.여기서 중요한 점은 문자열을 트리 형태로 저장하고, 공통 접두사를 공유하여 중복된 데이터를 최소화하는 것입니다. 간단한 설명으로 시작하여 다시 진행해보자면, 이 문제에서 요구하는 주요 작업은 입력된 경로를 트라이에 삽입하는 것입니다. 예를 들어2 KIWI BANANA 는 KIWI -> BANANA의 경로를 만드는 것으로 KIWI 아래에 BANANA가 있는 것이지요. 결국 트라이를 재귀적으로 호출하여 안쪽 depth 까지..