[P2] [리팩터링 2차] 8081 백엔드 라우터/서빙 deeper 모듈 분리 #19
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
상위 이슈
#14배경
현재
backend/app/main.py에 인증, 멤버, 통합데이터, 업로드, 자리배치도, legacy/integration 파일 서빙이 과도하게 집중되어 있다.db.py도 스키마 초기화와 운영성 로직이 한 파일에 몰려 있어 영향 추적이 어렵다.이번 차수 목표
기능을 바꾸지 않고,
8081백엔드 구조를 읽기 쉬운 책임 단위로 분리한다.작업 범위
main.py라우트 성격 구분db.py에서 스키마 초기화와 운영 쿼리/보정 로직 분리 검토제외 범위
완료 조건
main.py의 주요 책임이 분리되어 변경 영향 추적이 쉬워질 것현재 기준으로 우선순위를 낮춰도 됨.
현황:
#18,#20,#21에서 상당 부분 선행됨main.py의 deeper router/module 분리는 아직 남아 있지만, 지금 즉시 기능 작업을 막는 수준은 아님현재 남은 실제 범위:
main.py의 auth / members / integrations / seatmaps / serving 단위 deeper 분리db.py의 schema/init 와 운영 쿼리 책임 분리즉 지금은 구조 고도화 성격의 후순위 리팩터링으로 보는 것이 맞다.
[P1] [리팩터링 2차] 8081 백엔드 라우터/서빙 책임 분리to [P2] [리팩터링 2차] 8081 백엔드 라우터/서빙 deeper 모듈 분리#191차 진행상황 업데이트이번 라운드 반영:
DB 상태관련 상수/메타데이터/스냅샷/테이블 프리뷰 로직을backend/app/admin_db_status.py로 분리main.py는 DB 상태 라우트와 앱 조립 역할만 남기고, 상세 로직은 별도 모듈 import 구조로 변경main.py에서 약 400줄 규모의 보조 로직이 빠져, 이후 라우터/서빙 책임 분리를 더 진행하기 쉬운 상태가 됨현재 판단:
DB 상태영역부터 떼어내는 방식이 안전했다.사업관리대장 기본 원본 동기화/서빙 보조또는integration 서빙 보조영역이다.#192차 진행상황 업데이트이번 라운드 반영:
사업관리대장기본 원본 동기화/기본 원본 응답/ledger served index 응답 보조 로직을backend/app/ledger_runtime.py로 분리main.py는 startup에서 ledger runtime helper를 호출하고,/api/integration/business-ledger-default,/integrations/ledger라우트는 helper를 사용하는 얇은 진입점만 남기도록 정리현재 판단:
DB 상태와사업관리대장 runtime처럼 독립성이 높은 보조 영역부터 떼어내는 방식이 안정적이다.integration payment/mh/ledger/db-status서빙 보조 묶음 또는 auth/user sync 보조 묶음이다.#19진행상황 업데이트이번 라운드 반영:
backend/app/main.py에서 시스템/정적 서빙 라우트를 별도 모듈로 분리backend/app/system_routes.py/api/health/api/admin/db-status/api/admin/db-status/table/admin/db-status/api/integration/business-ledger-default/api/integration/mh-workbook/legacy/organization/legacy/organization-backup/integrations/payment/integrations/ledger/integrations/mh/uploads/{filename}main.py는register_system_routes(...)로 조립만 하도록 정리현재 판단:
main.py에서 독립성이 높은 운영/서빙 라우트가 먼저 분리됨#19추가 진행상황 업데이트이번 라운드 반영:
auth라우트를 별도 모듈로 분리backend/app/auth_routes.py/api/auth/login/api/auth/logout/api/auth/me/api/mock-loginmain.py는register_auth_routes(...)로 조립만 하도록 정리현재 판단:
main.py에서 운영/서빙 + auth 라우트가 빠지면서 분리 기준이 더 명확해짐members/history또는integration축 중 하나#19추가 진행상황 업데이트이번 라운드 반영:
members/history라우트를 별도 모듈로 분리backend/app/member_routes.py/api/members/api/history/members/compare/api/membersPOST/api/members/bulk-sync/api/members/{member_id}PUT/DELETE/api/members/importmain.py는register_member_routes(...)로 조립만 하도록 정리현재 판단:
main.py에서 시스템/서빙 + auth + members/history 라우트가 빠지면서 책임 경계가 더 명확해짐integration또는seat-map축#19추가 진행상황 업데이트이번 라운드 반영:
integration조회/적재 라우트를 별도 모듈로 분리backend/app/integration_routes.py/api/integration/import/api/integration/summary/api/integration/projects/api/integration/members/api/integration/teams/api/integration/project-breakdowns/api/integration/payment-source/api/integration/mh-sourcemain.py는register_integration_routes(...)로 조립만 하도록 정리현재 판단:
main.py에서 시스템/서빙 + auth + members/history + integration 라우트가 빠지면서 책임 분리가 의미 있게 진행됨seat-map/uploads축#19추가 진행상황 업데이트이번 라운드 반영:
seat-map/uploads라우트를 별도 모듈로 분리backend/app/seatmap_routes.py/api/uploads/profile-photo/api/uploads/seat-map-image/api/seat-maps/dxf/api/seat-maps/active/api/seat-mapsPOST/PUT/api/seat-maps/{seat_map_id}/layout/api/seat-maps/{seat_map_id}/viewermain.py는register_seatmap_routes(...)로 조립만 하도록 정리현재 판단:
main.py에서 주요 라우트 축(system/serving, auth, members/history, integration, seat-map/uploads)이 빠져서 라우터와 계산/변환 로직 경계가 크게 선명해짐