2026년 07월 31일

첫 번째 셀프 호스팅 앱을 만들면서 배운 것

나의 첫 번째 셀프 호스팅 앱인 AdventureLog의 이야기와, Docker 관련 시행착오부터 세계적인 커뮤니티를 만드는 일까지 내가 배운 것들. 훌륭한 무언가를 만들 수 있는 자신의 능력을 의심해 본 적이 있다면, 이 글은 당신을 위한 것이다.

사진: Fotis Fotopoulos / Unsplash

당신이 사용하는 오픈소스 소프트웨어는 누가 작성할까? 그들은 전문 개발자일까? 수십 년의 경험을 가진 오랜 기여자들일까? 아니면 어쩌면… 큰 아이디어를 가진 대학생일 뿐일까?

2024년 8월에 나의 첫 프로젝트인 AdventureLog를 출시했을 때, 나는 큰 아이디어를 가진 첫 오픈소스 기여자였다. 그 아이디어는 현대적이고 오픈소스이며 사용자 친화적인 여행 동반자를 만드는 것이었다. 나는 웹 개발에 대한 정식 교육을 받은 적이 없었고, 백엔드 아키텍처에 관한 배경지식도 없었으며, Docker로 내가 무엇을 하고 있는지도 전혀 몰랐다. 하지만 내가 가지고 있었던 것은 호기심과 끈기, 그리고 여름방학이었다. 그래서 나는 과감히 뛰어들었고, 앞뒤 가리지 않고 시작했다.

한여름 동안 열심히 작업하고 많은 것을 배운 끝에, 내 앱을 위한 탄탄한 기반을 갖게 되었다. 앱에는 내가 원하던 기본 기능이 모두 있었고, 나는 그것을 커뮤니티와 공유할 생각에 무척 들떠 있었다. 나는 r/selfhosted에 올릴 게시물을 작성했지만, 그것은 한동안 임시 보관함에 머물러 있었다. 앱이 출시될 준비가 되었는지, 그리고 더 중요하게는 내가 출시할 준비가 되었는지 확신할 수 없었다. 어느 날 아침, 나는 마침내 오늘이 바로 그날이라고 결정하고 출시 발표를 게시했다. 이 출시가 나에게 그렇게 큰 영향을 미치리라고는 전혀 알지 못했다. 나는 그다음 며칠 동안 앱에 관한 질문에 답하고, 지원을 제공하고, 심각한 버그를 수정하며 시간을 보냈다. 사람들이 AdventureLog를 사용하는 데 크게 기대하는 모습을 보는 것은 믿을 수 없을 만큼 고무적이었다. 이런 앱을 찾고 있었다고 말하는 사람들의 댓글과, 사람들이 이 앱을 사용할 온갖 방법을 보는 것은 이 모든 과정을 진정으로 가치 있게 만들었다. 다른 사람들이 내 작업에서 가치를 발견하는 것을 보는 일은 단순한 인정을 넘어섰다. 그것은 나를 변화시켰다.

그로부터 10개월, 1,000개의 커밋, 그리고 17만 5천 회의 Docker 풀을 거친 지금, 나는 지난 8월에 게시 버튼을 눌렀을 때와는 완전히 다른 개발자가 되었다. 나는 풀스택 개발에 관해 아주 많은 것을 배웠을 뿐만 아니라, 더 중요하게는 커뮤니티의 가치와 중요한 무언가를 만드는 일의 가치를 배웠다.

이제 나는 그 여정을 모두와 공유하고 싶다. 기술적인 부분뿐만 아니라 커뮤니티에 관한 부분도 말이다. 왜냐하면 당신이 훌륭한 무언가를 만들 “자격”이 있는지 고민하고 있다면, 당신에게는 그 자격이 있기 때문이다.

시작하기 위해 전문가일 필요는 없다

항상 자신이 충분히 많이 알게 되었다고 느낄 때까지 기다린 뒤, 그동안 만들고 싶었던 프로젝트를 시작하려 한다면 결국 아예 시작하지 못할 수도 있다.

나는 Python과 JavaScript 튜토리얼 몇 개를 따라 해 보았지만, 아무것도 배우고 있지 않다는 느낌이 들었다. 물론 이제 변수와 반복문이 무엇인지는 알지만, 그것들로 무엇을 만들 수 있을까? 그렇기 때문에 프로젝트에 관한 아이디어가 생기면 그 프로젝트 자체가 당신의 튜토리얼이 되어야 하며, 그것이 당신의 학습을 앞으로 이끌어야 한다. 강의에서는 절대 가르쳐 주지 않는 문제를 직접 적용해 보는 과정에서 훨씬 더 많이 성장할 수 있다. 처음에는 더 많은 문제에 부딪히겠지만, 문제를 효과적으로 해결하는 방법을 배우는 행위가 첫 번째 시도에서 정답을 맞히는 것보다 훨씬 더 중요하다.

자신을 위해 만들면 다른 사람들도 찾아올 것이다

프로젝트를 만드는 동안 번아웃에 빠지지 않는 가장 좋은 방법은 자신이 직접 사용하고 싶은 것을 만드는 것이다. 나의 경우에는 Google My Maps를 대체할 무언가를 원했다. 개발 과정에서 가장 보람 있었던 순간 중 하나는 AdventureLog의 기능이 My Maps를 넘어선 뒤, 내 데이터를 AdventureLog로 옮길 수 있게 되었을 때였다.

단지 유행을 따르고 조회수를 얻기 위해 무언가를 만들고 있다면, 일이 계획대로 정확히 진행되지 않을 때 더 빠르게 실망하고 번아웃에 빠질 수 있다. 자신의 개발에 진정성을 가지고 자신에게 유용한 것을 만든다면, 다른 사람들도 그것을 자신에게 똑같이 유용하거나 심지어 더 유용한 것으로 여길 가능성이 매우 높다.

커뮤니티가 핵심이다

오픈소스로 무언가를 만드는 일은 절대로 코드에 관한 것만이 아니다. 그것은 신뢰에 관한 일이다. 훌륭한 제품을 갖는 것도 중요하지만, 당신과 당신의 개발 작업을 신뢰하는 사용자를 갖는 것도 똑같이 중요하다. 신뢰를 제공한다는 것은 앱이 해야 할 일을 모두 수행하게 만드는 것보다 훨씬 더 많은 것을 의미한다. 그것은 커뮤니티의 피드백에 귀를 기울이고, 그들의 질문에 신속하면서도 친절하게 답하는 것을 의미한다.

오픈소스 개발의 가장 좋은 부분은 단순히 코딩하는 것이 아니다. 각자 고유한 관점을 가져오는 세계 각지의 전문가들과 의미 있는 상호작용을 하고 협업하는 것이다. 강력한 커뮤니티가 있다면 향후 업데이트에 관한 아이디어가 절대로 바닥나지 않을 것이다! 결국 최고의 오픈소스 소프트웨어는 협업을 통해 만들어진다.

셀프 호스팅과 오픈소스의 세계는 당신과 나 같은 사람들로 가득하다. 함께 배우고, 만들고, 개선하는 사람들 말이다.

그러므로 꿈꾸던 프로젝트를 만들기 위한 허락을 기다리고 있다면, 이것이 바로 그 허락이다. 우리 모두가 당신을 응원하고 있으며, 나는 당신이 무엇을 만들지 몹시 기대된다!


원문: Sean Morley, What I Learned Building My First Self-Hosted App

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다