์ด๋ฒ ์ฑํฐ์์๋ ๊ฐ์ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ ์๋น์ค์์ ํ์๋ก ํ๋ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ๋ฆฌ์คํ ํด๋ณด๊ณ , ๋ช๋ช์ ๊ธฐ๋ฅ์ด ์ด๋ป๊ฒ ๊ตฌํ๋๋์ง ์ ์ด๋ ค์ด ์ง ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. Major ๊ธฐ๋ฅ ์๋์ฐ ์คํฌ๋กค์ ๋ฆฌ์คํธ ์คํฌ๋กค์ ์ ์ฉ ํ์ด์ง ์ฌ๋ฐฉ๋ฌธ ์ ์คํฌ๋กค ์์น ์ ์ง ๐ฅ ์์ดํ ์ ๋์ด๊ฐ ์๋์ผ๋ก ์กฐ์ ํ๋ฉด์ ๋ณด์ด๋ ์์ดํ ๋ง ๋ ๋๋ง ์ด์ ์๋ฅผ ๋ฐ์ํ ์ผ๋ก ์กฐ์ ์๋ฐฉํฅ ๋ฌดํ ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ๊ณผ ์ฐ๊ฒฐ ๐ฅ ๊ตฌํํ๊ธฐ ๊น๋ค๋ก์ด ๋ถ๋ถ์ด ์๋ ๊ธฐ๋ฅ์ ๐ฅ ๋ก ํ์ํ์ต๋๋ค. ์๋์ฐ ์คํฌ๋กค์ ๋ฆฌ์คํธ ์คํฌ๋กค์ ์ ์ฉ ์๋์ ์์์ ๋ณด๋ฉด ์ํฉ์ ๋ํ ์ดํด๊ฐ ์ฝ์ต๋๋ค. ๋ฆฌ์คํธ ๋ด๋ถ ์คํฌ๋กค์ ๊ฒฝ์ฐ list-container ๋ผ๋ div์ height๊ฐ ์ ํด์ ธ์๊ณ overflow-y๊ฐ scroll์ ๋๋ค. ์ฆ, ํ์ด์ง์ ๊ตฌ์ฑ์ด (ํค๋, ๋ฆฌ์คํธ, ํธํฐ)๋ก..
Virtualized List ๋? Virtualized List(๊ฐ์๋ฆฌ์คํธ)๋ ๋์ด๋ ๋ฆฌ์คํธ์ ์์ดํ ์ค ํ๋ฉด์ ๋ณด์ฌ์ง๋ ์์ดํ ๋ง ๋ ๋๋งํ๋ ๋ฆฌ์คํธ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ ์ ๊ฐ ์คํฌ๋กค์ ๋ด๋ ค ๋ณด์ด๋ ์์ดํ ์ ๋ฒ์๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ค์ ๋ณ๊ฒฝ๋ ์์ดํ ๋ง์ ๋ ๋๋ง ํ๋๋ก ๊ตฌํ๋ฉ๋๋ค. ์ฌ์ค ํ๋ฉด์ ๋ฒ์ด๋ ๊ณณ์ ์์ดํ ๋ค์ ํ๋ฉด ์์ ๋ ๋๋ง ๋์ด์์ง ์๊ธฐ ๋๋ฌธ์ ํ์ฌ ์์ ์๋ ์๋ ์์ดํ ์ผ๋ก ์๊ฐํ ์ ์์ง๋ง, ์ ์ ์ ์คํฌ๋กค ์์น์ ๋ฐ๋ผ ํ๋ฉด ์์ ๋ ธ์ถ๋ ์ ์์ผ๋ฏ๋ก ์์ ๊ทธ๋ฆผ์ฒ๋ผ ๊ฐ์์ผ๋ก ๋ฆฌ์คํธ๊ฐ ์ฐจ๋ก๋ก ๊ตฌ์ฑ๋์ด ์๋ค๊ณ ์๊ฐํ๊ฒ ๋ฉ๋๋ค. ์์ดํ ์ ๋ชจ๋ ๋ ๋๋งํ๋ ๊ธฐ๋ณธ List์ ๋น๊ตํ์ ๋, ํ์ํ ์์ดํ ๋ง์ ๋ ๋๋งํ๋ฉด ๋๋ฏ๋ก ๋ ๋๋ง ๋น์ฉ์ด ๊ฐ์ํฉ๋๋ค. ์ด๋ ๊ฒ ๋ ๋๋ง ๋น์ฉ์ ๊ฐ์์ํค๋ ๊ธฐ์ ๋ก๋ ํ์ด์ง ๋ณ๋ก n๊ฐ์ ์์ดํ ๋ง..
๐ ํด๋น ๊ธ์ ๋ฐ์ด์์ปดํผ๋์์ ์งํํ๋ ์ ๋ก๋ฒ ์ด์ค ํ๋ก ํธ์๋ ์ค์ฟจ์ ๊ฐ์ ์ค ํ๋์ธ JS ๊ธฐ์ด ๊ฐ์๋ฅผ ์ ์ํ ํ๊ธฐ๋ฅผ ๋ด์ ๊ธ์ ๋๋ค :) ๐ ์ ๋ก๋ฒ ์ด์ค ํ๋ก ํธ์๋ ์ค์ฟจ์ ๊ฐ์๋ฅผ ๋ง๋ณด๊ณ ์ถ์ผ์ ๋ถ๋ค์ ํด๋น ๋งํฌ์์ ๋ง๋ณด๊ธฐ ๊ฐ์๋ฅผ ๋ค์ผ์ค ์ ์์ต๋๋ค. โ๏ธ ์ฒซ ์ฐ๋ฝ ๋ฐ์ด์์ปดํผ๋์์ ๋งํฌ๋์ธ์ผ๋ก ์ฒซ ์ฐ๋ฝ์ ์ฃผ์๊ณ ๊ฝค ๊ณ ๋ฏผ์ ๋ง์ด ํ๋๋ฌ๋ค. ์ฒ์ ํ๋ ๊ต์ก์ด๊ธฐ๋ ํ๊ณ ์ค์ค๋ก ์์ง ์ค๋ ฅ์ด ๋ถ์กฑํ๋ค๊ณ ์๊ฐํ๋๋ฐ, ์ฒ์ ๊ณต๋ถ๋ฅผ ์์ํ๋ ์ ๋ก๋ฒ ์ด์ค ํ์ต์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ต์ก์ด๋ผ๊ณ ํ์๊ธธ๋ ์์ ๊ฐ์ ๋์ฐพ๊ณ ํ๊ฒ ๋ค๊ณ ๊ฒฐ์ ํ๋ค. ๋๊ธฐ ์ ๋ค์ด๋ ์ด, ์ค๋ฑ ํ์์ ๋์์ผ๋ก ์ฝ๋ฉ ๊ต์ก์ ๊ฒฝํ์ด ์์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ค๋ช ํ๋ ๊ฑด ์์ ์์๊ณ , ์ด ๋ถ์ผ๋ฅผ ๊ณต๋ถํ๊ธฐ ์ ์ ์ ๋ง ์๋ฌด๊ฒ๋ ๋ชฐ๋๋ ์ฌ๋์ผ๋ก ๋ ๊ณต๊ฐํ ์ ์๋ ๋ถ๋ถ์ด ์๊ฒ ๋ค๊ณ ..
๋ฌธ์ ๋ฒ ์คํธ ์จ๋ฒ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋ฒ ์คํธ์จ๋ฒ ์คํธ๋ฆฌ๋ฐ ์ฌ์ดํธ์์ ์ฅ๋ฅด ๋ณ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ๋ ธ๋๋ฅผ ๋ ๊ฐ์ฉ ๋ชจ์ ๋ฒ ์คํธ ์จ๋ฒ์ ์ถ์ํ๋ ค ํฉ๋๋ค. ๋ ธ๋๋ ๊ณ ์ ๋ฒํธ๋ก ๊ตฌ๋ถํ๋ฉฐ, ๋ ธ๋๋ฅผ ์๋กํ๋ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ํ ๋ ธ๋๊ฐ programmers.co.kr ํ์ด ์ฐ์ ์์๋ด์ผ ํ ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. ์ฅ๋ฅด์ ์ด ์ฌ์ ํ์ -> ์ฅ๋ฅด ์์ ์ ํ๊ธฐ ๊ฐ ์ฅ๋ฅด์ ๊ฐ๋ณ ๊ณก ์ฌ์ ํ์ -> ๊ณก ์์ ์ ํ๊ธฐ ์ด๊ฑธ ํ ๋ฒ์ ์์๋ด๋ ค๊ณ ํ๋ฉด ์ฅ๋ฅด๋ฅผ key๋ก ๋๊ณ ์๋ map์ value๋ก (์ด ์ฌ์ ํ์, index๋ง๋ค์ ์ฌ์ํ์)์ ์ ์ฅํด๋์ด์ผ ํ๊ณ ์ด๋ฌ๋ฉด ์ฅ๋ฅด์ ์์๋ฅผ ์์๋ด๊ธฐ ํ๋ค ๋ฟ๋ง ์๋๋ผ ๊ณก ์์๋ ์ถ์ถํด์ ๋ํ๋ด์ผ ํ๋ค. ๋ฐ๋ผ์ map์ ๋๊ฐ๋ก ๋๋์๋ค. 1๋ฒ map์ { key : ์ฅ..
๋ฌธ์ ์ ํ๋ฒํธ ๋ชฉ๋ก ๋ฌธ์ ๋ฐ๋ก ๊ฐ๊ธฐ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ ํ๋ฒํธ ๋ชฉ๋ก ์ ํ๋ฒํธ๋ถ์ ์ ํ ์ ํ๋ฒํธ ์ค, ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์๋์ง ํ์ธํ๋ ค ํฉ๋๋ค. ์ ํ๋ฒํธ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ, ๊ตฌ์กฐ๋ ์ ํ๋ฒํธ๋ ์์์ด์ ์ ํ๋ฒํธ์ ์ ๋์ฌ์ ๋๋ค. ๊ตฌ์กฐ programmers.co.kr ํ์ด ๋ณด์๋ง์ ํธ๋ผ์ด(Trie)๊ฐ ์๊ฐ๋ฌ๋ค. ๋ฌธ์์ด ๊ธธ์ด๋ 20 ์ดํ์ด๋ ์ต๋ ๋์ด๊ฐ 20์ธ ํธ๋ฆฌ๋ฅผ ๋ง๋ค๋ฉด ๋ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ์ฐ๊ฒฐ๋ฆฌ์คํธ ๊ตฌํ์ด ๋๋ฌด ๊ท์ฐฎ๊ธฐ๋ ํ๊ณ , ์ ๋ ฅ์ ๋ฒ์๊ฐ 10^6์ด๋ผ O(nlgn) ์ดํ๋ก ํ ๋ฒ์ ํด๊ฒฐํ ์ ์๋ ์ฌ์ด ๋ฐฉ๋ฒ์ด ์์ง ์์๊น ์๊ฐํ๋ค. ์ ๋ ฌ๋์ด ์๋ phone_book์ ํ ๋ฒ์ ํ์ผ๋ฉด ๋ฑ์ฅํ๋ ๋ฌธ์์ด์ ํฌํจํ๊ณ ์๋ ์ง๋ฅผ ํ์ธํ๋ฉด ๋๋๋ฐ, ์ผ๋ฐ์ ์ผ๋ก ๋ฑ์ฅํ๋ ๋ชจ๋ ๋ฌธ์์ด์ ๋ค์ ์..
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..
Comment