설정

← 목록으로

Laravel 업그레이드 자동화에서 지속적 유지보수로

SaaS, Developer Tools, Web, B2B, Developers, One-time Purchase, Subscription, Solo Building, Bootstrapping, Launch, Pricing, Customer Acquisition, Growth, Retention, Infrastructure

Jason McCreary가 Laravel Shift를 버전 업그레이드 도구로 시작해 구독형 유지보수와 AI 코드 검토로 확장한 과정을 다룬다.

2015년 11월, 제이슨 맥크리어리(Jason McCreary)는 PHP 개발자 행사에서 발표를 준비하다가 사업 기회를 발견했다. 주제는 웹서비스 개발에 사용하는 프레임워크 Laravel의 새 버전과 업그레이드 방법이었다. 공식 안내서와 몇몇 설명 글은 있었지만, 안내에 따라 코드를 자동으로 바꿔주는 도구는 찾기 어려웠다. 그는 버전 사이의 변경 사항 상당수가 일정한 규칙으로 처리될 수 있다는 점에 주목했다.

맥크리어리는 행사에 참석한 Laravel 제작자 테일러 오트웰에게 이런 도구를 아는지 물었다. 오트웰도 아는 제품이 없었고, 직접 사용해 보고 싶다는 관심을 보였다. 맥크리어리는 행사 해커톤에서 Laravel 5.0 프로젝트를 5.1로 바꾸는 첫 도구를 만들었으며, 오트웰의 트위터 소개를 통해 초기 시험 사용자를 구했다.

2015년 12월 23일, Shift가 유료 서비스로 공개됐다. 업그레이드 구간에 따라 가격은 3달러, 5달러, 7달러였다. 크리스마스 연휴 동안 약 스무 번의 실행으로 80달러를 벌었다.

사용 방법은 개발자의 기존 작업 과정에 맞췄다. 고객이 GitHub나 Bitbucket 계정으로 로그인해 코드 저장소를 지정하고 결제하면, Shift가 업그레이드를 실행했다. 결과는 원본과 분리된 작업 공간인 브랜치에 저장하고, 변경 사항을 검토해 반영할 수 있는 풀 리퀘스트로 전달했다. 고객은 자신에게 익숙한 코드 검토 화면에서 무엇이 바뀌었는지 확인할 수 있었다.

자동화가 확실하게 처리할 수 없는 부분에는 설명을 남겼다. 개발자는 그 설명을 읽고 필요한 수정을 마친 뒤 결과를 합칠 수 있었으며, 여러 버전을 올릴 때도 단계별로 확인하도록 설계했다. 이 방식은 외부 도구에 수정을 맡기면서도 최종 반영 여부는 개발팀이 결정하게 했다.

초기 제품에는 버그가 있었다. Laravel 교육 서비스 Laracasts의 제프리 웨이도 아이디어는 좋지만 오류가 있다는 피드백을 보냈다. 맥크리어리는 실행 횟수 100회, 250회, 500회, 1,000회를 개발 투자를 늘리는 기준으로 삼고, 단계마다 오류 수정과 기능 확장을 진행했다. 2016년 9월에는 업그레이드 1,000건을 달성했다고 발표했다.

그는 사용을 마친 고객에게 결과가 어땠는지, 무엇을 직접 수정했는지, 어디에서 Shift를 알게 됐는지 물었다. 답변은 자동화의 빈틈과 고객 유입 경로를 함께 알려줬다. 고객지원이 제품 개선과 마케팅 조사를 겸했다.

초기 고객은 주로 트위터에서 들어왔다. 오트웰의 소개가 출발점이었고, 2016년 Laracon 발표로 약 400명의 잠재 고객과 만났다. 행사와 새 버전 출시 이후 매출이 뛰면서 출시 열 달 만에 월매출 약 3,000달러에 도달했다.

그래도 당장 전업하지는 않았다. 2017년에는 보수가 높은 파파존스의 컨설팅 계약을 선택했다. 2018년 10월 계약이 끝나자 Shift에 전념하기로 했으며, 저축을 지키는 조건으로 자신에게 1년을 줬다.

