실전프로젝트 중간과정..

Jobmania·2022년 9월 19일
0

항해 과정 기록

목록 보기
8/19

이전 참고자료들.

포트폴리오 항목 예시)
1.SSL
2.CI/CD PIPELINE
3.백엔드 서버
4.데이터베이스


1.Trouble shooting
문제 발생원인, 원인파악, 해결과정(2~3가지), 기능을 사용한 이유,

2.Server tEST

TPS지표
성능개선지표
JPA->QueryDSL
REDIS CASHDB

레디스

내가 도전하는 챌린지적 기술

  • 인프라
    1.무중단배포
  1. 깃액션
  2. 로드밸런서

람다식
https://bombichun.tistory.com/entry/JAVA%EB%9E%8C%EB%8B%A4%EC%99%80-%EC%8A%A4%ED%8A%B8%EB%A6%BCLambda-Stream

비동기가 요새 핫하다.
레스트템플릿(동기) vs 웹플럭스(비동기)

심화내용
jpa 락
트랜잭션 격리수준

네이티브 SQL, QueryDSL 차이

NGNIX(로드밸런서: 클라이언트 요청방향을 정해주는 아이) : 무중단배포에 사용한다!!
1대 서버로도 가능하다 + 여러대의 서버도 충분히 가능함^^
왜? JAVA jar 1, JAVA jar2로 나누어서

++ NGNIX 프록시서버다(모든 인프라구축에 필수다!!)

댓글 같이 자주변화하는 데이터는 캐시에 저장하지 말고 db에 불러온다.
그래서 레디스를 사용할때
1. 레디스가 먼지?
2. 왜 썻는지?
3. 어떤 성능개선??
4. 얼마나 성능개선??

->> 측정 툴 Jmeter
그래서 프로젝트 시작시 처음부터 레디스, 쿼리 DSL 사용하지말고
어느정도 만들었을 때 메소드쿼리 -> 쿼리DSL을 사용해서 성능개선을 이루기.

프로메테우스?? -> 성능테스트를 해서 시각화..

@slf4j 로그사용할때 어노테이션

JPQL
내가 배워야 할것들 !!
1. 예외처리
2. 테스트코드 목킹! <<<진짜 연습해야됨..-
3. 웹소켓...


MVP기능은 완성..

추가적으로 성능개선이 필요함..
1. 특정 API(로그인)시간이 로딩 개선
2. 홈화면 캐싱처리로 들어갔을시 최적화
3. 웹소캣 데이터 캐싱처리 등등.


피드백

  • 피드백
    FE : 1. API주소 환경변수가 안빠져있어서 빼주는게 좋겠다. REST 라우터를 사용하면 됨, 전역 상태관리에 대해서..?
              >  액세스 토큰을 저장하고 관리함.(로컬스토리지).   > true, false 관리하면 local에서 들고온다. > Access 리이슈할때 (access 변할때)  로컬스토리지 렌더링 안되는 경우가 있음. 그래서 모든 데이터는 상태에 저장하는게 좋음   
              2. 라우터
          BE : 1.아키텍쳐에서 B.E HTTPS설정이 되어있는데 사용자도 HTTPS가 설정되어있는건지 > 사용자가 HTTPS 사용하게끔 배포할 예정
                2. 최신화를 위해서 DB를 CALLBACK 갱신..(한번만 가져오는건 별로 좋진 않다..)
                3. 하나의 테이블만 사용햇을때 QueryDSL 을 사용한 이유? 어떤 성능적인 좋은 이유? > 복잡한 쿼리를 구성하기 위해서 ..  
                 쿼리 효율을 위해서 사용하는게 좋을듯 
                4. 공통 Config설정부분이 추상화가 들어가는 부분이 있는지.. ?(JAVA 추상화 메소드를 만들어보고 직접 적용해본 로직이 
                    있는지?) > 추상화를 만든게 없는데 > 로그백처리를 하시게 되면, 해당 부분에 추상화 관련된 로그들을 만들어 놓고 
                  그부분을 extend 해서 서비스단에서  로그 관련된 가져와서 사용한다던가.  override 사용하던가 하시면 좋을듯..
                5. exceptino handler 에러코드와 메세지를 분기시키면 좋을 것 같습니다....
                6. validation 처리도 하여서 check 모든 jpa할때 null 체크를 해서 collection util을 하면 좋을 것같다. 

피드백 내용들..
아직 추상화에 대한 개념이 잡혀있지 않아서 JPA에 대한 이해가 필요하다..
또한 Validation부분 역시....


나는 Redis를 이용해 데이터 로딩을 개선하려고 한다.. 그 과정에서 팀원이 사용한 QueryDsl을 이해가 먼저라고 생각..

  1. QueryDsl을 지식 활용을 통해 query 개선 및 알고리즘 개선
  2. 데이터 캐싱처리 (홈 화면에서 자주 보여지는 부분들)
    -> 홈 화면 새로고침시 4~5개 api가 요청되기 때문

위 두가지가 성능개선을 위해 필요한 부분이라고 생각된다.....


일단 하자!!

profile
HelloWorld에서 RealWorld로

0개의 댓글