WIL
항해 99의 본격적인 시작 후, 딱 1주일이 지났다.
그간 배운것을 정리해보는 시간을 가져보라 하여 정리 해본다.
키워드:JWT,API
1. JWT
JWT는 로그인 인증방식중 하나이다.
db에 유저정보를 저장할때, 비밀번호를 그대로 저장 할 수 없어, 암호화 해 저장하여 보관하는 것이다.
로그인할때 jwt 인코딩 디코딩 과정을 거쳐, 접속하기 때문에 접속하는 순간에만 db와 데이터를 주고 받으면 된다.
그러기에, 간단하고, 접속한 유저를 db에 저장하지 않기 때문에 db관리 비용 측면에서 유리하게 된다.
반면에, 세션방식은 현재 접속한 모든 유저를 db에 저장한다.
jwt인증방식이 뭔가 좋아 보이지만....이점이 장점이자 단점이 된다.
왜냐하면 세션방식은 현재 접속한 유저의 db를 활용 하는 기술을 도입 할 수 있기 때문이다.
예를들면 인스타그램에서 현재 로그인한 기기에서 강제로그아웃을 시키는등의 기술은 세션방식으로 db를 관리하기 때문에 가능한 일이다.
어쨌든 프로젝트를 하면서 jwt 인증방식을 이해하게 되었다. 다만 부족한점은 프로젝트 발표일까지, 원하던 모든 기능을 구현에는 실패 했다는 것이다. 물론 발표끝나고 조금 수정하다보니 구현이 되어 무척 아쉬웠다.
2.API
API는 은행창구라고 배웠다. 실제로도 그런 기능을 하는 것 같다. 프로젝트할때에는 기능 구현 단위라고 생각하면 될거 같다. 프로젝트를 할때 API의 로직을 짜는것은 그리 어려운게 아니였으나, 그것을 구현하는 방법이 파이썬과 자바스크립트진자2 템플릿등등을 쓰는게 어렵고 헷갈렸다. 많이 배운점은 코딩이 잘 안되니 ROBO3T를 이용하여 DB를 이리저리 분석해보는 점에서 조금 더 이해도가 올라 간것 같다. 아직 해결되지 않은 문제점은, DB에 데이터를 저장할때 내가 넣지 않아도 저장되는 _id를 활용 할 수 있는 방법이 없을까? _ID를 변수로 받아와 활용해보려는 시도가 자꾸 실패했었기에, 이 부분은 추후에 다시 공부를 해봐야 겠다.