From f46a161b7544cb9b99600e2507e4767b4691cb5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=AC=B8=ED=98=95=EC=84=9D?= Date: Wed, 22 Jul 2026 11:53:38 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=A5=ED=97=8C=20=EB=A0=88=EA=B1=B0?= =?UTF-8?q?=EC=8B=9C=20=EB=A6=AC=EB=88=85=EC=8A=A4=EC=A0=84=ED=99=98=20?= =?UTF-8?q?=EA=B2=80=ED=86=A0/0010.=EC=9E=A5=ED=97=8C=20=EB=A0=88=EA=B1=B0?= =?UTF-8?q?=EC=8B=9C=20=EB=A6=AC=EB=88=85=EC=8A=A4=20=EC=A0=84=ED=99=98=20?= =?UTF-8?q?=EC=8B=A4=ED=96=89=20=EC=A0=95=EC=B1=85=20=EB=AC=B8=EC=84=9C.md?= =?UTF-8?q?=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....장헌 레거시 리눅스 전환 실행 정책 문서.md | 121 ++++++++++++++---- 1 file changed, 95 insertions(+), 26 deletions(-) diff --git a/장헌 레거시 리눅스전환 검토/0010.장헌 레거시 리눅스 전환 실행 정책 문서.md b/장헌 레거시 리눅스전환 검토/0010.장헌 레거시 리눅스 전환 실행 정책 문서.md index 594863a..60ef874 100644 --- a/장헌 레거시 리눅스전환 검토/0010.장헌 레거시 리눅스 전환 실행 정책 문서.md +++ b/장헌 레거시 리눅스전환 검토/0010.장헌 레거시 리눅스 전환 실행 정책 문서.md @@ -1,51 +1,84 @@ +# 장헌 레거시 리눅스 전환 실행 정책 문서 +## 문서 목적 + +이 문서는 장헌 레거시 서비스의 리눅스 전환 작업을 실제로 수행할 때의 기준 문서다. + +앞으로의 작업은 본 문서의 `단계별 타임테이블`을 기준으로 진행한다. + +또한 작업 중 새로운 단계가 추가되거나, 기존 단계의 범위/순서/소요가 변경되면: + +1. 먼저 이 문서의 타임테이블을 갱신하고 +2. 그 다음 실제 작업을 진행한다 + +즉, 이 문서는 단순 보고용이 아니라 `실행 기준표`다. + +## 프로젝트 배경 + +장헌 레거시 서비스는 현재 Windows 기반 APMSETUP 환경에서 운영되고 있다. + +현재까지 확인된 운영 기준: + +| 항목 | 현재 운영 기준 | +| --- | --- | +| 웹서버 | Apache 2.2.14 | +| PHP | PHP 5.2.12 | +| DB | MySQL 5.1.41 계열 | +| 템플릿 엔진 | Smarty 2.6 | +| 운영 루트 | `D:\APM_Setup\htdocs` | +| 운영 성격 | 통합 웹루트 안에서 여러 서비스 동시 운영 | + +이번 전환은 단일 서비스 1개를 옮기는 작업이 아니라, 여러 서비스가 같은 레거시 웹루트와 공통 자산을 공유하는 구조를 리눅스로 옮기는 작업이다. + +## 현재 레거시 상황 + +| 구분 | 내용 | +| --- | --- | +| 핵심 서비스 | `intranet`, `factory_mng`, `person_mng`, `projt_mng`, `account` | +| 공통 의존성 | `Smarty`, `Smarty2.6`, `apiLibrary` | +| 공통 저장소 | `factory_file`, `intranet_file`, `person_file`, `proj_file`, `projt_file`, `erpphoto` | +| 코드 특성 | `mysql_*`, short open tag, Windows 절대경로, 구형 PHP 관행 | +| 템플릿 특성 | Smarty 2.6 기반, 다수 템플릿/백업/컴파일 산출물 혼재 | +| DB 특성 | `hanmacerp` 중심, 일부 보조 DB/보안 DB/뷰 문제 존재 | ## 전환 목표 -현재 기준으로는 아래 두 흐름을 모두 인지하고 작업한다. 현재 실행 기준은 `B안`으로 고정한다. | 구분 | 의미 | | --- | --- | -| 단기 목표 | 리눅스 기준으로 실제 운영 구조를 재현 가능한 상태까지 정리 | -| 중기 목표 | 필요 시 PHP 8 + Smarty 상향까지 포함한 구조 전환 검토 | | 실행 방향 | PHP 8 + Smarty 상향 + Linux/Docker 이관 | | 핵심 목표 | Windows APMSETUP 기반 레거시 서비스를 최신 Linux 기반 스택에서 동작하도록 전환 | | 제외 방향 | A안, 즉 PHP 5.2 계열 운영 재현 우선 방식은 실행 타임테이블에서 제외 | -다만 실제 실행은 `단계별 타임테이블` 기준으로 움직이며, 각 단계의 상태에 따라 다음 단계로 넘어간다. A안 관련 문서는 판단 이력과 비교 자료로만 유지한다. 실제 실행은 아래 `단계별 타임테이블` 기준으로 움직이며, 각 단계의 상태에 따라 다음 단계로 넘어간다. ## 변경될 사항 +| 구분 | 현재 | 전환 후 방향 | +| --- | --- | --- | +| OS | Windows | Linux | +| 실행 방식 | APMSETUP 수동 운영 | Docker 기반 구성 | | 웹루트 | `D:\APM_Setup\htdocs` | 예: `/var/www/html` | | DB 연결 | `localhost`/외부 호스트 혼재 | 환경변수 기반 연결 | | 업로드/로그/캐시 | 웹루트 인접 상대경로/Windows 경로 | Linux 디렉터리/볼륨 매핑 | -| 템플릿 엔진 | Smarty 2.6 | 유지 또는 상향 검토 | | 템플릿 엔진 | Smarty 2.6 | Smarty 상향 적용 검토 후 전환 | | 운영 구조 | 단일 Windows 통합 운영 | Linux/Docker 기준 재구성 | ## 작업 진행 원칙 + +| 번호 | 원칙 | +| --- | --- | +| 1 | 실제 작업은 아래 `단계별 타임테이블` 기준으로 진행한다. | +| 2 | 한 단계가 시작되기 전에, 해당 단계의 입력물/완료조건을 확인한다. | | 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 | 기준 문서와 핵심 근거 확보 | 완료 | @@ -71,39 +104,75 @@ A안 관련 문서는 판단 이력과 비교 자료로만 유지한다. 실제 | 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안 전환 준비`에 집중한다. ## 단계 변경 반영 규칙 +작업 중 아래와 같은 상황이 발생하면 반드시 타임테이블을 먼저 수정한다. + +| 상황 | 조치 | +| --- | --- | +| 새 단계가 필요해짐 | 단계 ID, 단계명, 목표, 산출물, 소요를 추가 | | 단계 순서가 바뀜 | 순서와 우선 경로를 수정 | | 예상 소요가 크게 달라짐 | 소요와 상태 설명 보정 | | 단계 목표가 달라짐 | 목표/완료 기준을 수정 | -| A안에서 B안으로 우선순위가 이동 | 우선 경로와 상태를 갱신 | | B안 범위/순서가 바뀜 | 우선 경로와 상태를 갱신 | ## 상태값 정의 +| 상태 | 의미 | +| --- | --- | +| 미착수 | 아직 시작하지 않음 | +| 진행 중 | 현재 수행 중 | +| 보류 | 외부 입력/승인/결정 대기 | +| 완료 | 완료 기준 충족 | + +## 문서 운영 규칙 + +| 항목 | 규칙 | +| --- | --- | +| 기준 문서 | 본 문서를 상위 실행 기준으로 본다 | +| 상세 규칙 문서 | 작업 규칙 문서와 체크리스트는 본 문서의 하위 실무 문서로 본다 | +| 단계 착수 전 | 이 문서의 해당 단계 목적/완료 기준을 먼저 확인 | +| 단계 변경 시 | 먼저 본 문서를 수정 후 실제 작업 진행 | + ## 현재 시점 요약 현재까지는 운영 기준, DB dump, 원본 압축, Docker 초안, B안 심화 검토 문서가 준비되어 있다. -다음 실제 작업은 `P3`, `P4`, `P6`의 정밀화에 집중하게 된다. 다음 실제 작업은 `P3 운영본 선별 및 구조화`, `P4 PHP 8 치명 이슈 스캔`, `P6 Smarty 상향 설계` 순서로 집중하게 된다. ## 한줄 결론 -앞으로의 작업은 본 문서의 타임테이블을 기준으로 진행하며, 중간에 단계가 추가되거나 수정되면 반드시 먼저 이 문서를 갱신한 뒤 다음 작업을 수행한다. \ No newline at end of file +앞으로의 작업은 본 문서의 타임테이블을 기준으로 진행하며, 중간에 단계가 추가되거나 수정되면 반드시 먼저 이 문서를 갱신한 뒤 다음 작업을 수행한다.