일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ES5
- 이진검색
- 트위터해킹
- 퀵정렬
- 주식스팸
- es6문법
- 아키네이처
- ES차이
- 공개API
- 숫자구하기
- es6
- 프로세서 속도와 심장 박동수
- 알고리즘 문제 풀이
- es3
- 자바스크립트표준
- CS스터디
- 브라우저 작동원리
- 데이터분석
- HDD와 SSD의 차이
- 1일 1로그 100일 완성 IT지식
- 컴퓨터과학
- 아마존해킹
- 네트워크해킹
- 한국디도스
- 줌서비스
- 빗썸데이터
- 컴퓨터 논리와 구조
- 비전공자개발정리
- API요청
- ECMA설명
- Today
- Total
개발일지
JWT, API 정리 + 비전공 개발 항해 시작 1주차 회고 본문
벌써 1주차가 지나갔다.. 진짜 최근 이렇게 시간이 빨리 간적이 있을까 싶다
먼저 키워드를 정리 해보고 끝에 회고를 남기겠다
1. JWT (Json Web Token)
- 인증에 필요한 정보들을 Token에 담아 암호화시켜 사용하는 하나의 인터넷 표준 인증 방식 (로그인)
- 특징은 서명된 토큰이라는 점
- 서명된 토큰은 개인 키를 보유한 서버가 이 섬여된 토큰이 정상적인 토큰인지 인증할 수 있다
1-1 구성요소
Header . Payload . Signature
- 각 요소는 ' . ' 으로 구분 된다.
- Header. : 토큰의 type이나 알고리즘 'HS262' 와 같은 알고리즘이 들어가 적용된다
- Payload : 사용자, 토큰에 대한 property를 key(3글자 "sub","iss","exp"...) - value 형태로 저장합니다.
- Signature : 가장 중요한 정보로 즉, 서버가 가지고 있는 개인키를 암호화한 상태
1 - 2 장단점
- 장점
- 이미 토큰 자체가 인증된 정보이기 때문에 세션 저장소와 같은 별도의 인증 저장소가 "필수적"으로 필요하지 않다
- 세션과는 다르게 클라이언트의 상태를 서버가 저장해 두지 않아도 됩니다.
- 트래픽에 대한 부담이 낮음
- 단점
- 비상태 애플리케이션에서 토큰은 거의 모든 요청에 대해 전송되므로 데이터 트래픽 크기에 영향을 미칠 수 있다
- 더 많은 필드가 추가되면 용량이 커진다
- 데이터베이스에서 사용자 정보 조작이 필요시 수정이 불가하다
1 - 3 진행 방식
1.사용자가 로그인을 한다.
2.서버에서는 계정정보를 읽어 사용자를 확인 후, 사용자의 고유한 ID값을 부여한 후, 기타 정보와 함께 Payload에 넣습니다.
3.JWT 토큰의 유효기간을 설정합니다.
4.암호화할 SECRET KEY를 이용해 ACCESS TOKEN을 발급합니다.
5.사용자는 Access Token을 받아 저장한 후, 인증이 필요한 요청마다 토큰을 헤더에 실어 보냅니다.
6.서버에서는 해당 토큰의 Verify Signature를 SECRET KEY로 복호화한 후, 조작 여부, 유효기간을 확인합니다.
7.검증이 완료된다면, Payload를 디코딩하여 사용자의 ID에 맞는 데이터를 가져옵니다.
이다.
쿠키에 비하여 보안성이 보장되고/ 세션에 비하여 서버에 부하를 줄 위험성이 적다.
(클라이언트에 토큰 정보를 저장시키기 때문)
결국 세션,쿠키 그리고 JWT 각 특징을 살펴 상황에 맞게 사용하되 가장 널리 쓰이고 공통적인 JWT의 특징을 다시 한번 살펴보길 바란다.
2. API ( Application Programming Interface )
- 응용 프로그램에서 사용할 수 있도록, 운영 체재나 프로그래밍 언어가
제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다
- 서버와 데이터베이스에 대한 출입구 역할을 한다 ( 비유하자면 버튼, 은행창구...)
ex) 날씨데이터 기상청API, 회사 데이터베이스, 따릉이 API를 통해 정보를 요청하고 출력이 가능하다
2 - 1 장단점
- 장점
- Front와 Back을 명확하게 분리할 수 있게되면서 개발 시간을 단축시킬 수 있다.
- 타 기업에 데이터를 제공할 경우, 특정 접근권한과 API인증키를 통해 제공할 수 있어 협업에 용이하다
- 단점
- 정보 부족 및 정확성이 낮을 수 있다
2 - 2 REST API
- REST API(REpresentational State Transfer)는 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고, 해당 리소스에 대한 행위를 HTTP Method로 정의하는 방식을 말합니다.
쉽게 말해서,
리소스(HTTP URI로 정의됨)를 어떻게 하겠다(HTTP Method + Payload)를 구조적으로 깔끔하게 표현하는 방법
+ RESTful API는 REST API 설계 가이드를 따라 API를 만드는것 입니다.
REST API 설계 가이드에 따라 API를 만들어서 웹 서비스를 제공하면 해당 웹 서비스는 RESTful하다고 합니다
1 주차 회고를 진행하겠습니다. 자리에 착석해주세요
5월9일 1일차
첫팀을 배정받고 팀원들과 인사하고 미니프로젝트를 만들고 할일을 나눈 뒤 바로 코드를 쓰려 했지만
하나도 모르겠더라. 사전강의를 2번들어 자신감이 있었는데 와서 플러스 강의를 듣고 직접 해보려니
너무 어렵다.. 자 이제 시작이야.
5월10일 2일차
플러스 강의를 듣다가 바로 코드를 짜려했지만 도저히 이해가 안가서
일단 플러스 강의를 다 들어보기로 했다.
미니 프로젝트 개인 진행사항 無
5월11일 3일차
미니프로젝트 시작. 기존 기획 - 로그인, 회원가입, 메인, 디테일을 전부 다 각자 해보기로 진행하였다.
그렇게 3일차에 처음 시작하였으나, 그 전 강의 파일이 계속 떠있어 localhost:5000에 새로운 파일이 열리지 않았다. 1시간 정도 넘게 포트 종료, 삭제 그 외 방법을 검색해보고 실행 후, 재부팅을 하니 그제서야 작동되었고 복붙만 하던 로그인, 회원가입은 놔두고 크롤링은 쉬울 것 같아 진행하였으나, 만만치 않았다.
사소한 변수, 오타는 당연 'id', DB저장등 모르는 것들을 팀원에게 물어봐 해결하였다.
이대로는 안되겠다 싶어 새벽 4시까지 코드도 보다가 파이썬 기초강의를 다시 듣고 19시간 체크인을 STOP하였다. 당장 열심히 한다해도 나아질 것 같지 않아 꾸준히 오래해야겠다
남들보다 많이 그리고 잘.
5월12일 4일차
오늘 미니프로젝트 마감날이었고 나는 메인페이지 크롤링만 완성한 채 진도가 나가지 못했고 나머지 구현은 팀원분들이 잘 해주셨다. 뭐라도 해야겠다 싶어 프로젝트 구현 녹화와 유튜브 업로드를 하기로 했고
몇번 해본 적 있어 나에게는 쉬웠다. 그때 팀원분이 이런 업로드보다 코드가 더 쉽다 하셨고 나는 업로드와 같은 녹화가 더 쉽다고 했다..ㅎㅎ 개발도 꾸준히 한다면 이런 느낌이 들까 싶어 긍정 상상을 했다.
그리고 또 늦게 웹개발 강의를 듣고 작성코드를 이해하러간다.
문제해결 키워드
- AWS과금, Venu github올리기 법 .iginore
= requirements.txt에 패키지를 올리고 pip install -requirements.txt 후 venu를 Secret_key = iginore에 숨김
5월13일 5일차
알고리즘을 시작하고 그전에 있던 미니프로젝트를 복습 하려던게 안될것 같다 하지도 못했는데...
옛날 초딩때 나머지 공부했던게 생각난다.
시간이 부족하다는 걸 되게 오랜만에 느껴본다. 그렇게 알고리즘을 시작했다. 첫 시작부터 출력과 입력도 못했고 컴퓨터 처음쓰는 사람이 된것 같아 민망했다.
그렇게 새로 배정된 조와 손 떨리는 발표가 끝나고 계속 알고리즘(프로그래머스)만 만지고 있다.
기초도 없다보니 풀이는 무슨,,, 해석 위주로 하고 있다.
일단 풀이에 앞서 알고리즘이 무엇인지 알아가는 시간이 되야겠다.
해석과 어떤 기능을 만들수 있는지 가보자!!! 소리 질러~~
5월14일 6일차
알고리즘 2일차로 풀이 해석을 오전,오후 나눠서 담당문제 뿐만 아니라 모든 문제를 다 풀이해석 해보기로 진행했고 처음 발표도 굉장히 어색했지만 오후에는 다들 적응하고 친해져서 질문도 많이하고 피드백으로서 얻는 정보가 많아져 기분이 좋고 배우는 느낌이 들었다.
아직 백지 상태에서 풀이를 하려고 하면 머리도 백지가 된다. 옴마야
오늘 저녁 발표 이후에는 조금 씩 틀이 보이는것 같고 문제를 넘어 갈수록 중복되는 코드들이 보이기 시작했다. 역시 모르는 상태에서는 기초함수, 코드도 모른채 한 문제씩 잡아 놓는것보다는 아예 백지라면 답안들을 보고 이 사람들은 어떻게 풀었고 이런 생각을 했고 이런 코드들을 왜 썼을까를 먼저 내 배경지식에 담으면 도움이 된다고 생각한다. 그리고 그렇게 하고 있는데 팀원분과 생각이 맞아 수월하게 진행할 수 있게 되었다. 오늘 이제 마지막 1주차 고생했다 인마
다음주도 가자! 잠은 주말에
일요일 약속이 있어 아침에 일어나니 WIL 제출이 일요일 자정인걸 보고 경악을 금치 못했다.
집에 늦을거 같아 아침에 일어나 써본다!. 키워드 정리가 부족하다, 한번 써 봤으니 시간을 더 내보자!
'WIL' 카테고리의 다른 글
첫 협업을 진행하며 느낀 아쉬운 점, 뿌듯한 점 "todo" + 6주차 회고 (0) | 2022.06.15 |
---|---|
프론트엔드의 axios란?? 쉽게 알아보아요 + 5주차 회고 (0) | 2022.06.09 |
라이프사이클 클래스형 vs 함수형 + 리액트 훅 그리고 4주차 회고 (0) | 2022.05.31 |
DOM과 서버리스를 간단하게 알아보자 + 3주차 회고 (0) | 2022.05.25 |
JavaScript의 ES란? , ES5/ES6 문법 차이 + 2주차 개발 회고 (0) | 2022.05.22 |