프로젝트 코드 씹고 뜯고 맛보기 🍖
핵심 기능이라고 생각되는 기능은?
기존에 많이 했던 CRUD는 중점이 되는 기능이라고 생각할 수 없었서 바로 제외했고, OAuth2로 간편 로그인을 구현한 기능도 있었지만 중점이라고는 하기에 애매해서! 아래 두개로 정했다.
- 팀원들과 실시간 채팅
- 한 주 동안 많이 사용된 기술 통계
그럼 뽑은 기능들이 어떻게 굴러가는지 알잘딱으로 설명해주세요.
- 팀원들과 실시간 채팅
이 부분은 내가 작성한 코드라서 조금 찾아보니 기억을 되 찾아서 나름 금방? 작성했다.
- 한 주 동안 많이 사용된 기술 통계
이 부분이 다른 팀원분이 작성하셔서 한 참을 뜯어보고 찾아보고 했다...
그래도 코드를 잘 작성해주셔서 다행이였다! 배치를 언제 어떻게 사용한다 정도만 알고 있었는데 요번에 찾아보면서 jobLauncher -> job -> step -> 각 item reader, processor, writer 흘러간다는 걸 알았고 어떻게 설정을 해줘야하는지도 알았다.
작성하는데 시간이 오래 걸리긴 했지만, 덕분에 다른 사람에게도 조금은 설명이 가능해진 것 같다!
성능 최적화
무엇이라도 걸리는 시간을 조금이나마 줄인다면 그건 성능 최적화가 맞겠죠..?
refreshToken을 Db에 저장하지 않고 Redis에 저장해 관리하는 것도 떠올랐지만 그것보단 쿼리문으로 데이터들을 조회해오는 부분들이 더 맞다는 생각이 들어서 project를 검색하는 쿼리문을 왜 저렇게 짯는지 속도는 얼마나 차이가 났는지 작성했다.
확실히 이렇게 수치가 보이는게 참 중요한 것 같다.
ERD는 너무 어려워요
- 더욱 최적화된 방법으로 설계를 한다면 어떻게 할것인가요?
- 부족한 부분들이 너무 많은 나는 결국 떠올리지 못 했습니다... 한 1시간 정도 고민한 것 같은데 모르겠더라구요. 여기에 계속 매몰돼있을 수 없으니 일단은 비워두고 다른 부분들 다 채워두고 조금씩 두고두고 고민해보기로 결정 했습니다.
마무리
하루 종일 코드 작성하는 것도 아니고 코드만 따라가며 어떻게 흘러가는지 파악하고 찾아보느라 조금 눈이 아팠지만, 다른 사람의 코드를 파악하는 것도 왜 도움이 되는지 직접 느껴보니 알겠다!
거기다가 코드 리뷰시 어떤 말을 해줘야할지도 조금 + 된 느낌이다.
그럼 내일도 힘내보자 뽜이팅!💪🏻