📘 Node.js 실무 백엔드 개발

 

 

📖 4장. 데이터 처리와 모델 설계


4.1 데이터의 역할

백엔드 시스템에서 데이터는 핵심 자산이다.
모든 기능은 데이터를 생성(Create), 조회(Read), 수정(Update), 삭제(Delete)하는 과정으로 구성된다.

Create → Read → Update → Delete (CRUD)

이러한 데이터 흐름을 안정적으로 관리하는 것이 서버 설계의 핵심이다.


4.2 데이터베이스의 필요성

애플리케이션은 메모리에만 데이터를 저장할 경우 다음과 같은 문제가 발생한다:

  • 서버 재시작 시 데이터 손실
  • 다중 사용자 환경에서 동기화 불가
  • 대용량 데이터 처리 불가능

이를 해결하기 위해 데이터베이스를 사용한다.


4.3 데이터베이스 종류

데이터베이스는 크게 두 가지로 구분된다:

관계형 데이터베이스 (RDBMS)

  • 테이블 기반 구조
  • SQL 사용
  • 예: MySQL, PostgreSQL

NoSQL 데이터베이스

  • 유연한 구조
  • JSON 기반 저장
  • 예: MongoDB

4.4 MongoDB 선택 이유

MongoDB는 Node.js 환경에서 많이 사용되는 NoSQL 데이터베이스이다.

특징:

  • JSON 형태의 데이터 저장
  • 스키마 유연성
  • 빠른 개발 속도

4.5 ODM 개념

Node.js에서 MongoDB를 사용할 때는 ODM(Object Data Modeling)을 사용한다.

ODM의 역할:

  • 데이터 구조 정의
  • 데이터 검증
  • 쿼리 간소화

대표적으로 Mongoose가 사용된다.


4.6 데이터 모델 설계

모델(Model)은 데이터 구조를 정의하는 계층이다.

예: 사용자(User)

User
- username
- password
- createdAt

4.7 스키마 설계 원칙

1) 최소 데이터 원칙

필요한 데이터만 저장


2) 일관성 유지

데이터 형식 통일


3) 확장성 고려

추후 기능 추가 가능하도록 설계


4.8 게시글 모델 설계

게시판 시스템의 기본 구조는 다음과 같다:

Post
- title
- content
- author
- createdAt

4.9 관계 설계

사용자와 게시글은 다음 관계를 가진다:

User 1 : N Post

즉, 한 명의 사용자가 여러 개의 게시글을 작성할 수 있다.


4.10 데이터 흐름 구조

데이터는 다음과 같은 흐름으로 처리된다:

요청 → Controller → Service → Model → DB

각 계층은 다음 역할을 가진다:

  • Controller: 요청 처리
  • Service: 로직 처리
  • Model: 데이터 정의

4.11 입력 데이터 처리

클라이언트에서 전달된 데이터는 반드시 검증되어야 한다.

검증 항목:

  • 필수 값 여부
  • 데이터 타입
  • 문자열 길이

4.12 데이터 직렬화

서버는 데이터를 JSON 형태로 반환한다.

객체(Object) → JSON → 클라이언트

JSON은 웹에서 표준 데이터 형식으로 사용된다.


4.13 정리

이 장에서는 데이터 처리의 기본 개념과 모델 설계를 학습하였다.

핵심 내용:

  • CRUD 구조 이해
  • 데이터베이스의 필요성
  • 모델 설계 원칙
  • 데이터 흐름 구조

다음 장에서는 비즈니스 로직을 처리하는 서비스 계층을 설계한다.

+ Recent posts