피드로 돌아가기
Dev.toBackend
원문 읽기
Over-engineering 제거 및 GitHub Gists 기반 Serverless-like 저장소 전환을 통한 배포 단순화
Finishing What I Started: A Code Snippet Manager Built on GitHub Gists
AI 요약
Context
PostgreSQL, Redis, JWT 기반의 무거운 아키텍처로 인한 높은 초기 구동 비용과 운영 오버헤드 발생. 실제 사용성보다 인프라 관리 부담이 커지며 개발 동기가 저하되는 병목 지점 확인.
Technical Solution
- 외부 DB를 제거하고 GitHub Gists를 Storage Backend로 활용하여 별도 인프라 없이 데이터 영속성 확보
- GitHub PAT(Personal Access Token) 기반 인증으로 복잡한 OAuth Flow와 Spring Security 의존성 제거
- 전용 Gist 파일(index.json)을 활용한 Metadata Store 구축 및 Application Startup 시 HashMap 기반 In-memory Loading으로 검색 성능 최적화
- JavaParser를 통한 AST(Abstract Syntax Tree) 분석으로 클래스 및 메서드 단위의 구조적 검색 기능 구현
- Backend 내 Frontend 정적 자원 번들링을 통한 Single Artifact(JAR) 배포 구조 설계로 실행 환경 단순화
- Backend에서 DiffLine 객체로 전처리한 데이터를 전달하여 Frontend의 Diff 라이브러리 의존성 제거 및 렌더링 부하 감소
실천 포인트
- 도구의 목적에 맞는 적정 기술 수준(Right-sizing) 설정 여부 검토 - 읽기 빈도가 높고 데이터 규모가 작은 경우, API 호출 최소화를 위한 In-memory 캐싱 전략 도입 - 외부 서비스(Gist 등)를 단순 저장소로 활용하여 인프라 관리 포인트 최소화 가능성 타진 - LLM 활용 시 구체적인 Spec-first 설계 기반의 Context 제공을 통한 코드 품질 향상