병원별 웹 구축에 seed 저장소를 재사용하고 배포를 자동화한 과정
2026.10.04 · 2분
개요
| 항목 | 내용 |
|---|---|
| 유형 | 공통 개발 기반 구축·배포 자동화 |
| 시점 | 병원별 웹 개발 과정 |
| 상태 | seed 저장소 공동 구축·병원별 사이트 제작·배포 자동화 적용 |
| 관련 영역 | 공통 컴포넌트, 메뉴 설정, 서버 API 연동, GitHub Actions, AWS ECS |
| 참여자 | 프론트엔드 개발자 2명(본인 포함) |
| 나의 역할 | 공통 컴포넌트 정의·구현 범위 공동 결정, seed 저장소 공동 구축과 병원별 사이트 개발, 배포 자동화·프론트엔드 AWS 설정 담당 |
1. 상황과 제약
부스트리의 병원별 웹은 병원마다 사이트를 만들어 따로 배포하는 구조였습니다. 처음에는 병원이 하나 늘 때마다 서버 요청 코드를 다시 짜고, 컴포넌트와 디자인 설정도 처음부터 다시 해야 했습니다.
병원마다 디자인과 일부 설정은 달라도, 관리자에서 설정한 메뉴를 보여 주고 서버 API로 데이터를 가져오는 부분은 모두 같았습니다. 이 같은 작업을 사이트마다 되풀이하는 게 번거로웠습니다.
2. 검토와 판단
그래서 동료 프론트엔드 개발자와 공통 부분을 seed 저장소로 묶었습니다. seed 저장소는 병원별 웹을 시작할 때 쓰는 공통 프로젝트이고, 병원별 사이트는 이 저장소를 클론한 뒤 병원 디자인에 맞게 고쳐서 만들었습니다.
| 구분 | 구성 방식 |
|---|---|
| 공통 컴포넌트 | 필요한 컴포넌트를 함께 정의하고 shadcn 활용 부분과 직접 구현할 부분 구분 |
| 메뉴 설정·서버 연동 | 관리자에서 설정하는 메뉴와 서버 API 연동을 공통 기반에 포함 |
| 병원별 디자인 | seed 저장소를 클론한 뒤 해당 병원의 디자인에 맞게 수정 |
| 병원별 배포 | 파트너 명칭을 입력하면 해당 병원의 AWS 리소스와 ECS를 찾아 배포 |
공통 컴포넌트와 구현 범위는 둘이 같이 정했습니다. 배포는 병원마다 따로 해야 했기 때문에 파트너 명칭만 넣으면 대상을 찾아 배포하도록 자동화했습니다.
3. 실행과 조율
공통 기반과 병원별 사이트 제작
먼저 동료와 공통으로 필요한 컴포넌트를 정하고, shadcn으로 쓸 것과 직접 만들 것을 나눴습니다. 필요한 컴포넌트는 둘이 나눠 구현했습니다.
seed 저장소에는 공통 컴포넌트, 관리자 메뉴 설정, 서버 API 연동을 넣었습니다. 그다음부터는 병원 단위로 작업을 나눠, 각자 seed 저장소를 클론해 맡은 병원의 디자인에 맞게 고쳤습니다.
파트너 명칭 기반 배포
저는 프론트엔드 쪽 AWS 설정을 맡았고, GitHub Actions 배포 흐름을 다음처럼 만들었습니다.
- 개발자가 배포할 파트너 명칭을 입력합니다.
- 입력한 명칭으로 AWS 리소스를 조회합니다.
- 해당 파트너의 ECS를 찾아 Docker 이미지를 배포합니다.
배포는 개발자가 직접 실행했고, 이전 버전으로 되돌려야 할 때는 ECS 롤백 기능을 쓸 수 있게 했습니다.
4. 결과와 확인
새 병원 사이트는 seed 저장소를 클론해 그 병원 디자인에 맞게 고치는 방식으로 만들었습니다. 메뉴 설정과 서버 API 연동은 다시 구현하지 않고 공통 기반을 그대로 씁니다.
배포는 병원이 달라도 파트너 명칭만 넣으면 같은 방식으로 실행되고, 필요하면 ECS 롤백으로 이전 버전으로 되돌릴 수 있습니다.