릴리스 토글

Release Toggle

도구

아직 완성되지 않은 기능을 사용자 눈에 안 보이게 감춰 두려고 심는 피처 플래그의 한 용도입니다.

등장 배경

오래 걸리는 기능을 만들 때 예전에는 두 길밖에 없었습니다. 따로 갈라 둔 공간에서 다 만들고 나중에 한꺼번에 합치거나, 완성될 때까지 배포를 멈추는 것입니다. 갈라 둔 코드는 본줄기가 바뀔 때마다 멀어지고, 배포를 멈추면 상관없는 작업까지 같이 기다립니다.

페이지덱이 새 편집기를 만들 때 겪었습니다. 태오가 6주 동안 따로 작업했고, 그사이 본줄기의 문서 저장 구조가 바뀌었습니다. 합치는 데 사흘이 걸렸고 그동안 나온 오류는 새 편집기와 무관한 것들이었습니다.

릴리스 토글은 순서를 바꿉니다. 미완성 코드를 매일 본줄기에 합치되, 사용자에게 보이는 스위치는 꺼 둔 채 배포합니다. 코드는 서버에 있고 화면에는 없는 상태입니다.

해결하는 문제

합치는 일과 사용자에게 보여 주는 일을 떼어 놓아 세 가지가 풀립니다.

  1. 긴 갈래가 사라집니다. 반쯤 만든 편집기도 매일 본줄기에 들어가니 멀어질 시간이 없습니다. 사흘이 들던 합치기가 하루 몇 분으로 나눠집니다.
  2. 배포가 멈추지 않습니다. 새 편집기가 미완성이어도 같은 코드에 든 다른 수정은 그대로 나갑니다. 한 기능이 나머지를 붙잡아 두지 않습니다.
  3. 켜는 시점을 개발 완료와 분리할 수 있습니다. 코드가 3주 전에 준비됐어도 스위치는 발표에 맞춰 켭니다. 준비가 덜 됐는데 날짜가 오면 켜지 않으면 됩니다.

수명은 짧게 잡습니다. 전원에게 열린 뒤에는 분기와 스위치를 걷어내고 옛 경로를 지웁니다. 심을 때 치울 날짜를 함께 적고, 그 날짜가 지나면 담당자에게 알림이 가도록 걸어 둡니다. 남겨 두면 다음 사람이 어느 경로가 살아 있는지 확인하는 데 시간을 씁니다.

대신 켠 상태와 끈 상태를 둘 다 확인해야 합니다. 꺼진 경로를 아무도 안 본 채 두 주가 지나면, 스위치를 켜는 날에 옛 화면이 깨져 있는 것을 발견하게 됩니다.

실무 용례

"일단 릴리스 토글 뒤에 넣고 매일 합치죠. 6주짜리 갈래는 다시 만들지 맙시다."

미완성 코드를 감춘 채로 본줄기에 넣자는 제안입니다.

"코드는 지난주에 다 나갔어요. 스위치만 아직 안 켠 상태입니다."

배포와 공개가 분리돼 있다는 설명입니다.

"이 플래그 치울 날짜가 지났는데요. 이번 주에 걷어냅시다."

수명이 끝난 스위치를 정리하자는 지적입니다.

페이지덱은 새 편집기를 이 방식으로 다시 만들었습니다. 태오가 스위치를 꺼 둔 채 매일 합쳤고, 지현이 사내 계정에만 먼저 켜서 두 주 동안 썼습니다. 그 뒤 아주 작은 집단에만 먼저 열어 이상을 살피는 카나리 릴리스로 1퍼센트에게 열었습니다. 전원에게 열린 날 태오가 플래그를 걷어냈습니다.

자주 헷갈리는 용어

용어무엇을 위해 켜고 끄는가릴리스 토글과의 차이
실험 토글집단을 나눠 비교하려고판정될 때까지 켠 쪽과 끈 쪽이 함께 유지됩니다. 릴리스 토글은 비교하지 않고 감추기만 합니다
권한 토글요금제나 권한에 따라제품이 살아 있는 동안 계속 남습니다. 릴리스 토글은 다 열리면 걷어내는 임시 장치입니다

같이 보면 좋은 페이지

  • 피처 플래그

    이 용도가 어느 장치의 한 쓰임인지 봅니다

  • 실험 토글

    같은 장치를 다른 목적으로 쓰는 경우를 봅니다

마지막 업데이트 2026-09-16