항해99 | [회고/WIL] 1주차(feat.JWT/API)

hyemin·2022년 3월 13일
0

항해99

목록 보기
3/18
post-thumbnail
post-custom-banner

2022.3.7(월) 10:00 ~ 2022.3.10(목) 19:00

1주차

팀원들과 4일간 미니 프로젝트를 만들기

  • jinja2 템플릿 활용하기
  • JWT 인증 방식으로 로그인 구현 기능하기

위의 2가지 필수 사항을 포함하여 팀원들과 주제를 정해 하나의 웹 사이트를 만들어야 했다

참고 > 미니 프로젝트 완성

배운 점

스파르타 코딩클럽 메이킹 챌린지에서 협업을 경험해봤지만, 짧은 기간에 적은 인원이 모여 주제 선정부터 배포까지 업무를 분배하는 것은 또 다른 경험이었다. 사실 처음에 계획했던 것에 비해서는 구현하지 못한 기능들도 많고 디자인적으로 아쉬운 부분이 많았는데, 꼭 완성해야되는 부분과 그렇지 못한 부분을 구분해서 시간 분배하는 것이 중요하다는 것을 깨달았다.

이번 프로젝트에서 팀장(바지 팀장이긴하지만)을 맡아 상대적으로 조금이라도 경험이 있는 내 의견이 많이 반영되었는데, 팀원들의 실력을 모르니 업무 분배시 애로 사항이 많았던 것 같다. 일의 중요성에 따라 일의 우선순위를 잘 정하고 팀원들의 실력에 따라 업무를 분배하는 것이 얼마나 중요한지 배울 수 있었다.

1. JWT(Json Web Token)

JWT는 Json 포팻을 이용해 사용자에 대한 속성을 저장하는 Web Token이다.

JWT는 Header, Payload, Signature 3 부분으로 이루어지며 각 부분은 Json형태로 인코딩되어 표현된다. 각 부분은 .구분자를 통해 이어지며 인코딩 예시는 아래와 같다.

쿠키/세션 대비 장점
쿠키/세션은 서버에서 유저 정보 및 db를 저장하기에 사용자가 증가하면 별도의 저장소가 계속해서 필요하게 된다. 반면에 JWT는 모든 정보가 Token 자체에 포함되어 있어 저장소가 필요없다.

또한, 토큰 기반으로 하는 페이스북, 구글과 같은 다른 인증 시스템에 접근이 가능하다는 장점이 있다.

2. API(Application Programming Interface)

API는 응용 프로그램에서 사용할 수 있도록 프로그래밍 언어가 제공하는 기능을 제어하도록 만든 인터페이스를 뜻한다.

예를 들어 식당에서 손님은 주문, 셰프는 요리, 종업원은 메뉴를 안내해주고 손님으로부터 주문을 받아 셰프에게 요리를 요청하는 역할을 한다.

손님 - 프로그램
메뉴 - 명령 목록
셰프 - 응용 프로그램
종업원 - API

API는 프로그램이 주문할 수 있도록 명령 목록을 제공하고, 프로그램이 주문(명령)을 하면 API는 응용프로그램과 상호작용하여 명령 값을 전달하게 된다. 즉, 프로그램과 다른 응용 프로그램이 상호작용할 수 있도록 도와주는 창구 역할을 한다.

느낀 점

아무도 부담을 주지 않았지만 스스로 느끼는 팀장 타이틀에 대한 압박과 다른 팀보다 인원이 적은 점, 프로젝트 시작할 때까지만 해도 모르고 있던 jinja2와 JWT 인증 방식을 구현해야된다는 걱정, 시간에 대한 압박 등으로 굉장히 부담감을 느꼈던 첫 주였다.

실제로 그 부담은 프로젝트 기간 내내 평균 3시간도 채되지 않는 수면시간으로 고스란히 드러나기도 했다.

'프로젝트 완성'에 의의를 두라는 매니저님의 말씀에 따라 어영부영 프로젝트를 완성했지만, 잠깐의 뿌듯함을 뒤로하고 내가 확실히 이해하고 사용한 코드인가?'라는 생각이 들어 마음이 착잡하기도 했다.

그러나 위안이 됐던 것은 이러한 생각을 나만 하는 것이 아니라 대다수가 하고 있다는 점이었다. 이번 1주차에서 얻은 자산은 프로젝트를 완성 경험도 있지만, 가장 큰 것은 함께하는 사람들인 것 같다.

체력적인 부담과 방법에 대한 불확신 속에서 방황하다가도 얘기를 나눠보면 나만 그런 것이 아니라 다들 똑같은 상황이라는 점에 그럼에도 버텨나가고 있는 그들을 보며 나도 다시 힘을 낼 수 있었다.

불안은 내려놓고 새로운 Chapter에서 만난 팀원들과 또다른 항해를 잘 마무리하고 싶다.

post-custom-banner

0개의 댓글