가격을 정하는 데에는 이전의 앱 판매 경험이 영향을 미쳤다. 맥크리어리는 저렴한 가격으로 많은 사용자를 확보하는 방식에 익숙했고, Shift에서도 그 생각을 이어갔다. 개발자가 시간을 들여 직접 업그레이드할 수 있다는 점도 가격 인상을 주저하게 만들었다. 그러나 2019년 4월, 누적 업그레이드가 1만 5,000건에 이르자 서비스의 가치를 충분히 입증했다고 판단하고 추가 인상을 발표했다.

2019년에는 아담 와던의 조언을 받아 가격을 세 구간으로 정리했다. 최신 버전 업그레이드는 9달러, 지원 중인 버전은 19달러, 지원이 끝난 버전은 29달러로 나눴다. 고객이 예상 비용을 이해하기 쉬워졌고, 오래된 프로젝트를 처리하는 매출도 높아졌다.

전업 후에는 구독 상품도 도입했다. 고객의 업그레이드 비용과 자신의 매출을 예측하기 쉬워질 것으로 기대했다. 초기 반응은 약했는데, 그는 새 버전으로 서둘러 이동할 필요가 적고 장기지원 버전에 머무는 고객도 많았기 때문이라고 돌아봤다.

시장을 넓히려는 시도도 이어졌다. Laravel의 기반 언어인 PHP를 대상으로 버전 업그레이드 도구를 만들었지만, 이용이 적어 해당 제품들을 중단했다. JavaScript도 검토했으나 여러 프레임워크와 공개 도구가 흩어져 있어 진입할 분야를 고르기 어렵다고 판단했다. 익숙한 기술을 지원하는 것만으로 새로운 고객층이 따라오지는 않았다.

가격 개편과 구독은 이후 성과로 이어졌다. Laravel 6가 출시된 2019년 9월, 월매출은 20,312달러에 도달했다. 이때 구독 결제가 매출의 거의 절반을 차지했다.

2020년에는 같은 Laravel 개발자의 유지보수 작업으로 제품 범위를 넓혔다. 필요한 코드 정리 작업을 선택해 실행하는 Shift Workbench를 추가했고, 사용하는 패키지가 어떤 Laravel 버전을 지원하는지 확인하는 ‘Can I Upgrade Laravel?’도 선보였다. 제스 아처가 계약 형태로 개발에 참여하면서 이런 확장을 도왔다. 버전 업그레이드 전후에 발생하는 작업까지 제품이 다루기 시작한 것이다.

교육 상품도 고객지원에서 발견한 문제와 연결됐다. Git 관련 문의가 많다는 사실은 ‘Getting Git’ 강좌로 이어졌고, 테스트 작성 교육인 ‘Confident Laravel’은 개발자가 업그레이드 결과를 확인하는 데 도움을 주도록 만들었다. 2020년에는 Laravel 활용법을 다룬 ‘BaseLaravel’의 기본판을 무료로 배포해 1만 회 이상의 다운로드를 기록했다. 교육 콘텐츠를 통해 고객이 도구를 활용하는 데 필요한 지식을 제공하면서 자신의 독자층도 넓혔다.

매출과 이용 실적은 함께 쌓였다. 맥크리어리가 공개한 기록에 따르면 2020년 매출은 전년보다 112% 증가했고, 2021년 9월에는 누적 실행 5만 회를 넘었다. 같은 해 11월에는 사업 시작 이후 누적 매출 100만 달러를 돌파했다.

제품이 늘어날수록 운영 범위를 정하는 일도 중요해졌다. 2021년에는 외부 개발자들과 협업을 확대했지만, 제스 아처가 Laravel 팀에 합류한 뒤인 2022년에는 다시 혼자 Shift를 운영하기로 했다. 맥크리어리는 지원하는 제품과 기술을 줄여 여러 작업을 번갈아 처리하는 부담을 낮추려 했다. 성장한 사업을 자신이 계속 다룰 수 있는 크기로 정리하는 선택이었다.

