[P1] [인프라] 8081 분리 worktree 기동 절차와 로컬 디자인 자산 복제 고정 #17

Closed
opened 2026-03-31 17:33:52 +09:00 by hyunho · 3 comments
Owner

배경

8081 작업용은 원래 8080과 포트만 다른 서버가 아니라, 코드 소스까지 분리된 전용 worktree에서 기동되어야 한다.
이번 복구 과정에서 8081이 메인 workspace를 직접 마운트한 상태로 떠 있으면 8080과 디자인 소스가 섞이고, 오전 작업 디자인도 재현되지 않는 문제가 확인되었다.

확인된 사실

  • 정상적인 8081 경로는 /tmp/mh-dashboard-organization-dev-worktree
  • project name은 mh-dashboard-organization-dev
  • docker inspect mh-dashboard-organization-dev-backend-1 기준 마운트 소스가 /tmp/mh-dashboard-organization-dev-worktree/... 여야 함
  • .env와 일부 로컬 전용 디자인 자산(sample style.css, 260320.html, 사업관리대장/ 등)은 git clone만으로는 보장되지 않으므로 준비 단계에서 같이 복제해야 함

이번에 정리한 내용

  • scripts/prepare_dev_worktree.sh.env와 로컬 전용 incoming 자산까지 같이 복제하도록 보강
  • docs/DEV_PROD_DB_PROTOCOL.md에 8081 분리 기동 절차와 검증 기준 추가
  • docs/REGRESSION_CHECKLIST.md에 마운트 소스 확인 절차 추가
  • docs/WORK_RULEBOOK.md에 8081은 반드시 분리 worktree에서만 띄운다는 규칙 추가

완료 기준

  • 다음 세션에서도 ./scripts/prepare_dev_worktree.sh 후 바로 8081이 분리 worktree 기준으로 뜰 것
  • 8081이 메인 workspace를 직접 마운트하는 상태를 문서와 체크리스트로 방지할 것
  • 80808081이 같은 디자인 소스를 동시에 보지 않도록 운영 규칙이 남아 있을 것
## 배경 `8081` 작업용은 원래 `8080`과 포트만 다른 서버가 아니라, 코드 소스까지 분리된 전용 worktree에서 기동되어야 한다. 이번 복구 과정에서 `8081`이 메인 workspace를 직접 마운트한 상태로 떠 있으면 `8080`과 디자인 소스가 섞이고, 오전 작업 디자인도 재현되지 않는 문제가 확인되었다. ## 확인된 사실 - 정상적인 `8081` 경로는 `/tmp/mh-dashboard-organization-dev-worktree` - project name은 `mh-dashboard-organization-dev` - `docker inspect mh-dashboard-organization-dev-backend-1` 기준 마운트 소스가 `/tmp/mh-dashboard-organization-dev-worktree/...` 여야 함 - `.env`와 일부 로컬 전용 디자인 자산(`sample style.css`, `260320.html`, `사업관리대장/` 등)은 git clone만으로는 보장되지 않으므로 준비 단계에서 같이 복제해야 함 ## 이번에 정리한 내용 - `scripts/prepare_dev_worktree.sh`가 `.env`와 로컬 전용 incoming 자산까지 같이 복제하도록 보강 - `docs/DEV_PROD_DB_PROTOCOL.md`에 8081 분리 기동 절차와 검증 기준 추가 - `docs/REGRESSION_CHECKLIST.md`에 마운트 소스 확인 절차 추가 - `docs/WORK_RULEBOOK.md`에 8081은 반드시 분리 worktree에서만 띄운다는 규칙 추가 ## 완료 기준 - 다음 세션에서도 `./scripts/prepare_dev_worktree.sh` 후 바로 `8081`이 분리 worktree 기준으로 뜰 것 - `8081`이 메인 workspace를 직접 마운트하는 상태를 문서와 체크리스트로 방지할 것 - `8080`과 `8081`이 같은 디자인 소스를 동시에 보지 않도록 운영 규칙이 남아 있을 것
Author
Owner

