온결 메디컬 멀티지점 예약 웹사이트
네 개 지점의 게이트웨이, 지점별 홈, 진료과 상세, 비회원 온라인 예약과 예약 조회·변경·취소, 공지·언론보도·FAQ 게시판을 반응형 웹으로 구현하는 프로젝트입니다.
프로젝트 개요
네 개 지점의 게이트웨이, 지점별 홈, 진료과 상세, 비회원 온라인 예약과 예약 조회·변경·취소, 공지·언론보도·FAQ 게시판을 반응형 웹으로 구현하는 프로젝트입니다. 첫 화면에서 지점별 오늘의 진료시간과 예약 가능 시간대를 실제 데이터 모양으로 보여 주고, 본인인증은 제공사 API 연동 구조를 설계한 뒤 데모에서는 모의 인증 화면으로 구성합니다.
작업 범위
- 지점 게이트웨이와 오늘의 진료 현황: 네 개 지점을 고르는 게이트웨이와 선택한 지점의 오늘 진료시간, 진료과별 남은 예약 시간대가 한 화면에 보입니다. 시간대를 누르면 예약 화면으로 이어집니다
- 진료과 상세 템플릿: 일곱 개 이상의 진료과가 같은 템플릿으로 열리고, 진료 안내와 의료진, 진료 절차, 해당 과의 예약 가능 시간대가 이어집니다. 지점을 바꾸면 그 지점의 의료진과 시간표로 바뀝니다
- 비회원 본인인증 예약: 지점, 진료과, 날짜, 시간대를 고르고 모의 본인인증을 거쳐 예약을 접수합니다. 같은 시간대에 이미 찬 예약은 선택 단계에서 막히고, 완료 화면에 예약 번호가 표시됩니다
- 예약 조회·변경·취소: 예약 번호와 모의 인증으로 본인 예약 내역을 열고, 일정 변경과 취소를 진행합니다. 취소는 확인 대화상자를 거치고 변경은 빈 시간대 중에서만 고를 수 있습니다
주요 업무
- 지점 게이트웨이와 오늘의 진료 현황 화면: 지점 코드별 진료시간·휴진일·슬롯 데이터를 한 번에 조회해 게이트웨이와 지점 홈이 같은 데이터를 사용하도록 설계합니다
- 진료과 상세 템플릿 화면: 공통 컴포넌트와 콘텐츠 데이터를 분리해 진료과를 추가해도 화면 코드를 고치지 않도록 구성합니다
- 비회원 본인인증 예약 화면: 인증 제공사 API 연동 구조를 설계하고 데모에서는 모의 인증 화면으로 같은 흐름을 보여 줍니다. 슬롯 중복은 DB 제약과 트랜잭션으로 막습니다
- 예약 조회·변경·취소 화면: 예약 상태 전이(접수·확정·변경·취소)를 서버에서 검사하고 변경 시 기존 슬롯 해제와 새 슬롯 확보를 한 트랜잭션으로 처리합니다




프로젝트 핵심 과제
본인인증 제공사 가입·심사가 외부 승인에 달려
모의 인증 어댑터로 흐름을 먼저 검증하고 승인 후 교체하는 계획입니다
와이어프레임이 모집 기간 중 확정되므로 화면 구조를 템플릿과 데이터로 분리해 변경 범위를 좁히는 방식으로 대응할 계획입니다
여러 지점이 같은 시간대 정책을 다르게 쓰므로 지점별 슬롯 규칙을 데이터로 두고 검사 로직을 공통화할 계획입니다
핵심 기능 상세
지점 게이트웨이와 오늘의 진료 현황
네 개 지점을 고르는 게이트웨이와 선택한 지점의 오늘 진료시간, 진료과별 남은 예약 시간대가 한 화면에 보입니다. 시간대를 누르면 예약 화면으로 이어집니다.
- 지점 코드를 URL 경로로 두고 React Router 중첩 라우트로 지점별 홈을 분기
- 진료과·슬롯 조회를 Prisma 쿼리 한 번으로 묶어 지점 홈 데이터를 구성
- Tailwind 반응형 브레이크포인트로 PC·모바일 동일 컴포넌트 재사용
지점 정보와 슬롯 데이터를 단일 API 응답으로 내려 게이트웨이, 지점 홈, 예약 화면이 같은 숫자를 쓰도록 구조를 설계합니다.


진료과 상세 템플릿
일곱 개 이상의 진료과가 같은 템플릿으로 열리고, 진료 안내와 의료진, 진료 절차, 해당 과의 예약 가능 시간대가 이어집니다. 지점을 바꾸면 그 지점의 의료진과 시간표로 바뀝니다.
- 진료과 콘텐츠를 JSON 스키마로 정의하고 템플릿 컴포넌트에 주입
- 지점×진료과 조합을 라우트 파라미터로 받아 의료진 목록을 필터
- 접근성을 위해 제목 위계와 대체 텍스트, 키보드 포커스 순서를 점검
콘텐츠 데이터와 템플릿을 분리해 진료과 추가가 데이터 입력만으로 끝나는 구조를 설계합니다.


비회원 본인인증 예약
지점, 진료과, 날짜, 시간대를 고르고 모의 본인인증을 거쳐 예약을 접수합니다. 같은 시간대에 이미 찬 예약은 선택 단계에서 막히고, 완료 화면에 예약 번호가 표시됩니다.
- 슬롯 테이블의 지점·진료과·일시 복합 유니크 제약과 트랜잭션으로 동시 예약 충돌 방지
- 본인인증 어댑터 인터페이스를 두고 모의 구현과 제공사 구현을 교체 가능하게 설계
- 단계형 폼과 단계별 입력 검증으로 모바일 입력 흐름 구성
인증 제공사 심사 전에도 같은 인터페이스로 예약 흐름을 검증할 수 있도록 어댑터 구조를 설계합니다.


예약 조회·변경·취소
예약 번호와 모의 인증으로 본인 예약 내역을 열고, 일정 변경과 취소를 진행합니다. 취소는 확인 대화상자를 거치고 변경은 빈 시간대 중에서만 고를 수 있습니다.
- 예약 상태 전이를 서버 검증 함수로 제한
- 변경 시 슬롯 해제와 확보를 단일 트랜잭션으로 묶어 중간 상태 방지
- 조회 권한을 예약 번호와 인증 토큰 조합으로 검사
비회원 조회 권한을 인증 토큰과 예약 번호 조합으로 제한해 로그인 체계 없이도 본인 예약만 열리도록 설계합니다.


프로젝트 진행 단계
요구사항 정리와 DB 설계 · 2026.10
지점·진료과·의료진·슬롯·예약 테이블과 상태 전이 정의
예약·조회 API 개발 · 2026.10
슬롯 조회, 예약 접수, 모의 인증 어댑터, 변경·취소 API 구현
반응형 화면 개발 · 2026.10
게이트웨이, 지점 홈, 진료과 상세, 예약 흐름, 게시판 화면 구현
NCP 환경 구성과 인수인계 · 2026.10
Staging·Production 분리, DB 백업, SSL·도메인 연동과 운영 매뉴얼 작성
개발 결과
기술적 주안점
- 지점 정보와 슬롯 데이터를 단일 API 응답으로 내려 게이트웨이, 지점 홈, 예약 화면이 같은 숫자를 쓰도록 구조를 설계합니다
- 콘텐츠 데이터와 템플릿을 분리해 진료과 추가가 데이터 입력만으로 끝나는 구조를 설계합니다
- 인증 제공사 심사 전에도 같은 인터페이스로 예약 흐름을 검증할 수 있도록 어댑터 구조를 설계합니다