코드를 외부 서비스에 보낼 수 없는 고객을 위한 실행 방식도 마련했다. 일반적인 Shift는 처리 중에만 고객 코드를 서버에 두고 작업이 끝나면 삭제하지만, 조직의 정책상 업로드 자체가 어려운 경우가 있었다. 이런 고객에게는 자신의 환경에서 업그레이드를 실행하는 ‘Shift for Docker’를 제공했다. 같은 자동화 기능을 고객의 코드 관리 조건에 맞춰 구매할 수 있도록 한 것이다.

2025년에는 출시 후 처음으로 연간 매출 성장이 멈췄다. 맥크리어리는 Laravel 12처럼 필수 수정이 적은 버전이 이어지면서 유료 업그레이드의 필요성이 약해진 것을 주요 원인으로 지목했다. 개발자가 AI로 직접 작업을 처리하기 시작했을 가능성도 언급했다. 새 버전 출시에 맞춰 고객이 돌아오던 사업 구조를 다시 살펴봐야 하는 시점이었다.

그는 가격 운영부터 조정했다. 지원이 종료된 버전의 상품은 높은 가격 구간으로 옮기고, 최신 버전의 저렴한 도입 가격도 정해진 기간에만 제공하도록 관리했다. 2025년 6월에는 지역별 가격과 현지 통화 결제를 확대해 시장별 결제 조건을 손봤다. 맥크리어리는 이런 조정이 없었다면 그해 매출이 약 10% 감소했을 것으로 추정했다.

제품 사용 빈도를 높이려던 이전 시도도 돌아봤다. Workbench의 데스크톱 앱과 명령줄 도구는 기대만큼 사용되지 않아 제거했는데, 그는 고객이 필요한 작업을 떠올리고 도구를 열어 직접 실행해야 한다는 점에 주목했다. 실행 환경을 편리하게 만드는 것만으로는 고객이 제품을 다시 찾을 이유가 충분해지지 않았던 셈이다.

2026년 1월에는 ‘Monthly Shifts’를 시작했다. 구독 고객에게 매달 정리된 코드 개선안을 풀 리퀘스트로 보내는 방식이었다. 고객은 도착한 변경 사항을 검토해 적용하거나 닫으면 됐고, 다음 달에는 새로운 개선안을 받았다. 고객이 작업을 찾아 실행하던 제품에서 고객에게 할 일을 먼저 전달하는 제품으로 사용 방식을 바꿨다.

구독의 구매 단위도 개발팀의 관리 대상에 맞췄다. 하나의 저장소를 위한 상품과 여러 저장소를 다루는 무제한 상품을 두고, 프로젝트가 얼마나 오래됐는지에 따라 포함되는 업그레이드 범위를 구분했다. 여러 서비스를 운영하는 팀은 반복되는 유지보수 비용을 묶어서 지불하고, 주간 의존성 업데이트와 월간 코드 개선안을 받아볼 수 있게 됐다.

2026년 6월에는 ‘AI Review’의 시험판을 추가했다. 기존 Shift가 규칙에 따라 업그레이드를 수행한 다음, AI가 코드의 문맥과 Shift가 남긴 설명을 읽고 추가 수정을 진행하는 구조였다. 오랫동안 축적한 자동 수정 규칙에 문맥을 해석하는 기능을 결합한 것이다. 이전에 개발자가 설명을 읽고 직접 마무리하던 작업 일부까지 제품 안으로 가져오려는 시도였다.

Shift는 개발자가 매번 해야 했던 업그레이드 판단과 반복 수정을 하나의 구매 가능한 작업으로 묶었다. 맥크리어리는 그 결과를 고객의 코드 저장소에 직접 전달하는 방식을 유지하면서, 일회성 업그레이드에서 지속적인 유지보수로 사용 시점을 넓혀갔다.

enzhesfrhiko