경험 중심 1인칭 답변
복잡한 금융 시스템 설계에서 가장 중요한 건 데이터 정합성과 장애 복구 설계를 처음부터 아키텍처에 포함시키는 것이라고 생각합니다. 금융 시스템은 트랜잭션 도중 장애가 발생했을 때 부분 처리 상태가 남으면 안 되기 때문에, ACID 보장과 보상 트랜잭션 설계가 선택이 아닌 기본입니다. 또한 감사 로그가 없으면 사후 추적이 불가능하기 때문에 이벤트 소싱 패턴이나 별도 감사 테이블을 처음부터 설계에 넣어야 합니다. 수업 프로젝트에서 간단한 결제 플로우를 구현하면서 예외 케이스 처리를 후반부에 추가하다 보니 구조가 복잡해지는 문제를 겪었고, 예외 플로우를 먼저 설계하고 정상 플로우를 그 다음에 맞추는 방식이 더 안정적이라는 걸 배웠습니다. 앞으로도 정합성·감사 로그·장애 복구를 설계 초기 제약으로 두는 방식으로 금융 시스템을 설계하겠습니다. 앞으로도 정합성·감사 로그·장애 복구를 설계 초기 제약으로 두는 방식으로 금융 시스템을 설계하겠습니다.
예외 플로우를 먼저 설계하고 정상 플로우를 그다음에 맞추는 순서가 안정적인 구조를 만드는 방법입니다.