이번주 WIL키워드
application programming interface의 약자로
애플리케이션에서 데이터를 읽거나 쓸 때 사용하는 접 점을 말한다
쉽게 풀어서 생각하면 키보드 같은 것 이다
나: 내가 이 버튼을 누를테니까 이 글자를 출력해 주겠니?
키보드(눌림)
컴퓨터: 응 니가 그버튼 누른거 확인했어 출력해 줄게
이때 나와 컴퓨터 간의 인터페이스가 키보드인 것처럼
컴퓨터나 프로그램 사이의 연결 버튼? 뭐 그런 느낌이라고 이해하면 된다
데이터서버 <----- 인터페이스(API) -----> 프로그램
여기에는 크게
private api : 프라이빗 API : 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행함
public api : 공공 API : 개방형 API로, 모두에게 공개됨
Partner api : 파트너 API : 데이터 공유에 동의하는 특정인들만 사용할 수 있음
사용자를 인증하고 식별하기 위한 토큰기반의 인증이다
기존 인증 시스템에서는 서버측에서 유저의 정보를 기억하고 있어야 했고 세션(로그인된 상태)을
유지 하기위해 메모리/디스크/데이터베이스 시스템에 담아 관리했었다 그 관리로 많은 자원가 비용이 발생했다
JWT는 서버 쪽이 아닌 클라이언트에 저장되어 사용자가 서버에 요청을 할 때 마다 해당 토큰을
포함하여 전달하고 서버는 요청을 받았을때 로그인이 되었는지를 확인할 필요 없이 이 토큰이 유효하고
인증됐는지만 검증하여 작업을 처리하면 된다.
JWT를 사용했을때 일반적인 처리 순서는
1. 클라이언트가 로그인 정보로 본인을 인증한다
2. 서버에서 헤더 base64 + 페이로드 base64 + SECRET_KEY의 형태로 클라이언트에게 발행해준다
3. 클라이언트가 서버에게 어떤 작업을 요할때 토큰을 같이 첨부해 요청한다
4. 서버는 이 토큰이 찐인지 아직 사용할 수 있는지 확인한다
5. 찐이고 사용기간이 남았다면 작업을 실행한다
JWT의 단점은 해당 토큰을 발행한 후 그 토큰이 어떤식으로든 가로챔을 당했을 때
그토큰의 사용기간이 만료될때까지 토큰을 뺏거나 삭제할 수 없다 그렇기 때문에 토큰내에 중요한 정보를
넣어서는 안된다.
1주차 느낀점
일할때도 지금과 같은 양에 시간을 업무에 투자했었다 지금은 온전히 스스로 디벨럽을 위해 내시간을 사용하고 있어서 너무 행복하다
지금 스스로에게 불만은 하루를 너무 달려서 금새 지쳐버리는점이 너무 아쉽다 일주일은 7일인데 3일을 미친듯 달리고 4일을 지쳐있다 하루의 시간분배를 잘하면 좀 더 영양있는 스터디를 할 수 있을것 같은데 아직 방법을 잘 모르겠다.
이번주는 어떤 디테일한 내용을 배웠다기 보다 구글이 짱이라는걸 배웠다 어지간한건 똑똑이들이 이미 어딘가에 올려놓고 구글이 그걸 배포해주고 있으니 혼자해서 안되면 포기하지말고 그냥 넘기지 말고 구글링해보는 습관을 들이자 누가 알려준다고 내 머리에 남아있지는 않다 내가 노가다를 뛰어야 결국 내것이 되는것이니 안알려준다고 답답해 하지말자 일단 다가온 다음주도 파이팅하는걸로 ..!