프레임워크를 추가할 때 수정할 영역을 좁히기
상황
사내 버셀은 처음에 FastAPI만 지원했습니다. 정적 HTML도 배포할 수 있도록 지원 범위를 넓히고 싶었습니다.
문제
기존에는 워커가 저장소를 받아 FastAPI에 맞춰 빌드, 테스트, 배포했습니다. 프레임워크별 실행 조건을 선택하는 계층이 없어, 다른 프레임워크를 지원하려면 워커의 처리 방식도 수정해야 했습니다.
해결
워커의 배포 절차를 그대로 두고 지원 대상을 늘리기 위해, 중간에 계약이라는 추상화 계층을 추가했습니다. 테스트 명령과 포트 같은 실행 조건을 계약으로 정의하고, 저장소에 맞는 계약을 선택해 빌드, 테스트, 배포를 진행하도록 했습니다.
이후 정적 HTML 계약과 판별 규칙을 추가해 워커를 수정하지 않고 HTML 지원을 추가했습니다. 프로젝트 생성 화면과 템플릿 설정은 변경했지만, 배포 단계마다 프레임워크별 조건을 추가할 필요는 없었습니다.
조직 초대를 자동화해 사용자 대기 줄이기
상황
사용자가 사내 버셀에서 프로젝트를 만들려면 먼저 GitHub 조직에 가입해야 했습니다. 기존에는 관리자에게 가입을 요청하고 조직 초대를 받았습니다.
문제
가입 요청마다 관리자가 본인 확인과 초대 발송을 반복해야 했고, 사용자는 그 처리가 끝날 때까지 기다려야 했습니다. 이 수작업을 없애 사용자가 관리자 응답을 기다리지 않고 가입을 진행하도록 만들고 싶었습니다.
해결
관리자의 수동 초대를 없애고, 사용자도 관리자 응답을 기다리지 않고 가입을 진행할 수 있게 했습니다. 가입 버튼을 누르면 GitHub App이 조직 초대를 자동으로 요청하도록 수정했습니다.
실제 화면 공유드립니다.
회고
팀 내 리뷰에서 다음과 같은 피드백을 받았습니다.
- 완성된 제품처럼 느껴져 사용 의욕이 생겼습니다.
- 사용자 입장에서 쉽게 시작할 수 있어 거부감이 적었습니다.
사용 경험의 완성도를 높이는 일이 사용자의 참여를 이끌 수 있음을 깨달았습니다. 공수가 큰 고도화는 바로 진행하기 어렵지만, 작은 개선은 주기적으로 반영해 완성도 높은 환경에서 작업한다는 느낌을 주고 싶습니다.