1. 1차 개발기간(40일)
- 2024.10.01. ~ 2023.11.10.
2. 팀원: 6명
- FE: 1명
- BE: 1명
- 클라우드: 2명
- AI: 2명
4. 백엔드 기술스택
- 프레임워크: Spring Boot(JDK 21)
- 인프라: AWS EC2, Jenkins
- DB: postgresql
- API: JWT, OAuth2, JPA, Redis, Spring Security
- Tools: Notion, Jira, Github
공부한 것
- JDK 21, Virtual Thread
- 연관 관계 매핑 시 연관관계의 주인
- JPA 영속성 컨텍스트의 저장시점
- Spring Data JPA + pageable로 pagingnation 구현하기
- (OAuth2 + JWT + Redis) 소셜로그인
- batch perfromance 올리기
- build패턴을 사용하는 이유
- N+1 문제
- @RestControllerAdvice와 공통응답처리
- 스프링 모놀리식 폴더구조의 고찰
느낀 점
- 공통응답과 JPA 영속성을 다시 공부하며 기본의 중요성을 알게 되고 저의 부족함을 알게 되었습니다.
- 웹서버가 구조가 단단해지고 깊이 공부함에 따라 공부하는 과정이 정말 재밌습니다.
트러블슈팅
- N+1 => 고도화 때 해결
- 쿠키와 CORS => 서브도메인 맞춰서 해결
- 헬스체크 http => AWS에서 헬스체크는 http로 사용한다
- 시큐리티가 내리는 /login, mixed content 문제 => 반환 페이지 공통응답을 위해 401로 변경
클라우드 아키텍처
Figma
ERD
종료까지 목표(D-43)
- 1대 1 유저 간 채팅기능
- 비동기 처리 - Virtual Thread
- 로그인 고도화 - Redis Clustering
- 조회수 고도화 - 인메모리 캐시로 모아서 스케줄링으로 한 번에 보내기
- 성능 테스트 - Ngrinder, Jmeter
- 코드 테스트 - Junit5, 코드 커버리지 90% 이상
- DB 이중화 - 읽기 <-> (쓰기, 수정, 삭제) 분리, DB Replication
- 에러 핸들링 - slack 알림 전파