diff --git a/2026-02-16-전체-작업-요약.md b/2026-02-16-전체-작업-요약.md index 9515d52..9776168 100644 --- a/2026-02-16-전체-작업-요약.md +++ b/2026-02-16-전체-작업-요약.md @@ -1,140 +1,92 @@ -# CRM 및 홈페이지 개선 작업 요약 +# CRM 관리자 사이트 개선 작업 요약 > **작업 기간:** 2026년 2월 13일 ~ 2월 16일 -> **적용 프로젝트:** madeu_crm (관리자 사이트), madeu_diet_home (다이어트홈), madeu_petit_home (쁘띠홈) +> **적용 프로젝트:** madeu_crm (관리자 사이트) --- ## 🔧 무엇을 했나요? -크게 **4가지 영역**의 개선이 이루어졌습니다: -1. CRM(관리자 사이트)의 이벤트 관리 기능 개선 -2. 온라인 예약 기능의 캘린더 및 시간대 선택 개선 -3. 센터별 운영시간/휴무일 관리 기능 신규 구현 -4. 고객 홈페이지의 이벤트 목록/상세 화면 개선 +CRM 관리자 사이트에서 **3가지 영역**을 개선했습니다: +1. 이벤트 관리 기능 개선 +2. 센터별 운영시간 / 휴무일 관리 기능 신규 구현 +3. 예약 기능 분리 및 정리 --- -## 📋 1. CRM 이벤트 관리 기능 개선 +## 📋 1. 이벤트 관리 기능 개선 -### 이벤트 등록/수정 화면 통일 +### 등록/수정 화면 통일 + +기존에는 이벤트 **등록 화면**과 **수정 화면**의 디자인이 달랐습니다. | 항목 | 변경 전 | 변경 후 | |------|---------|---------| | 등록 화면 | 수정 화면과 다른 디자인 | 수정 화면과 **완전히 동일한 디자인** | | 이미지 업로드 | 등록 화면에서 일부 기능 누락 | 이미지 업로드, 미리보기 등 **모든 기능 통일** | +| 시술 선택 | 등록 시 일부 동작 안 됨 | 등록/수정 모두 정상 동작 | ### 이벤트 목록 화면 개선 -- **이벤트 시작일/종료일** 컬럼이 목록(그리드)에 추가되었습니다 -- "이벤트(다이어트)", "이벤트(쁘띠)" 메뉴에 따라 표시되는 컬럼이 자동으로 변경됩니다 +- 목록(그리드)에 **이벤트 시작일/종료일** 컬럼이 추가되었습니다 +- "이벤트(다이어트)", "이벤트(쁘띠)" 메뉴에 따라 표시 컬럼이 자동 변경됩니다 ### 날짜 저장 버그 수정 -- **문제:** 이벤트 시작일/종료일이 "2026-02-" 처럼 불완전하게 저장되는 문제 -- **해결:** 날짜가 "20260215" 형식으로 정확히 저장되도록 수정 +- **문제:** 이벤트 시작일/종료일이 "2026-02-" 처럼 날짜가 잘려서 저장되는 문제 +- **해결:** 날짜가 "20260215" 형식으로 빠짐없이 정확히 저장되도록 수정 --- -## 📅 2. 온라인 예약 캘린더 개선 +## 🏥 2. 센터별 운영시간 / 휴무일 관리 -### 캘린더에서 예약 불가 날짜 표시 +### 운영시간 관리 화면 -고객이 예약할 때 보는 캘린더에 다음과 같은 개선이 적용됩니다: +CRM에서 각 센터의 요일별 기본 운영시간을 설정할 수 있습니다. +(예: 월~금 10:00~19:00, 토 10:00~14:00) -| 날짜 유형 | 표시 방식 | 클릭 가능? | -|-----------|----------|-----------| -| 일반 영업일 | 기본 표시 | ✅ 가능 | -| 일요일 | 빨간색 글자 + 회색 배경 + 흐리게 | ❌ 불가 | -| 공휴일 | 빨간색 글자 + 회색 배경 + 흐리게 | ❌ 불가 | -| 병원 자체 휴무일 | 빨간색 글자 + 회색 배경 + 흐리게 | ❌ 불가 | -| 별도 운영일 (아래 3번 참고) | 기본 표시 | ✅ 가능 (일요일/공휴일이어도 예외적으로 예약 가능) | +### 별도 스케줄 기능 (신규) -### 예약 시간대 표시 수정 +기본 운영시간 외에 **특정 날짜만** 운영시간을 다르게 설정해야 할 때 사용합니다. -- **문제:** 평일인데 시간대가 제대로 표시되지 않는 문제 -- **해결:** 시간대 조회 로직의 조건 오류를 수정하여 정상 표시 +**사용 예시:** -### 캘린더 반응형 (화면 크기 대응) +| 상황 | 처리 방법 | +|------|----------| +| 2/18(화)에 오전만 운영하고 싶다 | 2/18에 별도 스케줄 등록 (09:00~13:00) | +| 2/23(일)에 특별 영업하고 싶다 | 2/23에 별도 스케줄 등록 + 운영 ON | +| 3/1(토)에 임시 휴무하고 싶다 | 3/1에 별도 스케줄 등록 + 운영 OFF | -- 캘린더가 화면 크기에 맞게 자동으로 조절되도록 개선 +> 💡 **우선순위:** 별도 스케줄이 등록된 날짜는 기본 운영시간 대신 별도 스케줄이 적용됩니다. ---- - -## 🏥 3. 센터별 운영시간/휴무일 관리 (신규 기능) - -### 별도 스케줄 기능이란? - -기본적으로 병원은 **요일별 운영시간** (예: 월~금 10:00~19:00)이 설정되어 있습니다. -하지만 특정 날짜에 운영시간을 변경해야 할 때가 있습니다. - -**예시:** -- 2/18(화)은 평일이지만 **오전만 운영** → 별도 스케줄로 등록 -- 2/23(일)은 보통 휴무지만 **특별 영업** → 별도 스케줄로 `운영 ON` 등록 - -### 별도 스케줄의 우선순위 - -``` -별도 스케줄 (특정 날짜) > 기본 요일별 운영시간 -``` - -별도 스케줄이 등록된 날짜는 기본 운영시간 대신 별도 스케줄의 시간이 적용됩니다. - -### 휴무일 관련 개선 +### 휴무일 관리 개선 | 항목 | 변경 전 | 변경 후 | |------|---------|---------| -| 휴무일 반복 옵션 | 기본값 없음 (실수로 빈 값 저장 가능) | **"반복 안함"이 기본 선택** | -| 운영시간 탭 버튼 | 다른 화면과 크기가 다름 | 다른 화면과 **동일한 버튼 크기**로 통일 | +| 휴무일 반복 옵션 | 기본값 없음 (빈 값 저장 가능) | **"반복 안함"이 기본 선택** | +| 운영시간 탭 버튼 | 다른 화면과 크기 다름 | 다른 화면과 **동일하게 통일** | --- -## 🖥️ 4. 고객 홈페이지 이벤트 화면 개선 +## 🔀 3. 예약 기능 분리 -### 이벤트 목록 화면 +### 변경 전 -고객이 보는 이벤트 목록 페이지에 다음 기능이 추가되었습니다: +예약 관련 코드가 **시술안내(WebService)** 코드 안에 섞여 있었습니다. +- 시술 조회도 하고, 예약 저장도 하고, 캘린더 정보도 가져오는 등 +- 하나의 파일에 너무 많은 기능이 들어있어 관리가 어려웠습니다 -| 기능 | 설명 | -|------|------| -| **이벤트 기간 표시** | 각 이벤트 카드에 📅 시작일 ~ 종료일이 표시됩니다 | -| **종료된 이벤트 표시** | 종료일이 지난 이벤트는 흐리게 표시되고, 우상단에 "종료된 이벤트" 배지가 붙습니다 | -| **지난 이벤트 클릭 차단** | 종료된 이벤트를 클릭하면 상세페이지로 이동하지 않고, **"지난 이벤트" 안내 팝업**이 표시됩니다 | +### 변경 후 -### 이벤트 상세 화면 +예약 기능을 **독립적인 모듈**로 분리했습니다. -- 시술 선택, 가격 계산, 예약 버튼 등의 기능은 동일 -- 코드 구조만 개선 (화면/동작 변경 없음) +| 기능 | 변경 전 | 변경 후 | +|------|---------|---------| +| 예약 저장 | WebServiceController에 포함 | **ReservationController**로 분리 | +| 예약 조회 | WebServiceService에 포함 | **ReservationService**로 분리 | +| 예약 SQL | WebServiceSqlMap에 포함 | **ReservationMapper**로 분리 | -### 예약 화면 - -- 기존 예약 화면 코드 구조 개선 (별도 파일로 분리) -- 예약 로직은 독립 모듈로 분리하여 유지보수성 향상 - ---- - -## 📁 코드 구조 개선 (기술적 배경) - -여러 화면의 코드가 **한 파일에 800~1,600줄씩** 섞여 있었습니다. -이를 역할별로 분리하여 유지보수가 쉬워졌습니다. - -| 화면 | 변경 전 (줄 수) | 변경 후 (줄 수) | 비고 | -|------|----------------|----------------|------| -| 예약 화면 | 1,614줄 | 97줄 | 스타일·기능을 각각 별도 파일로 분리 | -| 이벤트 상세 | 780줄 | 80줄 | 스타일·기능을 각각 별도 파일로 분리 | -| 이벤트 목록 | 600줄 | 60줄 | 스타일·기능을 각각 별도 파일로 분리 | - -> 💡 화면에서 보이는 것은 전혀 변하지 않습니다. **내부 코드만 깔끔하게 정리**한 것입니다. - ---- - -## ✅ 적용된 프로젝트 - -| 프로젝트 | 적용된 변경 | -|---------|------------| -| **madeu_crm** | 이벤트 관리, 운영시간/휴무일 관리, 별도 스케줄 | -| **madeu_diet_home** | 예약 캘린더, 이벤트 목록/상세, 코드 분리, 지난이벤트 팝업 | -| **madeu_petit_home** | 다이어트홈과 동일한 변경 적용 | +> 💡 **사용자 화면에 변화는 없습니다.** 내부 코드만 정리하여 향후 기능 추가나 수정이 쉬워졌습니다. ---