추가 목적을 명확히 남깁니다.

이번 이슈에서 말하는 코드 정리는 단순 포맷 정리나 함수명 변경이 아닙니다.

실제 목적:

  • 현재 8080/8081, 메인 허브, 조직현황 legacy, 프로젝트 분석, 팀/개인별 분석, 사업관리대장 통합 경로가 서로 복잡하게 얽혀 있는 상태를 정리
  • iframe, 정적 HTML, legacy 스크립트, incoming 파일, 공통 스타일, 페이지별 스타일의 연결 관계를 단순화
  • 화면별 자산 로딩 경로와 책임 범위를 명확히 분리
  • 8081에서만 적용해야 하는 작업이 8080 공통 소스를 오염시키지 않도록 구조를 정비
  • 다음 작업에서 디자인/기능을 추가해도 다시 경로가 꼬이거나 임시 연결이 누적되지 않게 만드는 것

구체적으로 정리해야 할 대상:

  • 어떤 화면이 어떤 소스 파일을 기준으로 렌더링되는지 명확화
  • incoming-files의 참고 자산, 실제 서빙 자산, 임시 실험 자산 구분
  • frontend/public, legacy/static, incoming-files 사이의 역할 재정리
  • 8081 전용 복구/실험 파일과 8080 공개용 파일의 승격 절차 표준화
  • 중복 스타일/임시 색상 치환/산발적인 버전 쿼리스트링 사용 정리

완료 기준도 이 관점으로 본다:

  • 다음 세션에서 파일 출처와 연결 구조를 다시 추적하느라 시간을 쓰지 않아도 될 것
  • 특정 화면 수정 시 어느 파일을 고쳐야 하는지 즉시 알 수 있을 것
  • 8081 실험이 8080을 망가뜨리지 않는 구조가 유지될 것
  • 디자인 복구/승격 작업이 diff 중심으로 통제 가능할 것
추가 목적을 명확히 남깁니다. 이번 이슈에서 말하는 `코드 정리`는 단순 포맷 정리나 함수명 변경이 아닙니다. 실제 목적: - 현재 `8080`/`8081`, 메인 허브, 조직현황 legacy, 프로젝트 분석, 팀/개인별 분석, 사업관리대장 통합 경로가 서로 복잡하게 얽혀 있는 상태를 정리 - `iframe`, 정적 HTML, legacy 스크립트, incoming 파일, 공통 스타일, 페이지별 스타일의 연결 관계를 단순화 - 화면별 자산 로딩 경로와 책임 범위를 명확히 분리 - `8081`에서만 적용해야 하는 작업이 `8080` 공통 소스를 오염시키지 않도록 구조를 정비 - 다음 작업에서 디자인/기능을 추가해도 다시 경로가 꼬이거나 임시 연결이 누적되지 않게 만드는 것 구체적으로 정리해야 할 대상: - 어떤 화면이 어떤 소스 파일을 기준으로 렌더링되는지 명확화 - `incoming-files`의 참고 자산, 실제 서빙 자산, 임시 실험 자산 구분 - `frontend/public`, `legacy/static`, `incoming-files` 사이의 역할 재정리 - `8081` 전용 복구/실험 파일과 `8080` 공개용 파일의 승격 절차 표준화 - 중복 스타일/임시 색상 치환/산발적인 버전 쿼리스트링 사용 정리 완료 기준도 이 관점으로 본다: - 다음 세션에서 파일 출처와 연결 구조를 다시 추적하느라 시간을 쓰지 않아도 될 것 - 특정 화면 수정 시 어느 파일을 고쳐야 하는지 즉시 알 수 있을 것 - `8081` 실험이 `8080`을 망가뜨리지 않는 구조가 유지될 것 - 디자인 복구/승격 작업이 diff 중심으로 통제 가능할 것
Author
Owner

재부팅 후 같은 8080/8081 화면을 다시 올릴 수 있도록 영구 경로 기준으로 정리하고 커밋함.

