전체 글 105

[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

[번외] Next.js와 Node.js

Next.js, Node.js와 같은 맥락일까?이전 글에서 우리는 Node.js가 '논블로킹 I/O'라는 철학을 바탕으로 탄생했음을 알아보았다. 그렇다면 오늘날 가장 주목받는 프레임워크 중 하나인 Next.js는 어떨까? 이 질문에 대한 답은 "그렇다"이다. Next.js는 Node.js의 철학을 계승하고, 그 잠재력을 극대화한 대표적인 프레임워크이다.1. Node.js와 Next.js의 관계: 엔진과 자동차두 기술의 관계를 비유하자면 다음과 같다.Node.js: JavaScript 코드를 서버에서 실행할 수 있게 해주는 기반 환경(런타임)이다. 자동차의 엔진과 섀시 같은 핵심 뼈대에 해당한다.Next.js: 그 Node.js라는 뼈대 위에서, 현대적인 웹 애플리케이션을 더 쉽고 강력하게 만들 수 있도록..

[번외]JS로 Node.js를 만든 이유

왜 JavaScript로 서버를 만들었나? Node.js와 전통적 서버 방식 비교브라우저에서만 사용되던 JavaScript가 어떻게 서버 개발의 판도를 바꾸었을까? Node.js의 등장은 "서버는 원래 이렇게 만드는 것"이라는 고정관념에 대한 도전이었다. 이 글에서는 Node.js가 탄생한 배경과 그 핵심 철학, 그리고 전통적인 서버 방식과의 차이점을 알아본다.1. 기존 서버의 한계: '기다림의 비효율', 블로킹 I/ONode.js가 등장하기 전, Java, PHP, Ruby 등으로 만들어진 대부분의 서버는 '요청 하나당 스레드(Thread) 하나' 방식으로 동작했다.스레드(Thread): 서버가 처리하는 작업의 단위. '일꾼'에 비유할 수 있다.이 방식의 가장 큰 문제는 I/O(입출력) 작업에서의 '기..

[7일차]CSS와 JS 실습

웹 프론트엔드 핵심 개념: CSS, JavaScript 기초 다지기웹 페이지는 크게 세 가지 요소로 구성된다. 바로 구조를 잡는 HTML, 디자인을 입히는 CSS, 그리고 동작을 부여하는 JavaScript이다. 이 글에서는 CSS와 JavaScript의 핵심적인 개념과 사용법에 대해 알아본다.1. CSS (Cascading Style Sheets)란 무엇인가?CSS는 웹 페이지의 시각적인 표현을 담당하는 스타일 시트 언어이다. HTML이 웹 페이지의 뼈대를 만드는 언어라면, CSS는 그 뼈대에 색상, 크기, 레이아웃, 폰트 등 디자인을 입히는 역할을 한다. 즉, '어떻게 보여줄 것인가'를 정의하는 언어이다.2. JavaScript (JS)란 무엇인가?JavaScript는 웹 페이지에 동적인 기능을 부여..

Programmers 2025.09.05

[6일차]웹 생태계의 이해와 HTML

웹 개발 기술 개요1. 웹(Web)과 인터넷(Internet)의 정의웹(World Wide Web)과 인터넷(Internet)은 종종 혼용되나, 개념적으로 명확한 차이가 존재한다.인터넷이 물리적인 도로망이라면, 웹은 그 도로 위에서 제공되는 서비스(건물, 상점 등)에 비유할 수 있다.인터넷 (Internet): 전 세계의 컴퓨터 네트워크를 상호 연결하는 거대한 통신 인프라 자체를 의미한다.웹 (World Wide Web): 인터넷을 기반으로 동작하는 서비스 중 하나로, HTTP 프로토콜과 하이퍼링크를 통해 사용자가 텍스트, 이미지 등의 정보에 접근할 수 있도록 하는 공간이다.2. 웹의 동작 원리: 클라이언트-서버 모델웹은 정보를 요청하는 클라이언트(Client)와 요청에 따라 정보를 제공하는 서버(Ser..

Programmers 2025.09.04

[5일차]프로젝트 관리 솔루션

Trello, Notion, Jira Software 비교1. 도구별 개요 및 특징Trello (트렐로)개요: 칸반 보드 스타일의 시각적인 프로젝트 관리 도구이다. 보드, 리스트, 카드라는 간단한 구조를 통해 직관적으로 업무 현황을 파악하고 관리하는 것이 특징이다.특징:직관성: 드래그 앤 드롭 방식으로 작업 상태를 쉽게 변경할 수 있어 사용법이 매우 직관적이다.확장성: Power-Ups 기능을 통해 외부 서비스를 연동하여 기능을 확장할 수 있다.유연성: 칸반 방식 외에도 아이디어 보드, 개인 일정 관리 등 다양한 목적으로 활용 가능하다.Notion (노션)개요: 올인원 워크스페이스를 지향하는 생산성 도구이다. 문서 관리, 데이터베이스, 프로젝트 관리를 하나의 앱에서 모두 해결할 수 있다. 레고 블록처럼 ..

Programmers 2025.09.03

[4일차] Git Marge

Git을 사용한 협업의 핵심, '병합(Merge)'브랜치는 왜 만들까?Git에서 브랜치(branch)를 새로 만든다는 것은 곧 **"협업"**의 시작을 의미했다. 여러 개발자가 동시에 각자의 기능을 개발하기 위해 독립적인 작업 공간(브랜치)을 만드는 것이다.병합의 흐름: Pull Request개발이 완료된 브랜치(추가 가지)는 기본이 되는 base 브랜치(주로 main 또는 develop)에 합쳐져야 했다. 이 과정을 '병합'이라고 부른다. 우리는 주로 GitHub을 통해 이 병합 과정을 진행했다. GitHub에서는 main 브랜치를 보호(Protect)하여 아무나 직접 코드를 수정할 수 없도록 설정할 수 있었다. 그래서 "제가 만든 feature 브랜치를 main 브랜치에 병합해주세요!"라고 요청하는 ..

Programmers 2025.09.02

Github 연결, 업로드, clone, branch

Github 리포지토리 생성 후 Github와 연결하고 로컬 환경에 있는 파일을 올리기, 올려져 있는 파일을 내려받아 사용하기 실습을 진행하였다. 그리고 브랜치(branch)에 대한 개념과 실습을 진행하였다. 브랜치(Branch): 독립적인 작업 흐름을 만드는 방법Git의 브랜치는 '독립된 작업 공간' 혹은 **'프로젝트의 복사본'**으로 비유할 수 있다. 공식적으로는 특정 커밋을 가리키는 '포인터'라고 정의하지만, 협업의 관점에서는 **'원본은 그대로 두고, 새로운 기능을 안전하게 개발하는 별도의 흐름'**으로 이해하면 된다. 중요한 원본 문서는 그대로 보존한 채, 복사본을 만들어 자유롭게 수정하는 것과 같은 원리이다. 이때 만들어진 복사본이 바로 '브랜치'가 된다.그렇다면 왜 브랜치를 사용하는가?..

Programmers 2025.09.01