반응형

Study 13

라우팅 (Routing) 정의하기 🚦

라우팅 (Routing) 정의하기 🚦Express.js의 가장 핵심적인 기능 중 하나는 라우팅(Routing) 입니다. 라우팅은 클라이언트의 특정 요청, 즉 HTTP 메소드(GET, POST 등)와 URL 경로(Path)의 조합에 대해 애플리케이션이 어떻게 응답할지를 결정하는 메커니즘을 말합니다.예를 들어, 사용자가 브라우저에서 https://my-site.com/users 주소로 접속(GET 요청)했을 때 사용자 목록을 보여주고, https://my-site.com/users 주소로 어떤 데이터를 전송(POST 요청)했을 때는 새로운 사용자를 생성하도록 만드는 것이 바로 라우팅의 역할입니다.1. 기본 라우팅 구조Express에서의 라우팅 정의는 매우 직관적이고 간결합니다. 기본 구조는 다음과 같습니다..

Async/Await: 동기 코드처럼 비동기 코드 작성하기 MAGIC ✨

Async/Await: 동기 코드처럼 비동기 코드 작성하기 MAGIC ✨Async/Await는 ES2017(ES8)에 도입된 기능으로, 프로미스를 기반으로 동작하는 문법적 설탕(Syntactic Sugar) 입니다. 즉, 새로운 기능이 아니라 기존의 프로미스를 더 편하고 직관적으로 사용하기 위한 방법입니다. Async/Await를 사용하면 프로미스의 .then() 체이닝이나 콜백 없이, 마치 동기적인 코드를 작성하는 것처럼 비동기 로직을 구성할 수 있습니다.Java 개발자에게는 비동기 코드가 순차적인 로직처럼 보이기 때문에 가장 이해하기 쉽고 선호되는 방식일 수 있습니다.1. async 함수함수 선언 앞에 async 키워드를 붙이면, 해당 함수는 항상 프로미스를 반환하는 비동기 함수가 됩니다.함수 내부에..

4️⃣ 비동기 프로그래밍 마스터하기: Node.js의 심장 ⚡

4️⃣ 비동기 프로그래밍 마스터하기: Node.js의 심장 ⚡Node.js가 단일 스레드로도 높은 처리량을 낼 수 있는 비결은 바로 이벤트 기반 아키텍처와 논블로킹 I/O를 활용한 비동기 프로그래밍에 있습니다. 이전 챕터들에서 간략히 언급되었던 이 개념들을 이번 챕터에서 집중적으로 파헤쳐 보겠습니다.Java에서는 주로 여러 스레드를 만들어 각 스레드가 작업을 순차적으로 처리(동기)하거나, 작업이 완료될 때까지 기다리는(블로킹) 방식으로 동시성을 다루었습니다. Node.js는 이와는 다른 접근 방식을 취합니다.이 챕터를 통해 비동기 프로그래밍의 기본 개념부터 시작하여, 콜백(Callback), 프로미스(Promise), 그리고 최신의 async/await 문법까지 단계별로 학습하며 Node.js 스타일의 ..

NPM (Node Package Manager) 심층 분석 - 패키지 설치, 업데이트, 삭제 명령어 (npm install, npm update, npm uninstall)

패키지 설치, 업데이트, 삭제 명령어 (npm install, npm update, npm uninstall)NPM의 가장 기본적인 기능은 외부 패키지를 프로젝트에 추가(설치)하고, 버전을 관리(업데이트)하며, 더 이상 필요 없는 패키지를 제거(삭제)하는 것입니다. 이러한 작업은 모두 터미널에서 npm 명령어를 통해 이루어집니다.1. 패키지 설치 (npm install)npm install 명령어는 다양한 방법으로 사용될 수 있습니다.특정 패키지 설치:Bash npm install 예를 들어, 웹 프레임워크인 Express.js를 설치하려면 다음과 같이 입력합니다.이 명령을 실행하면 다음과 같은 일들이 일어납니다:NPM은 NPM Registry에서 express 패키지의 최신 안정 버전을 찾습니다.exp..

NPM (Node Package Manager) 심층 분석- package.json의 역할과 중요성 (Java의 pom.xml 또는 build.gradle과 유사)

3️⃣ NPM (Node Package Manager) 심층 분석 📦이전 챕터에서 Node.js가 제공하는 핵심 모듈들을 살펴보았습니다. 하지만 실제 애플리케이션을 개발하다 보면 핵심 모듈만으로는 부족한 경우가 많습니다. 특정 데이터베이스와의 연동, 복잡한 날짜/시간 처리, HTTP 요청을 더 쉽게 보내는 방법 등 다양한 기능들이 필요해집니다.이때 등장하는 것이 바로 NPM (Node Package Manager) 입니다. NPM은 다음과 같은 주요 역할을 합니다.패키지 저장소 (Registry): 전 세계 개발자들이 만든 수많은 Node.js 패키지(라이브러리 또는 모듈)가 공개적으로 저장되어 있는 거대한 온라인 데이터베이스입니다. 필요한 기능을 가진 패키지를 검색하고 다운로드할 수 있습니다.명령줄 ..

