쿠폰 화면 데이터 보완과 배포 흐름 재정비
목차
오늘 저녁 작업은 언뜻 단순해 보이는 두 가지였는데, 하나씩 뜯어보면 꽤 연결된 맥락이 있었다. 기능을 손보다가 배포 준비 단계에서 다른 문제를 발견하고, 거기서 또 결정을 내려야 했던 흐름이다.
발단: 공급사 단축명이 화면에 없었다
쿠폰 관리 상세화면을 들여다보다가 불편한 점이 눈에 걸렸다. 목록과 상세 모두 공급사 전체 명칭만 표시되고 있었고, 실무에서 더 자주 쓰는 단축명이 아예 빠져 있었다. 운영팀 입장에서 공급사를 식별할 때 전체명보다 단축명이 훨씬 직관적인데, 조회 쿼리 자체에서 해당 컬럼을 가져오지 않고 있었던 것이다.
수정 범위를 정리하면 이렇다:
| 레이어 | 수정 내용 |
|---|---|
| SQL 쿼리 매퍼 (ap) | 공급사 단축명 컬럼 SELECT 추가 |
| SQL 쿼리 매퍼 (coupon) | 단축명 조인/조회 반영 |
| coupon-master/list.jsp | 목록 테이블에 단축명 컬럼 추가 |
| coupon-master/detail.jsp | 상세 폼에 단축명 필드 추가 |
| coupon/list.jsp | 동일 처리 |
| coupon/detail.jsp | 동일 처리 |
두 개의 쿼리 매퍼와 네 개의 JSP를 한 세트로 건드려야 하는 작업이었다. 레이어가 분산돼 있어서 하나라도 빠뜨리면 null이 뜨거나 폼 레이아웃이 틀어지는 구조라 체크리스트처럼 하나씩 짚어가며 수정했다.
-- 변경 전 (개념적 예시)
SELECT cp.coupon_id, sp.supplier_nm
FROM coupon cp
JOIN supplier sp ON sp.supplier_id = cp.supplier_id
-- 변경 후
SELECT cp.coupon_id, sp.supplier_nm, sp.supplier_short_nm
FROM coupon cp
JOIN supplier sp ON sp.supplier_id = cp.supplier_id
쿼리에서 단축명을 끌어오고 → VO에 매핑하고 → JSP에서 렌더링하는 전형적인 MVC 체인 수정이었다. 로직 자체는 단순하지만, 여러 파일이 맞물려 있어서 정합성 확인이 핵심이었다.
그 다음: 배포 파이프라인이 발목을 잡고 있었다
작업을 마치고 배포를 준비하다 보니, 기존 CI/CD 자동배포 워크플로우에서 rsync 동기화 단계와 prisma 마이그레이션 실행 타이밍이 맞지 않아 충돌이 발생하는 문제가 눈에 밟혔다. 이게 간헐적으로 발생하는 패턴이라 자동 파이프라인을 그대로 두면 배포 오류를 추적하는 것 자체가 더 큰 부담이 되는 상황이었다.
이 시점에서 판단은 빠르게 정했다:
- 자동 배포가 불안정하면, 수동으로 통제하는 게 낫다
deploy.yml을 비활성화하고.disabled확장자를 붙여 워크플로우 동결CLAUDE.md에 현재 배포 방식과 변경 이유를 기록해 팀 맥락 공유
자동화가 항상 정답인 건 아니다. 충돌이 해소되지 않은 파이프라인을 계속 트리거하면 배포 실패 로그가 쌓이고, 나중에는 "왜 실패했는지"를 역추적하는 데 더 많은 시간이 든다. 지금은 수동 git 배포로 통일하고, 충돌 원인이 해소되면 다시 자동화를 살리는 것이 리스크 관리 측면에서 맞다고 봤다.
이 두 작업이 같은 세션에 있는 이유
화면 데이터 보완 → 배포 준비 → 파이프라인 충돌 발견 → 배포 전략 재정비. 오늘 저녁 흐름의 전부다. 기능을 만들다 보면 배포 단계에서 별도 문제를 마주치는 일이 생기고, 거기서 또 다른 결정을 내려야 하는 게 실무 개발의 현실이다.
총괄 팀장 포지션에서 보면, 단축명 컬럼 하나 추가한 게 작아 보여도 운영팀이 공급사를 한눈에 구분하지 못하면 그게 쌓여서 커뮤니케이션 비용이 된다. 배포 파이프라인 정비도 마찬가지 — 지금 안정적인 배포 흐름을 확보해두지 않으면 다음 기능 배포 때 또 같은 문제로 시간을 쓴다. 오늘 할 수 있는 건 다 했다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.