๊ฐ๋ฐ์ง์ค ์งค ๋ง๋ค์ด๋ฌ๋ผ๋ ์์ฒญ์ด ๋ง์๋ฐ...๊ท์ฐฎ๋ค... ์๋ํํ์!!
๊ทธ๋ฆผ์์ด ์ฃผ๋์ด ๊ฐ๋ฐ์๊ฐ ๊ทธ๋ฆฐ ๋ด์ง์ค ํจ๋ฌ๋ ๊ฐ๋ฐ์ง์ค ์งค ์ ๋๋ค.์ ์ฅํ์๊ณ ๋ง์๋๋ก ์ฌ์ฉํ์ ๋ ๋ฉ๋๋ค. (์์ ์ฉ์ ์๋จ)๋ง์ ๊ด์ฌ ๊ฐ์ฌํฉ๋๋ค. ๐ฅนโค๏ธ๊ฐ๋ฐ์ง์ค 1ํ์ธ์คํ๊ทธ๋จ๋ ์ด์ํ๊ณ ์์ต๋๋ค. ๋๋ฌ์์ฃผ์ธ์ ใ ใ ์ธ์คํํฐ ๋งํฌ: @dev_hee
๊ทธ๋ฆผ์์ด ์ฃผ๋์ด ๊ฐ๋ฐ์๊ฐ ๊ทธ๋ฆฐ ๋ด์ง์ค ํจ๋ฌ๋ ๊ฐ๋ฐ์ง์ค ์งค ์ ๋๋ค.
๋ณธ ๋ฌธ์ ์ดํํฐ๋ธ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ๊ณ ์๊ฒ๋ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
๋ณธ ๋ฌธ์ ์ดํํฐ๋ธ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ๊ณ ์๊ฒ๋ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.๋ฌธ๋งฅ์ x๋ผ๋ ๋ณ์๊ฐ ๋์์ Foo, Bar ํ์ ์ ํ ๋น ๊ฐ๋ฅํ๋ค๋ฉด ์ค๋ฅ๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๋ค.badgoodx as any ํํ๊ฐ ๋ ๋ซ๋ค. any ํ์ ์ด processBar ํจ์์ ๋งค๊ฐ๋ณ์์์
ํ๋ก ํธ์๋์์ Playwright ๋ฅผ ์ฌ์ฉํด์ E2E ํ ์คํธ๋ฅผ ํด๋ด ์๋ค!
๋ณธ ๋ฌธ์ ์ดํํฐ๋ธ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ๊ณ ์๊ฒ๋ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.์์ดํ 30 ๋ฌธ์์ ํ์ ์ ๋ณด๋ฅผ ์ฐ์ง ์๊ธฐ
CRDT ์๋น์ค์์ ํ์ผ์ ์ฒจ๋ถํด์ ๊ฒ์๋ฌผ์ ์์ฑํ๋ ๊ฒฝ์ฐ ๊ฒ์๋ฌผ์ด ์ ์์ ์ผ๋ก ์ ๋ก๋ ๋์ง ์๋ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ค.์๋ฒ์ธก์๊ฒ api ๋ก๊ทธ์ค ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ๊ฐ ์๋์ง ํ์ธํด๋ฌ๋ผ๊ณ ์์ฒญํ์๋ค.ํ์ธ ๊ฒฐ๊ณผ 0 ๋ฐ์ดํธ ํ์ผ ์ ๋ก๋๋ฅผ ์๋ํ์ฌ ์๋ฌ๊ฐ ๋ฐ์ํ์๋ค.0 ๋ฐ์ดํธ ํ์ผ์
์ฒด๋ฆฌ๋ณด๋๋ ํ์ดํธ๋ณด๋ ํด๋ก, ํผ๊ทธ์ผ์ฒ๋ผ ์ฌ๋ฌ ์ ์ ๋ค์ด ๋ชจ์ฌ์ ์์ ๋กญ๊ฒ ๋๋ก์ํ๊ณ ์ํตํ ์ ์์ด์. UI๋ ์ต๋ํ ๊ท์ฝ๊ณ ์๊ธฐ์๊ธฐํ๊ฒ ๊ฐ์ ธ๊ฐ๊ณ ์ถ์์ด์! ์ด๋ชจํฐ์ฝ์ ๋์ฅ์ฒ๋ผ ์ฐ์ ์๋ ์๊ณ ํ ์คํธ๋ฅผ ์ ๋ ฅํ๊ฑฐ๋ ์ฌ์ง์ ์ฌ๋ฆด ์ ์์ต๋๋ค. ๋ํ ํ์ฌ ์บ๋ฒ์ค๋ฅผ ์ด๋ฏธ์ง ํ์ผ๋ก
Google Docs๋ Figma, VSCode ์ LiveShare ๋ฑ์ ์จ๋ผ์ธ์์ ํ๋์ ๋ฌธ์๋ฅผ ๋์์ ํธ์งํ ์ ์๊ณ , ์ค์๊ฐ์ผ๋ก ์ฌ๋ฌ ์ ์ ์ ํธ์ง ๋ด์ฉ์ด ๊ฐ์ ํธ์ง ํ๋ฉด์ ๋ฐ๋ก ๋ฐ์๋ฉ๋๋ค. ์ด๋ ๋ฏ ์ค์๊ฐ ๋์ ํธ์ง ๊ธฐ์ ์ ์ ๊ณตํ๋ ์ฌ๋ฌ ์๋น์ค๋ค์ด ๋ง์์ง๊ณ ์์ต๋
๋ณธ ๋ฌธ์ Jeremy Wagner๊ฐ ์์ฑํ Interaction to Next Paint (INP) ์ ๋ฒ์ญํ ๊ธ์ ๋๋ค.
์น์์๋ ๋ค์ดํฐ๋ธ ์ฑ์ฒ๋ผ ํธ์ ์๋์ ๋ฐ์ ์ ์์ต๋๋ค. ์น์ ์ฌ์ฉ์ฑ์ ๋ค์ดํฐ๋ธ ์ฑ์ฒ๋ผ ๊ฐ์ ํ๊ธฐ ์ํด์ ๋์จ ๊ธฐ์ ์ธ PWA(Progressive Web Application)์ ํ์ฉํ๋ฉด ๊ฐ๋ฅํฉ๋๋ค.PWA๋ Progressive Web Application์ผ๋ก, ์น์ด ์น
๊ทธ๋ฆผ์์ด ์ฃผ๋์ด ๊ฐ๋ฐ์๊ฐ ๊ทธ๋ฆฐ ๊ฐ๋ฐ ๊ณต๊ฐ ์งค ์ ๋๋ค. ์ ์ฅํ์๊ณ ๋ง์๋๋ก ์ฌ์ฉํ์ ๋ ๋ฉ๋๋ค. (์์ ์ฉ์ ์๋จ)
ICT 4๊ฐ์ ์ธํด์ญ ๊ณผ์ ์ด ๋์ด ๋ฌ์ต๋๋ค. ๋๋ฌด ๊ฐ์ฌํ๊ฒ๋ ํ์ฅ๋๊ป์ ์ ๊ท์ง ์ ํ์ ์ ์ํด์ฃผ์ จ์ง๋ง, ๋ ๋ง์ ๊ฒฝํ์ ์ํด์ ์์ฝ๊ฒ ๊ฑฐ์ ํ๊ฒ ๋์์ต๋๋ค.๊ทธ๋ฌ๋ ์์ค ์ง์ธ๋ถ๊ป์ ์นด์นด์ค์ํฌ ๋ถ๋ฌธ ์์ ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ๊ณต์ ํด์ฃผ์ ์ ์ง์ํ๊ฒ ๋์์ต๋๋ค.์ฌ์ค ์ฒ์ ์ง์์๋ฅผ ์์ฑํ
๋ณธ ๋ฌธ์ ์ดํํฐ๋ธ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ๊ณ ์๊ฒ๋ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.ํ์ ์คํฌ๋ฆฝํธ์ ๋ง์ ํ์ ๊ตฌ๋ฌธ์ ์ฌ์ค ๋ถํ์ํ๋ค. ์ฝ๋์ ๋ชจ๋ ๋ณ์์ ํ์ ์ ์ ์ธํ๋ ๊ฒ์ ๋น์์ฐ์ ์ด๋ฉฐ ํํธ์๋ ์คํ์ผ์ด๋ค.ํ์ ์คํฌ๋ฆฝํธ๋ ์ ๋ ฅ์ ๋ฐ์ ์ฐ์ฐํ๋ ํจ์๊ฐ ์ด๋ค ํ์ ์ ๋ฐํํ๋์ง ์ ํํ ์
๋ณธ๋ฌธ์ ํ ์ค SLASH 21 - ์ค๋ฌด์์ ๋ฐ๋ก ์ฐ๋ Frontend Clean Code ์์์ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๋ชจ๋ ๋ด์ฉ์ ํด๋น ์์์ ํฌํจ๋์ด ์์ต๋๋ค.ํด๋ฆฐ์ฝ๋๋ '๋ช ํํ ์ด๋ฆ', '์ค๋ณต ์ค์ด๊ธฐ'์ ์ฌ์ธํ๊ฒ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๋ ์คํฌ์ ์๊ตฌํฉ๋๋ค.์ง๋ขฐ์ฝ๋๋ ํ๋ฆ ํ
๋ณธ ๋ฌธ์ ์ดํํฐ๋ธ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ๊ณ ์๊ฒ๋ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.ํธ์ง๊ธฐ์์ ํ์ ์คํฌ๋ฆฝํธ ์ธ์ด ์๋น์ค๋ฅผ ์ ๊ทน ํ์ฉํ๋ค.ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ป๊ฒ ํ์ ์์คํ ์ด ๋์ํ๋์ง, ํ์ ์ ์ด๋ป๊ฒ ์ถ๋ก ํ๋์ง ๊ฐ๋ ์ ์ก์ ์ ์๋ค.ํ์ ์คํฌ๋ฆฝํธ๊ฐ ๋์์ ์ด๋ป๊ฒ ๋ชจ๋ธ๋งํ๋์ง ์๊ธฐ ์ํด
๋ณธ ๋ฌธ์ ์ดํํฐ๋ธ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ๊ณ ์๊ฒ๋ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์์ ์งํฉ(superset)์ด๋ค.ํ์ ์คํฌ๋ฆฝํธ๋ ํ์ ์ด ์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์์์งํฉ์ด๋ค..js ํ์ผ์ ์๋ ์ฝ๋๋ ์ด๋ฏธ ํ์ ์คํฌ๋ฆฝํธ์ด๋ค.์ฆ main.js ๋ฅผ main.ts
๋ณธ ๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ ์๋ฒฝ๊ฐ์ด๋๋ฅผ ์ฝ์ผ๋ฉฐ ๋ชฐ๋๋ ๋ถ๋ถ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.ํด๋ผ์ด์ธํธ ์ฌ์ด๋ (FrontEnd)์น ๋ธ๋ผ์ฐ์ ์์ ์คํํ๋๋ก ์์ฑ๋ ์๋ฐ์คํฌ๋ฆฝํธ์๋ฒ ์ฌ์ด๋ (BackEnd)์น ์๋ฒ์์ ์คํ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ์ฌ์ด๋์น ์๋ฒ์ ์น ๋ธ๋ผ์ฐ์ ์ฌ์ด์ ์๋ ๋คํธ์ํฌ ์ฐ๊ฒฐ์
๋น๋๊ธฐ์ ์ผ๋ก ๋์ํ๋ค= ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๊ฑฐ๋, ์ด๋ค ์ด๋ฒคํธ๊ฐ ์ผ์ด๋ ๋ ๊น์ง ๊ณ์ฐ์ ๋ฉ์ถ๊ณ ๋๊ธฐํ๋ ์ผ์ด ์ฆ๋ค.์น ๋ธ๋ผ์ฐ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋จ์ ์ด๋ฒคํธ ์ฃผ๋์ ์ด๋ค.ํ๋ก๊ทธ๋จ์ด ์ค์ ๋ก ๋ฌด์์ธ๊ฐ ์คํํ๊ธฐ ์ ์ ์ฌ์ฉ์๊ฐ ๋ฌด์ธ๊ฐ ํด๋ฆญํ๊ณ ํญํ์ฌ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์์ผ์ผํ๋ค.์๋ฐ์คํฌ