라우팅과 데이터 모델링 보고서
1. 라우팅 (Routing)
URL, 서버, 라우팅, 핸들러의 관계
라우팅은 클라이언트가 요청한 URL(Uniform Resource Locator)에 따라 서버가 어떤 핸들러(Handler)를 실행할지 결정하는 과정이다. 이 관계는 웹 애플리케이션의 핵심 동작 원리로, 다음과 같이 설명할 수 있다.
- URL (클라이언트의 요청): 사용자가 브라우저 주소창에 특정 주소(
https://example.com/users)를 입력하면, 클라이언트는 해당 URL로 서버에 요청을 보낸다. - 서버(Server): 서버는 클라이언트의 요청을 가장 먼저 수신하는 주체이다.
- 라우터(Router): 서버 내에서 동작하는 라우터는 수신된 요청의 URL 경로(
/users)와 HTTP 메서드(GET, POST 등)를 분석한다. 라우터는 사전에 정의된 '라우팅 맵' 또는 '라우팅 테이블'을 참조하여 이 요청을 처리할 적절한 핸들러를 찾는다. - 핸들러(Handler): 핸들러는 특정 URL 요청을 실제로 처리하기 위해 작성된 함수 또는 로직이다. 라우터에 의해 선택된 핸들러는 데이터베이스 조회, 비즈니스 로직 수행, HTML 페이지 렌더링 등의 작업을 실행하고, 그 결과를 클라이언트에 응답으로 반환한다.
결론적으로, 라우팅은 URL이라는 주소지를 보고 라우터가 길을 찾아 핸들러라는 목적지에 요청을 정확히 전달하는 과정이다.
비유적 설명
라우팅과 핸들러의 관계는 내비게이션 시스템과 목적지에 비유할 수 있다.
- URL은 우리가 내비게이션에 입력하는 상세한 목적지 주소이다 (예:
서울시 강남구 테헤란로 212). - 서버는 모든 도로와 건물이 포함된 도시 전체와 같다.
- 라우터는 사용자의 요청을 받아 최적의 경로를 찾아 안내하는 내비게이션 시스템이다. 내비게이션은 목적지 주소(URL)를 분석하여 어떤 길로 가야 할지(라우팅) 결정한다.
- 핸들러는 내비게이션이 안내한 최종 목적지 건물이다. 이 건물에 도착해야만 방문(데이터 조회), 물건 배달(데이터 생성) 등 원래 하려던 작업을 수행할 수 있다.
즉, 라우터(내비게이션)는 URL(주소)을 보고 요청을 올바른 핸들러(목적지)로 안내하며, 핸들러는 그곳에서 실제 작업을 처리한다.
2. ERD (Entity-Relationship Diagram)
ERD는 데이터베이스의 구조를 시각적으로 표현하는 다이어그램으로, 개체(Entity), 속성(Attribute), 관계(Relationship)라는 세 가지 핵심 요소로 구성된다. 이를 통해 시스템이 다루는 데이터의 종류와 데이터 간의 상호작용을 명확하게 설계하고 이해할 수 있다.
- 개체(Entity): 저장되어야 할 데이터의 단위로, 데이터베이스의 테이블에 해당한다. (예:
User,Channel) - 속성(Attribute): 개체가 갖는 특성으로, 테이블의 컬럼에 해당한다. (예:
name,subscribers) - 관계(Relationship): 개체들 간의 상호 연관성을 나타낸다. (예: 1:1, 1:N, N:M)
ERD 예시: User와 Channel
개체 및 속성 정의
- User (사용자):
id(PK): 사용자 고유 식별자userId: 로그인 시 사용하는 아이디pwd: 비밀번호name: 사용자 이름
- Channel (채널):
id(PK): 채널 고유 식별자user_id(FK): 채널을 소유한 사용자의 ID (User테이블의id참조)channel_title: 채널 제목subscribers: 구독자 수description: 채널 설명
ERD 다이어그램
다음은 Channel 테이블과 User 테이블 간의 관계를 도식화한 ERD이다:
+-------------------+ +-------------------+
| User | | Channel |
+-------------------+ +-------------------+
| id (PK) |<---(1)| id (PK) |
| userId | | user_id (FK) |
| pwd | | channel_title |
| name | | subscribers |
+-------------------+ | description |
+-------------------+설명
- 1:N 관계:
- User와 Channel은 1:N 관계이다. 즉, 한 사용자는 여러 개의 채널을 가질 수 있지만, 하나의 채널은 반드시 하나의 사용자에 속한다.
- Primary Key와 Foreign Key:
- User 테이블의
id필드는 Primary Key로, 각 사용자를 고유하게 식별한다. - Channel 테이블의
user_id필드는 Foreign Key로, User 테이블의id와 관계를 맺는다.
- User 테이블의
- 데이터 무결성:
- Channel 테이블의
user_id는 User 테이블에 존재하는id값만을 가질 수 있다. 이를 통해 데이터베이스의 참조 무결성을 유지한다.
- Channel 테이블의
'Programmers' 카테고리의 다른 글
| [20일차]"SQL: 기본키, 외래키, 데이터 타입, 그리고 JOIN (0) | 2025.09.29 |
|---|---|
| [19일차]관계형 데이터베이스 관리 시스템(RDBMS) 개념과 주요 특징 (0) | 2025.09.25 |
| [17일차]Object.keys() , 모듈화, API 설계 (0) | 2025.09.24 |
| [16일차]핸들러, Array.prototype.find(), == 와 ===, 예외처리 (0) | 2025.09.24 |
| [15일차]forEach와 map, 리팩토링, HTTP Status Code (0) | 2025.09.21 |