Files
MyDoc/장헌 레거시 리눅스전환 검토/0010.장헌 레거시 리눅스 전환 실행 정책 문서.md
T

13 KiB

장헌 레거시 리눅스 전환 실행 정책 문서

문서 목적

이 문서는 장헌 레거시 서비스의 리눅스 전환 작업을 실제로 수행할 때의 기준 문서다.

앞으로의 작업은 본 문서의 단계별 타임테이블을 기준으로 진행한다.

또한 작업 중 새로운 단계가 추가되거나, 기존 단계의 범위/순서/소요가 변경되면:

  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 상향 + 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 상향 적용 검토 후 전환
운영 구조 단일 Windows 통합 운영 Linux/Docker 기준 재구성

작업 진행 원칙

번호 원칙
1 실제 작업은 아래 단계별 타임테이블 기준으로 진행한다.
2 한 단계가 시작되기 전에, 해당 단계의 입력물/완료조건을 확인한다.
3 단계가 추가/변경되면 먼저 타임테이블을 수정하고 난 뒤 실제 작업을 진행한다.
4 다중 서비스 전환이므로 공통 수정의 영향 범위를 항상 같이 점검한다.
5 운영 사실은 문서/실파일/실제 캡처 기준으로만 기록한다.
6 판단이 필요한 단계는 B안 기준으로 PHP 8, DB 상향, Smarty 상향 영향을 함께 검토한다.
7 단계 진행 중 GPT 모델 전환이 필요하면 먼저 사용자에게 사유를 알리고, 승인 또는 확인 후 전환해 진행한다.

단계별 타임테이블

단계 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 PHP 8 치명 이슈 스캔
  3. P6 Smarty 상향 설계
  4. P5 DB 계층 전환 설계P7 Linux/Docker 목표 스택 확정
  5. 이후 P8 공통부 코드 전환부터 실제 코드 전환 착수

즉, 현재부터는 A안 재현 준비를 실행 경로에서 제외하고, B안 전환 준비에 집중한다.

단계 변경 반영 규칙

작업 중 아래와 같은 상황이 발생하면 반드시 타임테이블을 먼저 수정한다.

상황 조치
새 단계가 필요해짐 단계 ID, 단계명, 목표, 산출물, 소요를 추가
단계 순서가 바뀜 순서와 우선 경로를 수정
예상 소요가 크게 달라짐 소요와 상태 설명 보정
단계 목표가 달라짐 목표/완료 기준을 수정
B안 범위/순서가 바뀜 우선 경로와 상태를 갱신

상태값 정의

상태 의미
미착수 아직 시작하지 않음
진행 중 현재 수행 중
보류 외부 입력/승인/결정 대기
완료 완료 기준 충족

문서 운영 규칙

항목 규칙
기준 문서 본 문서를 상위 실행 기준으로 본다
상세 규칙 문서 작업 규칙 문서와 체크리스트는 본 문서의 하위 실무 문서로 본다
단계 착수 전 이 문서의 해당 단계 목적/완료 기준을 먼저 확인
단계 변경 시 먼저 본 문서를 수정 후 실제 작업 진행

현재 시점 요약

현재까지는 운영 기준, DB dump, 원본 압축, Docker 초안, B안 심화 검토 문서가 준비되어 있다.
다음 실제 작업은 P3 운영본 선별 및 구조화, P4 PHP 8 치명 이슈 스캔, P6 Smarty 상향 설계 순서로 집중하게 된다.

한줄 결론

앞으로의 작업은 본 문서의 타임테이블을 기준으로 진행하며, 중간에 단계가 추가되거나 수정되면 반드시 먼저 이 문서를 갱신한 뒤 다음 작업을 수행한다.