Week1 동안 했던 것들 정리하기.
2022. 01. 10(월) ~ 2022. 01. 13(목)
< Chapter 1. 웹 미니 프로젝트 진행 >
9조 스타벅스 빌리지
- 로그인, 회원가입 기능 구현하기
- git, source tree 사용방법 익히기
2022. 01. 14(금) ~ 2022. 01. 15(토)
< Chapter 2. 알고리즘 기초 진행 >
3조 걷기반
- js 기초강의 수강하기
- 알고리즘 3, 7, 11번 문제 풀기
#3 https://programmers.co.kr/learn/courses/30/lessons/12903,
#7 https://programmers.co.kr/learn/courses/30/lessons/76501,
#11 https://programmers.co.kr/learn/courses/30/lessons/12954
느낀 것.
목이 아프고 허리가 아프다. 좀 더 나은 공부 환경을 조성해야할 것 같다.
걱정될 때가 있어도 최대한 나만의 페이스를 가져가자. 사람마다 다 출발선이 다르고, 난 나만의 출발선에서 최선을 다하는 거다. 열심히 해보자.
내게 아쉬웠던 것.
최대한 내 선에서 해결하려고 하는 것 같다. 정말 도움이 필요하거나 시간이 너무 많이 지체될 때는 질문을 해보자.
기능을 구현했긴 한데 그때 당시에는 좀 이해를 했나 싶다가도 하루, 이틀.. 시간이 지나면서 거의 모르던 상태로 돌아간 것만 같다. 원래 이런건가? 다시 하면 또 기억이 나겠지.
마무리.
그래도 한 주동안 고생했다. 어느 때보다도 열심히 공부한 것 같다. 내가 이렇게 공부를 할 수 있는 사람이었다니... 다음주도 다시 열심히 해보자. 화이팅~
Week1 키워드 정리 : JWT, API
JWT
JWT Token은 서버 인증을 할 때 사용된다.
서버 인증은 왜 해야해야하는 걸까. 내 개인정보가 중요하기 때문이다. 내가 로그인을 할 때 내 아이디, 내 비밀번호, 내 개인정보가 노출되길 원하지 않는다. 그래서 로그인을 할 때 서버 인증을 해주어서 내가 나인지 판단 될 때만 입장시켜주어야 한다.
JWT Token의 발급과 인증은 이렇게 이루어져있다.
사용자가 로그인을 한다. 로그인한 정보에 ID를 부여해준다. 그 다음 그 ID를 JWT Token의 payload라는 곳으로 보내준다. 그리고 토큰의 유효기간을 정해준다. 유효기간을 정하는 이유는, 만약 토큰을 누가 훔쳐갈 수도 있기 때문이다. 토큰의 유효기간을 정하고 나서 이 토큰을 암호화 해줄 것인데, Secret Key라는 것을 사용해 암호화하고나서 Access 토큰을 발급받는다. 이제 내 로그인 정보에 나만의 토큰이 발급되었다. 이 토큰만 있으면 나를 증명할 수 있고 인증을 받을 수 있다. 다시 로그인 상황이라고 가정한다. 사용자가 로그인을 하면 사용자의 나만의 토큰을 서버에 보낸다. 서버는 아까 암호화 할 때 사용되었던 Secret Key를 확인하고 그 사용자의 Secret Key 이면 암호화를 풀어보고 토큰이 조작되었는지, 유효기간이 만료되지는 않았는지 확인한다. 여기서 검증이 모두 완료된다면 payload를(처음에 토큰을 발급할 때 사용자만의 정보에 ID를 부여하고 payload라는 곳에 넣었었다.) 디코딩(암호화 해제)해서 드디어 사용자의 정보를 가져다 줄 수 있게 된다. 다시 로그인 완료.
API
Aplication Programming Interface(API)는 무엇인가.
alert('hi')를 입력해보았다. 엔터를 치면 hi가 쓰여진 alert창을 보여준다. 나는 단지 alert()라는 곳에 'hi'라는 글씨를 썼을 뿐인데, 네모난 창과 확인 버튼까지 저절로 만들어졌다. 이것은 누가 alert()를 쓰면, 네모난 창에 글씨가 써지게 하고 확인버튼을 쓸 수 있도록 이미 만들어둔 것이다. 이것이 바로 Aplication Programming Interface이다. alert()는 브라우저 개발자가 만들어둔 Aplication Programming Interface인 것이고, 지금 이 interface로 쉽게 hi가 보이는 Aplication을 만든 것이다. 또한 브라우저 개발자도 운영체제가 제공하는 Aplication Programming Interface를 사용하여 alert()를 만든 것이다.
그래서 간단히 요약하자면 API는 내 어플리케이션에 가져다 쓸 수 있는 프로그래밍 인터페이스인 것이다. 내가 만든 API를 내가 쓸 수 도 있고, 브라우저가 만든 API를 가져다 쓸 수도 있고, 운영체제가 만든 API를 가져다 쓸 수도 있다. 그리고 다른 개인이 만든 API도 가져다 쓸 수 있다. Public API(공공 API)를 사용한다. 예를 들어 날씨나 지도 API로 쉽게 날씨와 지도 정보를 받아볼 수도 있다.
참고
JWT(Json Web Token) 알아가기 https://brunch.co.kr/@jinyoungchoi95/1
쉽게 알아보는 서버 인증 1편 https://tansfil.tistory.com/58?category=255594
UI와 API https://youtu.be/Z4kH0IZVT-8
코딩초보들이 헷갈리는 용어 : API가 뭐냐면 https://youtu.be/ckSdPNKM2pY
'Week I Learned' 카테고리의 다른 글
[WIL] 항해99 Week4 회고 | 3-2 주특기 숙련 | 3-3 주특기 심화 | ORM, SQL vs NoSQL (0) | 2022.02.07 |
---|---|
[WIL] 항해99 Week3 회고 | 3-1 주특기 입문 | 3-2 주특기 숙련 | Restful API, package.json (0) | 2022.01.30 |
[WIL] 항해99 Week2 회고 | 02 알고리즘 기초 | 03 주특기 입문 | JavaScript의 ES란?, ES5/ES6 문법 차이 (0) | 2022.01.24 |
[항해99] 사전준비 웹개발종합반 4주차 (0) | 2021.12.25 |
[항해99] 사전준비 웹개발종합반 3주차 (0) | 2021.12.23 |