<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>JWT on j2234's log</title><link>https://log.j2234.cc/tags/jwt/</link><description>Recent content in JWT on j2234's log</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026</copyright><lastBuildDate>Tue, 07 Apr 2026 15:22:59 +0000</lastBuildDate><atom:link href="https://log.j2234.cc/tags/jwt/index.xml" rel="self" type="application/rss+xml"/><item><title>JWT 구조</title><link>https://log.j2234.cc/posts/velog/035-jwt-%EA%B5%AC%EC%A1%B0/</link><pubDate>Sun, 30 Jul 2023 21:34:27 +0000</pubDate><guid>https://log.j2234.cc/posts/velog/035-jwt-%EA%B5%AC%EC%A1%B0/</guid><description>&lt;p&gt;&lt;a href="JWT-%EB%B0%B0%EA%B2%BD%EC%A7%80%EC%8B%9D" &gt;이전글&lt;/a&gt;&lt;/p&gt;

&lt;h2 class="relative group"&gt;구조
 &lt;div id="구조" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ea%b5%ac%ec%a1%b0" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.&lt;/code&gt;으로 구분된 세 부분&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Header&lt;/li&gt;
&lt;li&gt;Payload (정보)&lt;/li&gt;
&lt;li&gt;Signature (서명)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 class="relative group"&gt;Header
 &lt;div id="header" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#header" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;서명 알고리즘, 토큰 유형
ex)&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;alg&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;HS256&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;typ&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;JWT&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Base64Url&lt;/strong&gt;로 인코딩됨&lt;/p&gt;

&lt;h3 class="relative group"&gt;Payload
 &lt;div id="payload" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#payload" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;클래임 (정보의 단위)&lt;/p&gt;
&lt;details&gt;
 &lt;summary&gt;종류&lt;/summary&gt;
 &lt;ul&gt;
 &lt;li&gt;등록된 클레임 (Registered Claims) : 이미 정해저 있는, JWT에 공통적으로 포함되는 클레임 &lt;strong&gt;필수❌ &lt;/strong&gt; 
 &lt;/li&gt;
 &lt;li&gt;공개 클레임 (Public Claims) : 사용저 정의 클레임 &lt;/li&gt;
 &lt;li&gt;비공개 클레임 (Private Claims) : 등록되지 않음, 두 개체가 합의해서 사용&lt;/li&gt;
 &lt;/ul&gt;
&lt;/details&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;sub&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1234567890&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;John Doe&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;해더와 같이 &lt;strong&gt;Base64Url&lt;/strong&gt;로 인코딩됨&lt;/p&gt;</description></item><item><title>JWT 배경지식</title><link>https://log.j2234.cc/posts/velog/036-jwt-%EB%B0%B0%EA%B2%BD%EC%A7%80%EC%8B%9D/</link><pubDate>Sun, 30 Jul 2023 21:33:50 +0000</pubDate><guid>https://log.j2234.cc/posts/velog/036-jwt-%EB%B0%B0%EA%B2%BD%EC%A7%80%EC%8B%9D/</guid><description>&lt;blockquote&gt;&lt;p&gt;JWT 이해에 필요한 배경지식들 정리&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 class="relative group"&gt;기존 세션 방식의 문제점
 &lt;div id="기존-세션-방식의-문제점" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%ea%b8%b0%ec%a1%b4-%ec%84%b8%ec%85%98-%eb%b0%a9%ec%8b%9d%ec%9d%98-%eb%ac%b8%ec%a0%9c%ec%a0%90" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h4 class="relative group"&gt;로드 밸런싱 (여러대의 서버가 나누어 운영)에서, 세션 처리를 어떻게 해야될지 난감
 &lt;div id="로드-밸런싱-여러대의-서버가-나누어-운영에서-세션-처리를-어떻게-해야될지-난감" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%eb%a1%9c%eb%93%9c-%eb%b0%b8%eb%9f%b0%ec%8b%b1-%ec%97%ac%eb%9f%ac%eb%8c%80%ec%9d%98-%ec%84%9c%eb%b2%84%ea%b0%80-%eb%82%98%eb%88%84%ec%96%b4-%ec%9a%b4%ec%98%81%ec%97%90%ec%84%9c-%ec%84%b8%ec%85%98-%ec%b2%98%eb%a6%ac%eb%a5%bc-%ec%96%b4%eb%96%bb%ea%b2%8c-%ed%95%b4%ec%95%bc%eb%90%a0%ec%a7%80-%eb%82%9c%ea%b0%90" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h4&gt;
&lt;p&gt;EX)&lt;/p&gt;
&lt;blockquote&gt;&lt;ol&gt;
&lt;li&gt;A,B,C라는 서버 3대가 요청을 처리중&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;&lt;ol start="2"&gt;
&lt;li&gt;사용자가 A서버에 로그인을 처리해서 세션쿠키 발급받음&lt;/li&gt;
&lt;li&gt;갑자기 A서버에 트래픽이 몰려서, B서버에서 다음 작업을 수행&lt;/li&gt;
&lt;li&gt;B서버는 사용자에 대한 세션이 없음&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;또한, 서버의 메모리를 소모하므로, 사용자가 많아지면 &amp;hellip;.&lt;/p&gt;</description></item></channel></rss>