01
제품 개발 · 시스템 현대화
PhotoGram
사진 공유 제품을 개발하며 오래된 코드와 데이터 구조를 단계적으로 현대화한 프로젝트입니다.
검증 진행 중
- 기간
- 2021 — 현재
- 역할
- 제품 엔지니어

문제
01기능이 늘면서 코드뿐 아니라 데이터 계약, 인프라 의존성, 과거의 런타임 선택까지 함께 관리해야 했습니다.
제약
- 기존 동작을 유지하면서 런타임을 현대화해야 했습니다.
- 마이그레이션과 상태 점검 결과를 설명이 아니라 검증 가능한 기록으로 남겨야 했습니다.
- 로컬·CI·서버에서 같은 방식으로 빌드하고 실행할 수 있어야 했습니다.
설계와 결정
- 스키마 변경은 Flyway 마이그레이션으로 명시했습니다.
- DB·Redis·미디어 저장소와 liveness/readiness 상태까지 런타임 계약으로 관리했습니다.
- 필수 서비스까지 함께 띄운 CI에서 애플리케이션을 검증했습니다.
구현
- Java 25 툴체인과 Gradle을 사용하는 Spring Boot 애플리케이션입니다.
- MariaDB, Redis, 미디어 저장소, Actuator health group, Docker Compose로 실행 환경을 구성했습니다.
- React 클라이언트와 백엔드 계약 테스트는 각각 별도의 검증 경로로 관리합니다.
검증과 근거
코드 기준확인
소스 저장소에서 Java 25 툴체인과 Gradle 빌드 구성을 확인할 수 있습니다.
검증 방식확인
CI에서 빌드, 서비스 상태, 마이그레이션, 테스트 결과를 검사합니다.
외부 배포추후 확인
공개 배포 여부는 별도의 실환경 확인 대상으로 남겨두었습니다.
결과와 현재 상태
기능 구현만이 아니라 런타임 현대화와 검증, 배포까지 이어진 대표 제품 프로젝트입니다.