Skip to content

f-lab-edu/mind-diary

Repository files navigation

mind-diary 서버 구조도

서버 아키텍쳐 spring boot, Mybatis, Java, Mysql, Redis, Jenkins, Github, Naver cloud platform

프로젝트 목표

  • 자가진단 검사과 기분 일기장, 커뮤니티를 통해 스트레스를 관리하는 것이 목표입니다.
  • 단순 기능 구현뿐 아니라 Extensibility와 Scailibility한 서비스를 구현하는 것이 목표입니다.

기술적 issue 해결 과정

프로젝트 중점사항

  • 대규모 트래픽 처리를 위한 애플리케이션 아키텍처를 구현
  • Mysql에서 인덱스 설정과 실행계획 분석 후 쿼리 최적화
  • 다중 서버 환경에서 JWT 토큰과 쿠키를 활용한 인증 구현
  • 로그인을 했는지 확인하는 부가기능 반복 문제에 AOP를 적용하여 문제 해결하기
  • 스프링의 @Transactional을 이용하여 작업의 완전성 보장하기
  • 의존적이지 않은 단위테스트 작성
  • Redis Cache를 이용해 자가진단 조회 기능 구현
  • ControllerAdvice, ExceptionHandler를 사용하여 비즈니스 예외 처리 전략
  • Redis 트랜잭션에는 롤백이 없기 때문에 직접 트랜잭션 롤백 후처리하기
  • Jenkins를 사용하여 CI/CD 환경 구축
  • 게시글 목록 조회 시 중복된 일대다 데이터를 가져오는 문제를 메서드 분리와 쿼리 튜닝으로 해결하기
  • Redis Pipeline을 이용하여 한번에 많은 데이터 추가 시 네트워크 병목 개선
  • Redis에 Look Aside 캐시 구조를 적용하여 가용성 확보하기
  • naver Cloud Platform을 이용하여 로드밸런싱

DB ERD

erd

API Docs

API Docs

Front

OvenApp

Releases

No releases published

Packages

No packages published