적용 내용:

  • 8081 전용 worktree 경로를 /tmp/... 대신 메인 저장소 내부 .dev-worktree-8081로 고정
  • prepare_dev_worktree.sh는 기존 .dev-worktree-8081이 있으면 재사용하고, FORCE_RECREATE=1일 때만 완전 재생성하도록 변경
  • start_8081.sh 추가: 8081만 재기동
  • start_local_dashboards.sh 추가: 8080 + 8081 같이 재기동
  • 문서들에 재부팅 후 기동 절차와 마운트 확인 규칙 반영

현재 확인 상태:

  • mh-dashboard-organization-dev-backend-1는 실제로 /home/hyunho/projects/mh-dashboard-organization/.dev-worktree-8081/...를 마운트 중
  • 8081은 더 이상 휘발성 /tmp 경로에 의존하지 않음

메인 저장소 커밋:

  • 4b4ffaf docs: persist isolated 8081 startup workflow

실제 사용 명령:

  • ./scripts/start_local_dashboards.sh
  • 또는 ./scripts/start_8081.sh

이후 목적:

  • 재부팅 후에도 현재와 같은 분리 구조로 8080, 8081을 복원 가능하게 유지
  • 8081의 디자인 복구본은 .dev-worktree-8081 기준으로 계속 이어서 작업
재부팅 후 같은 8080/8081 화면을 다시 올릴 수 있도록 영구 경로 기준으로 정리하고 커밋함. 적용 내용: - `8081` 전용 worktree 경로를 `/tmp/...` 대신 메인 저장소 내부 `.dev-worktree-8081`로 고정 - `prepare_dev_worktree.sh`는 기존 `.dev-worktree-8081`이 있으면 재사용하고, `FORCE_RECREATE=1`일 때만 완전 재생성하도록 변경 - `start_8081.sh` 추가: `8081`만 재기동 - `start_local_dashboards.sh` 추가: `8080` + `8081` 같이 재기동 - 문서들에 재부팅 후 기동 절차와 마운트 확인 규칙 반영 현재 확인 상태: - `mh-dashboard-organization-dev-backend-1`는 실제로 `/home/hyunho/projects/mh-dashboard-organization/.dev-worktree-8081/...`를 마운트 중 - 즉 `8081`은 더 이상 휘발성 `/tmp` 경로에 의존하지 않음 메인 저장소 커밋: - `4b4ffaf` `docs: persist isolated 8081 startup workflow` 실제 사용 명령: - `./scripts/start_local_dashboards.sh` - 또는 `./scripts/start_8081.sh` 이후 목적: - 재부팅 후에도 현재와 같은 분리 구조로 `8080`, `8081`을 복원 가능하게 유지 - `8081`의 디자인 복구본은 `.dev-worktree-8081` 기준으로 계속 이어서 작업
Author
Owner

현재 기준으로 완료 처리 가능.

반영 완료:

  • 8081.dev-worktree-8081 + work-8081 기준으로 고정
  • prepare_dev_worktree.sh가 reference 자산 복제 경로까지 최신 구조에 맞게 갱신됨
  • 관련 운영 문서와 체크포인트도 현재 구조에 맞게 정리됨

비고:

  • 초기 본문에 있던 /tmp/... 경로 설명은 과거 복구 시점 기준이고, 현재 공식 기준은 .dev-worktree-8081이다.
  • 현재 목적이었던 8080/8081 분리 운영 기준 고정은 달성됨.
현재 기준으로 완료 처리 가능. 반영 완료: - `8081`은 `.dev-worktree-8081` + `work-8081` 기준으로 고정 - `prepare_dev_worktree.sh`가 reference 자산 복제 경로까지 최신 구조에 맞게 갱신됨 - 관련 운영 문서와 체크포인트도 현재 구조에 맞게 정리됨 비고: - 초기 본문에 있던 `/tmp/...` 경로 설명은 과거 복구 시점 기준이고, 현재 공식 기준은 `.dev-worktree-8081`이다. - 현재 목적이었던 `8080`/`8081` 분리 운영 기준 고정은 달성됨.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: hyunho/MH-DashBoard-organization#17