JWT Cache Cost Preview KO - teamswyg/laya-tools GitHub Wiki
JWT ์บ์ ๋น์ฉ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
์์ ํํธ ๋ชจ๋ธ์ด ์ค์ ๋ก ๋์์ด ๋๋์ง ํ๋จํ๊ธฐ ์ ์, ๊ฐ์ ์ผ์ ๋ฐ๋ณตํ๋ ๋น์ฉ๋ถํฐ ํ์ธํ์ต๋๋ค. ์ด๋ฒ ๋ณ๋ Go ์คํ์์๋ ์๋ช ํ์ธ๊ณผ ํ ํฐ ํด์์ ์์ ํ๊ฒ ์ฌ์ฌ์ฉํ๋ฉด ๊ณ ์ ์์ ๊ฒ์์ด ๋นจ๋ผ์ก์ต๋๋ค. ๋ชจ๋ธยท์ ํ์ตยทGPUยท์ ๋ฃ ํธ์ถ์ 0ํ์ ๋๋ค.
ํ์ธํ ๊ฒ
์๋ ํ์ 160๊ฐ๋ฅผ ๋์์ผ๋ก ๋งค๋ฒ ํ์ฑํ๋ ๊ฒฝ๋ก์ ์บ์ ๊ฒฝ๋ก๋ฅผ ๋น๊ตํ์ต๋๋ค. 160์ ๋ชจ๋ ์๋ฝ ์ฌ๋ถ, ์ค๋ฅ ์ข ๋ฅ, claims ์ง๋ฌธ์ด ์๋ก ๊ฐ๊ณ ์ด์ ์๋ณธ ๊ฒฐ๊ณผ์๋ ๊ฐ์์ต๋๋ค. ์ด์ด ๊ฐ์ ์์ฒญ 4๊ฐ์ ๋ค ๋์กฐ๊ตฐ์ ์ ์ฉํด 3ํ ๋ฐ๋ณตํ๊ณ , 48๊ฐ ํ์์ด ๋ชจ๋ ์๋ฃ๋์ต๋๋ค.
| ๋์กฐ๊ตฐ | ์์ฒญ 4๊ฐ ร 3ํ ํฉ๊ณ |
|---|---|
| ๊ณ ์ ์์ค ์์, ์บ์ ์์ | 5.141583 ms |
| ๊ณ ์ ์์ค ์์, ์บ์ ์์ | 2.711623 ms |
| ๋ฏธ๋ฆฌ ์ ํ ํ๋ณด ์ฐ์ , ์บ์ ์์ | 2.428458 ms |
| ๋ฏธ๋ฆฌ ์ ํ ํ๋ณด ์ฐ์ , ์บ์ ์์ | 2.593877 ms |
๊ณ ์ ์์์ ํฉ๊ณ๋ ์บ์๋ก ์ฝ 1.90๋ฐฐ ๋นจ๋์ต๋๋ค. ์ฒซ ํ๋ณด๊ฐ ๋ง๋ ๋์กฐ๊ตฐ์์๋ ์บ์๊ฐ ์ฝ 6.8% ๋๋ ธ์ต๋๋ค. ๋ฏธ๋ฆฌ ์ ํ ์ฒซ ํ๋ณด [4, 5, 2, 0]์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ธฐ ์ ์ ์์ฒญ ๊ณ์ฝ์์ ์ ํ ๊ฐ์ด๋ฉฐ ๋ชจ๋ธ์ ์์ธก ์ฑ๋ฅ์ด ์๋๋๋ค.
์บ์๊ฐ ํ๋ ์ผ
์ต๋ 5์นธ ๋ฐฐ์ด์ ์์ฒญยท๋์กฐ๊ตฐยท๋ฐ๋ณต๋ง๋ค ๋น์๋๋ค. ํ ํฐ ์ ์ฒดยท๊ณต๊ฐ ํคยท์๋ช
๋ฐฉ์ยท๋์ฝ๋ยท์์ค๊ฐ ๋ชจ๋ ๊ฐ์ ๊ฒฝ์ฐ์๋ง ์ธ์ฆ๋ claims๋ฅผ ์ฌ์ฌ์ฉํฉ๋๋ค. audience ๋ฐฐ์ด๊ณผ ์๊ฐ ๊ฐ์ฒด๋ ๊น๊ฒ ๋ณต์ฌํ๊ณ , ํ๋ณด๋ง๋ค ์ ์ ์ฑ
๊ฒ์ฌ๋ฅผ ํฉ๋๋ค. ์ต์ข
Token.Valid๋ ์ ์ฑ
๊ฒฐ๊ณผ๋ฅผ ์บ์ํ์ง ์์ต๋๋ค. ์์ ๋ฐ ์ค๋ฅยท๋ณํยท๊ธฐํ ์ด๊ณผ๋ ๋ฏธํ์ธ์ผ๋ก ๋จ๊ธฐ๊ณ ํ์์ ์ค๋จํฉ๋๋ค.
๊ณ ์ ์์์์๋ ์์ฒญ 4๊ฐ๋น ํ์ฑ 43ํ๋ฅผ ์ธ์ฆ ํ์ฑ 20ํ์ ์ ์ฑ ๊ฒ์ฌ 43ํ๋ก ๋ฐ๊ฟจ์ต๋๋ค. ์ฒซ ํ๋ณด๊ฐ ๋ง์ผ๋ฉด ํ์ฑ์ ์ฌ์ ํ 20ํ์ด๋ฉฐ ์บ์ ์ ์ค์ 0ํ๋ผ ์ถ๊ฐ ๋น์ฉ๋ง ์๊น๋๋ค.
ํด์์ ๋ฒ์
3ํ ๋ชจ๋ ๊ฐ์ ํ๋ก์ธ์ค์์ 160์ ๋น๊ต ๋ค ์คํํ ์ค๋น ์ํ ๋ฐ๋ณต์
๋๋ค. ๋
๋ฆฝ์ ์ธ ์ ์์
48๊ฐ๊ฐ ์๋๋๋ค. JWT ์ ์ฒด ๊ณ๋ณด์ ์ด๋ฏธ ๋
ธ์ถ๋ development_validation ์์ฒญ 4๊ฐ์ด๋ฉฐ, 2,400๊ฐ ํ๊ฐ๋ ์ ํ์ต ์๋ฃ ํธ์
์ผ๋ก ์ธ์ง ์์ต๋๋ค.
ํ๋ก์ธ์ค ์ ์ฒด ์ต๋ RSS๋ 14,532,608 B, ์ฝ 13.86 MiB์
๋๋ค. ๋ชจ๋๋ณยท๋ชจ๋ธ๋ณ ๋ฉ๋ชจ๋ฆฌ๋ ์ธก์ ํ์ง ์์์ต๋๋ค. ์ ์ฒด CPU๋ user 29.161 ms + system 8.955 ms, main์ 23.256416 ms์์ต๋๋ค. ์์ ์์๋ถํฐ ์
์ถ๋ ฅยท๋๊ธฐ ์ ๋ฆฌ๊น์ง๋ 608.614250 ms๋ก, ์์ ์์ ๋น์ฉ์ด๋ ๋ค๋ฅธ ํ๊ฒฝ์ ์ ์ฉํ ์์๊ฐ ์๋๋๋ค. main์ import ์ด๊ธฐํ์ ์ถ๋ ฅ ์ง๋ ฌํยท์ฐ๊ธฐ๋ฅผ ์ ์ธํฉ๋๋ค.
์บ์ ๋ค ์์ ๋ณ๊ฒฝ์ ์ด๋์ ๋ฐ๋ณต๋ง๋ค ๋ฌ๋๊ณ ํ ๋ฒ์ ๋๋ ธ์ต๋๋ค. ํน์ง ์ถ์ถ๊ณผ ์ถ๋ก ๊น์ง ๊ฐ๋นํ ๋ชจ๋ธ ์์ฐ์ด๋ Codex ์ ๊ฐ์ ์์ง ์ ์ฆํ์ง ๋ชปํ์ต๋๋ค. ๋ค์์๋ ๊ฐ์ ๊ฒ์ฌ ์กฐ๊ฑด์์ BM25ยทJaccard ๊ฐ์ ์ ๋ ดํ ๋นํ์ต ๊ฒ์์ ๋จผ์ ๋น๊ตํฉ๋๋ค.
์ง์ ํ์ธํ๊ธฐ
Go๋ฅผ ์ค๋นํ ๋ค ์ ์ฅ์ ๋ฃจํธ์์ ์ ์ฅ๋ ์ฆ๊ฑฐ๋ฅผ ํ์ธํฉ๋๋ค. ์๋ณธ JWT APIยท๋ชจ๋ธยทํ์ต์ ๋ค์ ์คํํ์ง ์์ต๋๋ค.
go run ./experiments/short-claim/next-cohort-jwt-audit/cost-replay
๊ณ ์ ์์ค์ ์์ธ ์ฌ์ฉ๋ฒ์๋ ๋ณ๋์ ์ ๋ค์ดํฐ๋ธ ์คํ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค. ์ ์คํ์ ์ ์ฅ ๊ฒฐ๊ณผ ์ฌ์๊ณผ ๊ตฌ๋ถํฉ๋๋ค. ์์ฒด ์ฝ๋ยท๊ฐ์ ์ ๋ ฅ์ Apache-2.0, ๋ณต์ฌํ JWT ์ฝ๋๋ MIT์ด๋ฉฐ ์ ๊ณ ์ง๋ฅผ ๋ณด์กดํ์ต๋๋ค. SDK ๊ณ ์ง๋ฅผ ํจ๊ป ์ฝ์ด ์ฃผ์ธ์.
๊ฒ์ ๊ทผ๊ฑฐ๋ ํ์ธ ํ ์ฐ๊ฒฐํฉ๋๋ค: PR ยท CI ยท Hugging Face.