0517 - 0523
# 0517 - 0523
# 0518 - JWT(Json Web Token)
Json ํฌ๋งท์ ์ด์ฉํ์ฌ ์ฌ์ฉ์์ ๋ํ ์์ฑ์ ์ ์ฅํ๋ Claim ๊ธฐ๋ฐ์ Web Token์ด๋ค.
ํ ํฐ ์์ฒด๋ฅผ ์ ๋ณด๋ก ์ฌ์ฉํ๋ Self-Contained ๋ฐฉ์
ํ ํฐ ๊ธฐ๋ฐ์ ์ธ์ฆ์์คํ ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
# ๊ตฌ์กฐ
HEADER.PAYLOAD.SIGNATURE
ํค๋(Header), ํ์ด๋ก๋(Payload), ์๋ช (Signature) ์ธ๋ถ๋ถ์ ์ ์ผ๋ก ๊ตฌ๋ถํ๋ ๊ตฌ์กฐ
Header : typ๊ณผ alg ์ ๋ณด๋ก ๊ตฌ์ฑ. Signature๋ฅผ ํด์ฑํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ ์ง์
- typ : ํ ํฐ์ ํ์ ์ ์ง์ ex) JWT
- alg : ์๊ณ ๋ฆฌ์ฆ ๋ฐฉ์์ ์ง์ ํ๋ฉฐ, ์๋ช (Signature) ๋ฐ ํ ํฐ ๊ฒ์ฆ์ ์ฌ์ฉ ex) HS256(SHA256) ๋๋ RSA
PAYLOAD : ํ ํฐ์์ ์ฌ์ฉํ ์ ๋ณด์ ์กฐ๊ฐ๋ค์ธ ํด๋ ์(Claim)์ ๋ด๋๋ค. ํด๋ ์์ ์ด 3๊ฐ์ง๋ก ๋๋์ด์ง๋ฉฐ, Json(Key/Value) ํํ
๋ฑ๋ก๋ ํด๋ ์(Registered Claim)
ํ ํฐ ์ ๋ณด๋ฅผ ํํํ๊ธฐ ์ํด ์ด๋ฏธ ์ ํด์ง ์ข ๋ฅ์ ๋ฐ์ดํฐ
- iss: ํ ํฐ ๋ฐ๊ธ์(issuer)
- sub: ํ ํฐ ์ ๋ชฉ(subject)
- aud: ํ ํฐ ๋์์(audience)
- exp: ํ ํฐ ๋ง๋ฃ ์๊ฐ(expiration), NumericDate ํ์์ผ๋ก ๋์ด ์์ด์ผ ํจ ex) 1480849147370
- nbf: ํ ํฐ ํ์ฑ ๋ ์ง(not before), ์ด ๋ ์ด ์ง๋๊ธฐ ์ ์ ํ ํฐ์ ํ์ฑํ๋์ง ์์
- iat: ํ ํฐ ๋ฐ๊ธ ์๊ฐ(issued at), ํ ํฐ ๋ฐ๊ธ ์ดํ์ ๊ฒฝ๊ณผ ์๊ฐ์ ์ ์ ์์
- jti: JWT ํ ํฐ ์๋ณ์(JWT ID), ์ค๋ณต ๋ฐฉ์ง๋ฅผ ์ํด ์ฌ์ฉํ๋ฉฐ, ์ผํ์ฉ ํ ํฐ(Access Token) ๋ฑ์ ์ฌ์ฉ
๊ณต๊ฐ ํด๋ ์(Public Claim)
์ฌ์ฉ์ ์ ์ ํด๋ ์์ผ๋ก, ๊ณต๊ฐ์ฉ ์ ๋ณด๋ฅผ ์ํด์ฌ์ฉ ์ถฉ๋๋ฐ์ง๋ฅผ ์ํด URI ํฌ๋งท
{ "https://mangkyu.tistory.com": true }
๋น๊ณต๊ฐ ํด๋ ์(Private Claim)
์ฌ์ฉ์ ์ ์ ํด๋ ์์ผ๋ก, ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ์์๋ก ์ง์ ํ ์ ๋ณด๋ฅผ ์ ์ฅ
{ "token_type": access }
Signature(์๋ช ) : ํ ํฐ์ ์ธ์ฝ๋ฉํ๊ฑฐ๋ ์ ํจ์ฑ ๊ฒ์ฆ์ ํ ๋ ์ฌ์ฉํ๋ ๊ณ ์ ํ ์ํธํ ์ฝ๋. ํค๋์ ํ์ด๋ก๋์ ๊ฐ์ ๊ฐ๊ฐ base64๋ก ์ธ์ฝ๋ฉํ๊ณ , ์ธ์ฝ๋ฉํ ๊ฐ์ ๋น๋ฐ ํค๋ฅผ ์ด์ฉํด ํค๋์์ ์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํด์ฑ์ ํ๊ณ , ์ด ๊ฐ์ ๋ค์ base64๋ก ์ธ์ฝ๋ฉํ์ฌ ์์ฑํ๋ค.
# ํ ํฐ HTTP ํต์
์์ฑ๋ ํ ํฐ์ HTTP ํต์ ์ ํ ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ๋๋ค.
{
"Authorization": "Bearer {์์ฑ๋ ํ ํฐ ๊ฐ}",
}
# JWT ๋จ์ ๋ฐ ๊ณ ๋ ค์ฌํญ
- Self-contained: ํ ํฐ ์์ฒด์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ผ๋ฏ๋ก ์๋ ์ ๊ฒ์ด ๋ ์ ์๋ค.
- ํ ํฐ ๊ธธ์ด: ํ ํฐ์ ํ์ด๋ก๋(Payload)์ 3์ข ๋ฅ์ ํด๋ ์์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์, ์ ๋ณด๊ฐ ๋ง์์ง์๋ก ํ ํฐ์ ๊ธธ์ด๊ฐ ๋์ด๋ ๋คํธ์ํฌ์ ๋ถํ๋ฅผ ์ค ์ ์๋ค.
- Payload ์ธ์ฝ๋ฉ: ํ์ด๋ก๋(Payload) ์์ฒด๋ ์ํธํ ๋ ๊ฒ์ด ์๋๋ผ, BASE64๋ก ์ธ์ฝ๋ฉ ๋ ๊ฒ์ด๋ค. ์ค๊ฐ์ Payload๋ฅผ ํ์ทจํ์ฌ ๋์ฝ๋ฉํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์์ผ๋ฏ๋ก, JWE๋ก ์ํธํํ๊ฑฐ๋ Payload์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ง ์์์ผ ํ๋ค.
- Stateless: JWT๋ ์ํ๋ฅผ ์ ์ฅํ์ง ์๊ธฐ ๋๋ฌธ์ ํ๋ฒ ๋ง๋ค์ด์ง๋ฉด ์ ์ด๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. ์ฆ, ํ ํฐ์ ์์๋ก ์ญ์ ํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ํ ํฐ ๋ง๋ฃ ์๊ฐ์ ๊ผญ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค.
- Tore Token: ํ ํฐ์ ํด๋ผ์ด์ธํธ ์ธก์์ ๊ด๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์, ํ ํฐ์ ์ ์ฅํด์ผ ํ๋ค.
# 0519 - ์คํธ๋ ์ค ํ ์คํธ ํด Artillery ์ฌ์ฉ
# ์คํธ๋ ์ค ํ ์คํธ ํด๋ก ์ฑ๋ฅ ์ธก์ ํ๊ธฐ
- ์ค์น
npm install -g artillery@๋ฒ์
- ์ค์ yaml ์์ฑ
config:
target: "http://34.64.171.115"
phases:
- duration: 60
arrivalRate: 1
name: Warm up
scenarios:
- name: "just get hash"
flow:
- get:
url: "/hash/123"
This code describes a load phase which lasts 300 seconds (or 5 minutes), where 10 new virtual users will be created every second.
- ์คํ
artillery run --output report.json ./cpu-test.yaml
- json to html
artillery report ./report.json
# doc
https://artillery.io/docs/guides/overview/welcome.html
# 0521 - ๋น๋ ๊ด๋ฆฌ ๋๊ตฌ ๋น๊ต
# ๋น๋ ๊ด๋ฆฌ ๋๊ตฌ๋?
๋น๋ ๋๊ตฌ๋ ๋น๋ ์๋ํ๋ฅผ ์์ผ์ฃผ๋ ์คํ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ
๋น๋ ์๋ํ๋ ์คํ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด์ฃผ๋ ๊ณผ์ ์ผ๋ก์จ ์ฝ๋๋ฅผ ์ปดํ์ผํด์ binary code๋ก ๋ง๋ค๊ณ ํจํค์งํ๋ฉฐ ์ฝ๋๋ฅผ ํ ์คํธํ๊ณ ์คํ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ด ๋์ค๊ธฐ ๊น์ง์ ๊ณผ์
# Maven
- ๋น๋ ์ค์ธ ํ๋ก์ ํธ, ๋น๋ ์์, ๋ค์ํ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ข ์์ฑ ๊ด๊ณ๋ฅผ pom.xmlํ์ผ์ ๋ช ์
# Gradle
- Groovy ์ธ์ด๋ฅผ ์ฌ์ฉํ Domain-specific-language๋ฅผ ์ฌ์ฉ
# ์ฐจ์ด์
- Gradle์ ์์ ์์กด์ฑ ๊ทธ๋ํ๋ฅผ ๊ธฐ๋ฐ, Maven์ ๊ณ ์ ์ ์ด๊ณ ์ ํ์ ์ธ ๋จ๊ณ์ ๋ชจ๋ธ์ ๊ธฐ๋ฐ
- Gradle์ ์
๋ฐ์ดํธ ์ฌ๋ถ๋ฅผ ์ฒดํฌ incremental build๋ฅผ ํ์ฉ
=> ๋น๋ ์๊ฐ ๋จ์ถ - ๋ฉํฐ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ maven์ ํน์ ์ค์ ์ ๋ค๋ฅธ ๋ชจ๋์์ ์ฌ์ฉํ๋ ค๋ฉด ์์ ๋ฐ์์ผ ํ์ง๋ง, gradle์ ์ค์ ์ฃผ์ ๋ฐฉ์์ ์ ๊ณต
- gradle์ concurrent์ ์์ ํ ์บ์๋ฅผ ํ์ฉ
=> 2๊ฐ ์ด์์ ํ๋ก์ ํธ์์ ๋์ผํ ์บ์๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์๋ก overwirte๋์ง ์๋๋ก checksum ๊ธฐ๋ฐ์ ์บ์๋ฅผ ์ฌ์ฉํ๊ณ , ์บ์๋ฅผ repository์ ๋๊ธฐํ ๊ฐ๋ฅ
# 0523 - M1, RC, GA
# ์คํ๋ง์ ๋ฆด๋ฆฌ์ฆ ๋ฒ์ ์ RC, GA, M1(2,3)
# M1(Milestone 1)
- ํ๋ฆฌ ์ํ ๋จ๊ณ์ ์๋ ํ ์ค๋ฅ. ํน์ ํ ์งํฉ์ ๊ธฐ๋ฅ์ด ํฌํจ๋๋ฉฐ ๊ธฐ๋ฅ์ด ์์ฑ๋์๋ง์ ๊ณต๊ฐ
# RC(Release Candidate)
- ๋ง์ง๋ง ์ ํ์ด ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ฒ ํ ๋ฒ์ ์ผ๋ก, ์๋นํ ๋ฒ๊ทธ๊ฐ ๋ํ๋์ง ์์ผ๋ฉด ์ถ์ํ ์ค๋น๊ฐ ๋์์์ ์๋ฏธ
# GA(General Availability)
- ํ์ํ ๋ชจ๋ ์์ ํ ํ๋์ด ์๋ฃ๋์ด ์น์ด๋ ๋ฌผ๋ฆฌ ๋งค์ฒด๋ฅผ ํตํด ์์ฅ์์ ์ด์ฉํ ์ ์๊ฒ ๋จ์ ์๋ฏธ