개발자들이 '화면 끄고 잔디 만지기(Touch Grass)' 운동에 나섰습니다. Hacktoberfest 챌린지 1주차 출품작 GrowWise는 로컬...

기술 블로그: GrowWise가 만들어낸 로컬 개발 혁신

창업자이자 풀스택 엔지니어인 저는 “화면 끄고 잔디만지기”라는 명언이 제에게는 내면의 피로를 드러내는 신호임을 깨달았습니다. 그래서 Hacktoberfest 1주차에 GrowWise를 제안하면서 로컬 개발 환경에 제약을 두지 않는 방식을 실험했습니다.

아키텍처 요약

  • 심플한 실행 파일

    growwise 바이너리는 20 MB 이하이며, Go 1.22을 기반으로 한 킬로바이트 크기의 실행 파일로 제공됩니다. 정적 컴파일이므로 별도의 런타임이 필요 없으며, docker buildx 없이 바로 실행이 가능합니다.

  • JSON 기반 설정

    프로젝트 루트에 growwise.json을 두면, 필요한 서비스(데이터베이스, 캐시, 워커 등)를 선언하고 growwise up만으로 복수 컨테이너를 spin‑up할 수 있습니다. 설정 파일 한 줄만 추가하면 npx tsx 대신 로컬에서 바로 테스트가 가능해집니다.

  • 핫 리로드와 로그 라우팅

    growwise watch 모드에서는 파일 변화를 감지해 자동 재시작하며, log를 CONSOLE과 file 두 곳에 동시에 스트리밍합니다. 오라클 같은 설정 없이도 Kubernetes 없이도 Staging 을 닮은 환경이 생성됩니다.

바람직한 트레이드오프

  • 네이티브 종속성 최소화 Go의 graph 경량화 덕분에 linux/arm64 와 macOS(Apple Silicon) 모두에서 1분 미만의 스타트업 타임을 달성합니다.
  • 버전 충돌 위험 growwise가 내부 모듈을 고정시키므로, 다른 프로젝트와의 충돌은 거의 없지만 새로운 버전 출시 시 호환성 검증이 필요합니다.

결과

Hacktoberfest 기간 중 43개 PR이 합의되었고, 그 중 32개가 실제 프로덕션에 배포되었습니다. 로컬에서 빠르게 반복 테스트한 덕분에 CI 비용도 30% 절감되었고, 가장 큰 효과는 “스크린 타임”과 “실제 잔디”를 체감할 수 있다는 점입니다.

로컬을 먼저, 탈중앙화를 목표로 하는 GitHub 프로젝트 growwise를 탐색해 보세요.

하나의 바이너리, 하나의 JSON 설정이 개발 트레이드오프를 쉽게 돌려준다.

개인 스토리: 잔디에 손을 대고 코드를 한 줄씩

나는 언제나 코드창 앞에 파란 화면이 가득했다. 퇴근 후 거리의 부드러운 바람의 대신 담백한 IT 매트릭스가 나를 감싸곤 했지. 어느 날, 지친 만큼 화면을 내려찍어 본 유튜브에서 “흔치 못한 개발자들, 화면 끄고 잔디 만지기” 영상을 봤다. 오래된 오디오 스피커에 흐르는 한가로운 재즈가 나의 거울에 비친 손을 가로지르며 말을 건넸다.

“잠깐, 카페의 찻잔이 그립지 않니?”

그때 나는 핸드폰에 모아 두었던 GrowWise 샘플 프로젝트를 실행해 보았다. 파일을 하나 저장하면 바로 docker-compose가 쓰여진 건데, Docker가 필요 없었다. growwise up 한 번에 서비스가 꺼져버렸다. 아마도 오랜 시간 혼자 타워에 온 아이리언이 될 뻔했던 그 순간, 코드와 잔디가 동시에 살기를 시작했다.

저녁 늦은 시간, 도둑 같은 걸음으로 집 밖으로 나와 땅에 젖은 진흙 소리까지 귀에서 울리던 그 순간, 나의 디버그 스택팟과는 다른 ‘진짜’ 스택이 떠올랐다. 불황을 조금은 녹이며, 러닝 테스트를 위한 나비 모양의 작은 노트북을 끄고 챩 떠는 새를 보며, growwise가 어떻게 구조적으로 또: 로컬에서 바로 실행되는 점이 내가 찾던 휴식이었다.

다음 주에도 같은 개발 루틴을 반복할 수 있는지, 확신없이 라는 말보다, 이미 이번 겨울 한 두 차례는 “코드보다는 풀뿌리만큼” 살았다는 것에 감사했다. 다음 사용할 프로젝트가 있을 때면, 재시작 없이 바로 떠나다. 사전 설치 없이 타방으로 문을 열고, 그 양식에 머리를 싣고 살펴보자.

늘 “내코드”라는 단어를 타이핑하던 내가, 한 번은 잔디 스트로우를 만져볼 때 필요하지 않은 수프라 실행 파일도 이제는 “필요하지 않다”고 외쳤다.

다음 챌린지도, GrowWise를 통해 시작해 보자.