전체 글 105

[과제] Express 실행 구조 요약 및 정리

Express 애플리케이션의 실행 구조 보고서Express의 실행 구조Express 애플리케이션은 미들웨어(Middleware)의 연속적인 체인으로 구성되며, 클라이언트가 요청을 보냈을 때 요청이 처리되는 방식은 단계별로 명확하게 정의되어 있다. 클라이언트 요청은 app.js 파일에 정의된 미들웨어 스택을 순차적으로 통과하며, 최종적으로 응답을 반환한다.실행 과정HTTP 요청 수신 및 미들웨어 스택 시작:클라이언트의 요청이 Express 애플리케이션으로 전달된다.최상단 미들웨어의 순차적 실행:app.use()로 등록된 미들웨어가 순차적으로 실행된다. 이 과정에서 요청의 데이터를 전처리하거나 특정 조건을 확인한다.주요 미들웨어:app.use(logger("dev"));// → 요청이 들어올 때마다 로그를 ..

[18일차]웹 애플리케이션 동작 원리, ERD와 관계 예시

라우팅과 데이터 모델링 보고서1. 라우팅 (Routing)URL, 서버, 라우팅, 핸들러의 관계라우팅은 클라이언트가 요청한 URL(Uniform Resource Locator)에 따라 서버가 어떤 핸들러(Handler)를 실행할지 결정하는 과정이다. 이 관계는 웹 애플리케이션의 핵심 동작 원리로, 다음과 같이 설명할 수 있다.URL (클라이언트의 요청): 사용자가 브라우저 주소창에 특정 주소(https://example.com/users)를 입력하면, 클라이언트는 해당 URL로 서버에 요청을 보낸다.서버(Server): 서버는 클라이언트의 요청을 가장 먼저 수신하는 주체이다.라우터(Router): 서버 내에서 동작하는 라우터는 수신된 요청의 URL 경로(/users)와 HTTP 메서드(GET, POST ..

Programmers 2025.09.25

[17일차]Object.keys() , 모듈화, API 설계

1. Object의 빈 상태 확인 방법JavaScript에서 객체가 비어있는지 확인하는 데에는 Object.keys()를 활용하면 된다.1.1 Object.keys()Object.keys() 메서드는 주어진 객체의 속성 이름들을 일반적인 반복문과 동일한 순서로 순회되는 열거할 수 있는 배열로 반환한다. 이 배열의 길이가 0인지 확인하여 객체가 비어있는지 판단할 수 있다.const obj = {};if (Object.keys(obj).length === 0) { console.log("객체는 비어있습니다.");}2. 함수로 만들어 빼두면 좋은 점 (모듈화란)모듈화(Modularization)란, 소프트웨어의 복잡한 문제를 해결하기 위해 전체 시스템을 독립적인 기능을 수행하는 작은 단위인 모듈(Module..

Programmers 2025.09.24

[16일차]핸들러, Array.prototype.find(), == 와 ===, 예외처리

핸들러(Handler): 특정 이벤트를 처리하는 메서드핸들러는 특정 이벤트나 조건이 발생했을 때, 이를 처리하기 위해 지정된 함수나 코드 블록이다. 이벤트 기반 프로그래밍에서 핵심적인 역할을 담당하며, 사용자의 입력, 시스템의 알림, 데이터의 변화 등 다양한 상황에 대한 반응을 정의한다.예를 들어, 웹 페이지의 버튼을 클릭했을 때 특정 동작을 수행하게 하려면 '클릭 이벤트'에 대한 핸들러를 등록해야 한다.JavaScript const button = document.getElementById('myButton');// 'click' 이벤트가 발생했을 때 실행될 핸들러 함수function handleClick() { console.log('버튼이 클릭되었습니다!');}// 버튼에 클릭 이벤트 핸들러를 등..

Programmers 2025.09.24

[15일차]forEach와 map, 리팩토링, HTTP Status Code

forEach와 map의 핵심 차이점forEach와 map은 둘 다 배열의 각 요소를 순회하는 고차 함수이지만,목적과 반환값에서 근본적인 차이가 있다.1. forEach목적: 단순 반복 실행forEach는 배열의 각 요소를 가지고 주어진 함수(콜백)를 단순히 실행하는 것이 목적이다.각 요소에 대해 어떤 '행동(Action)'을 수행하고 싶을 때 사용한다.반환값: undefinedforEach는 항상 undefined를 반환한다.즉, 메서드 호출의 결과로 새로운 값을 만들어내지 않는다.예시 코드 (DB에 저장)// 가상의 DB 객체const db = { save: (data) => console.log(`${data.productId}번 상품 DB에 저장 성공!`)};const newOrders = [ ..

Programmers 2025.09.21

[14일차]HTTP POST, Postman 실습

POST 요청POST란?HTTP 메서드 중 POST는 서버에 새로운 데이터를 생성(등록)할 때 사용하는 방식이다.주로 회원가입, 게시글 작성, 상품 등록 등 새로운 정보를 서버에 전달·저장할 때 사용된다.POST 요청의 특징데이터를 HTTP의 본문(body)에 담아 전송(URL이 아니라 body에 데이터를 넣어 보냄)주로 application/json, application/x-www-form-urlencoded 같은 타입으로 데이터 전송서버에서는 req.body를 통해 전달받은 데이터에 접근GET과의 차이점GET: URL에 데이터를 쿼리스트링(req.query) 또는 파라미터(req.params)로 전달예시: /user?id=123POST: 데이터가 HTTP 요청의 body에 포함됨(URL에서 데이터가..

Programmers 2025.09.18

[13일차]Map 객체 활용, Express Generator, JS함수 선언 방식

1. Express에서 Map 객체에 Object를 저장하고 활용하는 방법JavaScript의 Map 객체는 키-값 쌍의 효율적인 저장과 관리를 가능하게 하는 자료구조이다. 이 구조를 활용하면 객체 자체를 값으로 저장할 수 있으므로, 데이터베이스의 역할을 간단하게 대체할 수 있다. 아래는 상품 정보를 객체로 정의하고, 이를 Map에 저장한 뒤 Express로 제공하는 예시이다.let Laptop = { name: "Laptop", price: 1000, des: "A high performance laptop" };let db = new Map();db.set(1, Laptop);app.get("/products/:id", (req, res) => { const id = parseInt(req.para..

Programmers 2025.09.17

[12일차]데이터 자료형, Express 쿼리 스트링, 네이밍 규칙, Map과 Object

Javascript 자료형 변환, 구조분해, Map vs Object, 쿼리스트링, 네이밍 규칙1. 자료형 변환(Type Conversion)개념params의 값은 기본적으로 문자열(String) 형태로 전달된다.숫자(Number)나 불리언(Boolean) 등 다른 자료형으로 사용하기 위해서는 형 변환(type conversion)이 필요하다.다양한 자료형 변환 방법Number(): 문자열 → 숫자const str = "123";const num = Number(str); // 123 (number)parseInt(), parseFloat(): 문자열 → 정수/실수const intVal = parseInt("42"); // 42const floatVal = parseFloat("3.14"); // 3..

Programmers 2025.09.17

[과제] Node.js 기본 생태계(패키지 매니저, NPM 등) 정리 및 업로드

Node.js 기본 생태계(코어 및 주요 도구)Node.js의 기본 생태계란 Node.js 개발 환경에서 주로 사용되는 코어 구성요소, 도구, 패키지, 그리고 관련 서비스들을 의미한다. 아래는 Node.js의 대표적인 기본 생태계 구성 요소들이다.1. Node.js 런타임자바스크립트 코드를 서버 또는 다양한 환경에서 실행할 수 있게 해주는 런타임이다.V8 엔진 기반으로 작동하며, 비동기 I/O, 이벤트 루프 등 특징을 가진다.2. npm (Node Package Manager)Node.js의 공식 패키지 매니저이다.오픈 소스 패키지를 설치, 관리, 배포할 수 있다.package.json 파일로 프로젝트의 의존성을 관리한다.명령어: npm install, npm init, npm run 등3. 패키지(모듈..

[11일차] Express, Json, params 동적 라우팅

1. Express 모듈Express는 Node.js 환경에서 동작하는 웹 애플리케이션 프레임워크이다.Express는 서버 구축을 간편하게 해주며, 라우팅, 미들웨어, 요청/응답 처리 등 웹 개발에 필요한 다양한 기능을 제공한다.이를 통해 개발자는 복잡한 네이티브 HTTP 모듈보다 훨씬 쉽게 웹 서버를 만들 수 있다.2. http 기본 모듈과 Express의 차이점Node.js의 http 기본 모듈은 저수준의 API로, 개발자가 직접 요청(Request)과 응답(Response)을 처리해야 한다. 라우팅, 파라미터 처리, 에러 처리, 미들웨어 등 웹 개발에 자주 쓰이는 기능이 내장되어 있지 않다.반면, Express는 이러한 기능들을 간편하게 사용할 수 있도록 추상화한 고수준의 API를 제공한다. 라우팅..

Programmers 2025.09.15