Code Monkey home page Code Monkey logo

mind-diary's Introduction

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

mind-diary's People

Watchers

 avatar  avatar  avatar  avatar

mind-diary's Issues

userId 파라미터 가져오기 코드 수정

현재 코드는 Aspect 클래스에서 파라미터들을 배열로 받아서 userId를 바꿔치는 로직

그런데, 토큰으로 사용자 권한은 검증하나 Controller와 Service 모두 userId가 필요없는 상황에서는 파라미터로 userId를 받지 않는다.
이럴경우 원래의 파라미터 DTO가 userId로 바뀌는 상황이 발생.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.