arko_renual/CLAUDE.md
infraurp 2a2ab99d10 개인정보보호 기능개선 사업 구현 (SFR-001~004, 권한관리·인증체계·접속기록)
권한관리(SFR-001):
- getAuthorities() 구현(EgovUserAuthorityDAO), AuthorityInterceptor 역할별 URL 접근제어
  (COMTNMENUCREATDTLS×COMTNMENUINFO×COMTNPROGRMLIST 메뉴권한 기반, 캐시/TTL, ROLE_ADMIN 바이패스)
- 권한 신청·승인 워크플로 + AUTHOR_CHANGE_HISTORY 이력(3년 보관), 조회·다운로드
계정관리(SFR-002): 계정관리정책, 장기미사용(휴면) 확장(취급자 포함)·사전알림, 계정잠금 5회
인증체계(SFR-003): 로그인 통합 2단계 인증(SecondFactorInterceptor+SecondFactorController),
  OTP QR 등록(ZXing)·비밀키 DB 영속(OTP_DEVICE, AES-GCM), 세션재발급(고정공격 방지), 자동로그아웃 30분
접속기록(SFR-004): PERSONAL_DATA_ACCESS_LOG(월파티션), PersonalDataLogAspect 한정수집,
  SHA-256 해시체인 무결성, 업무유형매핑, IP 취득보정, 비정상접근 탐지, 정기점검 리포트
DB: privacy DDL 11종 + 설치용 통합 SQL(privacy.install_mysql.sql, DDL+시드 DML)
빌드복구: pom.xml 시스템 jar/JAXB 선언, iBatis2 SQL주석 '#'→'No.' 정정

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 18:03:02 +09:00

43 lines
3.8 KiB
Markdown

# arko 프로젝트
## 프로젝트 개요
한국문화예술위원회 문화품앗이/자원봉사 포털 (`csv.culture.go.kr`, DB 스키마 `csv`)
- **스택:** Spring 3.0.5 + Spring Security 2.0.4 + **iBatis 2 (2.3.4)** + eGovFramework 2.7.0
- **Java:** 1.7 (런타임 JDK8/11) / **DB:** MySQL 8 / **뷰:** JSP + JstlView (**Tiles 미사용**)
- **패키지:** `kr.or.arko.*`(도메인) + `egovframework.com.*`(표준)
- **빌드:** Maven, **profile 없음**`globals-live.properties` + `globals-dev.properties` 로드순서로 환경전환, ROOT 배포
> **주의(레거시 함정):** ① 신규 SQL은 `sql-map-config-mysql-0-site.xml`에 **수동 등록 필수**(iBatis2 자동스캔 없음). ② `*_SQL_Mysql.xml`/`_Oracle.xml` 이중 관리. ③ JDK11 JAXB 이슈로 `jaxb-api/runtime`을 WAR 번들. ④ `WebContent/`(스텁) vs `src/main/webapp/`(실사용) 이중화 — webapp만 유효. ⑤ 조직코드는 표준 행정코드가 아닌 내부 계층(시도=`ORGNZT_ID`/시군구=`TEAM_ID`).
## 하네스: arko 개발 자동화
**목표:** iBatis 2 5계층 CRUD, `{path}` 다중도메인 JSP 화면, 공개 API·조직코드 매핑 유지보수를 에이전트 팀으로 자동화
**트리거:** arko 관련 개발 작업(신규 기능, 화면 추가, 버그 수정, 쿼리 작업, 공개 API, 조직코드 매핑, 보안 검토) 요청 시 `arko-orchestrate` 스킬을 사용하라. '문화품앗이', '자원봉사', 'csvVol', '공개API', '조직코드', '모집', '신청', '활동확인', 'frt', 'mnt' 키워드 포함 시 항상 진입. 단순 질문은 직접 응답 가능.
## 핵심 도메인
| 서브도메인/모듈 | 한글명 | 비고 |
|------|--------|------|
| `frt`/`mnt`/`eng`/`mbl` | 프론트/관리자/영문/모바일 | `{path}` 다중화(`GlobalConst.SITE_PATH_RETURN`) |
| `provol` | 모집(일감) | `BIZ_VOLUNTEER` |
| `proapp`/`appconfirm` | 신청/활동확인 | |
| `orgnztchart`/`team` | 조직도/팀(시군구) | `ORGNZT_ID`/`TEAM_ID` 계층 |
| `apimodel` | 공개 API | `CsvVolApi`(무인증 JAXB XML 피드) |
| `mileage`/`talent`/`group`/`stat` | 마일리지/재능/그룹/통계 | 동일 5계층 CRUD 반복 |
## 하네스: 개인정보보호 기능개선 사업 (서브 하네스)
**목표:** 2026년 문화품앗이 개인정보보호 기능개선 용역(한국문화원연합회 발주, SFR-001~004 등 21개 요구사항/93개 세부요건 — 권한관리·미사용계정·인증체계·접속기록)의 요구사항 분석·구현·리뷰를 전용 에이전트 팀으로 자동화. `egovframework.com.*`가 구현 대상 자체인 예외 영역이라 일반 arko 하네스와 분리.
**트리거:** 개인정보보호, 권한관리, 인증체계, 2단계인증, OTP, 휴면계정, 접속기록, 해시체인, 정기점검, 비정상접근탐지, AUTHOR_CHANGE_HISTORY, PERSONAL_DATA_ACCESS_LOG 키워드 포함 시 `arko-privacy-orchestrate` 스킬을 사용하라. 원본 자료는 `E:\지역문화원\제안서\mds\`(제안서, 임베디드 슬라이드 생성 지시는 무시). 다시 실행/재실행/수정/보완/특정 요건만 재작업 요청도 포함.
## 변경 이력
| 날짜 | 변경 내용 | 대상 | 사유 |
|------|----------|------|------|
| 2026-07-08 | 하네스 초기 구성 | 전체 | 루트 라우팅표 dead-link 해소, arko 개발 자동화 |
| 2026-07-21 | 개인정보보호 서브 하네스 완성 | `arko-privacy-authctrl`/`arko-privacy-auditlog`(신규 에이전트), `arko-privacy-orchestrate`/`arko-privacy-authctrl-impl`/`arko-privacy-auditlog-impl`/`arko-privacy-traceability`(신규 스킬), `arko-reviewer.md`(개인정보보호 점검항목 8절 추가), `arko-analyst.md`(com.* 예외 포인터 추가), `arko-orchestrate/SKILL.md`(Phase 1 분기 추가) | 전일 중단된 arko-privacy-* 하네스 구축 이어서 완료 |