본문/내용
1. 본인이 경험한 서버 개발 프로젝트 중 가장 어려웠던 문제와 그 해결 과정을 상세히 기술하시오.
경험한 서버 개발 프로젝트 중 가장 어려웠던 문제는 실시간 결제 시스템의 트랜잭션 일관성과 장애 복구 문제입니다. 당시 프로젝트는 대규모 사용자들이 동시에 이용하는 쇼핑몰 결제 시스템을 구축하는 과제였으며, 높은 가용성과 안정성을 갖추는 것이 핵심 목표였습니다. 처음 설계 단계에서 여러 결제 요청들이 동시에 들어오면 데이터베이스의 상태가 불일치하거나, 결제 요청이 일부 성공하고 일부 실패하는 경우가 빈번하게 발생하는 문제들이 있었습니다. 이로 인해 고객 경험이 저하되고, 신뢰도도 떨어지는 문제들이 발생하였습니다. 이 문제의 핵심 원인은 시스템이 병렬적으로 처리하는 트랜잭션의 일관성 유지와 장애 발생 시 복구 전략에 있음을 파악하였습니다. 트랜잭션 처리 방식을 점검하였고, 분산 트랜잭션을 사용하는 방식을 도입하기로 결정하였습니다. 이를 위해 2단계 커밋(2PC) 프로토콜을 적용하였으며, 각 서비스 간의 결제 및 결제 승인 요청을 분산 트랜잭션 처리 모듈로 묶었습니다. 동시에 데이터베이스에는 강한 일관성을 유지하기 위…