계정계 정보계 채널계 구조
금융 시스템의 핵심 아키텍처를 이루는 기본 구조인 “계정계·정보계·채널계”를 이해하자!
📍 계정계 / 정보계 / 채널계 구조 요약
구분 | 주요 역할 | 예시 시스템 | 기술적 특징 |
---|---|---|---|
계정계 (Core Banking System) | 실시간 거래 처리 (입출금, 이체 등) | 송금, 예금, 대출 시스템 | 실시간성, 데이터 정합성, 안정성 요구, 대부분 OLTP |
정보계 (Information System) | 데이터 분석, 통계, 보고서 생성 | 경영 리포트, 고객 행동 분석 | 비실시간, 대용량, OLAP 기반, DW/BI 시스템 연동 |
채널계 (Channel System) | 사용자 접점 제공 | 모바일 앱, 인터넷 뱅킹, ATM | API Gateway, 프론트엔드 인터페이스, 보안 인증 연동 |
계정계 (Account System, OLTP)
- 핵심 거래가 이뤄지는 시스템
- 사용자의 잔액, 계좌, 이자, 대출 등 실시간 트랜잭션을 처리
- 시스템 장애 시 금융 서비스 중단으로 이어짐 → 가용성・정합성이 매우 중요
- 고성능 RDBMS + 메인프레임 or 고신뢰성 서버 기반이 일반적
- 예: A가 B에게 송금할 때 잔액 감소 → 수신자 계좌 증가까지가 한 트랜잭션
정보계 (Analysis System, OLAP)
- 계정계에서 수집된 거래 데이터를 가공・분석해서 경영・마케팅에 활용
- 고객 행동 분석, 리스크 분석, 이자율 예측, KPI 추적 등에 사용
- 실시간성이 필요없고, 대용량 데이터를 다룸
- 데이터 웨어하우스(DW) + BI 도구 기반
- 예: ‘30대 남성의 평균 카드 사용액’, ‘지난달 1억 이상 입금 고객 리스트’ 등
채널계 (Interface System)
- 사용자가 실질적으로 접속하는 시스템
- 예: 모바일 앱, 인터넷뱅킹, 콜센터, 창구, ATM
- 계정계와 직접 연결되며, 인증, 보안, UX 처리를 담당
- 최근에는 API Gateway 및 클라우드/쿠버네티스 위에 올라가는 구조로 많이 바뀜
- 예: 앱에서 로그인 → 잔액조회 → 거래 내역 확인까지 전부 채널계를 통해 이루어짐
왜 이 구조를 알아야할까?
상황 | 개발자가 이해해야 할 포인트 |
---|---|
API 개발 시 | 요청이 계정계로 바로 가는지, 중간 처리계로 가는지 판단 필요 |
장애 분석 시 | 장애가 발생한 계층이 어디인지 빠르게 파악 가능 |
데이터 처리 시 | 정보계에선 실시간 조회 불가 → 적재 시점, 주기 확인 |
인증/보안 처리 시 | 채널계와 연결된 보안 게이트웨이 흐름 이해 필요 |
그 외 계층
계층 | 역할 | 주요 예시 |
---|---|---|
계정계 (Core Banking) | 실시간 금융 거래 처리 | 입출금, 이체, 대출, 수신 등 |
정보계 (Information System) | 비실시간 데이터 분석, 리포트 | 통계 분석, 마케팅, 리스크관리 |
채널계 (Channel System) | 사용자 접점 처리 | 앱, 인터넷뱅킹, ATM, 콜센터 |
중계계 (Middleware/Interface Layer) | 이기종 시스템 간 인터페이스 처리 | EAI, API Gateway, ESB |
공통계/관리계 (Common/Backoffice System) | 인증, 권한, 로그, 감사, 스케줄 등 시스템 관리 | 사용자 권한 관리, 접속 로그, FDS |
보안계 (Security Layer) | 인증/암호화/접근제어 | SSO, OTP, FIDO, PKI 인증 |
FDS (Fraud Detection System) | 이상거래 탐지, 부정거래 방지 | 실시간 탐지, 규칙 기반 룰엔진, 머신러닝 모델 |
실제 구조도 예시
[ 사용자 → 채널계 → 중계계 → 계정계 ↔ 정보계 ]
↘ 보안계/공통계 ↙
- 중계계는 채널계와 계정계/정보계를 연결하는 ‘버스’
- 공통계는 시스템 운영에 필요한 부가 시스템
- 보안계는 인증/인가 및 접근제어 시스템을 통제
- FDS는 금융 범죄 방지 시스템 (독립적으로 존재)
MSA 설계 시 어떤 계층부터 분리하는게 좋을까?
일반적으로 채널계/공통계부터 분리하는게 안전하고 효과적이다.
계층 | MSA 전환 적합도 |
---|---|
채널계 | ✅ 매우 적합 |
공통계 | ✅ 적합 |
정보계 | ⚠️ 제한적 분리 가능 |
계정계 | ❌ 매우 신중히 접근 |
FDS | ⚠️ 실시간 처리 요구되므로 고성능 환경 필요, 전환 시 고려 요소 많음 |
채널계는 서비스별로 독립 UI/UX 흐름이 존재하고, 인증/로그인 등 자연스러운 MSA 분리가 가능하기 때문에 MSA 전환이 적합하다.
공통계는 인증, 권한, 알림, 로그 등은 MSA로 분리하면 재사용성이 높기 때문에 적합하다.
정보계는 대용량 처리 및 일괄 작업이 많아 통합 처리가 유리한 경우도 있기 때문에, 제한적으로 분리가 가능하다.
계정계는 트랜잭션 정합성 보장이 중요하고, 서비스 간 데이터 정합성 이슈 위험이 높기 때문에 MSA 전환을 매우 신중하게 접근해야 한다.
FDS는 실시간 처리가 요구되므로 고성능 환경이 필요하고, 전환 시 고려 요소가 많아 주의해야한다.
점진적 전환 전략
- 채널계 → 공통계 → 정보계 → 계정계 순으로 점진적 마이그레이션
- 특히 계정계는 **도메인별(Micro-domain)**로 쪼갤 수 있는 기반이 있어야 분리가 가능함
📍 계층별 테스트 전략 - 구조별로 달라지는 품질 관리 방식
계층 | 테스트 유형 | 테스트 초점 | 자동화 여부 |
---|---|---|---|
계정계 | 단위 + 통합 테스트 (정합성 검증이 핵심) | 트랜잭션 정합성, 동시성, 롤백 처리 | 자동화 가능 (Mock DB 주의) |
정보계 | 일괄 배치 테스트, 대용량 성능 테스트 | 데이터 정확성, 적재 주기, 통계 산출 정확도 | 부분 자동화 가능 (배치 시나리오 기반) |
채널계 | UI 테스트, API 테스트, UX 흐름 테스트 | 응답 속도, 인증 흐름, 오류 메시지 처리 | Playwright, Selenium 등으로 자동화 유리 |
중계계 | 인터페이스 테스트, 메시지 포맷 검증 | JSON/XML 포맷, 필드 매핑 정확성 | 자동화 필수 (Swagger 기반 테스트 작성) |
공통계 | 보안 테스트, 권한 테스트 | 세션 만료, 토큰 만료, 역할 기반 권한 분리 | JUnit/pytest 기반 가능 |
보안계 | 취약점 테스트, 인증 우회, 비인가 접근 | OAuth2 흐름, JWT 변조, 접근 차단 | 보안 테스트 도구 필요 (ZAP, Burp Suite 등) |
금융 시스템은 계정계·정보계·채널계에 더해, 중계계·공통계·보안계·FDS로 세분화된다.
MSA 전환은 채널계/공통계부터 점진적으로 시작하는 것이 바람직하며,
계층마다 테스트 전략이 다르므로 계층 구조에 맞춘 품질관리 계획이 필요하다.
보너스: 금융권에서 MSA 도입 시 자주 나오는 설계 키워드
- API Gateway, Domain Driven Design (DDD)
- Saga 패턴: 분산 트랜잭션 처리
- Circuit Breaker, Service Mesh (Istio)
📍 금융 시스템 도메인 설계 및 MSA 전환 실무 관점
🏦 도메인: 계정계 – 송금 서비스
핵심 도메인 구조 (도메인 모델링 관점 DDD 기반)
[UserAccount] ← 송금 요청 → [TransferService] → [Ledger] ←→ [Notification]
도메인 객체 | 설명 |
---|---|
UserAccount | 송금/수신자의 계좌 정보 (잔액, 상태) |
TransferService | 잔액 확인, 수수료 계산, 이체 실행 핵심 로직 |
Ledger (원장) | 거래 기록 저장, 정합성 유지 |
Notification | 송금 완료 알림 전송 (이메일, SMS 등) |
고려사항
- 트랜잭션 일관성: 출금→입금까지 원자성 보장 필요
- 이중 송금 방지: 송금 중복 요청 식별 필요 (idempotency)
- 비동기 처리: 알림은 MQ/이벤트로 비동기 처리
📊 도메인: 정보계 – 소비 분석 서비스
핵심 흐름
[AccountTransaction] → [Batch ETL] → [SpendingAnalyzer] → [UserDashboard]
구성 요소 | 설명 |
---|---|
AccountTransaction | 계정계에서 복사된 거래 내역 테이블 |
Batch ETL | 하루 1회 수집 및 전처리, 적재 |
SpendingAnalyzer | 월별 지출 패턴, 카테고리별 통계 생성 |
UserDashboard | 사용자에게 소비 통계 시각화 제공 |
💡 고려사항
- 실시간 아님: 최소 1일 지연 발생
- 정확도 우선: 실시간보다 분석 정확성 우선
- OLAP 처리: Snowflake, BigQuery, Hive 등 사용 가능
📍 MSA 아키텍처 설계도 예시
디지털뱅크 서비스의 마이크로서비스 설계 예시
[ API Gateway ]
↓
┌────────────┬─────────────┬────────────┐
│ AuthSvc │ TransferSvc │ AccountSvc │ ← 채널계/계정계 주요 서비스
└────────────┴─────────────┴────────────┘
↓ ↓ ↓
[ NotificationSvc ] [ LedgerSvc ] [ FeeCalcSvc ] ← 공통계 / 보조 도메인
↓
Kafka Topic or RabbitMQ
↓
[ LoggingSvc ] [ FraudDetectionSvc ] [ AuditSvc ] ← 공통계/보안계
설계 포인트
- 도메인 기반 마이크로서비스 분리 (계좌, 송금, 인증, 수수료 등)
- Kafka 등 비동기 메시징 활용
- 서비스 간 느슨한 결합 유도
- Spring Boot + Docker/K8s + Redis + JPA 조합 권장
📍 면접 질문 답변 구성
질문: “계정계를 왜 쉽게 MSA로 분리하지 못할까요?”
계정계는 실시간 거래 처리와 높은 정합성을 요구하는 핵심 시스템이기 때문에,
단순히 서비스 단위로 분리하기보다 트랜잭션 관리, 데이터 일관성, 장애 대응 등 다양한 고려가 필요합니다.특히 MSA에서는 서비스 간 트랜잭션이 분산되어 관리되기 때문에,
ACID 보장이 어려워지고, 이를 보완하려면 Saga 패턴이나 이벤트 기반 보상 트랜잭션 설계가 필요합니다.또한 계정계는 기존에 단일 DB와 모놀리식 구조로 설계되어 있는 경우가 많아서,
MSA로 전환 시 기존 시스템의 안정성 유지와 데이터 마이그레이션까지 동시에 고려해야 합니다.그래서 일반적으로는 채널계, 공통계부터 점진적으로 MSA를 적용하고,
계정계는 충분한 설계와 테스트를 거쳐 점진적 도메인 단위로 분리하는 것이 현명하다고 생각합니다.
📍 요약
- 금융 도메인은 단순 CRUD가 아닌 계층적 구조와 데이터 정합성 중심의 도메인 모델 설계가 필수
- MSA는 비즈니스 도메인 기반 분리가 효과적이며, 계정계는 가장 마지막 단계로 전환하는 것이 일반적
- 실제 면접이나 프로젝트 기획 단계에서 위 개념과 설계를 제시하면 높은 평가를 받을 수 있음
📍 금융 시스템의 장애 대응 시나리오
은행은 고객 자산을 실시간으로 다루는 고신뢰 시스템이기 때문에, 장애 발생 시에도 거래 정합성과 신뢰를 유지해야한다.
- 무중단 운영 (Always On)
- 장애 복구 시 정합성 유지 (Zero Data Loss or 최소화)
- 신속한 복구 (RTO/RPO 최소화)
- 이중화, 이관, 수동 전환 체계 내재화
장애 유형별 시나리오
장애 유형 | 설명 | 대응 방식 |
---|---|---|
계정계 서버 장애 | 트랜잭션 처리 중단 → 실시간 거래 마비 | Hot-Standby DB, Active-Active 구성, DR(재해복구센터) 이관 |
채널계 장애 | 앱, 웹, ATM, 콜센터 접속 불가 | 채널별 이중화, 장애 시 대체 채널 유도 (예: 인터넷 → 모바일) |
DB 장애 (단일 포인트) | 정합성 문제, 전체 시스템 영향 | DB 이중화 (Replication), WAL(Write-Ahead Logging), 즉시 Rollback 처리 |
인터페이스 장애 | 계정계 ↔ 정보계, 외부기관 연동 실패 | EAI / API Gateway 장애 → 대기열(Queue) 저장 후 재처리 |
네트워크 장애 | 특정 지역/지점 연결 끊김 | MPLS 회선 이중화, VPN 백업 라우팅 |
보안 시스템 장애 (인증서버 등) | 로그인 불가, 거래 차단 | 인증 캐싱, 예외 처리 모듈, OTP 백업 체계 |
배치 실패 / 일괄처리 오류 | 정산/이자/보고서 누락 | 배치 롤백 → 재실행 가능한 단위 설계 필요 |
💥 시나리오 1: 계정계 DB 장애 발생
상황: 출금 요청 중 DB 트랜잭션 실패 → 이체 완료 여부 불명확
대응 흐름
- 장애 발생 감지 (DB 응답 지연, 에러 로그, 모니터링)
- 자동 Failover → 복제 DB로 전환 (Active-Standby)
- 복구 이후 트랜잭션 로그 기반 정합성 점검
- 필요 시 사용자에 “일시적 오류 → 복구 안내”
예방 설계 포인트
- WAL 기반 트랜잭션 로그 저장
- DB Replication 상태 지속 감시 (Heartbeat)
- 거래 로그의 transaction_id 기준 중복 처리 방지
💥 시나리오 2: 인터넷뱅킹 접속 불가
상황: 특정 시간대 트래픽 폭증 → 채널계 WAS 과부하
대응 흐름
- WAS Pool 초과 감지 → Auto-scaling 요청 (클라우드 기반)
- 일부 사용자를 모바일뱅킹으로 유도
- 알림센터를 통해 공지 및 사과 메시지 발송
예방 설계 포인트
- API Gateway + Circuit Breaker 설정
- 사용자 세션 분산 (Redis 기반)
- 일시적 오류 시 재시도 정책 (Exponential Backoff)
💥 시나리오 3: 외부 기관 연동 장애 (예: 카드사 API 다운)
상황: 마이데이터에서 카드사 API 연동 실패 → 사용자 리포트 누락
대응 흐름
- 오류 시 failover cache 사용 → 과거 데이터 기반 뷰 제공
- 장애 사유 저장 → 장애 해소 후 자동 재조회 배치
3.사용자에게 “일부 데이터는 수집 대기 중” 안내
예방 설계 포인트
- 연동 실패 시 재시도 큐에 적재 (Kafka, RabbitMQ)
- 외부 API Health Check 주기적 수행
장애 복구 체계 핵심 전략
항목 | 의미 | 예시 |
---|---|---|
RTO (복구 시간 목표) | 장애 후 서비스를 다시 올리는 데 걸리는 최대 시간 | RTO 10분 이내 설정 등 |
RPO (복구 시점 목표) | 데이터 손실을 감내할 수 있는 최대 시간 | RPO 0분이면 실시간 백업 필수 |
DR (Disaster Recovery) | 재해복구센터를 통한 시스템 이관 | 다른 지역의 DR 센터로 계정계 DB 이관 |
BIA (Business Impact Analysis) | 업무별 장애 발생 시 영향 분석 | ATM 중단은 고객 불만 크므로 우선 복구 대상 지정 |
금융 시스템에서의 장애 대응은 단순한 복구가 아니라 정합성, 신뢰성, 연속성이 최우선이다.
계정계 장애 → 데이터 정합성 유지가 핵심
채널계 장애 → 사용자 대응 및 대체 채널 안내
외부 연동 장애 → 재처리 설계, 사용자 신뢰 회복 방안 필요
이를 위한 DR 체계, RTO/RPO 관리, 자동 Failover 설계가 필수다.
필요하다면,
장애 유형별 시스템 설계 전략
RTO/RPO 설계 예시
MSA 전환 시 장애 격리 전략
이런 것도 더 자세히 도와줄 수 있어.
📍 금융 IT 시스템에서의 보안 인증 방식 (OTP, FIDO, 2FA 등)
1️⃣ 보안 인증 방식 개요 (OTP, FIDO, 2FA 등)
- OTP (일회용 비밀번호): 모바일 앱/토큰기반
- FIDO (생체인증): 지문/홍채 기반, 서버 저장 없음
- 2FA (Two-Factor Auth): 비밀번호 + 추가 인증요소
인증 흐름 예시
ID 입력 → 비밀번호 확인 → OTP 입력 → FIDO 지문 스캔 → 인증 완료
2️⃣ 장애 유형별 보안 인증 시스템 설계 전략
장애 유형 | 설명 | 대응 전략 |
---|---|---|
OTP 서버 다운 | OTP 생성/검증 불가 | 로컬 앱 캐시 기반 코드 생성 허용 (제한시간 설정), 서버 복제 이중화 |
FIDO 인증 실패 | 생체 인증 서버 응답 없음 | 대체 인증 수단 제공 (비밀번호 + OTP fallback) |
인증서 만료/검증 실패 | 전자서명 시스템 오류 | 유효기간 grace time, 백업 인증기관 연동 |
로그인 트래픽 급증 | 인증 서버 과부하 | 인증 서버 오토스케일링, 캐싱, Redis 세션 활용 |
악성 요청/공격 | 무차별 대입, 파라미터 변조 | Rate limiting, CAPTCHA, WAF 방어 연동 |
3️⃣ 인증 시스템의 RTO/RPO 설계 기준
항목 | 의미 | 보안 인증 시스템 기준 |
---|---|---|
RTO (Recovery Time Objective) | 장애 후 복구까지 허용 가능한 시간 | 5분 이내 권장 (사용자 로그인 지속 불가 시 대혼란) |
RPO (Recovery Point Objective) | 데이터 손실 허용 범위 | 인증 로그, 세션 토큰: 0~1분 이내 (거래 추적용) |
인증 시스템 RTO/RPO 설계 팁
- Session 서버와 OTP 서버는 분리 설계
- 핵심 구성은 Active-Active 이중화
- 토큰 발급 시점, 유효시간 고려한 보상 처리 로직 내재화
4️⃣ 클라우드 환경에서의 인증 시스템 고가용성 설계
- OAuth2 서버 + Redis 세션 클러스터링
- FIDO 서버 다중 리전 배포
- OTP 인증은 Stateful → 가능하면 Stateless 토큰화
- 장애 발생 시 자동 Failover + 서비스 Degradation 대응
금융 시스템의 보안 인증은 단순히 강력한 수단을 쓰는 걸 넘어서, 인증이 실패하거나 중단됐을 때도 서비스를 신뢰성 있게 이어갈 수 있는 복구 설계가 핵심이다. OTP, FIDO, 2FA 등 다양한 인증 방식은 각기 다른 장애 대응 전략을 가져야 하며, 이를 위해 RTO/RPO 기반의 인증 인프라 이중화 설계, 장애 발생 시 fallback 인증 체계, 고가용성 클라우드 인증 구조를 함께 고려해야 한다.
이 주제는 보안 + 인프라 + 사용자 경험까지 통합적으로 고려해야 하는 주제이기 때문에, → 금융 IT 직무, SI 엔지니어, 클라우드 아키텍트 등 모두에게 어필 가능해
원한다면:
- OAuth2 인증 서버 MSA 설계 예시
- FIDO 인증 흐름도
- OTP 장애 복구 절차 문서 예시도 만들어줄게