2022 Masters Course/Project Course

2022 마스터즈 코스(백엔드) 111일차 회고(2022. 6. 20.) - "JWT 리팩토링"

ikjo 2022. 6. 20. 23:48

해당 글은 코드스쿼드 2022 마스터즈 코스 "Java 웹 백엔드" 과정을 수강하면서 학습한 내용 등에 대한 회고 글입니다. :)

 

수강 회고

마지막 팀 프로젝트의 2주차가 시작되었다. 오늘은 지난 시간들과 달리 일찍 자고 일찍 일어난 덕분에 여유있게 오전 스크럼에 참여할 수 있었다. 오랜만에(?) 아침 시간에 팀원들과 일상적인 얘기와 함께 현재까지 작업 진행사항들과 향후 계획들에 대해 나눌 수 있어 유익한 시간이었다.

 

이제 마스터즈 코스가 종료되기까지 오늘을 포함하여 단 10일밖에 남지 않았다. 이제 정말 마무리 단계에 있다는 점이 실감이 된다. 이번 이슈 관리 서비스 팀 프로젝트는 마지막 과정인 것 만큼 유종의 미를 거두고 싶다. 마치 말년 병장(?)처럼 대충대충 하기보다는 끝까지 최선을 다해 임하고자 한다.

 

 

학습 회고

오늘은 저번 숙소 예약 서비스 팀 프로젝트 때 구현했었던 JWT를 통한 로그인 검증 부분을 리팩토링해보았다. 저번 구현 시에는 토큰을 단순히 문자열로만 관리하고 있었는데, 지난 리뷰어 토큰을 Dan이 객체를 통해 관리하는 것을 권장해주었다. 예상치도 못한 내용이었는데, 지난 번 팀 프로젝트 때 당시 남은 시간이 얼마 있지 않았기에 다음 프로젝트 때 리팩토링하는 것을 목표로 했었다.

 

마침 이번 팀 프로젝트에서도 미션 요구사항 중 JWT를 통한 로그인 검증하기가 있었기에, 도전해보기로 했다. 리팩토링 시에는 지난번 Dan이 공유해주었던 자료를 참고하였다. 처음에는 굳이 이렇게까지 해야되나 싶었지만 한번 해보기로 했다.

 

결론적으로 문자열로 돌아다니던 토큰을 access 및 refresh 각각의 토큰 객체를 만들어 관리하도록 구현했다. 리팩토링을 통해 이전 보다 더 개선되었던 점은 기존에는 토큰을 문자열로 관리했었기에 토큰이 가는 곳마다 검증 로직과 jwt 관련 상수들이 따라다녀야만 했었다. 하지만 객체로 관리한 덕분에 객체 내에서 검증 로직을 처리할 수 있고 관련 상수들도 상태값으로 둘 수 있었다. 즉, 유지보수의 용이성이 증가했다고 볼 수 있었다.

 

또한 각각의 토큰 객체는 비슷한 메서드와 상태를 지니고 있으므로 이를 인터페이스화하여 호출 메서드에 대한 표준화 할 수 있었다. 이는 아직 당장은 와닿진 않았지만 혹시라도 추후에 access나 refresh 토큰 외에 다른 토큰이 추가되었을 때 신규 생성에 유리하고 사용자(개발자) 입장에서도 일관된 형식의 메서드를 호출함으로써 개발의 편익을 제고시킬 수 있을 것이라고 생각됐다.

 

 

좋았던 점

  • JWT 리팩토링을 마무리할 수 있어 뿌듯했다. 👍

 

 

아쉬웠던 점

  • 일찍 자고 일찍 일어나긴 했지만 수면 시간이 다소 부족해 하루종일 몽롱한채로 있어 학습에 집중하기 어려웠습니다. 😥

 

 

이전 보다 개선되었던 점

  • 지난 주 오전 스크럼에 거의 참여하지 못했었는데 오늘은 일찍 자고 일찍 일어나서 오전 스크럼에 여유있게 참석할 수 있었다. 한동안 수면패턴이 낮과 밤이 바뀌었었는데, 오랜만에 정상적인 수면 패턴으로 돌아왔다. 😂