2012년부터 2019년까지 7년 동안 결제 회사인 Stripe에서 Ruby 모노레포 환경에서 개발자 생산성을 높이기 위한 작업을 했던 경험을 정리한 글입니다. 수년 지나서 다 기억은 안난다고 하지만 꽤 자세히 적혀 있습니다. 비슷한 업무에 관심이 많아서 재미있게 읽었습니다.


Stripe에서는 개발자를 지원하기 위해서 개발자마다 사용할 수 있는 devbox 인스턴스를 지원하기로 했습니다. 이를 통해 새로운 개발자가 들어오면 devbox를 이용해서 바로 개발환경을 설정하도록 지원했습니다.


devbox는 원격 개발환경이라서 개발자의 IDE 선택의 자유도를 주기 위해서 Git 체크아웃은 로컬에서 하도록 하고 여기서 코드 수정이 일어나면 rsync로 devbox에 복사하도록 구현했다고 합니다.


2012년에 비해서는 원격 개발환경이 많이 좋아진 편이긴 하지만 아직도 원격 환경이 그리 편한지는 잘 모르겠습니다. GitHub의 코드스페이스가 나왔을때 원격 환경 중심으로 넘어가려나 싶었지만 저도 막상 묘한 불편함에 적응하지 못하고 로컬을 쓰고 있기도 합니다. 그래서 devbox에 대한 내부 만족도가 어느정도였는지 궁금하네요.


Stripe에서는 이후 HTTP 서비스를 지원하기 위해 devbox에서 요청을 처리할 수 있도록 하고 필요한 기능을 쉽게 쓸수 있도록 CLI도 추가했다고 합니다.


이렇게 다양한 지원을 했지만 이는 Stripe에 이러한 도구를 만들고 유지보수할 엔지니어가 있었기에 가능한 것이었고 이 투자가 성과를 거두려면 고객 엔지니어가 충분해야 한다는데 이부분에도 크게 공감합니다.


빠르게 성장하는 조직은 새 엔지니어가 바로 동작하는 개발자 환경을 가지는 것이 훨씬 중요하고 그보다는 변화가 적은 조직에서는 엔지니어가 내부 도구의 특성과 해결 방법을 배울 수 있고 대부분은 1회성 비용이기 때문에 조직에 따라 접근 방법이 다를 수 있다고 얘기합니다.


https://blog.nelhage.com/post/stripe-dev-environment/

Stripe's monorepo developer environment

Made of Bugs

Stripe's monorepo developer environment

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 9월 14일 오전 12:50

댓글 0