1. Express.js란Express.js는 Node.js를 위한 가장 인기 있는 웹 프레임워크입니다. 미니멀하고 유연한 설계로 웹 애플리케이션과 API를 빠르게 구축할 수 있습니다.npm install expressconst express = require('express');const app = express();app.get('/', (req, res) => { res.send('Hello World!');});app.listen(3000, () => { console.log('서버 실행 중: http://localhost:3000');});2. 라우팅2.1 기본 라우팅const express = require('express');const app = express();// HTTP 메서드별 ..
전체 글
운동을 좋아하는 8년차 웹 개발자 입니다.1. HTTP 클라이언트란Node.js에서 HTTP 클라이언트는 외부 API를 호출하거나 웹 페이지를 가져오는 데 사용됩니다. 내장 http/https 모듈을 사용하거나, axios, node-fetch 같은 라이브러리를 사용할 수 있습니다.2. 내장 http/https 모듈2.1 http.get - 간단한 GET 요청const https = require('https');https.get('https://api.github.com/users/octocat', { headers: { 'User-Agent': 'Node.js' }}, (res) => { let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', ()..
1. Koa.js란Koa.js는 Express.js 팀이 만든 차세대 웹 프레임워크입니다. async/await을 기본으로 사용하며, 더 작고 표현력 있는 미들웨어 구조를 제공합니다. Express보다 가벼우며 내장 기능이 적어 필요한 것만 선택적으로 추가합니다.npm install koaconst Koa = require('koa');const app = new Koa();app.use(async (ctx) => { ctx.body = 'Hello Koa!';});app.listen(3000);console.log('서버 실행 중: http://localhost:3000');2. 컨텍스트(Context)Koa는 요청과 응답을 하나의 ctx 객체로 캡슐화합니다.2.1 ctx 객체const Koa = r..
1. HTTP 모듈 소개Node.js의 http 모듈은 HTTP 서버와 클라이언트를 생성하기 위한 내장 모듈입니다. 별도의 패키지 설치 없이 웹 서버를 구축할 수 있습니다.const http = require('http');const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello, World!');});server.listen(3000, () => { console.log('서버가 http://localhost:3000 에서 실행 중');});2. 서버 생성 방법2.1 createServer 사용const http = require('http');..
#1. 파일 스트림이란파일 스트림은 대용량 파일을 메모리에 한 번에 로드하지 않고 작은 청크(chunk) 단위로 읽거나 쓰는 방식입니다. 메모리 효율적이며, 파일 크기에 관계없이 일정한 메모리만 사용합니다.const fs = require('fs');// 일반 방식: 전체 파일을 메모리에 로드const data = fs.readFileSync('large-file.txt'); // 메모리 부족 가능// 스트림 방식: 청크 단위로 처리const stream = fs.createReadStream('large-file.txt'); // 메모리 효율적2. 읽기 스트림 (Readable Stream)2.1 createReadStream 기본 사용const fs = require('fs');const read..
1. 디렉토리 생성1.1 mkdir - 디렉토리 생성const fs = require('fs');// 콜백 방식fs.mkdir('new-folder', (err) => { if (err) { console.error('디렉토리 생성 오류:', err); return; } console.log('디렉토리가 생성되었습니다.');});// 동기 방식try { fs.mkdirSync('new-folder'); console.log('디렉토리가 생성되었습니다.');} catch (err) { console.error('오류:', err);}1.2 Promise 기반 생성const fs = require('fs').promises;async function createDirectory(dirP..
1. 파일 삭제1.1 unlink - 파일 삭제const fs = require('fs');// 콜백 방식fs.unlink('file.txt', (err) => { if (err) { console.error('파일 삭제 오류:', err); return; } console.log('파일이 삭제되었습니다.');});// 동기 방식try { fs.unlinkSync('file.txt'); console.log('파일이 삭제되었습니다.');} catch (err) { console.error('파일 삭제 오류:', err);}1.2 Promise 기반 삭제const fs = require('fs').promises;async function deleteFile(filepath) { t..
1. fs 모듈 소개Node.js의 fs(File System) 모듈은 파일 시스템과 상호작용하기 위한 API를 제공합니다. 동기(Sync), 콜백, Promise 세 가지 방식으로 파일 작업을 수행할 수 있습니다.// 세 가지 API 스타일const fs = require('fs'); // 콜백 기반const fsSync = require('fs'); // 동기 (같은 모듈, Sync 접미사 메서드)const fsPromises = require('fs').promises; // Promise 기반// 또는const { readFile, writeFile } = require('fs/promises');2. 파일 읽기2.1 비동기 읽기 (콜백)const fs = requi..
1. EventEmitter란EventEmitter는 Node.js에서 이벤트 기반 프로그래밍을 구현하기 위한 핵심 클래스입니다. 이벤트를 발생시키고(emit) 리스너를 등록하여(on) 느슨하게 결합된 비동기 아키텍처를 구축할 수 있습니다. http, fs, stream 등 대부분의 Node.js 핵심 모듈이 EventEmitter를 기반으로 합니다.2. EventEmitter 생성const EventEmitter = require('events');// 방법 1: 직접 인스턴스 생성const emitter = new EventEmitter();// 방법 2: 클래스 상속class MyEmitter extends EventEmitter { constructor() { super(); this..
1. 타이머 함수란타이머 함수는 일정 시간 후 또는 주기적으로 코드를 실행하기 위한 글로벌 함수입니다. Node.js의 타이머는 브라우저의 타이머 API와 유사하지만, 이벤트 루프와 밀접하게 연관되어 있습니다. setTimeout, setInterval, setImmediate, process.nextTick이 주요 타이머 함수입니다.2. setTimeout지정된 시간 후 콜백 함수를 한 번 실행합니다.2.1 기본 사용법// 2초 후 실행setTimeout(() => { console.log('2초 후 실행됨');}, 2000);// 인자 전달setTimeout((name, age) => { console.log(`이름: ${name}, 나이: ${age}`);}, 1000, '홍길동', 30);2...
1. console 객체란console은 Node.js에서 표준 출력(stdout)과 표준 에러(stderr)로 메시지를 출력하기 위한 글로벌 객체입니다. 디버깅, 로깅, 성능 측정 등에 사용되며, 브라우저의 console과 유사한 API를 제공합니다.2. 기본 출력 메서드2.1 log, info, warn, error// 표준 출력 (stdout)console.log('일반 로그 메시지');console.info('정보 메시지');// 표준 에러 (stderr)console.warn('경고 메시지');console.error('에러 메시지');// 출력 스트림 차이// console.log → process.stdout// console.error → process.stderr2.2 형식 지정자// %..
1. process 객체란process는 현재 실행 중인 Node.js 프로세스에 대한 정보와 제어 기능을 제공하는 글로벌 객체입니다. 환경 변수 접근, 명령줄 인자 파싱, 프로세스 종료, 표준 입출력 스트림 등 시스템 수준의 다양한 기능을 제공합니다.2. 프로세스 정보2.1 기본 정보// Node.js 버전 정보console.log(process.version); // v20.10.0console.log(process.versions); // { node: '20.10.0', v8: '11.3.244.8', ... }// 프로세스 IDconsole.log(process.pid); // 12345console.log(process.ppid); // 부모 프로..
