1. Reservation Flow
공연 탐색에서 좌석 선택까지의 예매 흐름은 사용자가 가장 많이 거치는 핵심 동선입니다. 공연 목록, 공연 상세, 날짜/회차 선택, 대기열, 좌석 선택 화면이 서로 분리되어 보이지 않도록 상태 전달과 화면 전환 흐름을 정리했습니다.
실시간 좌석 예매와 좌석 교환을 다루는 티켓팅 서비스에서 공연 탐색, 대기열, 좌석 선택, 티켓 확인, 교환 요청까지 이어지는 핵심 사용자 흐름과 API 연동 화면을 구현한 프론트엔드 프로젝트입니다.
DDIB는 공연 예매부터 보유 티켓 확인, 좌석 교환 요청까지 연결하는 실시간 좌석 예매 및 교환 서비스입니다. 좌석 상태와 대기열처럼 사용자가 민감하게 반응하는 정보를 다루기 때문에, 화면에 표시되는 상태와 실제 서버 상태의 일관성이 중요한 프로젝트였습니다.
저는 프론트엔드 담당으로 공연 목록, 공연 상세, 실시간 대기열, 좌석 선택, 내 티켓, 좌석 교환, 마이페이지 등 주요 화면을 구현하고 API 연동 흐름을 정리했습니다.
단순히 화면을 배치하는 데 그치지 않고, 사용자가 공연을 찾고 날짜를 선택한 뒤 대기열을 거쳐 좌석을 선택하고, 예매 후 티켓 확인과 교환 요청까지 이어지는 서비스 전체 사용자 여정이 끊기지 않도록 구성하는 데 집중했습니다.
특히 좌석 예매 서비스에서는 사용자가 보는 좌석 가능 여부, 선택 좌석, 결제 금액, 보유 티켓 정보가 신뢰로 이어진다고 판단해 API 응답 상태와 UI 피드백을 분리해 다루며 화면 연결 문제를 빠르게 수정했습니다.
홈, 추천 공연, 공연 상세 화면을 구현하고 날짜/회차 선택 후 예매 플로우로 자연스럽게 이어지도록 화면 동선을 구성했습니다.
대기 순서, 진행률, 입장 안내, 좌석 선택 타이머와 선택 좌석 요약을 연결해 사용자가 현재 단계와 다음 행동을 이해할 수 있도록 구성했습니다.
예매 완료 후 사용자가 보유 티켓을 확인하고, QR 코드와 좌석 정보를 모달에서 확인할 수 있도록 티켓 상세 흐름을 구현했습니다.
보유 좌석과 교환 가능한 좌석을 구분하고, 교환 요청 메시지와 선택 상태가 화면에서 명확하게 드러나도록 UI/API 연결 흐름을 정리했습니다.
공연 탐색에서 좌석 선택까지의 예매 흐름은 사용자가 가장 많이 거치는 핵심 동선입니다. 공연 목록, 공연 상세, 날짜/회차 선택, 대기열, 좌석 선택 화면이 서로 분리되어 보이지 않도록 상태 전달과 화면 전환 흐름을 정리했습니다.
좌석 상태와 대기열 정보는 실시간성이 중요한 영역입니다. 프론트엔드에서는 서버 응답을 기준으로 선택 가능, 선택 중, 선택 불가, 선택 완료 상태를 구분하고, 사용자가 다음 행동을 판단할 수 있도록 시각 피드백을 제공했습니다.
예매 이후의 티켓 확인과 좌석 교환 흐름은 서비스 재방문 경험과 연결됩니다. 내 티켓, QR 확인, 예매 내역, 좌석 교환 요청 화면을 연결해 예매 후에도 사용자가 자신의 티켓 상태와 가능한 행동을 확인할 수 있도록 구성했습니다.
좌석 예매 서비스에서는 사용자가 보는 좌석 가능 여부와 실제 서버 상태가 어긋나면 서비스 신뢰도가 바로 낮아집니다. 특히 선택 가능한 좌석, 이미 선택된 좌석, 선택 불가 좌석이 한 화면에서 명확히 구분되어야 했습니다.
API 응답 기준으로 좌석 상태를 분리하고, 색상 범례, 선택 좌석 요약, 결제 금액 표시를 함께 구성했습니다. 사용자가 선택한 좌석과 서버에서 내려온 좌석 상태를 혼동하지 않도록 화면 피드백을 정리했습니다.
실시간 대기열은 사용자가 페이지를 새로고침하거나 이탈하지 않고 기다려야 하는 구간입니다. 대기 순서와 진행 상태가 불명확하면 사용자는 시스템이 멈췄다고 느낄 수 있었습니다.
현재 대기 순서, 진행률, 총 대기 인원, 안내 문구를 함께 노출해 사용자가 현재 위치를 이해할 수 있도록 구성했습니다. 순서가 도달하면 좌석 선택 페이지로 이어지는 흐름을 전제로 화면 상태를 정리했습니다.
예매 이후에는 사용자가 보유한 티켓, QR 코드, 좌석 정보, 교환 가능한 좌석, 교환 요청 메시지를 한 흐름 안에서 확인할 수 있어야 했습니다. 정보가 흩어지면 사용자가 다음 행동을 판단하기 어려웠습니다.
내 티켓 화면과 QR 모달, 좌석 교환 화면을 각각 역할별로 분리했습니다. 티켓 확인은 입장 정보 중심으로, 교환 화면은 보유 좌석·교환 가능 좌석·교환 요청 상태를 중심으로 구성해 흐름을 명확히 했습니다.
예매 서비스는 여러 화면이 순차적으로 연결되기 때문에, 작은 API 응답 차이나 상태 누락도 다음 화면의 오류로 이어질 수 있었습니다.
테스트 과정에서 발견된 기능 동작과 화면 연결 문제를 우선순위에 따라 빠르게 수정했습니다. 화면별 상태를 독립적으로 점검하면서도, 전체 예매/교환 흐름이 끊기지 않는지를 기준으로 안정성을 높였습니다.
홈, 공연 목록, 공연 상세, 대기열, 좌석 선택, 내 티켓, 좌석 교환, 마이페이지 등 서비스 핵심 화면을 구현했습니다.
선택 가능, 선택 중, 선택 불가, 선택 완료 상태를 구분하고 선택 좌석 수와 총 결제 금액이 즉시 확인되도록 구성했습니다.
실시간 대기 순서, 진행률, 총 대기 인원, 시스템 상태 안내를 함께 보여줘 사용자가 현재 상태를 이해할 수 있도록 했습니다.
예매 이후 QR 티켓 확인, 예매 내역 관리, 좌석 교환 요청까지 연결해 단일 예매 화면을 넘어 서비스 이용 흐름을 완성했습니다.
공연 탐색부터 대기열, 좌석 선택, 티켓 확인, 좌석 교환 요청, 마이페이지 예매 내역까지 이어지는 핵심 프론트엔드 흐름을 완성했습니다. 테스트 중 발견된 연결 이슈를 대응하며 실제 시연 가능한 수준으로 화면 안정성을 높였습니다.
사용자는 공연을 탐색하고, 날짜와 회차를 선택한 뒤, 대기열을 거쳐 좌석을 선택하고, 예매 이후 티켓과 교환 가능성을 확인할 수 있는 하나의 서비스 흐름을 경험할 수 있게 되었습니다.
또한 좌석 상태와 티켓 정보가 화면에서 명확히 구분되도록 정리하면서, 실시간 예매 서비스에서 중요한 신뢰성과 다음 행동 판단을 돕는 UX를 확보했습니다.
이 프로젝트를 통해 예매 서비스의 프론트엔드는 예쁜 화면보다 상태의 정확성, 화면 간 연결, 사용자의 다음 행동 판단이 더 중요하다는 점을 경험했습니다.
이후에는 실시간 좌석 상태 갱신, 중복 선택 방지, 결제 실패와 재진입 같은 예외 흐름까지 더 촘촘하게 다루는 방향으로 발전시키고 싶습니다.
DDIB에서 구현한 주요 프론트엔드 화면입니다. 공연 탐색, 예매 진입, 실시간 대기열, 좌석 선택, 티켓 확인, 좌석 교환까지 사용자가 실제로 지나가는 흐름을 기준으로 정리했습니다.