11월 1일, 항해 99가 시작됐다.
마치 새끼 사자가 된 것 마냥 절벽에서 굴러져 초원 한 가운데 홀로 남은 듯 했다.
낯선 사람들과 5일간의 프로젝트는 그렇게 시작 됐다.
1주차 프로젝트의 조건은
1. jinja2 템플릿을 이용한 서버사이드 렌더링
2. JWT 인증 방식으로 로그인 구현하기
Werkzeug 툴킷과 Jinja2 템플릿 엔진에 기반을 둔다.
문법이 간결하며 환경을 구축하기 쉽다.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
특별한 도구나 라이브러리가 필요 없기 때문에 마이크로 프레임워크라 부른다.
플라스크는 자체에서 구현된 것처럼 애플리케이션 기능을 추가할 수 있는 확장 기능을 지원한다.
비슷한 웹 프레임워크인 django보다는 유지보수가 어렵고 규모가 있는 application을 개발하기에 어렵다.
I like simple code에서 flask로 웹 사이트를 만들 수 있는 스텝을 잘 알려주신다.
추가로 CSR과 SSR의 차이도 알게 되었다.
template와 data model을 혼합하여 새로운 document를 만드는 엔진
html코드 안에서 연산을 수행할 수 있으며 중복된 코드를 줄일 수 있다.
<!--
{{ 변수명 }}
{% 파이썬 소스코드 %}
-->
<ul id="navigation">
{% for item in navigation %}
<li><a href="{{ item.href eor">{{ item.caption }}</a></li>
{% endfor %}
</ul>
데이터를 주고 받는 일종의 창구역할을 한다.
어플리케이션을 서로 연결하여 통신을 할 수 있다.
서버에게 보내는 요청은 Create, Read, Update, Delete 4가지 성질에 따라 분류되며, 각 목적에 맞는 메소드를 선택하여 요청할 수 있다.
출처 : siner.io
Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token
JWT는 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다.
토큰을 만들기 위해서는 크게 3가지가 필요하다.
Header, Payload는 따로 암호화되지 않기 때문에 타인에게 쉽게 노출될 수 있으나, Verify Signature는 SECRET KEY를 알지 못하면 복호화할 수 없기 때문에 토큰을 조작할 수 없다.
출처 : 그랩의 블로그
다른 인증 방식인 세션/쿠키 방식은 세션 저장소에 유저의 정보를 넣는 반면, JWT는 토큰에 유저의 정보를 넣기 때문에 서버측에서 인증을 위해 암호화를 하는가 혹은 별도의 저장소를 이용하는가의 차이가 발생한다.