개발일지(주간)

29주차 개발일지

move2 2023. 3. 26. 18:32

팀프로젝트가 끝나고 한주간 쉰 다음 모의면접을 보고, 프로젝트에 캐싱을 적용해 보았다.

모의면접을 봤을때 아쉬웠던 점은 평소에 알았다고 생각했던것들을 제대로 대답하지 못한 점이었다.

어떤 코드나 어떠한 기술을 왜 적용했는지 평소에 생각하고  쓰고 있다고 생각했는데, 아직 많이 부족하다고 느꼈다.

클러스터드 인덱스라는 것에 대해서는 아예 모르고 있던 것인데 찾아보니 면접 질문으로 많이 나오는 질문이라고 한다.

기술면접 대비를 좀 더 해야겠다는 생각이 들었다.

그리고 기존 프로젝트에 캐싱을 적용했다.

우리 프로젝트에서는 매 페이지마다 프로필을 로딩하고, 구조상 프로필을 로딩할때마다 쿼리를 두개씩 날리게 되는데, 한번 로그인하면, 그 정보를 캐싱해서 프로필을 로딩할때 날아가는 쿼리를 줄여 보았다.

실제 페이지에서 로딩되는 속도는 측정해 보지 않았으나, 포스트맨으로 api의 속도를 측정 해 보았을때, 유의미한 결과가 나왔다.

캐싱을 시도하며 Spring에서 redis에 저장을 할때 직렬화를 시킨다는 것을 알게 되었다. 이전에 리프레쉬 토큰을 이용한 로그아웃 기능을 만들때는 알지 못하고 넘어갔던 부분인데 그동안 코드를 따라 쓸 줄만 알았지 redis를 제대로 알고 사용하지는 않고 있다는 생각이 들었다. 

언제나 하고 있던 생각이지만 어떠한 기능 개발을 할때 단지 코드를 따라 쓰는 것보다는 이해를 하고 쓰는것이 중요하다는 것을 다시 한번 생각하게 되었던 것 같다.