๐ ํ๋ก ํธ์๋ ์ด๋จธ ์ด๊ฑด ๋ด์ผํด!
ํ๋ก ํธ์๋์์ ํฅ๋ฏธ๋กญ๊ฑฐ๋ ์ฝ์๋งํ ์ํฐํด ๋ฐ ๊ณต์๋ฌธ์ ๋งํฌ๋ฅผ ๋ชจ์๋๋ ์ฅ์
IT & FE ์ธ์ฌ์ดํธโ
- ์คํํธ์ ์คํ ๋ฆฌ ํ๋ซํผ: ํ๋ํ
- GeekNews - ๊ฐ๋ฐ/๊ธฐ์ /์คํํธ์ ๋ด์ค ์๋น์ค
- Daily DevBlog ์ด๋ฉ์ผ ๊ตฌ๋
- Naver FE News ์ด๋ฉ์ผ ๊ตฌ๋
- Korea FE Article ์ด๋ฉ์ผ ๊ตฌ๋
- JavaScript Weekly ์ด๋ฉ์ผ ๊ตฌ๋
- ๋์ค์ฝฐ์ด์
- ์์ฆ IT
- ์ปค๋ฆฌ์ด๋ฆฌ
- daily.dev
- web.dev
- Velog
- FE News
๐ป ๊ตญ๋ด ๊ธฐ์ ๊ธฐ์ ๋ธ๋ก๊ทธโ
- ๋ค์ด๋ฒ D2
- ์นด์นด์ค
- ์นด์นด์ค ํ์ด
- ์นด์นด์ค ์ํฐํ ์ธ๋จผํธ
- ์นด์นด์ค ์คํ์ผ
- ๋ผ์ธ
- ์ฐ์ํ ํ์ ๋ค
- ํ ์ค
- ๋น๊ทผ๋ง์ผ
- ์ง๋ฐฉ
- ๋ฑ ํฌ์๋ฌ๋
- NHN
- ํ์ดํผ์ปค๋ฅํธ
React & Next.jsโ
- ์นด์นด์ค ํ์ด - React Query์ ํจ๊ป Concurrent UI Pattern์ ๋์ ํ๋ ๋ฐฉ๋ฒ
- ์ฐ์ํ ํ์ ๋ค - ๋ง๋ค์ด ๊ฐ๋ฉฐ ์์๋ณด๋ React: React๋ ์ ์ฑ๊ณตํ๋
- React ๊ณต์ ๋ฌธ์ - React Labs: ์ฐ๋ฆฌ๊ฐ ์์ ์ค์ธ๊ฒ - 2022๋ 6์
- ์นด์นด์ค ํ์ด - React 18: ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ ์ค๋นํ๊ธฐ
- ์นด์นด์ค ํ์ด - ๋ฌด์กฐ๊ฑด ์ค์ผ๋ ํค ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋๊ฒ ์ฌ์ฉ์ ๊ฒฝํ์ ๋์์ด ๋ ๊น์?
- ์นด์นด์ค ์ํฐํ ์ธ๋จผํธ - ํฉ์ฑ ์ปดํฌ๋ํธ๋ก ์ฌ์ฌ์ฉ์ฑ ๊ทน๋ํํ๊ธฐ
- ํ ์ค - ์กฐ๊ธ๋ง ์ ๊ฒฝ ์จ์ ์ด๊ธฐ ๋ ๋๋ง ๋น ๋ฅด๊ฒ ํ๊ธฐ(feat. JAM Stack)
- ์นด์นด์ค ์ํฐํ ์ธ๋จผํธ - ํฉ์ฑ ์ปดํฌ๋ํธ๋ก ์ฌ์ฌ์ฉ์ฑ ๊ทน๋ํํ๊ธฐ
- ์นด์นด์ค ์ํฐํ ์ธ๋จผํธ - MSW๋ฅผ ํ์ฉํ๋ Front-End ํตํฉํ ์คํธ
- When to useMemo and useCallback
- ๋ค์ด๋ฒ - ๋ชจ๋ ํ๋ก ํธ์๋ ํ๋ก์ ํธ ๊ตฌ์ฑ ๊ธฐ๋ฒ - ๋ชจ๋ ธ๋ ํฌ ๊ฐ๋ ํธ
- ๋ค์ด๋ฒ - ๋ชจ๋ ํ๋ก ํธ์๋ ํ๋ก์ ํธ ๊ตฌ์ฑ ๊ธฐ๋ฒ - ๋ชจ๋ ธ๋ ํฌ ๋๊ตฌ ํธ
- ๋ผ์ธ - ๊ฐ๋ฐ์๋ฅผ ์ํ ์น์ ํ UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ง๋ค๊ธฐ
- ๋ผ์ธ - Turborepo๋ก ๋ชจ๋ ธ๋ ํฌ ๊ฐ๋ฐ ๊ฒฝํ ํฅ์ํ๊ธฐ
- ์ฐ์ํ ํ์ ๋ค - Yarn berry workspace๋ฅผ ํ์ฉํ ํ๋ก ํธ์๋ ๋ชจ๋ ธ๋ ํฌ ๊ตฌ์ถ๊ธฐ
- ์นด์นด์ค ์ํฐํ ์ธ๋จผํธ - React ์ด๋ฒคํธ์ ๋ธ๋ผ์ฐ์ ์ด๋ฒคํธ
- [๋ฒ์ญ] ์ฐ๋ฆฌ๊ฐ Next.js๋ก ๋ฆฌ์กํธ ๋ก๋ฉ ์๊ฐ์ 70% ๊ฐ์ ํ ๋ฐฉ๋ฒ
- (๋ฒ์ญ) ์ฐ๋ฆฌ๊ฐ CSS-in-JS์ ํค์ด์ง๋ ์ด์
- (๋ฒ์ญ) Next.js ์๋ ๋ฐฉ์
- ์นด์นด์ค ์ํฐํ ์ธ๋จผํธ - React์ Error Boundary๋ฅผ ์ด์ฉํ์ฌ ํจ๊ณผ์ ์ผ๋ก ์๋ฌ ์ฒ๋ฆฌํ๊ธฐ
- Index as a key is an anti-pattern (ํค๋ก์์ ์ธ๋ฑ์ค๋ ์ํฐ ํจํด์ ๋๋ค.)
- ReactJS: Props vs. State
- Use a Render Prop!
- (๋ฒ์ญ) โCreate React App ๊ถ์ฅ์ Vite๋ก ๋์ฒดโ PR ๋ํ Dan Abramov์ ๋ต๋ณ
- (๋ฒ์ญ) Concurrent ๋ฆฌ์กํธ์ ๋ํด ์์์ผ ํ ๋ชจ๋ ๊ฒ(๊ทธ๋ฆฌ๊ณ Suspense์ ๋ํด์ ์ฝ๊ฐ)
- (๋ฒ์ญ) Next.js์ app ๋๋ ํฐ๋ฆฌ ์ํคํ ์ฒ ์ดํดํ๊ธฐ
- (๋ฒ์ญ) ๊ธฐ๋ฅ ๋ถํ ์ค๊ณ - ์ต๊ณ ์ ํ๋ฐํธ์๋ ์ํคํ ์ฒ
- FSD(feature-sliced.design)
CI/CDโ
ํจ์ํโ
- (๋ฒ์ญ) ์ด์จ๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ฅ์ ์ ๋ญ๊ฐ์?
- ๋ชจ๋ฅ๋ถ | EP.2 ํจ์ํ ํ๋ก๊ทธ๋๋ฐ, ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ง์ง ๋์ ๋ ๊น?
JavaScript & TypeScriptโ
- ์นด์นด์ค ์ํฐํ ์ธ๋จผํธ - ์๋ฐ์คํฌ๋ฆฝํธ์ ์๋ก์ด ๊ธฐ๋ฅ๋ค
- ํ ์ค - CommonJS์ ESM์ ๋ชจ๋ ๋์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐํ๊ธฐ: exports field
- (๋ฒ์ญ) ์๋ฐ์คํฌ๋ฆฝํธ ์น ํ๋ ์์ํฌ์ ์๋ก์ด ํ๋ฆ
- ์ฐ์ํ ํ์ ๋ค - ์ฐ๋ฆฌ ํ์ ์ฐ์ํ ํ์ ์คํฌ๋ฆฝํธ ์ปจ๋ฒค์ ์ ํ๊ธฐ ์ฌ์
- ์นด์นด์ค ์ํฐํ ์ธ๋จผํธ - Typescript - Union Type, Intersection Type, Etc.
- (๋ฒ์ญ)๋ ์ข์ ํ์ ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋จธ๋ก ๋ง๋๋ 11๊ฐ์ง ํ
- ๋๋ํ๊ฒ ๋ธ๋ผ์ฐ์ Polyfill ๊ด๋ฆฌํ๊ธฐ
- [๋ฒ์ญ] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋น์ง ์ปฌ๋ ํฐ ์คํ
- [๋ฒ์ญ] ์ฝ๋ ํ์ง์ ๋์ฌ์ฃผ๋ ๊ณ ๊ธ ์๋ฐ์คํฌ๋ฆฝํธ ํจ์
- [๋ฒ์ญ] ES2023์์ ๋ ์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์๋ก์ด ๋ฐฐ์ด ๋ณต์ฌ ๋ฉ์๋
CSSโ
ํ ์คํธโ
- [๋ฒ์ญ] ํ๋ฐํธ์๋ ๋จ์ ํ ์คํธ ๋ชจ๋ฒ ์ฌ๋ก
- (๋ฒ์ญ) ๋ด๊ฐ ์์ฑํ Jest ํ ์คํธ๋ ์ ์ด๋ ๊ฒ ๋๋ฆด๊น?
- ๋ชจ๋ฅ๋ถ | EP.3 ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ํ ์คํธ ์๋ํ, ๊ผญ ํด์ผ ํ ๊น?
์ต์ ํโ
๊ฐ๋ฐ ๋ฌธํโ
- ์ฐ์ํ ํ์ ๋ค - ๊ณตํต์์คํ ๊ฐ๋ฐํ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฌธํ ๊ฐ์ ์ด์ผ๊ธฐ
- ๋ผ์ธ - ํจ๊ณผ์ ์ธ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์ํด์
- ๋ฑ ํฌ์๋ฌ๋ - ์ฝ๋ ๋ฆฌ๋ทฐ in ๋ฑ ํฌ์๋ฌ๋ ๊ฐ๋ฐ ๋ฌธํ
- Feature Toggles (aka Feature Flags) - martinfowler
ํด๋ฆฐ์ฝ๋โ
๊ธฐํโ
- ์นด์นด์ค ์ํฐํ ์ธ๋จผํธ - SEO ๊ฐ์ ์ด์ฌ์ ๊ฐ์ด๋
- (๋ฒ์ญ) 2023๋ ์น ๊ฐ๋ฐ ํธ๋ ๋ 10๊ฐ์ง
์ ํ๋ธโ
์ปจํผ๋ฐ์คโ
- ์ธํ์ฝ 2022
- ๋๋ ๋ด ์ฝ๋์ ๋ฌธ์ ๋ฅผ ์ฐพ๊ณ ์ถ๋ค๊ณ ์?! - ํ ์คํธํ ๋ ๊ธฐ์ตํ 7๊ฐ์ง
- Rust ํฌ๋ก์ค ํ๋ซํผ ํ๋ก๊ทธ๋๋ฐ
- ์๋ฒ๋น 0์, ํด๋ผ์ฐ๋ ํ ๋์ ์ผ๋ก ํด๋์ต๋๋ค!
- ๊ฐ๋ฐ์์ ์ ํ ๋ธ๋๋ฉ
- ์ธ์ด์ ํจ๊ป ์ฑ์ฅํ๊ธฐ - Node.js์ 10๋ , v0.8๋ถํฐ v16๊น์ง
- ์ฑ๊ณตํ๋ ์คํฐ๋๋ฅผ ๋ง๋๋ 10๊ฐ์ง ๋ฐฉ๋ฒ - ์ธ์ถ ์์ฃผ์ ์คํฐ๋ ์ฌ์ ๊ธฐ
- FE ๊ฐ๋ฐ์๋ ํ ์ ์๋ค! RESTful API ๊ฐ๋ฐ (with Firebase, GCP)
- ์ด์ ์ค์ธ Vue.js ์น ์๋น์ค๋ฅผ ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ค์ ์ฐ๊ธฐ
- ์ฐ๋ฆฌ๋ ์ค๋๋ ์ฑ์ฅํฉ๋๋ค - ์ธํ๋ฉ ํ๋ฐํธ์๋ ์ ๋ฌด ํ๋ก์ธ์ค ๋ณ์ฒ์ฌ
- Vanilla JS์ ํจ๊ป ์ง์๊ฐ๋ฅํ ํ๋ฐํธ์๋ ์ฝ๋ ๋ง๋ค๊ธฐ - ์ธํ๋ฐ ์๊ฐ ๋ฐ๊ตฌ๋ ๊ฐ์ ๊ธฐ
- FEConf 2022
- if(kakao)dev 2022 front-end session
- Naver Deview 2023
- ํ๋์ ์ฝ๋๋ก React, Vue, Svelte ๋ฑ ๋ชจ๋ ํ๋ ์์ํฌ๋ฅผ ์ง์ํ ์ ์๋ CFCs Reactive
- ๋์ผ๋ก ๋ณด๋ฉฐ ๋ฃ๋ ์์ฑ ๊ธฐ๋ก, ํด๋ก๋ฐ๋ ธํธ ์๋น์ค์ ์น ๊ธฐ์ ํบ์๋ณด๊ธฐ
- UI ๋น๋๋ฅผ ์งํฑํ๋ ๋ ๊ณ ๋ธ๋ก ๊ฐ์ ์ํคํ ์ฒ ๋ง๋ค๊ธฐ
- ์ค์ํ ๊ฑด ๊บพ์ด์ง ์๋ ๋ง์: ์ค๋งํธ์๋ํฐ์ ๋์
- GraphQL ์ ์ฐ๊ณ ๊ณ์ ๊ฐ์? (Production-ready GraphQL)
- SSRํ๊ฒฝ์์์ Micro-Frontend ๊ตฌํ๊ณผ ํผํฌ๋จผ์ค ํฅ์์ ์ํ ์บ์์ ๋ต
- ์๋ฐ์คํฌ๋ฆฝํธ ํ์ดํธ๋ฐ์ค ์ํธ์ ํฌ๋กฌ ๋ผ์ธ ๋ฉ์ ์ ์ ๋ณด์ ๊ฐํ
- ์จ์ผ ๋ธ๋ผ์ฐ์ ์คํ ์์ค ์์กด๊ธฐ
- ๊ทธ ์ฌ์ APP, ๊ทธ ๋จ์ SDK: Kotlin Multiplatform ์ ์ฉ๊ธฐ
- Toss Slash 2023
- ์ธํ์ฝ 2023
- ๋น์ ์ ์นํ์ด์ง๋ ๋ช ์ ์ธ๊ฐ์?: ๋ผ์ดํธ ํ์ฐ์ค๋ฅผ ํตํ ํ๋ฐํธ ์ฑ๋ฅ๊ฐ์
- Turborepo, Next.js, TypeScript๋ฅผ ์ด์ฉํ ํ๋ก ํธ์๋ ๋ชจ๋ ธ๋ ํฌ ์ ์ฉ๊ธฐ
- ์ํ๊น๊ฒ๋ ์ค๋์ TDD๋ ์คํจํ ๊ฒ ๊ฐ๊ตฐ์. ๋ด์ผ์ ๊ฐ๋ฅํ ์ง๋...?
- Hello, Interactive Developer: WebGL๋ก ์ํธ์ฝ๋ฉ ํ๊ธฐ
- ์ฃผ๋์ด ํ๋ก ํธ์๋ ์์ง๋์ด์ ์ฑ๊ณผ ๋ฐ ์ญ๋ ํฅ์์ ์ํ ์ค์ ๊ฐ์ด๋
- ์น๋ทฐ๋ฅผ ์ด์ฉํด ์น ์๋น์ค๋ฅผ ์ฑ์ผ๋ก ๋น ๋ฅด๊ฒ ๊ตฌํํ๊ธฐ
- SSR์ ๊ธฐ์จ๊ณผ ์ฌํ: ๋ ๋๋ง์ ๋ณํ์ ํ๋ฆ์ ํตํด ์์๋ณด๋ SSR๊ณผ Streaming SSR
- ์ ๊ตฌ๊ธ ์๋์ด ๊ฐ๋ฐ์๋ ์ฝ๋ฉ์ ์ํ ๊น?
- FEConf 2023
- WOOWACON 2023
- Next.js Conf 2023 with next.js 14
- React.js Conf 2024
- Vercel Ship 2024
- ์ธํ์ฝ 2024
- FEConf 2024
- Toss slash24
- daangn tech meetup 2024
- woowacon 2024
- if kakao 2024
- DAN 24(๋ค์ด๋ฒ ์ปจํผ๋ฐ์ค)
- WhaleOS: ์ ์๋ ๋ถํฐ ๋ก๋ด ๊ฐ๋ฐ์ ๊น์ง, ๋๋ถ์ด ๋ง๋ค๊ณ ์ด์ ์จ์ฌ๋ ์ด์์ฒด๊ณ
- ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ผ๋ก ์ง์์ ์ฑ์ฅ์ด ๊ฐ๋ฅํ ๋ค์ด๋ฒ ๊ฒ์ FE ์์คํ ๊ตฌ์ถํ๊ธฐ
- ๋ค์ด๋ฒ ๊ฒ์์์ ์น ์ฑ๋ฅ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ: web-vitals ์์ง๋ถํฐ ๊ฐ์ ๊น์ง
- ์ฌ๋ฌ๋ถ์ ์น์๋น์ค์๋ ๊ผญ ํ์ํ ๊ฒ๋ง ์๋์? ๋ฒ๋ค์ฌ์ด์ฆ ์ต์ํ๋ฅผ ํตํ ์น ์ฑ๋ฅ ๊ฐ์
- ViteConf 2024