스포츠 레슨 서비스 반응형 홍보 사이트와 이벤트 페이지
본 요구사항(서비스 소개 사이트 리뉴얼, 이벤트 목록·상세, 이벤트별 콘텐츠 교체 구조, 반응형, SEO 메타)을 반영한 스포츠 레슨 홍보 사이트 맞춤 구현한 프로젝트입니다.
프로젝트 개요
본 요구사항(서비스 소개 사이트 리뉴얼, 이벤트 목록·상세, 이벤트별 콘텐츠 교체 구조, 반응형, SEO 메타)을 반영한 스포츠 레슨 홍보 사이트 맞춤 구현한 프로젝트입니다.
작업 범위
- 홈·레슨 시간표: 방문자가 첫 화면에서 이번 주 레슨 시간표와 종목별 코치, 진행 중인 이벤트 배너를 한 흐름으로 봅니다. 종목 칩으로 시간표를 거르고 레슨 카드를 눌러 상세를 확인합니다
- 이벤트 목록: 방문자가 진행 중·예정·종료 이벤트를 카드 목록으로 보고 상태 칩으로 거릅니다. 카드를 누르면 같은 틀의 상세 화면으로 이동합니다
- 이벤트 상세: 방문자가 이벤트 안내 문구와 이미지, 참여 방법, 유의사항을 확인하고 관련 레슨 화면으로 이동합니다. 같은 틀에 이벤트 데이터만 바뀌어 다른 이벤트도 같은 구조로 보입니다
- 체험 신청: 방문자가 종목과 희망 시간을 고르고 이름과 연락처를 입력해 체험 레슨을 신청합니다. 연락처가 자동으로 포맷되고 접수 뒤 접수 번호가 안내됩니다
주요 업무
- 홈·레슨 시간표 화면: 히어로의 레슨 시간표 장면과 체험 신청 버튼 1개, 종목 칩 필터, 코치 카드, 이용 경로 4단계, 서비스 소개 문구, FAQ 아코디언, 진행 중 이벤트 배너, 레슨 상세 대화상자 구조를 설계합니다
- 이벤트 목록 화면: 상태 칩 필터, 이벤트 카드 그리드, 남은 기간 표시, 종료 이벤트 흐림 처리, 상세 이동 구조를 설계합니다
- 이벤트 상세 화면: 공통 상세 템플릿(이미지·기간·참여 방법 단계·유의사항·관련 링크), 이벤트 전환 선택, 공유 링크 복사 구조를 설계합니다
- 체험 신청 화면: 종목·시간 선택, 신청 폼과 입력 검증, 전화번호 포맷, 접수 완료 안내 구조를 설계합니다



프로젝트 핵심 과제
세부 화면 수와 콘텐츠 배치가 자료 검토 뒤 확정되므로 섹션을 데이터 배열로 정의해 구성 변경에 대응하는 설계
최초 적용 이벤트와 상세 구성이 미정이라 공통 템플릿 필드를 넓게 잡고 이벤트별 선택 항목으로 두는 설계
호스팅 환경이 협의 대상이라 정적 빌드 결과물과 서버 API 를 분리해 어느 환경에도 배포 가능한 구성 설계
문구·이미지는 클라이언트가 제공하므로 자료 수령이 늦을 때를 대비해 임시 자료 기준과 교체 절차 설계
핵심 기능 상세
홈·레슨 시간표
방문자가 첫 화면에서 이번 주 레슨 시간표와 종목별 코치, 진행 중인 이벤트 배너를 한 흐름으로 봅니다. 종목 칩으로 시간표를 거르고 레슨 카드를 눌러 상세를 확인합니다.
- 레슨·코치 데이터를 JSON 스키마로 분리해 문구와 이미지 교체만으로 화면이 바뀌는 구조 설계
- 종목 칩과 시간표를 같은 상태로 연결해 필터 결과가 즉시 그려지도록 구현
- Tailwind 브레이크포인트 3단계로 시간표 그리드와 상단 메뉴를 반응형으로 구현
클라이언트가 제공할 문구·로고·이미지를 데이터 파일 교체만으로 반영하도록 구성해, 자료 수령 뒤 바로 화면에 올릴 수 있게 설계합니다.


이벤트 목록
방문자가 진행 중·예정·종료 이벤트를 카드 목록으로 보고 상태 칩으로 거릅니다. 카드를 누르면 같은 틀의 상세 화면으로 이동합니다.
- 이벤트 데이터 파일을 읽어 목록을 그리고 상태를 기간 값에서 계산하는 구조 설계
- 상태 칩과 목록을 같은 쿼리 파라미터로 연결해 새로고침 뒤에도 필터 유지
- 카드 그리드를 폭에 따라 1~3열로 전환
이벤트 항목을 데이터 파일에 한 건 추가하면 목록 카드가 자동으로 생기도록 구성해 후속 프로모션 재활용을 쉽게 합니다.


이벤트 상세
방문자가 이벤트 안내 문구와 이미지, 참여 방법, 유의사항을 확인하고 관련 레슨 화면으로 이동합니다. 같은 틀에 이벤트 데이터만 바뀌어 다른 이벤트도 같은 구조로 보입니다.
- 공통 템플릿 한 벌에 이벤트 데이터를 주입하는 구조로 이벤트별 화면을 생성
- 이벤트별 제목·설명·OG 이미지를 데이터에서 읽어 메타 태그를 구성
- 관련 링크와 참여 버튼의 이동 대상을 이벤트 데이터 필드로 분리
템플릿과 데이터를 분리해 새 이벤트를 데이터 파일 한 건과 이미지 한 장으로 추가하는 방식을 구현합니다.


체험 신청
방문자가 종목과 희망 시간을 고르고 이름과 연락처를 입력해 체험 레슨을 신청합니다. 연락처가 자동으로 포맷되고 접수 뒤 접수 번호가 안내됩니다.
- 신청 접수 API 1종을 Express 로 구현하고 서버에서 입력값을 다시 검증
- 전화번호 정규화와 하이픈 포맷을 화면과 서버가 같은 규칙으로 처리
- 접수 내용을 PostgreSQL 에 저장하고 운영 콘솔 목록과 같은 모델로 연결
신청 폼 오류를 입력 칸 단위로 표시하고 서버 검증 결과도 같은 위치에 보여 주어 모바일에서도 수정 지점을 바로 찾도록 구현합니다.


프로젝트 진행 단계
요구사항 정리와 데이터 구조 설계 · 2026.11
레슨·코치·이벤트 데이터 스키마와 화면 목록 정의
서비스 소개 사이트 구현 · 2026.11
홈, 서비스 소개, 반응형 메뉴와 FAQ 구현
이벤트 목록·상세 템플릿 구현 · 2026.11
이벤트 카드 목록, 공통 상세 템플릿, 체험 신청 API 구현
SEO·배포·운영 안내 · 2026.11
메타·OG·sitemap, 빌드·배포 설정, 운영 안내자료와 시험 결과 정리
개발 결과
기술적 주안점
- 클라이언트가 제공할 문구·로고·이미지를 데이터 파일 교체만으로 반영하도록 구성해, 자료 수령 뒤 바로 화면에 올릴 수 있게 설계합니다
- 이벤트 항목을 데이터 파일에 한 건 추가하면 목록 카드가 자동으로 생기도록 구성해 후속 프로모션 재활용을 쉽게 합니다
- 템플릿과 데이터를 분리해 새 이벤트를 데이터 파일 한 건과 이미지 한 장으로 추가하는 방식을 구현합니다