SSO SSO(Single Sign On)๋ ํ ๋ฒ์ ๋ก๊ทธ์ธ์ผ๋ก ์ฌ๋ฌ ์๋น์ค์ ์ ๊ทผํ ์ ์๋ ํตํฉ ์ธ์ฆ ๋ฐฉ์์ ๋๋ค. ์๋น์ค์ ๊ท๋ชจ๊ฐ ์ปค์ง ๋ ์ฌ๋ฌ ์๋น์ค๋ฅผ ํตํฉ ๊ด๋ฆฌํ๊ธฐ ์ํด SSO๋ฅผ ์ฌ์ฉํฉ๋๋ค. SSO๋ฅผ ๊ตฌํํ ๋ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง ํจํด์ด ์กด์ฌํ ์ ์์ต๋๋ค. 1. ์ธ์ฆ gateway ๋ฐฉ์ ๊ฐ ์๋น์ค์ ์ ๊ทผํ ๋ ์ด์ ๋ ์ด์ด์ ํตํฉ ์ธ์ฆ ์๋น์ค๊ฐ ์กด์ฌํ๋ ๋ฐฉ์์ ๋๋ค. User๋ SessionID๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ํตํฉ ์ธ์ฆ ์๋น์ค๋ฅผ ํต๊ณผํ๋ฉด ํด๋น ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค. ์ด ๋ฐฉ์์ ๋จ์ ์ ๊ฐ ์๋น์ค๋ฅผ ์ด์ฉํ ๋๋ง๋ค ์ธ์ฆ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ฉฐ ์ธ์ฆ ์๋น์ค ์์ฒด๊ฐ bottle neck์ด ๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. 2. ์ธ์ฆ ํ ํฐ ๋ฐ๊ธ ๋ฐฉ์ ์ ์ ๋ ์ฐ์ ํตํฉ ์ธ์ฆ ์๋น์ค๋ฅผ ํตํด ํ ํฐ์ด๋ผ๋ ์ธ์ฆ ๋ํ ๋งค์ฒด..
SAML ์ธ์ฆ SAML์ XML ๊ธฐ๋ฐ์ ํ์ค ๋ฐ์ดํฐ ํฌ๋งท์ ๋๋ค. ์ธ์ฆ ์ ๋ณด๋ฅผ XML ํฌ๋งท์ผ๋ก ์์ฑํ๊ณ ์ํธํํ ๊ฒ์ด Assertion์ธ๋ฐ ์ด๋ฅผ ์ด์ฉํฉ๋๋ค. User, IDP(Identity Provider), SP(Service Provider) ๊ฐ ์กด์ฌํ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ด ์ธ์ฆ์ด ์ด๋ฃจ์ด์ง๋๋ค. (๊ทธ๋ฆผ) User๊ฐ SP๋ก ์๋น์ค๋ฅผ ์์ฒญํ๋ฉด SP๋ ์ธ์ฆ๋ User์ธ์ง ์ฒดํฌํฉ๋๋ค. ์ธ์ฆ๋์ง ์์์ผ๋ฉด ์ธ์ฆ ์์ฒญ(SAMLRequest)์ ์์ฑํ์ฌ User์๊ฒ ์ ์กํฉ๋๋ค. SAMLRequest์ ์ํด User๋ IDP๋ก redirect๋๊ณ ๋ก๊ทธ์ธ์ ํตํด ์ธ์ฆ์ ์งํํฉ๋๋ค. ์ธ์ฆ์ ์ฑ๊ณตํ๋ฉด IDP๋ SAMLAssertion์ด ํฌํจ๋ SAMLResponse๋ฅผ User์ ๋ด๋ ค์ค๋๋ค. → ๊ทธ ๊ณผ์ ์์ IDP๊ฐ ์ค์ ํ Ses..
์ธ์ฆ Best Case ๊ธฐ๋ณธ flow (OpenIDC) Best Case๋ผ๊ณ ์๊ฐํ๋ ์ธ์ฆ flow(OpenIDC)๋ฅผ ๋จผ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค. ๋จผ์ , Auth Service๊ฐ ํ ์๋น์ค๊ฐ ์๋ ์์ฌ์ ์๋น์ค์ผ ๋๋ OAuth ๊ธฐ๋ฐ์ flow๊ฐ ํ์์์ด ๋ค์๊ณผ ๊ฐ์ด ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ด ๊ทธ๋ ค์ง๋๋ค. (ํ ์๋น์ค์ผ ๊ฒฝ์ฐ OAuth ๋ณด๊ธฐ) Client๊ฐ id(username)์ password๋ฅผ ์ ๋ ฅํ์ฌ ๋ก๊ทธ์ธํฉ๋๋ค. ๋ก๊ทธ์ธ ์์ฒญ์ BFF → Server → Auth Service๋ก ์ ํด์ง๋๋ค. ์ ๋ฌ๋ id์ password๋ก Auth Service์์ ์ธ์ฆํฉ๋๋ค. ์ธ์ฆ์ ์ฑ๊ณตํ๋ฉด access token, refresh token, id token ๋ฅผ Server๋ก ์ ๋ฌํฉ๋๋ค. Server๋ id token ์ d..
์ค๋์ Next JS์์ Client Data fetching ์ฌ์ฉ ์ ๋ง์ฃผํ ์ ์๋ Anchoring ์ด์์ ๋ํด ์ ๋ฆฌํ๋ ค ํฉ๋๋ค. Next JS docs์์ ๊ถ์ฅํ๊ณ ์๋ ์ฝ๋ ์คํ์ผ์ ์ ์ฉํ์ ๋ ์๊ธธ ์ ์๋ ์ด์์ด๊ธฐ ๋๋ฌธ์, ๊ด๋ จ ์ด์๊ฐ ์๊ฒผ์ ๋ ์ ๋ ๋๋ฒ๊น ์ ์๊ฐ์ ๊ฝค๋ ์ผ์ต๋๋ค. ๋จผ์ Next JS์ Data fetching์ ๋ํ ์ง์์ด ์ ๋ฌดํ ๋ถ๋ค์ ์ํด ๊ฐ๋ ๋ถํฐ ์ ๋ฆฌํ๊ณ ์ด์์ ๋ํ ํด๊ฒฐ ๊ณผ์ ์ ์ฐจ๋ก๋ก ์ ์ด๋ณด๊ฒ ์ต๋๋ค. Data fetching Next JS๋ฅผ ์ด์ฉํ Data fetching์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํด์ฃผ์ธ์! getStaticProps / getServerSideProps : Server Side์์ ๋ฏธ๋ฆฌ page h..
Sticky ์คํ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ ์คํ์ ํ์ํ ์กฐ๊ฑด์ ํ๋์ฉ ์ถ๊ฐํด๊ฐ๋ฉด์ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ง๋ฅผ ๊ณ ๋ฏผํด๋ณด์. css์ poistion: sticky; ๋ฅผ ์ด์ฉํ์. ์ฐ์ Sticky๋์ด์ผ ํ๋ Element๊ฐ ์ต์๋จ์ ์์นํด์๋ค๋ฉด ์ฝ๋ค. css๋ฅผ ์ด์ฉํ๋ฉด position: relative; ์ธ ๋ถ๋ชจ์ ์๋จ์ ํด๋น Element๊ฐ sticky๋๋ค. .sticky{ position: sticky; top: 0; } https://codepen.io/bucketressi/pen/GROoeKE Sticky-1 ... codepen.io sticky container๋ฅผ ๋ง๋ค์. ์ด๋ฒ์๋ sticky header(์ฒซ๋ฒ์งธ Sticky Element) ์๋์ sticky sub-header๊ฐ ์์นํด์ผ ํ๋ค๊ณ ์๊ฐํด๋ณด์...
Main Concepts ์ฒ์ React๋ฅผ ์์ํ ๋ ๊ฑฐ์ ์ดํด ๋ชปํ๊ณ practice ์ ๋๋ง ์ฐธ์กฐํ์ ๋ฏ ์ถ์ด์ ๋ค์ ์ฝ์ด๋ณด์๋ค. ๊ฐ๋ ์ ์ด๋ฒ์ ๋ช ํํ ํ๋ค๊ฑฐ๋ ์ฒ์ ๋ค์ด๋ณธ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด์๋๋ฐ, Main concept์์๋ ๊ฝค๋ ๋ง์๋ค. ์ด๋ฒ ๊ธฐํ๋ก ํด๋น ์ ๋ฆฌ ๊ธ์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ณด๋๋ก ํด์ผ๊ฒ ๋ค ๐ Introducing JSX React๋ ๊ธฐ์กด์ html, js ์ ๊ฐ์ด ๊ธฐ๋ฅ ๋ณ๋ก ๋ฌธ์๋ฅผ ๋๋๋ ๋ฐ์์ ํ ์ปดํฌ๋ํธ ๋จ์๋ก ๋๋๊ฒ ํจ์ผ๋ก์จ js, html(jsx), css๋ฅผ ์ปดํฌ๋ํธ ๋จ์๋ก ๋ค๋ฃฐ ์ ์๊ฒ ํ์๋ค. JSX์ ๋ด๋ถ์ ๋ณ์๋ค์ ๋ ๋ ์์ ์ ์ด๋ฏธ ๋ฌธ์์ด๋ก ๋ณ๊ฒฝ ๋๋ฏ๋ก XSS ๊ณต๊ฒฉ์ ํผํ ์ ์๋ค. Rendering Elements React๋ก ๋ง๋ค์ด์ง ์ดํ๋ฆฌ์ผ์ด์ ์ ํ๋์ root DOM ๋ ธ๋๋ฅผ ..
๊ฐ๋ฐ์ ์งํํ๋ฉด์ ์๋๋ก์ด๋ OS์์ ๋ค์ด๋ฒ ์ฑ์ ์ฌ์ฉํ ๋ (ํน์ ์๋๋ก์ด๋ ๋ฒ์ - ์๋ง๋ 11 ์ด์ ์์๋ง) flex ๋ ์ด์์์ด ๊นจ์ง๋ ์ด์๊ฐ ๋ฐ์ํ์๋ค. css๋ฅผ ๋ค๋ฐฉ๋ฉด์ผ๋ก ๊ณ ์ณ๋ณด๋ฉด์ ํด๊ฒฐํด๋ณด์๋๋ฐ, ์์ธ์ 'flex-shrink๋ฅผ ์ง์ํ์ง ์๋ ๊ฒ'์ด์๋ค. (caniuse) ๋ฐ์ํ ์น์ ๊ตฌ์ถํ ๊ฒฝ์ฐ ํด๋น ์ฌ๋ก๋ฅผ ํผํ๊ธฐ ์ํด css ์ฝ๋์ flex-shrink ์ฌ์ฉ์ ์ง์ํ๋๋ก ํ์.
Open Graph๋? ์ด๋ค ์นํ์ด์ง๋ social graph์ ์ผ๋ถ๋ถ์ด ๋ ์ ์๋๋ก ํ๋ ํ๋กํ ์ฝ์ด๋ค. Metadata og:title : url ๊ณต์ ์ ์ ๋ชฉ์ผ๋ก ๋ค์ด๊ฐ๋ ์์ญ์ด๋ค. (์นด์นด์คํก ๊ณต์ ๋ title๋ง ๊ณต์ ๋๋ค.) og:type : object์ type์ด๋ค. (ex_ video.movie, website) og:image : url ๊ณต์ ์ ๋ํ๋๋ ์ด๋ฏธ์ง์ด๋ค. og:url : graph์์ id๋ก ์ฐ์ด๋ url์ด๋ค. og:audio, og:video : audio, video ํ์ผ์ url์ด๋ค. og:description: object์ ๊ดํ ์ค๋ช ์ด๋ค.์นด์นด์คํก ๊ณต์ ์์๋ ํ์๋์ง ์๊ณ ์ฌ๋ ๊ณต์ , ๋ธ๋ก๊ทธ์์๋ description๊น์ง ํ์๋๋ค. og:site_name : ๋ฐฉ๋ํ ์น์ฌ์ด..
Comment