Programmers 87

[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

[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

[10일차]웹 개발을 위한 HTTP 메서드와 Node.js

HTTP 메서드HTTP 메서드는 클라이언트가 서버에 요청을 보낼 때 사용하는 방식이다. 각 메서드는 리소스에 대한 행위를 정의하며, 웹 API 설계에서 중요한 역할을 한다.주요 메서드GET: 서버에서 데이터를 조회할 때 사용한다. 요청을 여러 번 반복해도 서버 상태가 변하지 않는 안전한 방식이다.POST: 새로운 리소스를 생성하거나 데이터를 서버에 전송할 때 사용한다. 호출 횟수에 따라 서버 상태가 달라질 수 있다.PUT: 지정된 URI에 리소스를 통째로 업데이트하거나 새로 생성할 때 사용한다. 멱등성을 가지며 반복 호출해도 같은 결과를 유지한다.PATCH: 리소스의 일부만 수정할 때 사용한다. 변경할 필드만 전송해 효율적인 업데이트를 가능하게 한다.DELETE: 지정된 리소스를 삭제할 때 사용한다. 멱..

Programmers 2025.09.12

[9일차] 웹 백엔드 아키텍처와 RESTful API 설계 규칙

백엔드 아키텍처 개요본 섹션에서는 웹 서비스의 표준 아키텍처 구성요소를 체계적으로 설명한다. 웹 서비스 아키텍처는 프론트엔드, 웹 서버, 웹 애플리케이션 서버, 데이터베이스로 구성된다.프론트엔드: 사용자 인터페이스를 제공하는 클라이언트 측 구성요소(브라우저, 모바일 애플리케이션 등)이다.웹 서버: 클라이언트 요청을 수신하여 적절한 웹 애플리케이션 서버로 라우팅하는 중개자 역할을 한다.웹 애플리케이션 서버: 핵심 비즈니스 로직을 처리하고 데이터베이스와의 통신을 관리한다.데이터베이스: 구조화된 데이터 저장소로서 영구적인 정보 보관 및 효율적인 검색 기능을 제공한다.각 계층 간 통신은 표준화된 요청-응답 패턴을 따른다. 엔터프라이즈 환경에서는 이러한 구성요소가 다중 서버와 네트워크에 분산되어 있다.API의 개..

Programmers 2025.09.11

[8일차]백엔드 개발 핵심 개념: 서버 구조, Node.js, HTTP, 라우터까지

백엔드 개발 핵심 개념 정리: 서버부터 라우터까지웹 서버, WAS, DB로 이루어진 백엔드 기본 구조부터 Node.js, HTTP, 라우터의 역할까지 전반적인 내용을 다룬다.1. 백엔드 3-Tier 아키텍처현대 웹 서비스의 백엔드는 대부분 웹 서버, 웹 애플리케이션 서버(WAS), 데이터베이스(DB)의 3계층(3-Tier) 구조로 이루어져 있다. 각 요소는 명확히 분리된 역할을 수행하며 시스템의 효율성과 안정성을 높인다.사용자 ↔ 웹 서버 ↔ WAS ↔ 데이터베이스 1-1. 웹 서버 (Web Server)역할: 사용자의 HTTP 요청을 가장 먼저 받는 '접수 창구'이다.주요 기능:정적 콘텐츠 제공: HTML, CSS, 이미지처럼 내용이 바뀌지 않는 파일(정적 콘텐츠)을 직접 사용자에게 전달한다.요청 분배..

Programmers 2025.09.08