들어가며
항해99에 승선한 지 벌써 일주일이 지났다. 처음으로 팀을 꾸려 프로젝트도 해보고 코딩테스트를 위해 알고리즘을 공부해보기도 하였다. 일주일만에 많은 사람과 친해졌고, 많은 에러를 만났고, 해결했고, 새로운 걸 공부하면서 머리를 싸매기도하고, 내 공부방식에 대해 고민해보기도 했다.
짧지만 많은 걸 경험했던 지난 일주일.
이번 주, 그리고 앞으로의 WIL은 항해99에서 제시해주는 필수 키워드를 간단하게 정리하고나서, 지난 일주일을 되돌아보는 회고록 위주로 작성하기로 한다.
JWT
JSON Web Token의 약자로, 유저를 인증하고 식별하기 위한 Toekn기반 인증 방식이다. 자세하게 알고싶다면 해당링크를 방문해보도록 하고 이 포스팅에서는 간단하게 Cookie, Session과의 차이점과 그 장점에 대해 알아보자.
보통 크롬 쿠키삭제로 처음 알게되는 Cookie는
특정 인증 정보를 서버가 가지고 있고, 그 값을 클라이언트에게 전달함으로써 마치 키를 주고 자물쇠를 여는 방식으로 인증을 한다. 이 정보 자체를 주고받게 되면 개인정보가 그대로 노출이 되어서 보안적으로 굉장히 위험해진다.
이런 쿠키의 단점을 해결하기 위해서 나온 것이 Session이다.
정보 자체를 주고받는 사실은 크게 다르지 않지만 Cookie에 담겨진 인증 정보 자체를 세션 저장소에 저장하고, 클라이언트가 정보를 요청할 때마다 저장소에서 값을 꺼내서 인증하는 방식이다.
Session을 이용함으로써 보안이 조금 향상되긴 하지만 저장소를 사용하기 때문에 잦은 요청이 들어오면 서버에 굉장히 부담이 된다.
이 둘의 단점을 모두 보완하자! 하고 등장한게 바로 JWT이다.
그럼 결국 JWT의 장점은 뭘까?
우선, 토큰 자체가 인증된 정보이기 때문에 Session처럼 별도의 저장소가 필요하지 않다. 클라이언트의 상태를 서버에 저장해두지 않기 때문이다. 또, Signature라는 공통 키, 개인 키를 암호화를 통해 막아두었기 때문에 데이터의 보안성이 늘어난다.
API
간단하게 말하면 API는 프로그램간의 상호작용을 도와주는 중간다리, 중재자, 매개체이다.
우리가 주소를 입력하면 html파일이 보이게 해주는 controller를 만들었다면 그것마저 API를 만들었다고 할 수 있다.
이미 정리해둔 글이 있어 첨부하겠다.
회고록
순식간에 항해99에 승선한 지 일주일이 지났다. 처음 승선을 할 때에는 기대와 설렘 반 걱정 반으로 시작했는데, 고작 일주일이 지났는데도 굉장히 많은 걸하고 얻을 수 있었다.
우선 가장 의미있게 배운 점을 두가지 꼽자면 다음 두가지를 꼽고싶다.
- 깃플로우를 직접 사용해보고 어떻게 해야 협업에서 효율적으로 깃을 관리할 지, 충돌은 어떻게 해결해야하는 지를 배운 것
- 나만의 공부법을 정립한 것
깃플로우는 막연하게 개념으로만 알고 어떻게 사용하는 지는 나중으로 미루고 있었는데 이번 기회를 통해 어떤 방식으로 브랜치를 만들고 관리하는 지, 어떻게 하면 충돌이 나는지를 제대로 알게 되어서 너무 기분이 좋았다. 미니프로젝트 7조 팀원분들이 너무나도 잘해주는 바람에 감당할 수 있는 만큼의 스트레스만 받으며 경험할 수 있었던 것 같다. 우리 7조 팀원분들에게 압도적으로 감사!!!
공부법은 알고리즘 주차가 시작되었을 때, 문제를 풀어보니 생각했던 것보다 훨씬 어렵고 감당하기 힘들어서 고민도 많이 하고 조언도 받으면서 정립하게 되었다. 9시부터 1시 혹은 2시까지 밥먹고 씻는 시간을 제외하면 책상에 앉아있는 시간이 12 - 13시간 정도 되는데 그 시간동안 고작 4문제를 제대로 이해하지도 못하고 TIL조차 쓰지 못하는 모습을 보고 이렇게 되면 알고리즘 1주차가 끝나기 전에 정신부터 망가지겠다 싶었다. 결국 모든 걸 멈추고 지금까지 뭐가 문제인지, 어떻게 하면 좋을 지를 고민해보았다.
나는 나 자신에게 기대하는 수준과 남들의 수준에 뒤쳐진다고 느끼면 굉장한 스트레스를 받고 하루라도 빨리 내 기대에 충족하고, 남들처럼 '잘'하기 위해 마음이 급해진다. 그래서 조급해하며 한 문제라도 스스로 해결해보려고 몇시간이고 끙끙대고 있었다. 그런데 아무것도 모르는 사람이 뭘 풀어낼 수 있을까? 초등학생에게 고등학생의 수학문제를 풀어보라고 하면 건들지도 못하는 것처럼 나는 알고리즘에 대해 알지 못하는데 문제를 풀 수 없었던 거다. 이 생각이 들자마자 앞으로 공부방식을 어떻게 가져가야할 지 감이 오기 시작했고, 떨어졌던 자신감이 다시 돌아왔다.
매니저님이 자주 하시는 말씀처럼, 당연히 지금은 못하는게 맞다. 처음 해보는데 바로 술술 문제를 풀어내면 그 사람은 항해99고 뭐고 바로 나가서 취업할 수 있는 사람이다.
최종적으로는 부족한 내 모습을 보면서 스트레스를 받는게 아니라 앞으로 더 성장할 가능성이 있는 사람이라고 생각하기로 하며, 최대한 효율적으로 공부하기로 다짐했다.
이제 7일이 지났고 앞으로 92일이 남았다.
내가 앞으로 얼마나 성장할 지 기대가 되는 일요일 밤이다.
참고
JWT(JSON Web Token)의 개념부터 구현까지 알아보기
'Study > WIL' 카테고리의 다른 글
[WIL] 항해99 week6 (06/13 ~ 06/19) (0) | 2022.06.21 |
---|---|
[WIL] 항해99 week5 (06/06 ~ 06/12) (0) | 2022.06.13 |
[WIL] 항해99 week4 (05/30 ~ 06/05) (0) | 2022.06.05 |
[WIL] 항해99 week3 (05/23 - 05/29) (0) | 2022.05.29 |
[WIL] 항해99 week2 (05/16 - 05/22) (0) | 2022.05.22 |