본문 바로가기

TIL 및 WIL/WIL (Week I Learned)

[WIL] 22.07.25 ~ 22.07.29 (마지막 프로젝트(My Little Trip) TestCode 작성, JWT)

사용자 인증 암호화 토큰, JWT

 

프로젝트를 진행하면서 기존에 쓰던 로그인에서 JWT 토큰을 넣어서 사용하게 되었는데, JWT에 대해 아직 이해도가 다소 부족하다고 생각되어 팀원들 모두와 함께 공부하는 시간을 가졌습니다.

 

JWT는 Json Web Token으로 로그인한 사용자의 데이터가 담겨져 있는 인증을 위한 암호화 토큰이라고 하며, JWT 외에도 많은 토큰 인증 방식이 존재하지만 JWT 인증 방식이 가장 많이 사용되는 인증 방식이라고 들었습니다.

 

JWT 토큰의 구조는 Header, Payload, Verify_Signature로 이루어져 있으며 각 부분이 담고 있는 데이터는 다르다는 것도 배우게 되었습니다.

 

JWT 토큰 정보

 

이러한 JWT를 이용하여 로그인을 한 유저 정보에 대해 토큰을 발급받고 해당 토큰을 사용하여 유저 정보를 조회하는 식으로 공부를 진행하였습니다.

 

로그인을 통한 JWT 토큰 발급
JWT 토큰을 이용한 유저 정보 조회

 

이러한 방식으로 팀 내에서 스터디를 통한 JWT 공부를 진행하였는데, 혼자서 공부하는 것이 아닌 다 같이 해보면서 함께 공부하는 것이 이해하기도 쉽고 좋게 다가왔던 것 같습니다.

 

 

 

프로젝트 TestCode 작성

 

Backend API 구현을 완성한 뒤 해당 API가 잘 작동되는지 확인하기 위해 TestCode를 작성해보기로 하였습니다.

 

기존에는 Postman을 이용하여 직접 API 통신을 확인하고 조회/등록/수정/삭제 등의 기능들을 실제 DB를 이용하여 테스트를 진행하였는데, 이번에는 TestCode를 이용하여 코드를 테스트해보았습니다.

 

view.py

 

우선 views.py에 적힌 대로 API가 작동되는 것이기 때문에 views.py를 확인해준 뒤 테스트 코드를 작성하는 것으로 진행하게 되었습니다.

 

모든 팀원분들이 각자 구현한 부분들에 대해 테스트 코드를 작성해보기로 하였고, 자신이 직접 작성한 테스트 코드를 통해 API가 정상적으로 작동하는지 확인을 해주었습니다.

 

처음 해보는 것이었기 때문에 조금은 삐걱거리는 부분 또한 있었지만 각 팀원들이 맡은 파트에 대해 테스트 코드를 작성하게 되었고, 작성한 테스트 코드를 토대로 정상 작동하는 것 또한 확인을 할 수 있었습니다.

 

TestCode 실행

 

이 이외에도 테스트 코드를 작성하면서 Faker()라는 더미 데이터를 생성해주는 라이브러리도 접하게 되었는데, 이번에는 적용시키지 못했지만 Faker() 라이브러리에 대해 따로 공부를 진행해보았습니다.

 

Faker()

 

만약 테스트 코드를 작성할 때 더미 데이터를 직접 작성하지 않아도 파이썬에서 제공하는 Faker라는 패키지를 통해 더미 데이터를 생성하여 사용할 수 있다는 것을 배울 수 있었습니다.

 

 

 

조금씩 미뤄진 것 같지만..

 

API 및 테스트 코드를 작성하면서 순식간에 시간이 지나갔고, 이제는 웹 페이지를 위한 Frontend 구현 또한 해줘야 했습니다.

 

뭔가 이것저것 공부하고 해보는 시간이 계속 추가되었던 것인지는 모르겠지만 Frontend 구현은 아직 이뤄지지 않았고 점점 시간은 다가왔습니다.

 

시간은 다소 촉박하다고 할 수 있지만 완성을 목표로 열심히 해봐야할 것 같습니다.