카테고리 없음 2025.06.04

주요 내장 모듈 살펴보기 - os: 운영체제 정보 접근,url: URL 파싱 및 조작

5. os 모듈: 운영체제 정보 길잡이 🖥️os 모듈은 현재 실행 중인 운영체제 및 시스템과 관련된 다양한 정보를 가져올 수 있는 유틸리티 함수들을 제공합니다. 애플리케이션이 실행되는 환경에 따라 다른 동작을 수행해야 하거나, 시스템 리소스 정보를 로깅해야 할 때 유용하게 사용될 수 있습니다. Java의 System.getProperty()를 통해 얻을 수 있는 일부 정보들과 유사한 기능을 제공합니다.os 모듈을 사용하려면 먼저 require 해야 합니다.JavaScript const os = require('os');주요 os 모듈 함수 예시:os.EOL: 운영체제의 줄 바꿈 문자(End-Of-Line marker)를 나타내는 상수입니다. Windows에서는 \r\n이고, POSIX 시스템(macOS..

주요 내장 모듈 살펴보기 - events: 이벤트 기반 프로그래밍의 핵심 (Java의 이벤트 리스너와 유사점)

4. events 모듈: 이벤트 기반 프로그래밍의 심장 ❤️Node.js의 많은 객체는 '이벤트'를 발생시킵니다. 예를 들어, fs.ReadStream 객체는 파일에서 데이터를 읽을 때마다 'data' 이벤트를 발생시키고, 파일 읽기가 끝나면 'end' 이벤트를 발생시킵니다. http.Server 객체는 클라이언트 요청이 들어올 때마다 'request' 이벤트를 발생시킵니다.events 모듈은 이러한 이벤트 기반 프로그래밍을 직접 구현하고 활용할 수 있도록 EventEmitter 클래스를 제공합니다. EventEmitter는 특정 종류의 이벤트가 발생했을 때 호출될 함수(리스너)를 등록하고, 해당 이벤트를 발생시키는(emit) 기능을 가진 객체입니다.Java로 비유하자면, Swing이나 JavaFX에서 ..

주요 내장 모듈 살펴보기- http: HTTP 서버 및 클라이언트 생성 (Java의 java.net.HttpURLConnection 또는 서블릿 API와 비교)

2. http 모듈: 웹 서버와 클라이언트의 모든 것 🌐http 모듈은 Node.js를 사용하여 HTTP 서버를 만들거나 다른 HTTP 서버에 요청을 보내는 클라이언트 기능을 구현할 때 사용됩니다. 앞서 "Hello Node.js!" 예제에서 간단히 경험해 보셨듯이, 이 모듈은 Node.js가 웹 서버로 동작할 수 있게 하는 핵심 기반입니다. Java의 java.net.HttpURLConnection, java.net.ServerSocket, 서블릿 API (예: javax.servlet.http.HttpServlet) 등과 유사한 역할을 수행한다고 볼 수 있습니다.주요 http 모듈 기능 및 객체:http.createServer([options], [requestListener]): 새로운 HTTP ..

주요 내장 모듈 살펴보기

주요 내장 모듈 살펴보기 🔍Node.js에는 별도의 설치 없이 require()를 통해 바로 사용할 수 있는 다양한 내장 모듈들이 있습니다. 이 모듈들은 파일 시스템 제어, HTTP 통신, 운영체제 정보 접근 등 서버 개발에 필수적인 기능들을 제공합니다. 마치 Java의 표준 라이브러리 (JDK에 포함된 java.lang, java.io, java.net 등)와 같다고 생각하시면 됩니다.이번 섹션에서는 가장 자주 사용되고 중요한 몇 가지 내장 모듈을 중심으로 살펴보겠습니다.1. fs (File System) 모듈: 파일 다루기의 모든 것 📁fs 모듈은 파일 시스템과 상호작용하는 데 필요한 모든 기능을 제공합니다. 파일 읽기, 쓰기, 디렉토리 생성 및 삭제, 파일 정보 확인 등 다양한 작업을 수행할 수..

Java vs. Node.js: 서버 사이드 패러다임 비교 🔄

Java vs. Node.js: 서버 사이드 패러다임 비교 🔄Java와 Node.js는 각각 다른 철학과 구조를 가지고 서버 사이드 애플리케이션을 구축합니다. 이 둘의 핵심적인 차이점을 이해하는 것은 Node.js를 효과적으로 학습하고 활용하는 데 큰 도움이 될 것입니다.1. 런타임 환경 및 실행 모델Java:런타임: JVM (Java Virtual Machine) 위에서 실행됩니다. 바이트코드로 컴파일된 클래스 파일들을 JVM이 해석하고 실행합니다.실행 모델 (주로): 멀티스레드(Multi-thread) 기반의 동기(Synchronous) 처리 모델을 주로 사용합니다.클라이언트의 요청마다 별도의 스레드를 할당하거나 (Thread-per-request), 스레드 풀(Thread Pool)을 사용하여 요..

728x90
반응형