같은 팀 백엔드 이였던 장순님의 도움으로 AI를 적극적으로 활용한 첫 프로젝트였는데, 덕분에 백엔드 MVP 2일 안에 완성할 수 있었던 것 같습니다. Rust라는 낯선 언어로 인프라부터 비즈니스 로직까지 쌓아올리는 과정이 쉽지만은 않았지만, 그만큼 개발자로서 시야와 실력이 많이 성장한 시간이었습니다. 좋은 프로젝트 함께해서 감사했습니다.
프로젝트: 27th-Web-Team-3-BE (회고록 AI 서비스 백엔드), 기간: 2026.01.15 ~ 2026.02.27 (약 6주), 기술 스택: Rust (Axum), Terraform, GitHub Actions.
요약: 머지된 PR 43개, 총 추가 코드 ~184,000+ lines, 총 삭제 코드 ~7,900+ lines, 변경된 파일 1,060+ files, 활동 기간 6주, 평균 PR/주 ~7개.
1. 프로젝트 기반 구축: 협업 문서 정의 (#8) — 3,630+lines, 60파일 / AI 협업 가이드·코딩 컨벤션·아키텍처 문서 체계 수립. 공통 유틸/ORM 설정 및 불필요한 코드 정리 (#14) — 2,110+lines, 41파일. chore: merge to main (#96, #97) — dev → main 브랜치 통합 배포 2회 수행.
2. 인증/사용자 시스템: 소셜 로그인 및 JWT 인증 시스템 구현 (#15). 인증 API 구현 (API-001 ~ API-004) (#19). JWT 토큰 전달 방식을 쿠키로 전환 (#85). 소셜 로그인 redirect_uri를 프론트엔드에서 전달받도록 변경 (#94). 로그인된 유저 프로필 조회 API (#99). 회원 탈퇴 API (API-028) (#57). 리프레시 토큰 중복 문제 해결 (#66).
3. 회고방(RetroRoom) 핵심 기능: RetroRoom APIs (004-010) 일괄 구현 (#26). 초대 코드 조회 API (API-031) (#106). 회고방 탈퇴 API 구현 및 팀 삭제 API 제거 (#136). 회고방 삭제 API FK 제약조건 문제 해결 (#79). 회고방 순서 변경 에러 메시지 누락 수정 (#51). 마지막 회고 삭제 시 회고방이 자동 삭제되지 않도록 변경 (#138). team/팀을 retro-room/회고방으로 용어 통일 (#68).
4. 회고 프로세스 기능 개선 및 에러 수정: 회고 참여/마감/분석 로직 개선 (#133). 회고 참석 등록 시간 로직 수정 (#131). 회고 생성 시 질문 커스텀(수정) 기능 추가 (#122). 회고 방식별 기본 질문 고정 및 동적 질문 수 지원 (#116, #117). 회고 생성 API에서 retrospectTime 필드 제거 (#124). 회고 목록 조회 API에 status 필드 추가 (#125). 회고 상세 조회 API members에 status 필드 추가 (#127). 답변 리스트 조회 응답에 submittedAt 필드 추가 (#140).
5. 답변/댓글/좋아요 소셜 기능: 회고 답변 좋아요 토글 (API-025) (#38). 회고 답변 댓글 목록 조회 및 작성 API (API-026, 027) (#31). 좋아요 토글 API MySQL 호환성 수정 (#78).
6. 참고 자료 기능: 참고 자료 URL의 Open Graph 메타데이터 조회 API (#129).
7. 인프라/DevOps: Terraform 인프라 및 GitHub Actions CI/CD 구성 (#40). Terraform 인프라 구성 및 CI/CD 개선 (#42, #43). Route53 A 레코드 및 HTTPS 설정 (#70). 8080 포트 외부 노출 제거 (#71). CORS 설정에 moaofficial.kr 도메인 추가 (#72). 모니터링 활성화 및 P95/P99 리포트, 즉시 알림 (#110). chore: merge to main (#96, #97) 프로덕션 배포 관리.
8. 개발 생산성/DX 개선: Claude Code 개선 (hooks + PR 리뷰 명령어) (#92). E2E API 테스트 Claude command 추가 (#88). 이슈 생성 및 PR 생성 skills 추가 (#109). main.rs 모듈 주석 추가 (#44). Delete .claude/settings.local.json (#41).