Project/취뽀Lab

[취뽀Lab] 1차 발표 회고

code_wizard 2024. 11. 14. 13:49

[카카오테크 부트캠프 1기] 파이널 프로젝트 취뽀Lab

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 알림 전파