// projects/readandshare
ReadAndShare
독서 기록 공유 서비스의 인증, 검색, 탈퇴 기능을 확장한 커뮤니티 백엔드
completedCommunity4명
- role
- member 도메인 전반 + 테스트 보강
- impact
- 이메일 인증, BCrypt, 사용자 검색/탈퇴, 회원 생명주기 회귀 테스트
- proof
- 본인 PR 8건: #44, #53, #80, #100, #133, #148, #158, #167
본인 직접 PR8건
테스트 검증당시 Java 17 로컬 test suite 통과
근거 자료2개
Project.java
project_nameReadAndShare
period_team2025.03.13 ~ 2025.03.31 / 4명
purpose독서 기록·리뷰 공유 커뮤니티의 회원, 리뷰, 팔로우, 알림 흐름 안정화
goal기존 백엔드에 이메일 인증, 사용자 검색, 회원 탈퇴, 테스트,
Swagger 문서화 보강development_issue짧은 기간의 기존 코드 인수인계와 기능 확장. 인증·회원·리뷰 도메인의 예외 흐름 동시 검증 필요.
results
- 이메일 인증, 사용자 검색, 회원 탈퇴 기능 구현
member중심 테스트 보강, 일부 도메인 회귀 테스트 정리Swagger기반 API 문서화 추가, 협업 정합 강화
Role.md
roleMember domain & regression tests
contribution이메일 인증, 사용자 검색, 회원 탈퇴 기능 구현. 주요 기능 테스트 작성, 기능 추가 과정의 예외·실패 흐름 검증 집중.
implemented_features
- 회원가입과 이메일 인증 토큰 발급·검증
- 이메일 기반 사용자 검색
- 회원 정보 수정과 탈퇴
- member 외 일부 도메인 회귀 테스트 보강
- Swagger 기반 API 문서화
personal_achievements
- member 도메인 전반 직접 구현, 인증·회원 생명주기 정리
- PR 단위 테스트 추가, 기존 기능 회귀 감소
- 팀원이 이어 볼 수 있는 문서화와 테스트 자산
TechDecision.md
Backend
Java 17독서 SNS 백엔드의 Spring Boot 런타임
Spring Boot 3.3.7독서 SNS 도메인 API 구성
Spring Security + JWT로그인, 토큰 재발급, 인증 사용자 접근 제어
Spring Events팀원 구현 알림 이벤트 구조 분석, 테스트 경계 이해용 프로젝트 기술
AI
이 범주의 대표 기술은 없습니다.
Data
Spring Data JPA회원, 도서, 리뷰, 팔로우, 알림 도메인의 관계형 모델 관리
Infra
Redis인증·피드·알림 관련 상태 저장소
FCM알림 푸시 전송
Prometheus + Micrometer서비스 관측 지표 노출
Test
H2로컬 테스트의 빠른 도메인 동작 검증
JUnit 5 + Mockito회원, 인증, 도서, 리뷰 기능 회귀 검증
GitHub Actions + SonarCloudCI와 정적 분석 기반 변경 품질 확인
Docs
Swagger프론트엔드/백엔드 API 계약 정합
이메일 인증을 회원가입 흐름에서 분리
decision회원가입 이후 이메일 인증 토큰 발급, 인증 상태 갱신은 별도 흐름
reason회원가입 직후 실제 이메일 소유 여부 미확인 시 잘못된 계정 활성화 위험
alternatives가입 즉시 활성화, 관리자 수동 승인, 소셜 로그인만 허용
trade_off인증 토큰·메일 발송 실패 처리 추가 vs 계정 신뢰도 향상
verificationEmailServiceTest와 MemberApiControllerTest 기반 인증 성공·실패 케이스 검증
ownership직접 구현/결정
BCrypt 기반 비밀번호 처리
decision회원 비밀번호 평문 저장 금지, BCrypt 해시 저장과 인증 흐름 검증
reason회원 도메인의 기본 보안 경계: 비밀번호 저장 방식의 코드 보장
alternatives평문 저장, 단순 SHA 해시, 외부 인증 서비스 위임
trade_off해시 비용·테스트 setup 부담 vs 비밀번호 유출 위험 감소
verification회원가입·로그인 테스트 기반 해시 저장과 인증 성공/실패 확인
ownership직접 구현/결정
회원 생명주기 회귀 테스트 보강
decision회원 검색, 정보 수정, 탈퇴, 이메일 인증 등 상태 변경 기능을
서비스와 컨트롤러 테스트로 고정reason짧은 기간의 기존 코드 확장, 회원 상태 변화로 인한 다른 API 회귀 가능성
alternatives수동 QA 중심 확인, 컨트롤러 테스트만 작성
trade_off테스트 작성 시간 증가 vs 기능 추가 후 빠른 회귀 확인
verificationMemberServiceTest와 MemberApiControllerTest 기반 정상·예외 흐름 확인
ownership직접 구현/결정
Problems.md
이메일 인증 흐름 구현
problem회원가입 직후 서비스 이용 허용 시 실제 이메일 소유 여부 확인 어려움
approachEmailToken 엔티티·저장소·EmailService 추가, 인증 토큰 발급과 상태 갱신 흐름 구성
cause기존 회원가입 흐름의 이메일 소유 검증 단계 분리 부족
solution메일 발송 실패, 인증 실패, 토큰 검증 성공 케이스 테스트 동반 구현
result회원가입 이후 이메일 인증 상태의 서비스 정책화
사용자 검색·탈퇴 기능
problem사용자 검색·탈퇴와 인증 상태, 중복 이메일, 삭제 상태의 예외 결합
approach이메일 기반 검색과 탈퇴 흐름의 서비스 계층 분리, 테스트 케이스 보강
cause같은 회원 데이터를 다루는 회원 생명주기와 검색 API, 서로 다른 실패 조건
solution탈퇴 후 조회·인증 흐름 영향 최소화를 위한 예외와 테스트 정리
result회원 도메인 기능 추가 이후 주요 회귀의 자동 테스트 확인
Retrospective.md
learned
- 기존 코드 기능 추가의 안전장치: 실패 흐름 테스트 선고정
- Swagger 문서화의 역할: 산출물이 아니라 프론트엔드/백엔드의 공유 계약
regrets
- Redis 필요 Feed/FCM 통합 테스트 실행 조건 분리 지연
- 인증·인프라 논의에서 부족했던 기본기 보완 속도 아쉬움
improvements
- 외부 API 키와 FCM 키 로테이션 절차의 별도 운영 문서화
- 도메인별 테스트 범위와 실행 조건의 README 명확화
collaboration
짧은 팀 프로젝트. Git Flow, Swagger, 테스트 결과 기준 변경 공유와 다음 작업자 인수인계 정리.
STAR.md
이메일 인증과 회원 도메인 테스트 보강
Situation기존 독서 SNS의 이메일 인증·회원 탈퇴 추가, 회원 상태 변화의 다중 API 영향 가능성
ActionEmailToken, EmailService, MemberService 테스트 추가, 인증 성공·실패·탈퇴 후 흐름 분리 구현
Result회원 도메인 기능 확장과 주요 실패 케이스 회귀 테스트 확보
Learning기존 코드 확장의 우선순위: 새 기능보다 회귀 가능성 탐색

