<이노베이션 캠프 첫째 주.>
Git으로 할 수 있는 일 :
1.버전관리.
2. 작업 단위 나누기.
3. 협업해서 하나의 프로젝트를 만드는데 유용하다.➡ 한마디로 작업 히스토리를 볼 수 있다. 따라서 에러 수정도 쉽다.
commit(커밋) : 현재 프로젝트 상태 저장.( 누가, 언제, 현재 프로젝트 파일 내용) + 이전 프로젝트 상태와 현재 프로젝트 상대의 차이를 자동으로 알려줌. (빨간색: 삭제 내용, 초록색: 추가된 내용.)
Github : Git의 원격 저장소 + Git으로 할 수 있는 커뮤니티 기능 서비스.
sourcetree : Git 도구.
PR : pull request(PR). (Git Hub 용어)
➡branch를 만들어 pull했을 때, 바로 합쳐지지 않고 PR을 보낸다.
➡PR이 승인 되어야 defalt branch에 변경된 git이 업데이트 된다.[새로운 branch생성 -> 변경된 파일 commit -> git push origin{branch} -> local에서 만든 branch이름 입력 (remote에서도 같은 이름의 branch 생성됨.) => Git Hub에 PR도착! => PR accept => master에 merge하기.]
.env : 환경변수 파일.
패키지 설치(3가지) :
flask, pymongo, pyJWT
[directory -> 'static, templates' 생성.]templates :'jinja2' templates 엔진 사용.
['설정' -> 'template language'( 찾기 너무 어려웠네...
'언어 및 프레임 워크'->'템플릿 언어'에서 변경!!)를 'jinja2'로 변경.]
Bootstrap과 다른점 : 순수 css프레임 워크. 커스터 마이징이 쉬움.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Bulma 쓰는 법 연습하기</title> <!-- Bulma CSS 링크 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.min.css"> </head> <body> </body> </html>
서버에 접속할 때, 필요한 입장권 같은 존재.
'부여 받은 KEY를 어디에 저장할 것인가?'
-Token : '클라이언트'에서 관리.
➡'쿠키' or 'localstorage'에 저장.ex) JWT
클라이언트가 token을 가지고 있다가 서버에 요청을 할 때 이 토큰을 넘겨준다.-Session : '서버'에서 관리.
서버와 클라이언트 간 정보를 주고 받을 때, Http 리퀘스트 헤더에 JSON 토큰을 넣은 후, 서버는 별도의 인증 과정없이 헤더에 포함되어 있는 JWT 정보를 통해 인증한다.
JWT는 세 파트로 나누어지며, 각 파트는 점으로 구분하여 "xxxxx.yyyyy.zzzzz" 이런식으로 표현한다.
'헤더 (Header), 페이로드 (Payload), 서명 (Sinature)'으로 구성.
- Header는 토큰의 타입과 해시 암호화 알고리즘으로 구성.
첫째는 토큰의 유형 (JWT)을 나타내고, 두 번째는 HMAC, SHA256 또는 RSA와 같은 해시 알고리즘을 나타냄.- Payload는 토큰에 담을 클레임(claim) 정보를 포함.
Payload 에 담는 정보의 한 ‘조각’ 을 클레임이라고 부르고, 이는 name / value 의 한 쌍으로 이뤄짐. 토큰에는 여러개의 클레임 들을 넣을 수 있음.
클레임의 정보는 '등록된 (registered) 클레임, 공개 (public) 클레임, 비공개 (private) 클레임'으로 세 종류가 있다.- Signature는 secret key를 포함하여 암호화되어 있다.
출처 : https://i1.wp.com/www.opennaru.com/wp-content/uploads/2018/08/jwt_process_image_v2.png?zoom=1.25&fit=1920%2C1080
API란 무엇인가?
: Application Programming Interface.
서버와 데이터베이스에 대한 출입구 역할.
(쉽게 말해 은행의 창구. 허용된 사람들에게만 접근성을 부여해준다.)