개발

SMART LOTTO 개발기 7편 — 소스코드를 잃었다

2026-02-21·2분 읽기
SMART LOTTO 개발기 7편 — 소스코드를 잃었다

어떻게 이런 일이

개발자라면 버전 관리의 중요성을 누구나 알고 있습니다. 그런데도 이런 일이 생깁니다.

시작은 Bitbucket 용량 문제였습니다.


Bitbucket 용량 초과

당시 여러 개인 프로젝트의 소스코드를 Bitbucket에서 관리하고 있었습니다. 어느 날 용량이 한계에 다가왔습니다. 저장소들을 정리해야 했습니다.

기준은 간단했습니다. "로컬에 코드가 있으니 원격은 지워도 된다." 지금 생각하면 아찔하지만, 그때는 당연한 판단이었습니다.

SMART LOTTO 저장소를 포함해서 몇 개를 삭제했습니다. 맥북에 코드가 있었으니 안심했습니다.


맥북 포맷

그로부터 얼마 후, 맥북들을 포맷하게 됐습니다.

직접 사용하는 맥북이 두 대 있었는데, 양쪽 다 정리가 필요한 상황이었습니다. 포맷 전에 중요한 파일들을 백업하는 과정에서 SMART LOTTO 코드는 신경 쓰지 못했습니다.

포맷 후, SMART LOTTO 코드를 찾으려 했을 때 어디에도 없었습니다.

  • Bitbucket: 저장소 삭제됨
  • 맥북 A: 포맷됨
  • 맥북 B: 포맷됨
  • 외장 드라이브: 해당 프로젝트 없음

앱은 앱스토어에 1.0.0부터 이전 버전들이 살아있고, 버그가 있는 채로 실행도 됩니다. 하지만 그걸 수정할 수 있는 코드는 세상 어디에도 없는 상태가 됐습니다.


잠깐 멍했습니다

솔직히 말하면 한동안 이 상황이 실감이 안 났습니다. 코드가 없다고 해서 당장 앱이 사라지는 건 아닙니다. 그냥 업데이트를 못 하는 것뿐이니까요.

그런데 버그가 있습니다. 데이터를 못 가져오는 버그가. 이걸 고치지 못한다는 게 현실로 와 닿기 시작했습니다.

앱을 그냥 포기해야 하는 건지 고민이 됐습니다. 5년 넘게 앱스토어에 올라가 있고, 4.7점짜리 별점을 쌓아온 앱을 그냥 두는 건 아깝습니다.


코드는 없지만 앱은 살아있다

그런데 앱은 아직 실행된다

여기서 생각을 바꿨습니다.

소스코드가 없다고 앱을 포기해야 하는 건 아닙니다. 앱 자체는 앱스토어에서 다운받아 실행할 수 있습니다. 모든 UI와 기능이 눈에 보이는 상태입니다.

코드 없이 앱을 다시 만드는 것. 화면을 보면서 기능을 하나씩 구현하는 것. 어렵지만 불가능하지는 않습니다. 오히려 이왕 다시 만드는 거라면, 더 잘 만들 수 있다는 생각이 들었습니다.

다음 편에서는 이 상황을 어떻게 돌파했는지 이야기해보겠습니다.