1️⃣ 서비스 Flow 및 처리과정 설계
✅ Flow 의 세 가지 유형
| Flow 유형 | 설명 | 관련 요소 예시 |
|---|
| 서비스 Flow | 사용자와의 상호작용 흐름 | 로그인, 검색, 예약 등 |
| 데이터 Flow | 데이터의 이동 및 처리 흐름 | DB조회, API 호출, 파일 저장 등 |
| 프로세스 Flow | 처리 로직의 절차적 흐름 | 인증 → 비즈니스 로직 → 응답 |
🔹서비스 Flow : 사용자의 요청이 클라우드 상의 다양한 컴퓨팅 자원을 거쳐 처리된 뒤 응답되는 전체 경로를 의미
사용자 중심의 요청 → 처리 → 응답 구조
🔹데이터 Flow : 서비스 내부에서 데이터가 어떻게 이동하고 처리되는지 보여주는 흐름
데이터 흐름 설계의 핵심: CRUD 기반
🔹프로세스 Flow : 서비스 내에서 사용자 요청을 처리하기 위한 단계별 처리 절차
2️⃣ 데이터 흐름
✅ Rest API
- 클라이언트와 서버 간 HTTP 기반 통신을 위한 인터페이스
- 리소스(데이터)에 접근하기 위한 규칙을 명확히 정의
CRUD 방식과 HTTP 메서드
| HTTP 메서드 | 동작 | 설명 |
|---|
| GET | Read | 리소스 조회 |
| POST | Create | 리소스 생성 |
| PUT | Update | 리소스 전체 수정 |
| DELETE | Delete | 리소스 삭제 |
Rest API 의 장점과 단점
| 항목 | 장점 | 단점 |
|---|
| 구조 | 단순하고 학습이 쉬움 | 복잡한 트랜잭션 구현 어려움 |
| 표준성 | HTTP 기반으로 다양한 시스템과 호환 | HTTP 외 다른 프로토콜과는 호환성 낮음 |
| 유지보수 | 클라이언트/서버 분리로 확장성, 유지보수 유리 | URI가 많아지면 관리 어려움 |
| 속도 | 캐시로 성능 향상 가능 | 대용량 데이터 시 트래픽 과부하 가능 |
| 보안 | 토큰, OAuth 등 인증 기능 활용 가능 | 별도 설정 없으면 정보 노출 위험 |
| 범용성 | 모바일/웹/서버 등과 잘 호환됨 | 실시간 양방향 통신에는 부적합 (웹소켓 필요) |
✅ 메시지 미들웨어
- 애플리케이션 사이에서 데이터를 중개하는 소프트웨어
- REST API는 동기식이지만, 메시지 미들웨어는 주로 비동기식
- 대용량 처리 또는 실시간 통신 필요 시 적합 (예: 채팅 서버, IoT)
주요 유형
- RPC (Remote Procedure Call): 원격지 함수 호출, 소켓통신 방식
- ORB (Object Request Broker): 객체 기반 공유
- MOM (Message Oriented Middleware): 메시지 기반 통신, MQ 시스템
Message Queue 의 장점
| 항목 | 설명 |
|---|
| 비동기성 | 요청 후 기다리지 않고 처리 가능 |
| 비동조성 | 시스템 간 강한 연결 없이 작동 |
| 탄력성 | 일부 장애 발생 시에도 전체 중단 방지 |
| 과잉 허용성 | 실패 시 재처리 가능 |
| 보증성 | 메시지의 처리 상태 추적 가능 |
| 확장성 | 다수의 생산자/소비자 구조 확장 쉬움 |
3️⃣ 서비스 흐름도
- 사용자 요청이 어떤 순서와 흐름으로 전달•처리•응답되는지를 시각화
- 구성 요소 간의 데이터 흐름과 처리 단계를 중심으로 표현
- 서비스 단위의 책임 구분 & 요청이 어디에서 시작되어 어떻게 처리되는지를 이해하기 위한 설계 도구
✅ 주요 구성 요소
| 구성요소 | 역할 설명 |
|---|
| User (사용자) | 서비스를 사용하는 최종 사용자 |
| Frontend | 사용자와 직접 상호작용하는 UI (웹, 앱 등) |
| Backend | 클라이언트 요청을 처리하는 서버 영역 |
| Application Logic | 핵심 기능 수행 (예: 예약 처리, 계산, 인증 등) |
| Database (DB) | 데이터를 저장하고 조회 |
| External API | 외부 서비스와의 연동 (예: 결제, 문자 인증 등) |
✅ 서비스 흐름도의 목적과 역할
| 항목 | 설명 |
|---|
| 요청 경로 명확화 | 요청이 어디서 시작되어 어디로 전달되는지 흐름을 정확하게 그림 |
| 역할 분리 | UI, 처리 로직, 데이터 저장을 분리해서 설계함으로써 유지보수 용이 |
| 보안 고려 | 민감 데이터가 이동하는 구간에 대한 보안 설계 필요 |
| 확장 고려 | 향후 사용자 증가, API 연동 증가 등을 염두에 둔 구조화 |
4️⃣ 서비스 흐름도 설계
- 목표 정의: 시스템이 달성해야 하는 핵심 목표를 명확히 설정
- 사용자 시나리오 작성: 각 사용자가 시스템을 이용하는 과정을 시간 흐름에 따라 구체적으로 작성
- 기능 목록 도출: 시나리오 기반으로 필요한 핵심 기능과 부가 기능 목록화
- 서비스 그룹핑: 유사 기능들을 묶어 도메인별 서비스 블록으로 정리
- 데이터 흐름 설계: 기능 간 데이터 전달 경로, 처리 순서, API 호출 등을 정의
- 최종 흐름도 작성: 사용자 → 시스템 → 외부 시스템 간 서비스 전체 흐름도 시각화
✅ 도서관 예약 시스템 서비스 흐름도

