갭 분석
DB · 코드 · 데이터를 대조해 지금 남아 있는 작업을 뽑아냅니다.
남은 원본 기능
11
바로 가능
0
기다릴 것 없음
하드코딩 화면
9
미사용 테이블
4
데이터는 있는데 API 없음
데이터 이슈
0
데이터에서 발견된 문제
발견된 문제가 없습니다.
아직 옮기지 않은 원본 기능 (11)
원본에는 있는데 우리에게 없는 것입니다. 원본 메뉴 · Spring 이 안 읽는 테이블 · 끊긴 링크를 대조해 뽑았습니다. 태스크로는 wvctesol-dev-design/docs/todo.md 에 등록돼 있습니다 — 이 표와 그 파일을 함께 갱신합니다.
| 태스크 | 영역 | 기능 | 크기 | 지금 할 수 있나 |
|---|---|---|---|---|
D1 | 데이터 | 비밀번호 없는 회원 3,165명 전체 6,680명 중 47% 가 비밀번호 칸이 비어 있다. 지금 로그인은 bcrypt 대조만 하므로 이 사람들은 어떤 비밀번호로도 못 들어온다. member.pw = '' 3,165행 | 보통 | 결정 필요 소셜 전용 계정인지, 재설정을 태워야 하는지 정해야 한다. 재설정이라면 메일 발송이 먼저다. |
D2 | 관리자 | 관리자 계정 생성 · 비밀번호 변경 지금은 목록과 승인 토글만 있다. admin/admin/ad_write.php | 작음 | 결정 필요 권한 상승 경로다. admin.auth 컬럼이 무엇을 뜻하는지 정하고 붙인다. |
D3 | 사용자 | 합격수기 스크랩 수기를 스크랩해 두는 기능. 데이터는 579건 쌓여 있는데 화면도 API 도 없다. pass_note_scrap 579행 | 작음 | 결정 필요 원본 화면을 아직 못 찾았다. 지금도 쓰는 기능인지 확인이 필요하다. |
D4 | 사용자 | 취업 · 창업 정보 퀵메뉴에서 여는 취업정보 목록·상세와 창업 안내 화면. job/findJob_list.php · job/findJob_view.php · job/startUp.php | 보통 | 결정 필요 현재 헤더에는 없고 퀵메뉴에만 있다. 계속 쓸 메뉴인지 확인이 필요하다. |
D5 | 서버 | member.login_id 유니크 제약 경합 자체는 자문 잠금(pg_advisory_xact_lock)으로 막았다 — 스키마를 건드리지 않는다. 동시 10건이 와도 하나만 만들어진다. 이미 중복이 있어도 먼저 만들어진 계정으로 동작하게 해 두어 계정이 잠기지 않는다. 유니크 제약은 이제 마지막 방어선이다. member.login_id — 일반 인덱스만 있다. 실데이터 중복은 0 이라 언제든 걸 수 있다. | 작음 | 결정 필요 급하지 않다. 잠금은 한 DB 를 보는 동안만 유효해서, DB 를 나누거나 복제본으로 확인하게 되면 그때는 제약이 필요하다. |
D6 | 데이터 | 회원 없는 기록 1,181건 정리 진도 116건만이 아니라 다섯 표에 걸쳐 있다. 우리 조회는 회원 하나씩만 보므로 화면에는 섞이지 않고(가드레일 3개로 확인), 회원 수 집계도 member 표만 센다. 지우면 되돌릴 수 없다. certificate_post 656 · lecture_progress_total 164 · payment 154 · lecture_progress 116 · quiz_result 91 | 작음 | 결정 필요 DB 삭제라 확인이 필요하다. 탈퇴 회원의 결제·수료 기록에 보존 의무가 있는지 먼저 봐야 한다. |
E1 | 서버 | 카드 결제 실거래 승인·취소 흐름은 다 만들었는데 상점키가 없어 실제로는 못 돈다. 지금은 키가 없으면 조용히 성공시키지 않고 거부한다. NICEPAY/* · wvctesol.nicepay.merchant-key | 작음 | 외부 대기 NICEPAY 상점키가 있어야 한다. |
E2 | 서버 | 메일 발송 아이디 찾기 · 비밀번호 재설정 링크가 메일로 나가야 하는데 SMTP 설정이 없어 지금은 로그만 남는다. 흐름 자체는 완성돼 있다. mail/*_sendmail.php · DefaultNotificationSender | 작음 | 외부 대기 SMTP 계정이 있어야 한다. |
E3 | 서버 | 문자 발송 알림 포트는 있는데 실제 발송기가 없어 로그만 남는다. 원본은 Aligo 를 쓴다. 발송 이력 테이블도 아직 안 쓴다. _lib/aligo/Aligo.php · sms_send 5,899행 · sms_content 6행 | 보통 | 외부 대기 Aligo 계정과 발신번호가 있어야 한다. |
I1 | 관리자 | 배너 등록 · 수정 지금은 조회만 된다. admin/banner/banner_write.php · banner 65행 | 보통 | 인프라 필요 파일 업로드 인프라가 먼저다. 경로만 받으면 깨진 이미지가 등록된다. |
T18 | 사용자 | 카카오 계정 연동 이미 있는 계정에 카카오를 붙이는 기능이 원본 학생정보 화면에 있다. 로그인 · 가입의 카카오와는 다른 흐름이다. myclass/studentInformation.php:67~117 · member.kakao_name · member_sign_log.kakao_id | 보통 | 결정 필요 연동 뒤 기존 아이디 로그인을 막을지 정해야 한다 — 로그인 화면에 그렇게 안내하고 있다. |
이관 대상이 아닌 것 (6)
원본 메뉴에는 있지만 파일 자체가 없거나, 다른 방식으로 대체한 것입니다.
- 약관 관리 · SNS 관리 (관리자)admin/config · admin/sns 디렉터리가 없다
- 자주듣는 질문 중복 메뉴 (qs_list)좌측 메뉴에서 주석 처리돼 있고 faq_list 로 대체됐다
- SMLOG · 영문 후기 (관리자)smlog_list.php · stry_list.php 파일이 없다
- 파닉스 소개 (사용자)헤더에 링크는 있으나 tecLab/phonics.php 가 없다
- 이메일 무단수집 거부 (푸터)member/antiEmail.php 가 없다
- 모바일 전용 사이트 (M/html/*)반응형으로 만들어 한 벌로 대체했다
아직 하드코딩인 화면 (9)
| 경로 | 데이터 블록 | 줄 |
|---|---|---|
/join | 1 | 268 |
/my-class인증 | 1 | 112 |
/my-class/course-outline인증 | 1 | 235 |
/my-class/phonics-online인증 | 1 | 199 |
/my-class/teaching-online인증 | 1 | 218 |
/my-class/tec-course-outline인증 | 1 | 221 |
/my-class/university-register인증 | 2 | 144 |
/privacy | 1 | 22 |
/terms | 1 | 22 |
API 가 쓰지 않는 테이블 (4)
데이터는 들어 있는데 어떤 엔드포인트도 조회하지 않습니다.
비어 있는 테이블 (26)
스키마만 있고 데이터가 없습니다. 신규 기능용이거나 이관이 누락된 것입니다.