← 목록으로

3년 차 웹 개발자의 홈 서버 생존기: AI의 오버엔지니어링에서 Coolify로

Spring Boot와 Vue를 다루는 3년 차 개발자가 홈 서버를 운영하며 겪은 시행착오. AI와 함께 늘린 도구와 설정을 Coolify 중심으로 정리하고, 스스로 이해하고 고칠 수 있는 인프라의 기준을 찾아간 기록입니다.

내가 이해할 수 있는 홈 서버를 만들고 싶었다

Spring Boot와 Vue를 중심으로 일해 온 3년 차 웹 개발자다. 회사에서는 지자체의 폐쇄망 환경을 대상으로 개발하는 일이 많아, 인프라를 처음부터 직접 구축할 기회는 많지 않았다. 윈도우 환경에 익숙한 만큼 리눅스와 셸 명령어도 아직 배우는 중이다.

홈 서버를 시작한 계기는 비용과 통제권이었다. Netlify와 Supabase 같은 서비스를 사용하면서 무료 티어의 한계와 앞으로의 과금 부담, 플랫폼에 종속되는 구조가 신경 쓰이기 시작했다. 남는 윈도우 PC에 우분투 데스크톱을 설치하고, 직접 서비스를 운영해 보기로 했다.

서비스가 성장하기 전까지 플랫폼에 지불하는 비용을 최대한 줄이고, 운영 환경을 내 손으로 관리하고 싶었다. 하지만 인프라 경험이 부족했던 나는 곧 AI 에이전트인 Hermes와 Codex에 많이 의존하게 됐다. 여기서 예상하지 못한 문제가 생겼다.

AI와 함께 만들수록 복잡해진 시스템

서버 설정을 하나씩 해결할 때마다 새로운 도구와 구성이 더해졌다. 여러 프로젝트의 환경변수와 API 키를 관리하기 위해 Infisical을 도입했고, 컨테이너 관리에는 Portainer, 운영 현황을 살펴보는 데에는 HomeOps가 얹어졌다.

각 도구에는 나름의 이유가 있었다. 문제는 그것들을 조합한 전체 구조가 혼자 개발하고 운영하는 내 상황에 비해 너무 복잡해졌다는 점이다.

  • 배워야 할 범위가 계속 늘었다. 애플리케이션뿐 아니라 도구별 설정과 연결 관계까지 이해해야 했다.
  • 문제를 고치기 어려워졌다. 에러가 나거나 설정을 바꿔야 할 때, 어디부터 확인해야 하는지 혼자 판단하기가 힘들었다.

AI가 만들어 준 설정으로 서버는 돌아갔다. 하지만 돌아가는 것과 내가 운영할 수 있는 것은 다른 문제였다.

서버는 돌아가는데, 내 손으로 직접 고칠 수 없다면 이건 내 인프라가 아니라 AI가 짜준 블랙박스에 불과하다.

필요한 것은 더 많은 도구보다 감당할 수 있는 복잡도였다

한 달 가까이 시행착오를 겪으며 기준이 달라졌다. 처음에는 좋은 도구와 모범 사례를 충분히 적용하면 좋은 운영 환경이 될 것이라고 생각했다. 실제로는 그 구조를 내가 얼마나 이해하고 유지할 수 있는지가 더 중요했다.

리눅스 기초부터 익혀야 하는 상황에서 컨테이너와 리버스 프록시, 환경변수 관리 도구를 각각 운영하는 일은 부담이 컸다. 문제가 생길 때마다 AI에게 또 다른 구성을 요청하다 보니, 해결책이 새로운 학습 부담으로 돌아오기도 했다.

내게 필요한 것은 큰 조직의 운영 방식을 그대로 가져오는 일이 아니었다. 지금의 경험과 시간으로 이해하고 제어할 수 있는 범위를 정하는 일이었다.

Coolify를 중심으로 운영을 정리하다

방향을 바꾸면서 살펴본 것이 셀프 호스팅 PaaS인 Coolify였다. Caddy, Portainer, Infisical 등 여러 도구에 흩어져 있던 운영 구성을 정리하고, 일상적인 관리 작업을 한곳에서 다룰 수 있는 방향으로 옮겼다.

내가 원했던 것은 웹 화면에서 Git 연동, 환경변수, 배포와 인증서 설정을 확인할 수 있는 환경이었다. 도구 사이를 오가며 설정을 맞추는 시간을 줄이고, 서비스 상태와 배포 흐름을 파악하기 쉽게 만들고 싶었다.

운영 구성을 Coolify 중심으로 정리하면서 Spring Boot와 Vue 애플리케이션, 그리고 서비스의 비즈니스 로직에 다시 집중할 여유가 생겼다. 홈 서버를 만든 목적도 결국 인프라 도구를 많이 운영하는 것이 아니라, 내가 만든 서비스를 계속 운영하는 데 있었다.

내가 다룰 수 있는 구조가 내게 맞는 구조다

이번 경험은 화려한 인프라를 완성한 성공기보다, 내가 감당할 수 있는 범위를 알아 간 기록에 가깝다. AI의 도움으로 빠르게 시스템을 만들 수 있었지만, 그 결과를 이해하고 유지하는 책임까지 없어지는 것은 아니었다.

이제는 새로운 구성을 더하기 전에 내가 이해할 수 있는지, 문제가 생겼을 때 어디를 살펴봐야 할지 설명할 수 있는지를 먼저 생각한다. 현재의 나에게 맞는 기술을 고르고, 서비스가 성장하면 그때 필요한 만큼 확장하고 싶다.

내가 이해하고 직접 고칠 수 있는 시스템을 갖는 것. 이번 홈 서버 구축에서 얻은 가장 중요한 기준이다.