데브허브 | DEVHUB | Everything that I like, dislike, and plan to change in my tech stack.Everything that I like, dislike, and plan to change in my tech stack.
- Go 언어는 개발자의 숙련도, 코스 주제와의 연관성, 그리고 의사결정 피로도 감소를 위한 개인적인 약속 때문에 핵심 기술 스택으로 선택되었습니다. 🎯
- Go는 매우 효율적인 메모리 사용량(단일 인스턴스 50MB 미만)을 자랑하며, 이는 Next.js 대비 7배 적은 수준으로 운영 비용 절감에 크게 기여합니다. 💰
- SQLC는 Go와 PostgreSQL 데이터베이스를 통합하는 데 있어 최고의 도구로 평가받으며, 타입 안전한 코드 생성을 통해 개발 생산성을 극대화합니다. 🐐
- Temple은 Go의 JSX와 같은 타입 안전 HTML 템플릿 엔진으로, 표준 라이브러리보다 훨씬 뛰어나지만, 개발 도구의 미성숙함과 컴포넌트 라이브러리 등 생태계 부족이 단점으로 지적됩니다. 🛠️
- AlpineJS는 HTML 속성을 활용하여 간단한 클라이언트 측 상호작용을 쉽게 구현할 수 있게 해주지만, 복잡한 컴포넌트에서는 관리의 어려움이 있어 React나 Vue가 더 적합할 수 있습니다. 💡
- HTMX는 서버 측 상태 관리에 중점을 두어 DOM의 특정 부분만 교체함으로써 전체 페이지 새로고침 없이 성능을 향상시키며, 점진적 향상(progressive enhancement) 접근 방식을 지원합니다. 🧠
- HTMX는 비디오 플레이어와의 충돌(다중 인스턴스, 기록 모드)과 같은 초기 구현 문제들이 있었으나, HTMX의 잘 작성된 문서와 콜백 기능을 통해 해결 가능했습니다. 🐛
- 인증 토큰 만료와 같은 서드파티 통합 문제는 AlpineJS와 HTMX를 연동하여 전체 페이지 새로고침 없이 콘텐츠를 다시 로드하는 방식으로 성공적으로 해결되었습니다. 🔗
- 전반적으로 Go 모놀리식 스택은 효율성과 강력한 통합 기능을 제공했지만, Temple의 개발 도구 미성숙, AlpineJS의 복잡한 컴포넌트 처리 한계, HTMX의 초기 통합 난이도 등 개선할 점도 명확히 발견되었습니다. 📈