๋ฑ ํฌ์๋ฌ๋์์ ์ง์ฐ ์๊ฐ ์์ด ์นํฐํธ ์๋นํ๊ธฐ ๊ธ์ ๋ณด๋ค๊ฐ Glyph๋ผ๋ ๊ฐ๋ ์ด ๋์์ ์ฐพ์๋ณด๊ฒ ๋์๋ค. Glyph(๊ธ๋ผํ)๋? Glyph๋ ๊ธ์์ ์ต์ ํํ์ด๋ฉฐ, ๋ป๊ณผ ์๋ฆฌ๋ฅผ ์ง๋์ง ์์ ๋ํ ๊ธฐํธ์ด๋ค. ์๋ฅผ ๋ค์ด, “๊ฐ” ๋ผ๋ ๊ธ์๊ฐ ์๋ค๋ฉด ์ด ๊ธ์๋ฅผ ์ด๋ป๊ฒ ํํํ ๊ฒ์ธ์ง๊ฐ Glyph์ด๋ค. ํท๊ฐ๋ฆฌ๋ ์ฉ์ด ์ ๋ฆฌ ๊ฐ๋ฐ์ ํ๋ฉด์ ๋ง์ฃผ์น๋ ๊ธ์์ ๋ชจ์๊ณผ ๊ด๋ จ๋ ์ฉ์ด๋ค์๋ Character, Font, Glyph (feat. Unicode)๊ฐ ์๋ค. ๊ฐ๊ฐ์ ์ฐจ์ด๋ฅผ ์ ์ ์๊ฒ ์ ์ํด๋ณด์. ์์ฝํ์๋ฉด, Character๋ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ๊ธ์์ด๊ณ , Glyph๋ ํ๋์ Character์ ๋์๋๋ ํํ์ด๋ค. Glyph๋ค์ด ๋ชจ์ฌ Font๋ฅผ ๋ง๋ ๋ค. ์ถ๊ฐ์ ์ผ๋ก Unicode๋ Character ํ๋ ๋น ๋ถ์ฌ๋๋ c..
์ค๋๋ง์ ์ฐ๋ ๊ธ์ด๋ค. ํ๋ค ๋ ๊ธ์ด ์ ์จ์ง๋ค๊ณ ์ด๋ฒ ๊ธ์ ์ ์ ์จ์ก๋ค. ํ๊ณ ๊ธ์ ์ค๋ซ๋์ ์์ฑํ์ง ๋ชปํด์ ์ค๋๋ง์ ๋์ ์ฌ๋ณด์๋ค. ์ ์ ์๊ฒ ๋ฐ๋นด๋ 2023๋ ์ฌ๋ฆ ์ด๋ฉด์ ์ ๋ฐ๋นด๋ ์ฌ๋ฆ์ด ์๋ ๊ฒ ๊ฐ๊ธด ํ๋ฐ ์ ๊น์ ์ผ์์ ์ฑ๊ธธ ์ฌ์ ์ ๋๋ ์์๋ค. ๋๋ ๋์ฒด๋ก ์ผ์ ๋ฒ๋ ค์ ๋๋ฅผ ๋ฐ์ ์ํฉ์ ๋ฐ์ด๋ถ์ด๋ ์ฌ๋์ธ๋ฐ, ์ด๋ ๊ฒ ํด์ผ ๋ฐ์ ๋ ์๊ณ ๋น์ฅ์ ๊ดด๋กญ์ง๋ง ํ์ธต ๋จ๋จํด์ง๋ ๊ฑธ ๋๊ผ๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง ์ด๋ฒ ์ฌ๋ฆ์๋ ํนํ๋ ํฌ๊ธฐ์ ๊ฒฌ๋ค ์ฌ์ด์์ ์์ฌ์์ฌํ ์ค๋ฌ๋ฆฌ๊ธฐ๋ฅผ ํ๋ค. ๋๋ฅผ ์ฃฝ์ด์ง ๋ชปํ ์๋ จ์.. ๊ทธ๋ฐ ๋ง์ด ์์ง ์์๊ฐ? ”๋๋ฅผ ์ฃฝ์ด์ง ๋ชปํ ์๋ จ์ ๋๋ฅผ ๊ฐํ๊ฒ ๋ง๋ค ๋ฟ์ด๋ค“. ๋๋ ํฌ๊ธฐํ์ง ์๋ ๋ฅ๋ ฅ์ด ๊ฝค ๋์ ์ฌ๋์ธ ๊ฒ ๊ฐ๋ค. ์ด๋ฆด ์ ์ฌ์ํ ๋ ์๋ง๊ฐ ๋์๊ฒ ”ํฌ์์ด๋ ๊ฒฐ๊ตญ์ ํด๋ด์ ๋ณ๋ก ๊ฑฑ์ ์ด ์๋ผ..
๐ก gRPC์ Rest api์ ์ฐจ์ด์ ์ ์ ๋ฆฌํ๊ณ ์ฅ๋จ์ ์ ํ์ ํ์ฌ ์ํฉ์ ๋ง๊ฒ ์ ์ฉํฉ๋๋ค. ์คํธ๋ ์ค ํ ์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์กฐ์ฌํ๋ค๊ฐ ํน์ ํด๋ค๋ง gRPC๋ฅผ ์ง์ํ๊ณ , gRPC๋ฅผ ์ฌ์ฉ ์ค์ธ ์ฝ๋๋ฅผ ์ฐพ์๋ณด๋ ๊ฑฐ์ Go, Kotiin ๊ธฐ๋ฐ ์ฝ๋๋ค ๋ฐ์ ์๊ธธ๋ gRPC์ Rest api์ ์ฐจ์ด์ ์ด ๋ฌด์์ด๊ณ ์ธ์ ๋ฌด์ผ ์ฌ์ฉํด์ผ ํ๋์ง / JS๋ฅผ ํตํด ์์ฃผ ์ฌ์ฉํ์ง ์๋ ์ด์ ๊ฐ ์์ ์ง ๊ถ๊ธํด์ ์กฐ์ฌํด ๋ด ๋๋ค. Rest api๋ ๊ธฐ์กด์ ๋ง์ด ์ฌ์ฉํด๋ณด์ จ์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ณ๋ ์ค๋ช ์์ด ๋์ด๊ฐ๊ฒ ์ต๋๋ค. gRPC๋? grpc๋ ๊ตฌ๊ธ์์ ๊ฐ๋ฐํ ์คํ์์ค ์๊ฒฉ ํ๋ก์์ ํธ์ถ(RPC) ์์คํ ์ด๋ฉฐ, ์ ์ก์ ์ํด HTTP/2 ๋ฅผ ์ฌ์ฉํ๊ณ ์ธํฐํ์ด์ค ์ ์ ์ธ์ด๋ก ํ๋กํ ์ฝ ๋ฒํผ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. client - server si..
๐ค ๊ธฐ์กด์ ์๊ณ ์๋ Duck typing๊ณผ Typescript ๊ตฌ์กฐ์ ํ์ดํ์ ์ฐจ์ด๋ฅผ ์ธ์งํ๊ณ ํ๊ณ๋ฅผ ํ์ ํฉ๋๋ค. Duck typing์ด๋ “๋ง์ฝ ์ด๋ค ์๊ฐ ์ค๋ฆฌ์ฒ๋ผ ๊ฑท๊ณ , ํค์์น๊ณ , ๊ฝฅ๊ฝฅ๊ฑฐ๋ฆฌ๋ ์๋ฆฌ๋ฅผ ๋ธ๋ค๋ฉด ๋๋ ๊ทธ ์๋ฅผ ์ค๋ฆฌ๋ผ๊ณ ๋ถ๋ฅผ ๊ฒ์ด๋ค.” ๋ผ๋ ๋ง์์ ํ์ํ์์ผ๋ฉฐ, ๊ฐ์ฒด์ ํ์ ์ ๋ฏธ๋ฆฌ ์ ํ๋ ๊ฒ์ด ์๋๋ผ ๋ฐํ์ ์ ๊ฐ์ฒด์ ํ์์ ๊ธฐ๋ฐํ์ฌ ํ์ ์์ฉ์ฑ์ ์ฒดํฌํ๋๋ก ํ๋ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ ์ ๋๋ค. type Person = { name: string, age: number, }; const personA = { name: 'ํฌ์', age: 27, }; const duckA = { name: '์ค๋ฆฌ', age: 2, }; const person: Person = duckA; // it's okay ํ์ ..
๐ก 2022/11/27 ๊ธฐ์ค์ผ๋ก ์์ฑํ ๊ธ์ด๋ฉฐ, ์ดํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋ฐ์ดํธ๋ก ํน์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ ์ ์์ต๋๋ค. Virtualized List ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋น๊ต npm trends๋ผ๋ ์ฌ์ดํธ๋ฅผ ์ด์ฉํ์ฌ, 4๊ฐ์ Virtualized List ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋น๊ตํด๋ณด๊ฒ ์ต๋๋ค. react-window์ react-virtualized์ ๊ด๊ณ ๋๋ค ๊ฐ์ ๊ฐ๋ฐ์๊ฐ ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ react-virtualized์์ ํ์ํ ๋ถ๋ถ๋ง ๋นผ๋ด์ด ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ react-window์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ๋ฉด ๋ฉ๋๋ค. ์ ์ ์จ๋ก ๋ฐ์ง๋ฉด ํ์ฌ ๊ธฐ์ค์ผ๋ก @tanstack/virtual-core ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ early stage ์ธ ๋ฏํฉ๋๋ค. react-virtualized์ react-window๋ ์๋ ์ ๋ช ..
์ด๋ฒ ์ฑํฐ์์๋ ๊ฐ์ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ ์๋น์ค์์ ํ์๋ก ํ๋ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ๋ฆฌ์คํ ํด๋ณด๊ณ , ๋ช๋ช์ ๊ธฐ๋ฅ์ด ์ด๋ป๊ฒ ๊ตฌํ๋๋์ง ์ ์ด๋ ค์ด ์ง ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.Major ๊ธฐ๋ฅ์๋์ฐ ์คํฌ๋กค์ ๋ฆฌ์คํธ ์คํฌ๋กค์ ์ ์ฉํ์ด์ง ์ฌ๋ฐฉ๋ฌธ ์ ์คํฌ๋กค ์์น ์ ์ง ๐ฅ์์ดํ ์ ๋์ด๊ฐ ์๋์ผ๋ก ์กฐ์ ํ๋ฉด์ ๋ณด์ด๋ ์์ดํ ๋ง ๋ ๋๋ง์ด์ ์๋ฅผ ๋ฐ์ํ ์ผ๋ก ์กฐ์ ์๋ฐฉํฅ ๋ฌดํ ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ๊ณผ ์ฐ๊ฒฐ ๐ฅ๊ตฌํํ๊ธฐ ๊น๋ค๋ก์ด ๋ถ๋ถ์ด ์๋ ๊ธฐ๋ฅ์ ๐ฅ ๋ก ํ์ํ์ต๋๋ค.์๋์ฐ ์คํฌ๋กค์ ๋ฆฌ์คํธ ์คํฌ๋กค์ ์ ์ฉ์๋์ ์์์ ๋ณด๋ฉด ์ํฉ์ ๋ํ ์ดํด๊ฐ ์ฝ์ต๋๋ค. ๋ฆฌ์คํธ ๋ด๋ถ ์คํฌ๋กค์ ๊ฒฝ์ฐ list-container ๋ผ๋ div์ height๊ฐ ์ ํด์ ธ์๊ณ overflow-y๊ฐ scroll์ ๋๋ค. ์ฆ, ํ์ด์ง์ ๊ตฌ์ฑ์ด (ํค๋, ๋ฆฌ์คํธ, ํธํฐ)๋ก ๋์ด์์ ๋..
Virtualized List ๋?Virtualized List(๊ฐ์๋ฆฌ์คํธ)๋ ๋์ด๋ ๋ฆฌ์คํธ์ ์์ดํ ์ค ํ๋ฉด์ ๋ณด์ฌ์ง๋ ์์ดํ ๋ง ๋ ๋๋งํ๋ ๋ฆฌ์คํธ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ ์ ๊ฐ ์คํฌ๋กค์ ๋ด๋ ค ๋ณด์ด๋ ์์ดํ ์ ๋ฒ์๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ค์ ๋ณ๊ฒฝ๋ ์์ดํ ๋ง์ ๋ ๋๋ง ํ๋๋ก ๊ตฌํ๋ฉ๋๋ค. ์ฌ์ค ํ๋ฉด์ ๋ฒ์ด๋ ๊ณณ์ ์์ดํ ๋ค์ ํ๋ฉด ์์ ๋ ๋๋ง ๋์ด์์ง ์๊ธฐ ๋๋ฌธ์ ํ์ฌ ์์ ์๋ ์๋ ์์ดํ ์ผ๋ก ์๊ฐํ ์ ์์ง๋ง, ์ ์ ์ ์คํฌ๋กค ์์น์ ๋ฐ๋ผ ํ๋ฉด ์์ ๋ ธ์ถ๋ ์ ์์ผ๋ฏ๋ก ์์ ๊ทธ๋ฆผ์ฒ๋ผ ๊ฐ์์ผ๋ก ๋ฆฌ์คํธ๊ฐ ์ฐจ๋ก๋ก ๊ตฌ์ฑ๋์ด ์๋ค๊ณ ์๊ฐํ๊ฒ ๋ฉ๋๋ค. ์์ดํ ์ ๋ชจ๋ ๋ ๋๋งํ๋ ๊ธฐ๋ณธ List์ ๋น๊ตํ์ ๋, ํ์ํ ์์ดํ ๋ง์ ๋ ๋๋งํ๋ฉด ๋๋ฏ๋ก ๋ ๋๋ง ๋น์ฉ์ด ๊ฐ์ํฉ๋๋ค. ์ด๋ ๊ฒ ๋ ๋๋ง ๋น์ฉ์ ๊ฐ์์ํค๋ ๊ธฐ์ ๋ก๋ ํ์ด์ง ๋ณ๋ก n๊ฐ์ ์์ดํ ๋ง์..
๐ ํด๋น ๊ธ์ ๋ฐ์ด์์ปดํผ๋์์ ์งํํ๋ ์ ๋ก๋ฒ ์ด์ค ํ๋ก ํธ์๋ ์ค์ฟจ์ ๊ฐ์ ์ค ํ๋์ธ JS ๊ธฐ์ด ๊ฐ์๋ฅผ ์ ์ํ ํ๊ธฐ๋ฅผ ๋ด์ ๊ธ์ ๋๋ค :) ๐ ์ ๋ก๋ฒ ์ด์ค ํ๋ก ํธ์๋ ์ค์ฟจ์ ๊ฐ์๋ฅผ ๋ง๋ณด๊ณ ์ถ์ผ์ ๋ถ๋ค์ ํด๋น ๋งํฌ์์ ๋ง๋ณด๊ธฐ ๊ฐ์๋ฅผ ๋ค์ผ์ค ์ ์์ต๋๋ค. โ๏ธ ์ฒซ ์ฐ๋ฝ ๋ฐ์ด์์ปดํผ๋์์ ๋งํฌ๋์ธ์ผ๋ก ์ฒซ ์ฐ๋ฝ์ ์ฃผ์๊ณ ๊ฝค ๊ณ ๋ฏผ์ ๋ง์ด ํ๋๋ฌ๋ค. ์ฒ์ ํ๋ ๊ต์ก์ด๊ธฐ๋ ํ๊ณ ์ค์ค๋ก ์์ง ์ค๋ ฅ์ด ๋ถ์กฑํ๋ค๊ณ ์๊ฐํ๋๋ฐ, ์ฒ์ ๊ณต๋ถ๋ฅผ ์์ํ๋ ์ ๋ก๋ฒ ์ด์ค ํ์ต์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ต์ก์ด๋ผ๊ณ ํ์๊ธธ๋ ์์ ๊ฐ์ ๋์ฐพ๊ณ ํ๊ฒ ๋ค๊ณ ๊ฒฐ์ ํ๋ค. ๋๊ธฐ ์ ๋ค์ด๋ ์ด, ์ค๋ฑ ํ์์ ๋์์ผ๋ก ์ฝ๋ฉ ๊ต์ก์ ๊ฒฝํ์ด ์์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ค๋ช ํ๋ ๊ฑด ์์ ์์๊ณ , ์ด ๋ถ์ผ๋ฅผ ๊ณต๋ถํ๊ธฐ ์ ์ ์ ๋ง ์๋ฌด๊ฒ๋ ๋ชฐ๋๋ ์ฌ๋์ผ๋ก ๋ ๊ณต๊ฐํ ์ ์๋ ๋ถ๋ถ์ด ์๊ฒ ๋ค๊ณ ..
Comment