diff --git a/장헌 레거시 리눅스전환 검토/0010.장헌 레거시 리눅스 전환 실행 정책 문서.md b/장헌 레거시 리눅스전환 검토/0010.장헌 레거시 리눅스 전환 실행 정책 문서.md index f52bc9a..594863a 100644 --- a/장헌 레거시 리눅스전환 검토/0010.장헌 레거시 리눅스 전환 실행 정책 문서.md +++ b/장헌 레거시 리눅스전환 검토/0010.장헌 레거시 리눅스 전환 실행 정책 문서.md @@ -1,36 +1,109 @@ + +## 전환 목표 + +현재 기준으로는 아래 두 흐름을 모두 인지하고 작업한다. +현재 실행 기준은 `B안`으로 고정한다. + +| 구분 | 의미 | +| --- | --- | +| 단기 목표 | 리눅스 기준으로 실제 운영 구조를 재현 가능한 상태까지 정리 | +| 중기 목표 | 필요 시 PHP 8 + Smarty 상향까지 포함한 구조 전환 검토 | +| 실행 방향 | PHP 8 + Smarty 상향 + Linux/Docker 이관 | +| 핵심 목표 | Windows APMSETUP 기반 레거시 서비스를 최신 Linux 기반 스택에서 동작하도록 전환 | +| 제외 방향 | A안, 즉 PHP 5.2 계열 운영 재현 우선 방식은 실행 타임테이블에서 제외 | + +다만 실제 실행은 `단계별 타임테이블` 기준으로 움직이며, 각 단계의 상태에 따라 다음 단계로 넘어간다. +A안 관련 문서는 판단 이력과 비교 자료로만 유지한다. 실제 실행은 아래 `단계별 타임테이블` 기준으로 움직이며, 각 단계의 상태에 따라 다음 단계로 넘어간다. + +## 변경될 사항 + +| 웹루트 | `D:\APM_Setup\htdocs` | 예: `/var/www/html` | +| DB 연결 | `localhost`/외부 호스트 혼재 | 환경변수 기반 연결 | +| 업로드/로그/캐시 | 웹루트 인접 상대경로/Windows 경로 | Linux 디렉터리/볼륨 매핑 | +| 템플릿 엔진 | Smarty 2.6 | 유지 또는 상향 검토 | +| 템플릿 엔진 | Smarty 2.6 | Smarty 상향 적용 검토 후 전환 | +| 운영 구조 | 단일 Windows 통합 운영 | Linux/Docker 기준 재구성 | + +## 작업 진행 원칙 +| 3 | 단계가 추가/변경되면 먼저 타임테이블을 수정하고 난 뒤 실제 작업을 진행한다. | | 4 | 다중 서비스 전환이므로 공통 수정의 영향 범위를 항상 같이 점검한다. | | 5 | 운영 사실은 문서/실파일/실제 캡처 기준으로만 기록한다. | | 6 | 판단이 필요한 단계는 B안 기준으로 PHP 8, DB 상향, Smarty 상향 영향을 함께 검토한다. | -| 7 | 단계 진행 중 GPT 모델 전환이 필요하면 먼저 사용자에게 사유를 알리고, 승인 또는 확인 후 전환해 진행한다. | ## 단계별 타임테이블 +| 단계 ID | 단계명 | 목표 | 주요 작업 | 산출물 | 예상 소요 | 완료 기준 | 상태 | +| --- | --- | --- | --- | --- | --- | --- | --- | +| P0 | 기준 확보 | 운영 기준 사실과 범위를 고정 | 운영 버전, 루트 경로, 주요 서비스, DB, 저장소 구조 확인 | 운영 기준 메모, 인벤토리 문서 | 완료 | 기준 문서와 핵심 근거 확보 | 완료 | +| P1 | 원본 반입 | 실제 운영본과 DB dump를 작업 저장소에 반입 | `APM_Setup.zip`, `hanmacerp.sql`, 설정 파일 반입 | 압축본, dump, 반입 기록 | 완료 | 원본 소스/DB/설정 확보 | 완료 | +| P2 | 실행 기준 정리 | 작업 규칙, 보고 문서, 체크리스트 고정 | 보고 문서, 규칙 문서, B안 체크리스트 작성 | 규칙 문서, 전략 문서 | 완료 | 상위 기준 문서 정리 | 완료 | +| P3 | 운영 재현 준비 | 리눅스 재현을 위한 Docker 골격과 DB 적재 절차 준비 | compose, Dockerfile, entrypoint, DB init 절차 정리 | Docker 초안, import 절차 | 진행 중 | 웹/DB 골격과 import 절차 준비 | 진행 중 | +| P4 | 운영본 선별 및 구조화 | 실제 사용 서비스와 공통 자산을 선별 배치 | `app/htdocs` 기준 운영본/보류본/저장소 분리 | 선별 반입 구조 | 미착수 | 실제 운영본 구조가 고정됨 | 미착수 | +| P5 | A안 리눅스 재현 검증 | 현재 운영과 최대한 비슷하게 Linux/Docker에서 기동 확인 | 경로 치환, DB 연결, 업로드/로그/캐시 검증 | 1차 재현 결과, 오류 목록 | 미착수 | 로그인/대표 화면/대표 기능 구동 | 미착수 | +| P6 | B안 영향도 심화 분석 | PHP 8, DB 상향, Smarty 상향 범위를 실제 코드 기준으로 확정 | PHP 치명 이슈 스캔, Smarty 자산 분류, DB 호환성 분석 | B안 심화 메모, 착수 체크리스트 | 진행 중 | B안 실제 범위와 리스크 확정 | 진행 중 | +| P7 | B안 설계 확정 | PHP 8 + Smarty 상향 + Linux 이관의 실제 전환 순서를 확정 | 목표 버전, 공통부 전환, 서비스 우선순위 설계 | B안 설계 문서 | 미착수 | B안 실행 설계 승인 가능 수준 | 미착수 | +| P8 | B안 코드 전환 | 공통부부터 PHP 8/Smarty 상향 적용 | DB 계층, 공통 함수, Smarty 초기화부, 진입부 수정 | 코드 변경본, 변경 로그 | 미착수 | 대표 서비스의 PHP 8/Smarty 상향 기동 | 미착수 | +| P9 | 서비스별 회귀 테스트 | 다중 서비스 동작과 저장소 기능 확인 | 로그인, 메인, 첨부, 이미지, 로그, 인코딩, 세션 확인 | 테스트 결과표, 오류 목록 | 미착수 | 핵심 서비스별 대표 기능 확인 | 미착수 | +| P10 | 안정화 및 운영 전환 판단 | 반복 오류 보정과 최종 전환 판단 | 버그 수정, 재기동 검증, 문서 갱신 | 안정화 기록, 전환 판단 메모 | 미착수 | 운영 적용 여부 판단 가능 상태 | 미착수 | +| 단계 ID | 단계명 | 목표 | 주요 작업 | 산출물 | 예상 소요 | 권장 GPT 모델 | 완료 기준 | 상태 | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | +| P0 | 기준 확보 | 운영 기준 사실과 범위를 고정 | 운영 버전, 루트 경로, 주요 서비스, DB, 저장소 구조 확인 | 운영 기준 메모, 인벤토리 문서 | 완료 | GPT-5.6 Terra 또는 GPT-5.5 high | 기준 문서와 핵심 근거 확보 | 완료 | +| P1 | 원본 반입 | 실제 운영본과 DB dump를 작업 저장소에 반입 | `APM_Setup.zip`, `hanmacerp.sql`, 설정 파일 반입 | 압축본, dump, 반입 기록 | 완료 | GPT-5.6 Terra 또는 GPT-5.5 high | 원본 소스/DB/설정 확보 | 완료 | +| P2 | B안 실행 기준 정리 | PHP 8 전환 중심의 작업 규칙, 보고 문서, 체크리스트 고정 | 정책 문서, 규칙 문서, B안 체크리스트 갱신 | 규칙 문서, 전략 문서, 실행 정책 문서 | 완료 | GPT-5.6 Sol | A안 제외 및 B안 실행 기준 고정 | 완료 | +| P3 | 운영본 선별 및 구조화 | 실제 사용 서비스와 공통 자산을 선별 배치 | `APM_Setup.zip` 해제, 운영본/보류본/저장소 분리, 템플릿 산출물 분류 | 선별 반입 구조, 서비스 인벤토리 | 미착수 | GPT-5.6 Terra | 실제 운영본 구조가 고정됨 | 미착수 | +| P4 | PHP 8 치명 이슈 스캔 | PHP 5.2 코드가 PHP 8에서 깨질 지점을 실제 코드 기준으로 식별 | `mysql_*`, `ereg`, `split`, `each`, short tag, 동적 속성, 참조 전달, 배열/문자열 접근 스캔 | PHP 8 이슈 목록, 우선순위표 | 미착수 | GPT-5.6 Terra, 판단 검토는 GPT-5.6 Sol | 공통부와 대표 서비스의 치명 이슈 목록 확보 | 미착수 | +| P5 | DB 계층 전환 설계 | MySQL 5.x 접근 방식을 PHP 8 호환 DB 계층으로 전환 설계 | DB 접속부 추적, `mysql_*` 대체 방식 결정, PDO/MySQLi 래퍼 설계, 문자셋 정책 정리 | DB 전환 설계 메모, 공통 DB 래퍼 초안 | 미착수 | GPT-5.6 Sol | 코드 전환 전에 DB 접근 정책 확정 | 미착수 | +| P6 | Smarty 상향 설계 | Smarty 2.6 템플릿/플러그인을 상위 버전 기준으로 전환 설계 | 템플릿 문법 스캔, 플러그인 호환성 점검, 컴파일/캐시 경로 정책, 목표 버전 확정 | Smarty 전환 설계 메모, 템플릿 이슈 목록 | 진행 중 | GPT-5.6 Sol | Smarty 전환 범위와 수정 패턴 확정 | 진행 중 | +| P7 | Linux/Docker 목표 스택 확정 | PHP 8 기반 리눅스 실행 스택을 확정 | Apache/Nginx 여부, PHP-FPM 여부, MySQL 목표 버전, 볼륨/권한/환경변수 설계 | Docker 목표 설계, compose 기준안 | 미착수 | GPT-5.6 Sol | B안 실행 인프라 기준 승인 가능 상태 | 미착수 | +| P8 | 공통부 코드 전환 | 서비스 전체에 영향이 큰 공통부부터 PHP 8 기준으로 수정 | DB 계층, 공통 함수, 설정 로더, 경로 처리, 세션/쿠키, Smarty 초기화부 수정 | 공통부 변경본, 변경 로그 | 미착수 | GPT-5.6 Sol | 대표 진입점이 PHP 8에서 fatal 없이 로드됨 | 미착수 | +| P9 | 서비스별 코드/템플릿 전환 | 핵심 서비스별 PHP/Smarty 오류를 순차 수정 | `intranet`, `factory_mng`, `person_mng`, `projt_mng`, `account` 순차 점검 및 수정 | 서비스별 수정 로그, 오류 목록 | 미착수 | 반복 수정은 GPT-5.6 Terra, 난해한 오류는 GPT-5.6 Sol | 핵심 서비스 대표 화면과 대표 기능 동작 | 미착수 | +| P10 | DB/데이터 상향 검증 | MySQL 8 또는 선택된 목표 DB에서 데이터와 쿼리 호환성 확인 | dump import, 뷰/트리거/프로시저 점검, 예약어/문자셋/정렬 기준 확인 | DB import 결과, 쿼리 오류 목록 | 미착수 | GPT-5.6 Sol | 주요 조회/저장 쿼리와 문자셋 이상 여부 확인 | 미착수 | +| P11 | 서비스별 회귀 테스트 및 안정화 | 다중 서비스 동작과 저장소 기능을 반복 확인 | 로그인, 메인, 첨부, 이미지, 로그, 인코딩, 세션, 권한 확인 | 테스트 결과표, 오류 목록, 안정화 기록 | 미착수 | GPT-5.6 Terra, 대량 체크는 GPT-5.6 Luna 가능 | 핵심 서비스별 대표 기능 확인 | 미착수 | +| P12 | 운영 전환 판단 | 반복 오류 보정 후 최종 전환 가능 여부 판단 | 잔여 리스크 정리, 릴리스/롤백 기준 작성, 문서 갱신 | 전환 판단 메모, 릴리스 체크리스트 | 미착수 | GPT-5.6 Sol | 운영 적용 여부 판단 가능 상태 | 미착수 | + +## GPT 모델 선택 기준 + +| 모델 | 적합한 작업 | +| --- | --- | +| GPT-5.6 Sol | 아키텍처 결정, PHP 8 전환 판단, DB/Smarty 상향 설계, 복잡한 오류 분석, 최종 리뷰 | +| GPT-5.6 Terra | 파일 인벤토리, 반복 코드 스캔, 서비스별 수정, 문서 정리, 중간 난이도 리팩토링 | | GPT-5.6 Luna | 대량 목록화, 단순 분류, 테스트 결과 요약처럼 판단 부담이 낮은 반복 작업 | | GPT-5.5 high/xhigh | GPT-5.6 사용이 불가할 때의 대체 선택. 중요한 설계/리뷰 작업은 high 이상 권장 | -## GPT 모델 전환 정책 - -단계별로 적합한 GPT 모델을 나누어 쓰더라도, 프로젝트 기준과 판단 맥락은 유지되어야 한다. 모델 전환은 작업 품질을 높이기 위한 수단이며, 전환 자체가 작업 기준을 바꾸는 것은 아니다. - -| 상황 | 전환 전 조치 | 전환 후 조치 | -| --- | --- | --- | -| Terra/Luna로 진행 중 복잡한 설계 판단이 필요함 | 사용자에게 Sol 전환 사유를 알림 | 기존 단계 목적, 입력물, 완료 기준을 요약한 뒤 Sol로 판단 | -| Sol로 진행 중 반복 스캔/목록화 작업이 많아짐 | 사용자에게 Terra 또는 Luna 전환 가능성을 알림 | 판단 기준은 Sol에서 확정한 내용을 유지하고 반복 작업만 분리 | -| 모델 전환 후 이전 결론과 충돌하는 판단이 나옴 | 즉시 작업을 멈추고 충돌 내용을 사용자에게 보고 | 기존 문서 근거와 새 판단을 비교한 뒤 사용자 확인 후 반영 | -| 장시간 작업 후 다른 모델로 이어서 진행해야 함 | 현재 단계, 수정 파일, 미해결 이슈, 다음 명령을 요약 | 이어받는 모델은 요약 내용을 먼저 확인하고 작업 재개 | - -모델 전환 시 반드시 아래 내용을 남긴다. - -| 기록 항목 | 내용 | -| --- | --- | -| 전환 사유 | 왜 현재 모델로는 부족하거나 비효율적인지 | -| 전환 대상 | 예: GPT-5.6 Terra에서 GPT-5.6 Sol로 전환 | -| 유지 기준 | 작업 목표, 완료 기준, 금지 사항, 이미 확정된 결정 | -| 이어받을 내용 | 현재 단계, 관련 파일, 남은 작업, 확인해야 할 리스크 | - -작업 중 모델 전환이 필요하다고 판단되면, 실제 전환 전에 사용자에게 먼저 알리고 진행한다. - ## 현재 기준 우선 작업 경로 현재 문서 작성 시점(`2026-07-22`) 기준 우선 경로는 아래와 같다. + +1. `P3 운영 재현 준비` 마무리 +2. `P4 운영본 선별 및 구조화` +3. `P6 B안 영향도 심화 분석` 보강 +4. 이후 `P5`와 `P7` 중 실제 의사결정에 따라 진행 +1. `P3 운영본 선별 및 구조화` +2. `P4 PHP 8 치명 이슈 스캔` +3. `P6 Smarty 상향 설계` +4. `P5 DB 계층 전환 설계`와 `P7 Linux/Docker 목표 스택 확정` +5. 이후 `P8 공통부 코드 전환`부터 실제 코드 전환 착수 + +즉, 현재는 `A안 재현 준비`와 `B안 심화 분석`이 병행 구간에 있다. +즉, 현재부터는 `A안 재현 준비`를 실행 경로에서 제외하고, `B안 전환 준비`에 집중한다. + +## 단계 변경 반영 규칙 + +| 단계 순서가 바뀜 | 순서와 우선 경로를 수정 | +| 예상 소요가 크게 달라짐 | 소요와 상태 설명 보정 | +| 단계 목표가 달라짐 | 목표/완료 기준을 수정 | +| A안에서 B안으로 우선순위가 이동 | 우선 경로와 상태를 갱신 | +| B안 범위/순서가 바뀜 | 우선 경로와 상태를 갱신 | + +## 상태값 정의 + +## 현재 시점 요약 + +현재까지는 운영 기준, DB dump, 원본 압축, Docker 초안, B안 심화 검토 문서가 준비되어 있다. +다음 실제 작업은 `P3`, `P4`, `P6`의 정밀화에 집중하게 된다. +다음 실제 작업은 `P3 운영본 선별 및 구조화`, `P4 PHP 8 치명 이슈 스캔`, `P6 Smarty 상향 설계` 순서로 집중하게 된다. + +## 한줄 결론 + +앞으로의 작업은 본 문서의 타임테이블을 기준으로 진행하며, 중간에 단계가 추가되거나 수정되면 반드시 먼저 이 문서를 갱신한 뒤 다음 작업을 수행한다. \ No newline at end of file