[WIL] 항해99 주간 회고 #1주차
항해 7기에 승선한 후 7일째가 되었다.
첫날부터 처음 만난 팀원들과 4일 동안 미니 프로젝트를 진행하게 되었었는데, 내가 팀장이어서 심적으로 많이 힘들었다. 하지만 다행인 건 팀원들이 대부분 열정적이고 실력이 꽤 있는 사람도 있어서 나름 수월하게 진행된 듯하다.
3일째에는 마지막 한 페이지만 완성되면 끝날 정도로 다들 잘 해주었다.
기한 내에 끝내지 못할까 처음부터 좀 급박하게 진행 되도록 일정을 잡았는데, 팀원들이 잘 따라줘서 고마울 다름이다.
첫 미니 프로젝트는 프론트, 백 상관없이 기존에 배웠던 걸로 웹 사이트를 만드는 프로젝트를 진행하는데, 다른게 한 가지 있다면 로그인, 회원가입 기능을 구현하는 것이었다.
꼭 JWT 방식으로 구현을 했어야 했는데, 어떤 사람이 존맛탱 토큰이라고 한 게 자꾸 생각나서 프로젝트를 진행하는 내내 웃겼다.
웹 인증 방식에는 세션/쿠키를 사용하는 것과, 토큰(JWT)을 사용하는 방식이 있는데,
이 둘의 차이점에 대해 얘기를 해보자면
세션/쿠키
세션 기반 인증 시스템은 서버 기반의 인증 방식이라 서버 측에 사용자의 정보를 기억, 저장하고 세션을 유지한다.
즉, 사용자가 로그인하면, 서버에서 검증 후 고유한 ID 값을 부여하여 세션 저장소에 저장한 후 매칭되는 ID를 사용자에게 발행하는 것이다.
토큰(JWT)
인증받은 사용자들에게 토큰을 발급하고, 서버에 요청을 보낼 때 토큰을 함께 실어 보내는 인증 방식이다.
즉, 사용자가 로그인하면, 서버에서 계정 정보를 검증한 후 Token을 발급한다.
사용자는 Token을 저장한 후, 서버에 요청할 때 http header에 해당 토큰을 함께 전송한다.
그 후 서버에서 토큰을 검증하고, 요청에 응답한다.
JWT는 Token 기반 방식 중 가장 많이 사용되는 것인데,
인증에 필요한 정보들을 암호화시킨 토큰이다.
세션/쿠키 방식은 서버에 사용자 정보를 저장하는 반면, JWT는 사용자가 직접 정보를 가져오는 방식이라 서버에 부담을 줄일 수 있다는 장점이 있다. (고 배웠다)
이번에 프로젝트를 진행하며 가장 어려웠던 부분은 기능들을 구현하는 것이 아닌 API 설계였지 않나 싶다.
API 설계는
한 번도 해본 적 없기도 했고, 사실 API를 꼼꼼하게 설계를 해놔야 할만한 규모의 프로젝트가 아니어서 더 그랬던 것 같다. (그냥 대충 슥 보면 알아챌 정도...?)
첫 기획 멘토링을 받을 때도 이 부분에 대해서 지적을 받았는데, 우린 결국 끝까지 API 설계는 다시 건들지 않았다... ㅎ
이게 아마 첫 미니 프로젝트를 끝내고 두 번째로 아쉬운 부분인듯하다. 기한 내에 프로젝트 완성에만 매달리다 보니 이렇게 된 거 같다.
다음 프로젝트 전까지 이론 공부를 더 해서 API 설계와 DB 설계까지 잘 해보고 싶다. 음음.
첫 미니 프로젝트가 끝남과 함께 금요일부터 알고리즘 주차가 시작되었는데, 사실 자바 문법 공부를 따로 할 수 있는 시간이 있었으면 좋았을 정도로 막막하다.
어떻게든 팀원들과 머리를 맞대고 문제를 풀어가고 있긴 한데, 현타가 많이 온다.
내가 생각하기에 아마 알고리즘 주차에서 중도 포기자가 제일 많이 생기지 않을까 싶다.
솔직히 나도 포기를 하고 공부를 더 하고 와야 되나 하는 생각이 들었지만, 다른 사람들에게 고민 얘기를 하며 처음엔 다 그렇다고 괜찮다는 위로와 위안을 얻어서 조금 더 노력해 보고자 한다.
나는 꼭 완주를 하고 싶다. 아니. 완주를 해야만 한다.
지치고 힘들어도 끝까지 해내자. 화이팅.