테마
서비스 구조 4가지 패턴
학습 목표
- 웹 서비스의 4가지 아키텍처 패턴을 구분하고 설명할 수 있다.
- 각 패턴의 난이도, 비용, 유지보수 부담을 비교할 수 있다.
- 자신의 프로젝트에 적합한 패턴을 선택할 수 있다.
- **서버리스(Serverless)**의 개념과 장점을 이해할 수 있다.
개요
웹 서비스의 구조는 크게 4가지 패턴으로 나뉜다. 숫자가 커질수록 복잡해지고, 할 수 있는 것도 많아진다. 하지만 복잡하다고 반드시 좋은 것은 아니다. 목적에 맞는 가장 단순한 구조를 선택하는 것이 핵심이다.
| 패턴 | 구성 | 난이도 | 예시 |
|---|---|---|---|
| ① | Frontend만 | ★☆☆☆☆ | 계산기, PDF 변환기 |
| ② | Frontend + 서버리스 + 외부 데이터 | ★★☆☆☆ | 날씨 정보, 환율 조회 |
| ③ | Frontend + 서버 + 외부 데이터 | ★★★★☆ | 뉴스 요약, 게임 전적 |
| ④ | Frontend + 서버 + DB | ★★★★★ | 회원가입, 게시판, 댓글 |
패턴 ①: 화면만 있는 사이트 (Frontend만)
난이도: ★☆☆☆☆ | 서버 필요: 없음 | DB 필요: 없음
특징
- 모든 로직이 **사용자의 브라우저(클라이언트)**에서 실행된다
- 외부 서버와 통신하지 않는다
- 데이터 저장이 필요 없는 서비스에 적합하다
대표 예시
| 서비스 | 설명 |
|---|---|
| 계산기 | 숫자 입력 → 계산 결과 표시 |
| PDF 변환기 | 파일 업로드 → 브라우저에서 변환 → 다운로드 |
| 이미지 리사이즈 | 이미지 업로드 → 크기 조절 → 다운로드 |
| 색상 팔레트 생성기 | 색상 선택 → 조합 생성 |
| 텍스트 카운터 | 텍스트 입력 → 글자 수/단어 수 표시 |
장점과 단점
| 장점 | 단점 |
|---|---|
| 구현이 가장 쉽다 | 외부 데이터를 활용할 수 없다 |
| 서버 비용이 0원 | 기능 확장에 한계가 있다 |
| 배포가 매우 간단하다 | 복잡한 처리는 느릴 수 있다 |
패턴 ②: 화면 + 외부 데이터 (Frontend + 서버리스 + 외부 데이터)
난이도: ★★☆☆☆ | 서버 필요: 서버리스 | DB 필요: 없음
서버리스(Serverless)란?
서버리스는 "서버가 없다"는 뜻이 아니다. **"서버를 직접 관리하지 않아도 된다"**는 뜻이다.
| 비교 항목 | 전통적 서버 | 서버리스 |
|---|---|---|
| 서버 관리 | 직접 구매/설치/관리 | 클라우드가 자동 관리 |
| 비용 | 24시간 가동 = 항상 비용 | 사용한 만큼만 과금 |
| 확장성 | 트래픽 증가 시 직접 대응 | 자동 확장 |
| 시작 난이도 | 높음 | 낮음 |
비유: 전통적 서버는 자가용을 사서 직접 운전하는 것이고, 서버리스는 필요할 때만 택시를 타는 것이다.
대표 예시
| 서비스 | 외부 데이터 | 서버리스 역할 |
|---|---|---|
| 날씨 정보 | WeatherAPI | API 키 보호 + 데이터 전달 |
| 환율 정보 | 환율 API | 실시간 환율 조회 |
| 뉴스 헤드라인 | News API | 최신 뉴스 가져오기 |
| 주식 시세 | Stock API | 실시간 시세 조회 |
장점과 단점
| 장점 | 단점 |
|---|---|
| 외부 데이터를 활용할 수 있다 | 서버리스 함수 작성 필요 |
| 서버 관리 부담 없음 | 외부 API 의존성 |
| 비용이 거의 무료 | Cold Start(첫 호출 지연) 가능성 |
| 자동 확장 |
패턴 ③: 직접 서버 운영 (Frontend + 서버 + 외부 데이터)
난이도: ★★★★☆ | 서버 필요: 있음 | DB 필요: 없음 또는 캐시용
특징
- 직접 서버를 운영한다 (AWS EC2, DigitalOcean 등)
- 캐싱, 로깅, 복잡한 데이터 가공 등 더 많은 제어가 가능하다
- 하지만 서버 관리, 보안 업데이트, 비용 등 부담이 크다
대표 예시
| 서비스 | 서버가 필요한 이유 |
|---|---|
| 뉴스 요약 서비스 | 대량의 뉴스를 수집하고 AI로 요약 |
| 게임 전적 검색 | API 호출 결과 캐싱, 통계 계산 |
| 가격 비교 | 여러 쇼핑몰 가격을 주기적으로 수집 |
장점과 단점
| 장점 | 단점 |
|---|---|
| 완전한 제어 가능 | 서버 관리 필요 |
| 캐싱으로 빠른 응답 | 월 서버 비용 발생 |
| 복잡한 로직 처리 가능 | 보안 관리 필요 |
패턴 ④: 서버 + 데이터베이스 (Frontend + 서버 + DB)
난이도: ★★★★★ | 서버 필요: 있음 | DB 필요: 있음
특징
- 데이터를 직접 저장하고 조회하는 서비스
- 사용자 계정, 게시글, 댓글 등 영구 데이터가 필요한 경우
- 가장 복잡하지만 할 수 있는 것이 가장 많다
대표 예시
| 서비스 | DB가 필요한 이유 |
|---|---|
| 회원 시스템 | 사용자 정보 저장 |
| 게시판 | 글, 댓글 저장 |
| SNS | 팔로우, 좋아요, 피드 저장 |
| 이커머스 | 상품, 주문, 결제 정보 저장 |
장점과 단점
| 장점 | 단점 |
|---|---|
| 데이터 저장/조회 가능 | 가장 복잡한 구조 |
| 가장 많은 기능 구현 가능 | DB 관리 + 서버 관리 |
| 사용자 맞춤 서비스 가능 | 보안 리스크 (개인정보) |
4가지 패턴 한눈에 비교
패턴 선택 가이드
어떤 패턴을 선택할지 모르겠다면, 아래 의사결정 흐름을 따라가면 된다.
우리의 선택: ②번 패턴
이 학습 자료에서는 **②번 패턴(Frontend + 서버리스 + 외부 데이터)**을 선택한다.
선택 이유
| 기준 | ②번 패턴 평가 |
|---|---|
| 접근성 | 서버리스라 관리 부담 없음 |
| 비용 | 무료 범위 내에서 충분히 운영 가능 |
| 기능 | 외부 API를 활용해 ③번과 비슷한 기능 구현 가능 |
| 학습 효과 | 서버리스 개념을 배울 수 있다 |
| 확장성 | 나중에 ③, ④로 확장하기 좋은 출발점 |
핵심: ②번은 가장 적은 노력으로 가장 많은 것을 할 수 있는 최적의 시작점이다.
4가지 패턴 종합 비교표
| 항목 | ① Frontend만 | ② + 서버리스 | ③ + 서버 | ④ + 서버 + DB |
|---|---|---|---|---|
| 난이도 | ★☆☆☆☆ | ★★☆☆☆ | ★★★★☆ | ★★★★★ |
| 서버 비용 | $0 | $0~5 | $5~50+ | $10~100+ |
| 외부 데이터 | 불가 | 가능 | 가능 | 가능 |
| 데이터 저장 | 불가 | 불가 | 캐시 가능 | 완전 가능 |
| 유지보수 | 거의 없음 | 거의 없음 | 보통 | 높음 |
| 확장성 | 낮음 | 보통 | 높음 | 매우 높음 |
| 추천 대상 | 초보자 | 초보~중급 | 중급~고급 | 고급 |
핵심 정리
- 4가지 패턴 중 목적에 맞는 가장 단순한 구조를 선택하라.
- 서버리스는 서버를 직접 관리하지 않고도 서버 역할을 수행한다.
- ②번 패턴이 비용, 난이도, 기능의 균형이 가장 좋다.
- 처음부터 완벽한 구조를 만들 필요 없다. 시작한 뒤 확장하면 된다.