Skip to content

๐ŸŒ ๊นƒํ—ˆ๋ธŒ ์Šคํƒ€(ํ•ด์™ธ) โ€” ๊ธ€๋กœ๋ฒŒ ์˜คํ”ˆ์†Œ์Šค TOP 30 โ€‹

ํ•ด์™ธ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งŒ๋“  ๊นƒํ—ˆ๋ธŒ ์Šคํƒ€(Star) ์ตœ์ƒ์œ„ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ 30์„ ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋“ค์€ ์ „ ์„ธ๊ณ„ ๊ฐœ๋ฐœ ์ƒํƒœ๊ณ„์˜ ํ‘œ์ค€์ด ๋˜๊ฑฐ๋‚˜ ์—„์ฒญ๋‚œ ๊ธฐ์—ฌ๋ฅผ ํ•œ ๊ฒฐ๊ณผ๋ฌผ๋“ค์ž…๋‹ˆ๋‹ค. ๊ฐ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด ์•Œ์•„์•ผ ํ•  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์‚ฌ์ „ ์ง€์‹(Prerequisites) ์„ ์ƒ์„ธํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ๋‘์—ˆ์œผ๋‹ˆ, ์ฝ”๋“œ๋ฅผ ๋œฏ์–ด๋ณด๊ณ  ์‘์šฉํ•˜๋ฉฐ ์—ฌ๋Ÿฌ๋ถ„๋งŒ์˜ ์„œ๋น„์Šค๋กœ ๋ฐœ์ „์‹œ์ผœ ๋ณด์„ธ์š”!


1. freeCodeCamp ๐ŸŽ“ โ€‹

์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์›น ์ฝ”๋”ฉ ํ•™์Šต ํ”Œ๋žซํผGitHub: freeCodeCamp/freeCodeCamp

์ „ ์„ธ๊ณ„ ์ˆ˜๋ฐฑ๋งŒ ๋ช…์ด ๋ฌด๋ฃŒ๋กœ ์ฝ”๋”ฉ์„ ๋ฐฐ์šฐ๋Š” ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฆฌํ˜๋Ÿผ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. HTML/CSS, JavaScript, Python, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋ฐ์ดํ„ฐ ๋ถ„์„๊นŒ์ง€ ๋ฐฉ๋Œ€ํ•œ ์ฝ”์Šค๋ฅผ ๋ธŒ๋ผ์šฐ์ € ๋‚ด ์—๋””ํ„ฐ์—์„œ ์ฆ‰์‹œ ์‹ค์Šตํ•  ์ˆ˜ ์žˆ๋Š” ๋†€๋ผ์šด ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): React, Node.js, Gatsby(์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ), MongoDB, TypeScript
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ๊ธฐ(SSG)์˜ ์›๋ฆฌ: Gatsby๋ฅผ ์ด์šฉํ•ด ๋ฐฉ๋Œ€ํ•œ ๋งˆํฌ๋‹ค์šด ๊ธฐ๋ฐ˜์˜ ํ•™์Šต ์ฝ˜ํ…์ธ ๋ฅผ ์–ด๋–ป๊ฒŒ ์ดˆ๊ณ ์† ์ •์  ํŽ˜์ด์ง€๋กœ ๋นŒ๋“œํ•ด ๋‚ด๋Š”์ง€ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ชจ๋…ธ๋ ˆํฌ(Monorepo) ์•„ํ‚คํ…์ฒ˜: ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„, ์ปค๋ฆฌํ˜๋Ÿผ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜์˜ ์ €์žฅ์†Œ์—์„œ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌ๋˜๋Š”์ง€ ํŒจํ‚ค์ง€ ์˜์กด์„ฑ์„ ์ถ”์ ํ•ด ๋ณด์„ธ์š”.
    • ๋ธŒ๋ผ์šฐ์ € ๋‚ด ์ฝ”๋“œ ์‹คํ–‰(Sandbox): ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ฝ”๋“œ๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์ƒ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‹คํ–‰ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ์ƒŒ๋“œ๋ฐ•์Šค ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ๋งˆํฌ๋‹ค์šด ์ปค๋ฆฌํ˜๋Ÿผ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ ๋‚˜๋งŒ์˜ ์‚ฌ๋‚ด ๊ต์œก ํฌํ„ธ์ด๋‚˜ ์Šคํ„ฐ๋”” ๊ทธ๋ฃน์„ ์œ„ํ•œ ๋งž์ถคํ˜• ํ•™์Šต ํ”Œ๋žซํผ์„ ๊ตฌ์ถ•ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. Developer Roadmap ๐Ÿ—บ๏ธ โ€‹

์ง๊ตฐ๋ณ„ ๊ฐœ๋ฐœ ํ•™์Šต ๊ฒฝ๋กœ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๊ฐ€์ด๋“œGitHub: kamranahmedse/developer-roadmap

ํ”„๋ก ํŠธ์—”๋“œ, ๋ฐฑ์—”๋“œ, DevOps ๋“ฑ IT ์ง๊ตฐ๋ณ„๋กœ ๋ฌด์—‡์„ ์ˆœ์„œ๋Œ€๋กœ ํ•™์Šตํ•ด์•ผ ํ•˜๋Š”์ง€ ๋งˆ์ธ๋“œ๋งต ํ˜•ํƒœ๋กœ ์‹œ๊ฐํ™”ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฃผ๋„ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): React, TypeScript, TailwindCSS, Astro(์ตœ๊ทผ ๋„์ž…)
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • SVG ๋ฐ DOM ์กฐ์ž‘: ๊ฑฐ๋Œ€ํ•œ ๋กœ๋“œ๋งต์„ ์›น ๋ธŒ๋ผ์šฐ์ € ์œ„์— ๋ Œ๋”๋งํ•˜๊ธฐ ์œ„ํ•ด SVG ํŒจ์Šค์™€ HTML ๋…ธ๋“œ๋“ค์„ ์–ด๋–ป๊ฒŒ ๊ฒฐํ•ฉํ•˜๊ณ  ๋ฐฐ์น˜ํ•˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • JSON ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง: ๊ฐ ๊ธฐ์ˆ  ์Šคํƒ ๋…ธ๋“œ์˜ ์—ฐ๊ฒฐ ๊ด€๊ณ„(๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„)๋ฅผ JSON ํŒŒ์ผ๋กœ ์–ด๋–ป๊ฒŒ ๋ชจ๋ธ๋งํ•˜๊ณ  ํŒŒ์‹ฑํ•˜์—ฌ ํ™”๋ฉด์— ๊ทธ๋ฆฌ๋Š”์ง€ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
    • ์ƒํƒœ ๊ด€๋ฆฌ: ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋А ๋‹จ๊ณ„๊นŒ์ง€ ํ•™์Šตํ–ˆ๋Š”์ง€ ์ฒดํฌ๋ณด๋“œ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ์ƒํƒœ(State) ๋กœ์ง์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ์ œ๊ณต๋˜๋Š” JSON ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด ์ž…๋ง›์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•˜์—ฌ "์šฐ๋ฆฌ ํŒ€ ๋งž์ถคํ˜• ์‹ ๊ทœ ์ž…์‚ฌ์ž ์˜จ๋ณด๋”ฉ ์ฒดํฌ๋ฆฌ์ŠคํŠธ" ๋˜๋Š” ๊ธฐ์ˆ  ์„ฑ์žฅ ์•ฑ์œผ๋กœ ๊ฐ€๊ณตํ•ด ๋ณด์„ธ์š”.

3. Public APIs ๐ŸŒ โ€‹

๋ฌด๋ฃŒ ์˜คํ”ˆ API ์ด์ง‘ํ•ฉ ์นดํƒˆ๋กœ๊ทธGitHub: public-apis/public-apis

์ „ ์„ธ๊ณ„ ์ˆ˜์ฒœ ๊ฐœ์˜ ๋ฌด๋ฃŒยท์ธ์ฆ ๋ถˆํ•„์š” ์˜คํ”ˆ API ๋ชฉ๋ก์„ ๋ถ„์•ผ๋ณ„๋กœ ์ •๋ฆฌํ•œ ๊ฑฐ๋Œ€ํ•œ ์ฐธ์กฐ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. (์• ๋‹ˆ๋ฉ”์ด์…˜, ๋‚ ์”จ, ํ™˜์œจ, ๋จธ์‹ ๋Ÿฌ๋‹ ๋“ฑ)

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Markdown, Python (์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ์šฉ)
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • REST API์˜ ๊ธฐ๋ณธ ๊ฐœ๋…: HTTP ๋ฉ”์„œ๋“œ(GET, POST ๋“ฑ)์™€ JSON/XML ์‘๋‹ต ํฌ๋งท์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹์ด ์žˆ์–ด์•ผ ์ œ๊ณต๋˜๋Š” API๋“ค์„ ์›ํ™œํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • CORS (Cross-Origin Resource Sharing): ํ”„๋ก ํŠธ์—”๋“œ์—์„œ API๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋นˆ๋ฒˆํžˆ ๋ฐœ์ƒํ•˜๋Š” CORS ์ •์ฑ…์˜ ์˜๋ฏธ์™€ ์šฐํšŒ/ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ˆ™์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • Markdown ํŒŒ์‹ฑ: ์ด ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๋Š” ๋งˆํฌ๋‹ค์šด ํ‘œ๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํŒŒ์ด์ฌ์ด๋‚˜ JS ์Šคํฌ๋ฆฝํŠธ๋กœ ํŒŒ์‹ฑํ•˜์—ฌ DBํ™”ํ•˜๋Š” ์ •๊ทœํ‘œํ˜„์‹์ด๋‚˜ ํŒŒ์„œ ํ™œ์šฉ๋ฒ•์„ ์•Œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ์ œ๊ณต๋˜๋Š” ๋ชฉ๋ก์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‚ ์”จ ์•ฑ, ๋ช…์–ธ ์ƒ์„ฑ๊ธฐ, ๊ณ ์–‘์ด ์‚ฌ์ง„ ์•ฑ ๋“ฑ ํ† ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์ฆ‰์‹œ ํ™œ์šฉํ•ด ๋ณด์„ธ์š”.

4. JavaScript Algorithms ๐Ÿง  โ€‹

JS๋กœ ๊ตฌํ˜„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐยท์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ต๊ณผ์„œGitHub: trekhleb/javascript-algorithms

์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ํŠธ๋ฆฌ, ์ •๋ ฌ, ๋™์  ๊ณ„ํš๋ฒ• ๋“ฑ ์ปดํ“จํ„ฐ ๊ณผํ•™์˜ ํ•ต์‹ฌ ํ•„์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์„ ์ˆœ์ˆ˜ JavaScript๋กœ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•œ ํ•™์Šต ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): ์ˆœ์ˆ˜ JavaScript (ES6+), Jest (ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ)
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๋…ผ๋ฆฌ์  ๋ฐฐ๊ฒฝ: ์ฝ”๋“œ๋ฅผ ๋ณด๊ธฐ ์ „ ํ(Queue), ์Šคํƒ(Stack), ํŠธ๋ฆฌ(Tree), ๊ทธ๋ž˜ํ”„(Graph)๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์ด๋ก ์„ ๋จผ์ € ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผ ์ฝ”๋“œ๊ฐ€ ๋ˆˆ์— ๋“ค์–ด์˜ต๋‹ˆ๋‹ค.
    • ์‹œ๊ฐ„ ๋ณต์žก๋„ (Big-O Notation): ์ž‘์„ฑ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋กœ์ง์ด ์™œ ํšจ์œจ์ ์ธ์ง€(ํ˜น์€ ๋น„ํšจ์œจ์ ์ธ์ง€) ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด Big-O ํ‘œ๊ธฐ๋ฒ•์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ (TDD): ์ด ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋Š” Jest๋ฅผ ์‚ฌ์šฉํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ๋งค์šฐ ์ด˜์ด˜ํ•˜๊ฒŒ ์งœ์—ฌ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ฉด ์ฝ”๋“œ ๋ถ„์„์ด ์ˆ˜์›”ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋™์ž‘ํ•˜๋Š” ์›๋ฆฌ๋ฅผ Canvas API๋‚˜ CSS ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ์‹œ๊ฐํ™”ํ•ด ์ฃผ๋Š” **"์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„์ฃผ์–ผ๋ผ์ด์ € ์›น์„œ๋น„์Šค"**๋ฅผ ๋งŒ๋“ค์–ด ํฌํŠธํด๋ฆฌ์˜ค๋กœ ํ™œ์šฉํ•ด ๋ณด์„ธ์š”.

5. Bootstrap ๐ŸŽจ โ€‹

๋ฐ˜์‘ํ˜• UI ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ธ€๋กœ๋ฒŒ ํ‘œ์ค€GitHub: twbs/bootstrap

์ˆ˜๋งŽ์€ ์›น์‚ฌ์ดํŠธ์˜ ๋ผˆ๋Œ€๊ฐ€ ๋˜๋Š” ๊ธ€๋กœ๋ฒŒ ํ‘œ์ค€ ํ”„๋ก ํŠธ์—”๋“œ CSS ํˆดํ‚ท์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ, ๋ชจ๋‹ฌ, ๋ฒ„ํŠผ ๋“ฑ์„ ์†์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): SCSS (Sass), HTML, ์ˆœ์ˆ˜ JavaScript (ํ”Œ๋Ÿฌ๊ทธ์ธ์šฉ)
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • SCSS ์ „์ฒ˜๋ฆฌ๊ธฐ(Preprocessor): ๋ณ€์ˆ˜($), ๋ฏน์Šค์ธ(Mixin), ์ค‘์ฒฉ(Nesting) ๋“ฑ Sass/SCSS ๋ฌธ๋ฒ•์„ ๋Šฅ์ˆ™ํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ค„ ์•Œ์•„์•ผ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋œฏ์–ด๊ณ ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • 12 ๊ทธ๋ฆฌ๋“œ ์‹œ์Šคํ…œ: Flexbox ๊ธฐ๋ฐ˜์œผ๋กœ ํ™”๋ฉด์„ 12์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐ˜์‘ํ˜• ๋ ˆ์ด์•„์›ƒ์˜ ์›๋ฆฌ๋ฅผ ๊นŠ์ด ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • CSS ๋ฐฉ๋ฒ•๋ก : OOCSS, BEM ๊ฐ™์€ CSS ํด๋ž˜์Šค ๋„ค์ด๋ฐ ๊ทœ์น™ ๋ฐ ๋ชจ๋“ˆํ™” ์„ค๊ณ„ ์ฒ ํ•™์„ ์ดํ•ดํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ์ฒด๊ณ„์ ์œผ๋กœ ๋‹ค๊ฐ€์˜ต๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ์†Œ์Šค์ฝ”๋“œ ๋‚ด _variables.scss ํŒŒ์ผ์—์„œ ๋ธŒ๋žœ๋“œ ์ƒ‰์ƒ, ๋ฒ„ํŠผ ๋‘ฅ๊ธ€๊ธฐ ๋“ฑ์„ ํŠœ๋‹ํ•œ ํ›„ ๋นŒ๋“œํ•˜์—ฌ **"๋‚˜๋งŒ์˜ ์‚ฌ๋‚ด ์ „์šฉ UI ํ”„๋ ˆ์ž„์›Œํฌ"**๋กœ ๋ณ€ํ˜•ํ•ด ๋ณด์„ธ์š”.

6. React โš›๏ธ โ€‹

์›น UI ํŒจ๋Ÿฌ๋‹ค์ž„์„ ๋ฐ”๊พผ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌGitHub: facebook/react

Facebook(Meta)์ด ๊ฐœ๋ฐœํ•œ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ํ˜„์žฌ ์ „ ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋งŽ์ด, ๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ˆ  ์Šคํƒ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): JavaScript, Flow / TypeScript, Rollup
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • Virtual DOM (๊ฐ€์ƒ ๋”): React๊ฐ€ ์ƒํƒœ ๋ณ€๊ฒฝ ์‹œ ์‹ค์ œ DOM์„ ์กฐ์ž‘ํ•˜๊ธฐ ์ „ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋น„๊ต(Diffing)ํ•˜๋Š” ์›๋ฆฌ์— ๋Œ€ํ•œ ๊นŠ์€ ์ดํ•ด๊ฐ€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.
    • Reconciliation (์žฌ์กฐ์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜): Fiber ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ Œ๋”๋ง ์ž‘์—…์„ ์ค‘๋‹จ/์žฌ๊ฐœํ•˜๋Š” React ๋‚ด๋ถ€์˜ ํ•ต์‹ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์„ ์–ธ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ: "๋ฌด์—‡์„ ๊ทธ๋ฆด์ง€" ์ƒํƒœ(State)๋งŒ ์ •์˜ํ•˜๋ฉด UI๊ฐ€ ์•Œ์•„์„œ ์—…๋ฐ์ดํŠธ๋˜๋Š” ํ•จ์ˆ˜ํ˜• ์„ ์–ธ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์— ์ต์ˆ™ํ•ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: packages/react-reconciler ๋‚ด๋ถ€ ์ฝ”๋“œ๋ฅผ ๋œฏ์–ด๋ณด๊ณ  ์ปดํฌ๋„ŒํŠธ ๋ Œ๋”๋ง ๊ณผ์ •์„ ๋””๋ฒ„๊น… ํ•ด๋ณด๋Š” ์—ฐ์Šต์„ ํ•˜๊ฑฐ๋‚˜, ๋‚˜๋งŒ์˜ ์ž‘์€ React ๋ Œ๋”๋Ÿฌ ํด๋ก ์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”.

7. Vue.js ๐Ÿ’š โ€‹

์ ์ง„์  ๋„์ž…์ด ๊ฐ€๋Šฅํ•œ ์ง๊ด€์ ์ธ UI ํ”„๋ ˆ์ž„์›ŒํฌGitHub: vuejs/core

Evan You๊ฐ€ ๊ฐœ๋ฐœํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ํ•™์Šต ๊ณก์„ ์ด ๋งค์šฐ ์™„๋งŒํ•˜๊ณ  ๋ฌธ์„œํ™”๊ฐ€ ํ›Œ๋ฅญํ•ด ์‹ค๋ฌด ๋ฐ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ์–‘์ชฝ์—์„œ ๋„๋ฆฌ ์‚ฌ๋ž‘๋ฐ›๋Š” ์Šคํƒ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): TypeScript, Vite, Vitest
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • Reactivity (๋ฐ˜์‘์„ฑ) ์‹œ์Šคํ…œ: Vue 3์˜ ํ•ต์‹ฌ์ธ JavaScript Proxy ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๊ณ  UI๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์›๋ฆฌ๋ฅผ ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ปดํŒŒ์ผ๋Ÿฌ(Compiler) ๋ฉ”์ปค๋‹ˆ์ฆ˜: ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ํ…œํ”Œ๋ฆฟ(.vue ํŒŒ์ผ์˜ <template>)์ด ๋นŒ๋“œ ํƒ€์ž„์— ์–ด๋–ป๊ฒŒ ์ˆœ์ˆ˜ JavaScript ๋ Œ๋”๋ง ํ•จ์ˆ˜๋กœ ๋ณ€ํ™˜๋˜๋Š”์ง€ ๊ทธ ํŒŒ์‹ฑ ๊ณผ์ •์„ ์ดํ•ดํ•˜๋ฉด ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
    • Composition API: ๋กœ์ง์„ ํ•จ์ˆ˜ํ˜•์œผ๋กœ ์ž˜๊ฒŒ ์ชผ๊ฐœ์–ด ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” Composition API์˜ ํŒจํ„ด(setup ํ•จ์ˆ˜)์„ ์ˆ™์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: Vue์˜ ๋ฐ˜์‘์„ฑ ๋ชจ๋“ˆ(@vue/reactivity)์€ ํ”„๋ ˆ์ž„์›Œํฌ์— ์ข…์†๋˜์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•ด ๊ฐ€๋ฒผ์šด ๋ฐ”๋‹๋ผ JS ์•ฑ์˜ ์ƒํƒœ ๊ด€๋ฆฌ ๋„๊ตฌ๋กœ ์‘์šฉํ•ด ๋ณด์„ธ์š”.

8. TensorFlow ๐Ÿค– โ€‹

๊ตฌ๊ธ€์ด ๋งŒ๋“  ๋”ฅ๋Ÿฌ๋‹/๋จธ์‹ ๋Ÿฌ๋‹ ํ•ต์‹ฌ ์˜คํ”ˆ์†Œ์ŠคGitHub: tensorflow/tensorflow

์ด๋ฏธ์ง€ ์ธ์‹, ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ, ์ƒ์„ฑํ˜• AI ๋“ฑ ๋‹ค์–‘ํ•œ ์ธ๊ณต์ง€๋Šฅ ๋ชจ๋ธ์„ ํ›ˆ๋ จ์‹œํ‚ค๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ๊ธ€์ด ์ฃผ๋„ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): C++, Python, CUDA(GPU ๊ฐ€์†)
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ํ…์„œ(Tensor)์™€ ์—ฐ์‚ฐ ๊ทธ๋ž˜ํ”„: ์Šค์นผ๋ผ, ๋ฒกํ„ฐ, ํ–‰๋ ฌ์„ ์•„์šฐ๋ฅด๋Š” ๋‹ค์ฐจ์› ๋ฐฐ์—ด(Tensor) ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ์™€, ์ด๋“ค์ด ๋…ธ๋“œ๋ฅผ ๊ฑฐ์น˜๋ฉฐ ๊ณ„์‚ฐ๋˜๋Š” ๋ฐ์ดํ„ฐ ํ”Œ๋กœ์šฐ ๊ทธ๋ž˜ํ”„๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์—ญ์ „ํŒŒ(Backpropagation)์™€ ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•: ๋ชจ๋ธ์ด ์˜ค์ฐจ๋ฅผ ์ค„์—ฌ๊ฐ€๋ฉฐ ํ•™์Šตํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฏธ๋ถ„ ์ˆ˜ํ•™ ๋ฐ ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์›๋ฆฌ๋ฅผ ์•Œ์•„์•ผ ์ฝ”๋“œ๊ฐ€ ์ดํ•ด๋ฉ๋‹ˆ๋‹ค.
    • ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”์™€ C++ ๋ฐ”์ธ๋”ฉ: ์—ฐ์‚ฐ ์„ฑ๋Šฅ ๊ทน๋Œ€ํ™”๋ฅผ ์œ„ํ•ด ๋ฐ‘๋ฐ”๋‹ฅ์€ C++๋กœ ์ž‘์„ฑ๋˜๊ณ  ๊ฒ‰์€ Python ๋ž˜ํผ๋กœ ๊ฐ์‹ธ์ ธ ์žˆ๋Š” ์ด์ค‘ ๊ตฌ์กฐ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ์ดˆ๋ณด์ž๋ผ๋ฉด ์ฝ”์–ด ์†Œ์Šค์ฝ”๋“œ๋ณด๋‹ค๋Š” tensorflow.js ๋ธŒ๋žœ์น˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์›น์บ ์œผ๋กœ ๋™์ž‘์„ ์ธ์‹ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์ „์šฉ ๋ฏธ๋‹ˆ AI ์›น ์„œ๋น„์Šค๋ฅผ ์ œ์ž‘ํ•ด ๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

9. VS Code ๐Ÿ–Š๏ธ โ€‹

๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ ์˜คํ”ˆ์†Œ์Šค ์ฝ”๋“œ ํŽธ์ง‘๊ธฐGitHub: microsoft/vscode

Electron ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์„ธ๊ณ„ ์ตœ๋‹ค ์‚ฌ์šฉ ์ ์œ ์œจ์˜ ์ฝ”๋“œ ์—๋””ํ„ฐ์ž…๋‹ˆ๋‹ค. ์›น ๊ธฐ์ˆ ๋งŒ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋ฐ์Šคํฌํ†ฑ ์ˆ˜์ค€์˜ ๊ณ ์„ฑ๋Šฅ ์•ฑ์„ ๋งŒ๋“œ๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ๊ต๊ณผ์„œ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): TypeScript, Electron, Node.js
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • Electron ์•„ํ‚คํ…์ฒ˜: ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋Ÿฌ ํ”„๋กœ์„ธ์Šค์™€ Node.js ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ IPC ํ†ต์‹ ์„ ํ†ตํ•ด ๋ฐ์Šคํฌํ†ฑ ์ž์›์— ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•˜๋Š”์ง€ ์›๋ฆฌ๋ฅผ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • LSP (Language Server Protocol): ๋‹ค์–‘ํ•œ ์–ธ์–ด์˜ ์ž๋™ ์™„์„ฑ, ๋ฌธ๋ฒ• ๊ฒ€์‚ฌ ๋“ฑ์„ ํ†ตํ•ฉ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ ๊ณ ์•ˆํ•œ LSP ์•„ํ‚คํ…์ฒ˜์˜ ์„ค๊ณ„ ํŒจํ„ด์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋Œ€๊ทœ๋ชจ TypeScript ๋ชจ๋…ธ๋ ˆํฌ: ์ˆ˜๋ฐฑ๋งŒ ์ค„์˜ TypeScript ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ถฉ๋Œ ์—†์ด ์ปดํŒŒ์ผ๋˜๊ณ  ๋ชจ๋“ˆํ™”๋˜์–ด ์žˆ๋Š”์ง€ ์˜์กด์„ฑ ์ฃผ์ž…(DI) ํŒจํ„ด์„ ์ค‘์‹ฌ์œผ๋กœ ํ•™์Šตํ•ด ๋ณด์„ธ์š”.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: extensions/ ํด๋”๋ฅผ ์ฐธ์กฐํ•ด ํ‰์†Œ ๋ถˆํŽธํ–ˆ๋˜ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ž๋™ํ™”ํ•ด ์ฃผ๋Š” ๋‚˜๋งŒ์˜ VS Code ํ™•์žฅ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฐœ๋ฐœํ•ด ๋งˆ์ผ“์— ์ถœ์‹œํ•ด ๋ณด์„ธ์š”.

10. Linux Kernel ๐Ÿง โ€‹

์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ์œ„๋Œ€ํ•œ ์˜คํ”ˆ์†Œ์Šค ์šด์˜์ฒด์ œ ์ปค๋„GitHub: torvalds/linux

Linus Torvalds๊ฐ€ ์ตœ์ดˆ ๊ฐœ๋ฐœํ•˜์—ฌ ํ˜„์žฌ ์ „ ์„ธ๊ณ„ ์„œ๋ฒ„, ์•ˆ๋“œ๋กœ์ด๋“œ ์Šค๋งˆํŠธํฐ, ์ž„๋ฒ ๋””๋“œ ๊ธฐ๊ธฐ๋ฅผ ์ง€๋ฐฐํ•˜๊ณ  ์žˆ๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ ์†Œ์Šค์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): C, Assembly
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ์ปค๋„ ๊ณต๊ฐ„(Kernel Space) vs ์œ ์ € ๊ณต๊ฐ„(User Space): ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ•˜๋“œ์›จ์–ด ์‚ฌ์ด๋ฅผ ์ค‘์žฌํ•˜๋Š” ์ปค๋„์˜ ๊ถŒํ•œ ๊ณ„์ธต๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ์›๋ฆฌ๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์‹œ์Šคํ…œ ์ฝœ(System Call): ํŒŒ์ผ ์ฝ๊ธฐ, ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๋“ฑ ์œ ์ € ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„์— ์ž‘์—…์„ ์š”์ฒญํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์ˆ™์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ: ํฌ์ธํ„ฐ๋ฅผ ํ™œ์šฉํ•œ ์ €์ˆ˜์ค€ ๋ฉ”๋ชจ๋ฆฌ ์ œ์–ด, ์Šค์ผ€์ค„๋Ÿฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ธํ„ฐ๋ŸฝํŠธ(Interrupt) ์ฒ˜๋ฆฌ ๋“ฑ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์™€ ์šด์˜์ฒด์ œ ํ•ต์‹ฌ ์ด๋ก ์— ๋Œ€ํ•œ ๊นŠ์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๊ฐ€ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ์ „์ฒด ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. drivers/ ํ•˜์œ„ ํด๋”์—์„œ ๊ฐ„๋‹จํ•œ USB ๋งˆ์šฐ์Šค๋‚˜ ํ‚ค๋ณด๋“œ์˜ ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„ ์†Œ์Šค์ฝ”๋“œ ํ•˜๋‚˜๋ฅผ ๋ˆ๊ธฐ ์žˆ๊ฒŒ ๋ถ„์„ํ•˜๋ฉฐ ํ•˜๋“œ์›จ์–ด ์ œ์–ด์˜ ๊ฐ์„ ์žก์•„๋ณด์„ธ์š”.

11. Kubernetes โ˜ธ๏ธ โ€‹

๋Œ€๊ทœ๋ชจ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์—”์ง„GitHub: kubernetes/kubernetes

ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…๊ณผ MSA(๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜)์˜ ๋Œ€๋ช…์‚ฌ๋กœ, ์ˆ˜๋ฐฑ์ˆ˜์ฒœ ๊ฐœ์˜ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋ฐฐํฌ ๋ฐ ์Šค์ผ€์ผ๋ง์„ ์ž๋™ํ™”ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ์ œ์–ด ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Go
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ์„ ์–ธ์  API (Declarative API): ์‹œ์Šคํ…œ์ด ์›ํ•˜๋Š” ์ƒํƒœ(Desired State)๋ฅผ YAML ์ •์˜ํ•˜๊ณ  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ปจํŠธ๋กค๋Ÿฌ ๋ฃจํ”„๊ฐ€ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • Control Plane vs Worker Node: ํด๋Ÿฌ์Šคํ„ฐ ํ†ต์ œ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋งˆ์Šคํ„ฐ ์ปดํฌ๋„ŒํŠธ(apiserver, etcd)์™€ ์‹ค์ œ ํŒŒ๋“œ๊ฐ€ ๋œจ๋Š” ๋…ธ๋“œ ์—์ด์ „ํŠธ(kubelet) ๊ฐ„์˜ ํ†ต์‹  ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋„คํŠธ์›Œํ‚น ๋ชจ๋ธ: ํฌํŠธ ์ถฉ๋Œ ์—†์ด ๋ชจ๋“  ํŒŒ๋“œ๊ฐ€ ๊ณ ์œ  IP๋ฅผ ๋ถ€์—ฌ๋ฐ›๊ณ  ๋ผ์šฐํŒ…๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ํ†ต์‹  ์›๋ฆฌ๋ฅผ ์Šต๋“ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: Minikube๋‚˜ Kind๋ฅผ ๋กœ์ปฌ์— ์„ค์น˜ํ•ด ๋‚˜๋งŒ์˜ ๊ฐ„์ด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ์ง์ ‘ ์ง  ์Šคํ”„๋ง๋ถ€ํŠธ/Node.js ์›น์•ฑ์„ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐ ์ž๊ฐ€ ์น˜์œ (Self-healing)์‹œํ‚ค๋Š” ์‹ค์Šต์„ ์ˆ˜ํ–‰ํ•ด ๋ณด์„ธ์š”.

12. Docker ๐Ÿณ โ€‹

๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ๊ฐ€์ƒํ™” ํ”Œ๋žซํผGitHub: moby/moby (๋„์ปค ์—”์ง„์˜ ๊ธฐ๋ฐ˜ ์˜คํ”ˆ์†Œ์Šค)

ํ™˜๊ฒฝ ์„ค์ •์˜ ์ฐจ์ด๋กœ ์ธํ•ด ํ”„๋กœ๊ทธ๋žจ์ด ์˜ค์ž‘๋™ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•˜์ดํผ๋ฐ”์ด์ € ์—†๋Š” ์šด์˜์ฒด์ œ ์ˆ˜์ค€ ๊ฐ€์ƒํ™”๋ฅผ ํ†ตํ•ด ์™„์ „ํžˆ ํ•ด๊ฒฐํ•œ ๊ธ€๋กœ๋ฒŒ ํ•„์ˆ˜ ๊ฐœ๋ฐœ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Go
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ๋ฆฌ๋ˆ…์Šค ๋„ค์ž„์ŠคํŽ˜์ด์Šค(Namespaces)์™€ Cgroups: ํ”„๋กœ์„ธ์Šค, ํŒŒ์ผ์‹œ์Šคํ…œ, ๋„คํŠธ์›Œํฌ ์˜์—ญ์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ณ ๋ฆฝ์‹œํ‚ค๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€, CPU/๋ฉ”๋ชจ๋ฆฌ ํ•˜๋“œ์›จ์–ด ์ž์›์„ ์ œํ•œํ•˜๋Š” ์ปค๋„ ํ†ต์ œ ๊ธฐ์ˆ (Cgroups)์˜ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์œ ๋‹ˆ์˜จ ํŒŒ์ผ ์‹œ์Šคํ…œ (UnionFS): ๋ ˆ์ด์–ด ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒน๊ฒน์ด ์Œ“์•„ ์˜ฌ๋ ค ํ•˜๋‚˜์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•˜๋Š” ํšจ์œจ์ ์ธ ์ €์žฅ์†Œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ˆ™์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ํ†ต์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐฐํฌ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด, ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” DB/์„œ๋ฒ„ ํ™˜๊ฒฝ์˜ Dockerfile ๋นŒ๋“œ ๊ณผ์ •์„ ์ตœ์ ํ™”(๋ ˆ์ด์–ด ์บ์‹ฑ, ๋ฉ€ํ‹ฐ์Šคํ…Œ์ด์ง€ ๋นŒ๋“œ)ํ•ด ์ตœ์  ์šฉ๋Ÿ‰์˜ ์ด๋ฏธ์ง€๋ฅผ ์ œ์ž‘ํ•ด ๋ณด์„ธ์š”.

13. Next.js ๐Ÿ“ โ€‹

React ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR) ๋ชจ๋˜ ๋ฉ”ํƒ€ ํ”„๋ ˆ์ž„์›ŒํฌGitHub: vercel/next.js

Vercel ํŒ€์ด ๋ฆฌ๋“œํ•˜๋Š” React ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(CSR) ์ผ๋ณ€๋„์˜€๋˜ ์›น ๊ฐœ๋ฐœ ํŒจ๋Ÿฌ๋‹ค์ž„์— ๋ชจ๋˜ SSR/SSG ๊ธฐ์ˆ ์„ ๊ฒฐํ•ฉํ•ด ๊ณ ์„ฑ๋Šฅ ์›น ์„œ๋น„์Šค ๊ตฌ์ถ•์˜ ์ •์„์ด ๋œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): TypeScript, JavaScript, Rust(SWC ์ปดํŒŒ์ผ๋Ÿฌ ๊ธฐ๋ฐ˜), React
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ Œ๋”๋ง: SSR (Server-Side), SSG (Static Site), ISR (Incremental Static), CSR (Client-Side) ๋ Œ๋”๋ง์˜ ๊ตฌ์ฒด์ ์ธ ๊ฐ€๋™ ๋ฐฉ์‹๊ณผ ์ƒํ™ฉ๋ณ„ ์ ์šฉ ๊ธฐ๋ฒ•์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • React Server Components (RSC): ์„œ๋ฒ„์—์„œ ์ปดํฌ๋„ŒํŠธ ๋ Œ๋”๋ง์„ ๋ฏธ๋ฆฌ ๋งˆ์ณ ๋ธŒ๋ผ์šฐ์ € JS ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ œ๋กœํ™”ํ•˜๋Š” ๋ชจ๋˜ ์›น ๊ธฐ์ˆ ์˜ ํ•ต์‹ฌ ์ž‘๋™ ์›๋ฆฌ๋ฅผ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ผ์šฐํŒ… ์‹œ์Šคํ…œ (App Router): ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜์˜ ์ค‘์ฒฉ ๋ผ์šฐํŒ… ๋ ˆ์ด์•„์›ƒ ์„ค๊ณ„ ๋ฐฉ์‹์„ ๋งˆ์Šคํ„ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ๊นƒํ—ˆ๋ธŒ ์˜คํ”ˆ API๋ฅผ ์—ฐ๋™ํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” SEO(๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”) ์ค‘์‹ฌ์˜ ๊ธฐ์ˆ  ๋ฌธ์„œ ์•„์นด์ด๋ธŒ ๋ธ”๋กœ๊ทธ๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ๋น ๋ฅธ ๋กœ๋”ฉ๊ณผ ๊ฒ€์ƒ‰ ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•ด ๋ณด์„ธ์š”.

14. TypeScript ๐ŸŸฆ โ€‹

์ •์  ํƒ€์ž…์„ ํƒ‘์žฌํ•œ ์•ˆ์ „ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ฏธ๋ž˜GitHub: microsoft/TypeScript

๋™์  ํƒ€์ดํ•‘์œผ๋กœ ์ธํ•ด ๋Ÿฐํƒ€์ž„ ๋ฒ„๊ทธ๊ฐ€ ์žฆ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ƒํƒœ๊ณ„์— ์—„๊ฒฉํ•œ ์ •์  ํƒ€์ž… ์‹œ์Šคํ…œ์„ ๋„์ž…ํ•˜์—ฌ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋Œ€๊ทœ๋ชจ ์•ฑ ๊ฐœ๋ฐœ์˜ ๊ตฌ์„ธ์ฃผ๊ฐ€ ๋œ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): TypeScript, Rust
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ๊ตฌ์กฐ์  ํƒ€์ดํ•‘ (Structural Typing): ๋ช…์‹œ์  ์ƒ์† ๊ตฌ์กฐ๊ฐ€ ์•„๋‹Œ ๋ฉค๋ฒ„์˜ ํ˜•ํƒœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ˜ธํ™˜์„ฑ์„ ํŒ๋ณ„ํ•˜๋Š” ๋• ํƒ€์ดํ•‘ ๊ธฐ๋ฐ˜ ์ •์  ํƒ€์ž… ์ถ”๋ก  ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ณ ๊ธ‰ ์ œ๋„ค๋ฆญ & ์กฐ๊ฑด๋ถ€ ํƒ€์ž…: ์ œ๋„ค๋ฆญ(Generic)๊ณผ infer, conditional type ๋“ฑ์„ ํ™œ์šฉํ•ด ์ž…๋ ฅ ํƒ€์ž…์˜ ๊ตฌ์กฐ๋ฅผ ๋™์ ์œผ๋กœ ๊ฒฐ์ • ๋ฐ ์ถ”๋ก ํ•˜๋Š” ๊ณ ๊ธ‰ ๋ฌธ๋ฒ• ์„ค๊ณ„ ํŒจํ„ด์„ ์ตํ˜€์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ปดํŒŒ์ผ๋Ÿฌ AST ํŒŒ์‹ฑ: ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ํŒŒ์‹ฑ๋˜์–ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ํŠธ๋žœ์ŠคํŒŒ์ผ(Transpile)๋˜๋Š” ์›๋ฆฌ๋ฅผ ๋ถ„์„ํ•ด ๋ณด์„ธ์š”.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: tsconfig.json์—์„œ strict: true ์˜ต์…˜์„ ์ผœ๊ณ , ๋Ÿฐํƒ€์ž„ ํƒ€์ž… ์•ˆ์ „์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ปค์Šคํ…€ ํƒ€์ž… ๊ฐ€๋“œ(Type Guards) ๋ฐ ์œ ๋‹ˆ์˜จ ํƒ€์ž…์„ 100% ์„ค๊ณ„ํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ์œจ์„ 'Zero'์— ๊ฐ€๊น๊ฒŒ ์ค„์ด๋Š” ๋ฆฌํŒฉํ† ๋ง ํ›ˆ๋ จ์„ ํ•ด๋ณด์„ธ์š”.

15. Rust ๐Ÿฆ€ โ€‹

๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „์„ฑ๊ณผ ๊ณ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•˜๋Š” ๋ชจ๋˜ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ดGitHub: rust-lang/rust

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ ์—†์ด๋„ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์™€ ๋™์‹œ์„ฑ ๋ฒ„๊ทธ๋ฅผ ์ฐจ๋‹จํ•˜๋Š” '์†Œ์œ ๊ถŒ' ๊ฐœ๋…์„ ํ†ตํ•ด C/C++์„ ๋Œ€์ฒดํ•˜๋ฉฐ ๊ธ€๋กœ๋ฒŒ ๊ณ ์„ฑ๋Šฅ ์—”์ง„ ๋ฐ ์›น ์ธํ”„๋ผ ๊ธฐ์ˆ ์„ ์žฌ์ •์˜ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Rust, LLVM compiler infrastructure
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ์†Œ์œ ๊ถŒ๊ณผ ๋นŒ๋ฆผ (Ownership & Borrowing): ๋ณ€์ˆ˜๊ฐ€ ๊ฐ’์˜ ์ฃผ์ธ์ด ๋˜๋Š” ์†Œ์œ ๊ถŒ, ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ๋นŒ๋ฆผ ๊ถŒํ•œ(๋ถˆ๋ณ€/๊ฐ€๋ณ€), ๊ทธ๋ฆฌ๊ณ  ์œ ํšจ ๊ธฐ๊ฐ„์„ ๊ทœ์ •ํ•˜๋Š” ์ˆ˜๋ช…(Lifetimes) ๊ฐœ๋…์„ ์ •๊ตํ•˜๊ฒŒ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ œ๋กœ ๋น„์šฉ ์ถ”์ƒํ™”: ๊ณ ์ˆ˜์ค€์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋”๋ผ๋„ ์ตœ์ ํ™” ์‹œ ์–ด์…ˆ๋ธ”๋ฆฌ ์ˆ˜์ค€์˜ ์ตœ์†Œ ํ•˜๋“œ์›จ์–ด ์ž์›์œผ๋กœ ๋ณ€ํ™˜๋˜๋Š” ์ปดํŒŒ์ผ ๊ธฐ๋ฒ•์„ ํ•™์Šตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋™์‹œ์„ฑ ์•ˆ์ „์„ฑ (Concurrency Safety): ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์Šค(Data Race)๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ปดํŒŒ์ผ ํƒ€์ž„์— ๊ฐ•์ œ๋˜๋Š” Send ๋ฐ Sync ํŠธ๋ ˆ์ดํŠธ ์†์„ฑ์„ ๋งˆ์Šคํ„ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ๋„ C++ ๊ธ‰ ์„ฑ๋Šฅ์„ ๋‚ผ ์ˆ˜ ์žˆ๋„๋ก Rust ์ฝ”๋“œ๋ฅผ WebAssembly(WASM)๋กœ ์ปดํŒŒ์ผํ•˜๊ณ , ์ด๋ฅผ JS ํ™˜๊ฒฝ๊ณผ ์—ฐ๋™ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ์ด๋ฏธ์ง€ ํ•„ํ„ฐ ์—๋””ํ„ฐ๋ฅผ ๊ฐœ๋ฐœํ•ด ๊ณ ์† ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์‹คํ—˜ํ•ด ๋ณด์„ธ์š”.

16. Flutter ๐Ÿ“ฑ โ€‹

๋‹จ์ผ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋ฉ€ํ‹ฐํ”Œ๋žซํผ ๋ชจ๋ฐ”์ผ/์›น UI ํ”„๋ ˆ์ž„์›ŒํฌGitHub: flutter/flutter

๊ตฌ๊ธ€์ด ๋ฆฌ๋“œํ•˜๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋„ค์ดํ‹ฐ๋ธŒ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋Œ€์‹  Skia/Impeller ์ž์ฒด ๊ทธ๋ž˜ํ”ฝ ์—”์ง„์„ ํ†ตํ•ด ์•ˆ๋“œ๋กœ์ด๋“œ, iOS, ์›น, ๋ฐ์Šคํฌํ†ฑ ๋“ฑ ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ 60FPS์˜ ๋ฌด๊ฒฐ์  UI๋ฅผ ๊ทธ๋ ค๋‚ด๋Š” ๊ณ ์„ฑ๋Šฅ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Dart, C++, Skia/Impeller
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ์„ ์–ธ์  ๋ Œ๋”๋ง๊ณผ ์œ„์ ฏ ํŠธ๋ฆฌ: State์— ๋งž์ถฐ UI๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ์œ„์ ฏ์˜ ์ƒ๋ช…์ฃผ๊ธฐ์™€ Widget-Element-RenderObject๋กœ ๊ตฌ์„ฑ๋œ Flutter ๋‚ด๋ถ€์˜ ์‚ผ์ค‘ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•ด์•ผ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํ”Œ๋žซํผ ์ฑ„๋„: ๋„ค์ดํ‹ฐ๋ธŒ OS ๊ธฐ๋Šฅ(์นด๋ฉ”๋ผ, ๋ธ”๋ฃจํˆฌ์Šค ๋“ฑ) ์ œ์–ด๋ฅผ ์œ„ํ•ด ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ(Kotlin/Swift)์™€ ๋ฉ”์‹œ์ง€๋ฅผ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ „์†กํ•˜๋Š” ์ฑ„๋„๋ง ์›๋ฆฌ๋ฅผ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: Dart์˜ ์„ ์–ธ์  ๋ฌธ๋ฒ•๊ณผ ๋ฐ˜์‘ํ˜• ์ƒํƒœ ๊ด€๋ฆฌ ํŒจํ‚ค์ง€(์˜ˆ: Provider, Bloc)๋ฅผ ์œตํ•ฉํ•˜์—ฌ, ๋””๋ฐ”์ด์Šค์˜ ํ•˜๋“œ์›จ์–ด(์ž์ด๋กœ ์„ผ์„œ ๋“ฑ) ์ •๋ณด๋ฅผ ์ฝ์–ด์™€ ์‹ค์‹œ๊ฐ„ ๊ทธ๋ž˜ํ”„๋กœ ๊ทธ๋ ค์ฃผ๋Š” ํฌ๋กœ์Šคํ”Œ๋žซํผ IoT ๋ชจ๋‹ˆํ„ฐ๋ง ์•ฑ์„ ์ง์ ‘ ๊ตฌ์„ฑํ•ด ๋ณด์„ธ์š”.

17. Node.js ๐ŸŸข โ€‹

V8 ์—”์ง„ ๊ธฐ๋ฐ˜์˜ ์ด๋ฒคํŠธ ๋“œ๋ผ์ด๋ธ JavaScript ๋Ÿฐํƒ€์ž„GitHub: nodejs/node

๋ธŒ๋ผ์šฐ์ € ๋‚ด์— ๊ฐ‡ํ˜€์žˆ๋˜ JavaScript๋ฅผ ์„œ๋ฒ„์‚ฌ์ด๋“œ์˜ ๊ฐ•๋ ฅํ•œ ๋ฒ”์šฉ ์Šคํƒ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ฆฐ ์ฃผ์—ญ์œผ๋กœ, ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ๋ฃจํ”„ ๋ชจ๋ธ ๊ธฐ๋ฐ˜์˜ ๋›ฐ์–ด๋‚œ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์›น ๋ฐฑ์—”๋“œ ์‹ค๋ฌด์˜ ์ค‘์ถ”์  ์Šคํƒ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): C++, JavaScript, V8 Engine, libuv
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ์ด๋ฒคํŠธ ๋ฃจํ”„์™€ ๋…ผ๋ธ”๋กœํ‚น I/O: libuv๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ฐ์ดํ„ฐ I/O ์ž‘์—…์„ ์‹œ์Šคํ…œ ์ปค๋„์— ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์œ„์ž„ํ•˜๊ณ , ์™„๋ฃŒ๋œ ์ด๋ฒคํŠธ ์ฝœ๋ฐฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ด๋ฒคํŠธ ๋ฃจํ”„์˜ ๊ฐ ๋‹จ๊ณ„(Timers, Poll, Check ๋“ฑ)๋ฅผ ์•Œ์•„์•ผ ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Node.js ์ŠคํŠธ๋ฆผ(Streams): ๋ฉ”๋ชจ๋ฆฌ์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋”ฉํ•˜๋Š” ๋Œ€์‹  ๋ฉ์–ด๋ฆฌ(Chunk) ๋‹จ์œ„๋กœ ์ฝ๊ณ  ์“ฐ๋Š” ํŒŒ์ผ ์ฒ˜๋ฆฌ ๋ฐ ๋„คํŠธ์›Œํฌ ์ŠคํŠธ๋ฆฌ๋ฐ ๊ธฐ๋ฒ•์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ๋ฉ”๋ชจ๋ฆฌ ๊ณผ๋ถ€ํ•˜๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ์ฒญํฌ(Chunk) ์ŠคํŠธ๋ฆผ ํŒŒ์ดํ”„๋ผ์ธ์„ ์„ค๊ณ„ํ•˜๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ€์šฉ๋Ÿ‰ ๋กœ๊ทธ ํŒŒ์ผ์ด๋‚˜ ๋Œ€ํ˜• ๋™์˜์ƒ ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ๋ณต์‚ฌ ๋ฐ ์••์ถ• ์ „์†กํ•˜๋Š” ๋„คํŠธ์›Œํฌ ํŒŒ์ผ ๋ฐฑ์—… ์ž๋™ํ™” ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•ด ๋ณด์„ธ์š”.

18. Awesome ๐Ÿ˜Ž โ€‹

๋ถ„์•ผ๋ณ„ ๊ฐœ๋ฐœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๊ฟ€ํŒ ์—„์„  ๊ฐ€์ด๋“œ๋ถGitHub: sindresorhus/awesome

์ „ ์„ธ๊ณ„ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์ง€ํ˜œ๋ฅผ ์ง‘๋Œ€์„ฑํ•œ ํ๋ ˆ์ด์…˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ํ‘œ์ค€์œผ๋กœ, ํŠน์ • ์–ธ์–ด, ํ”Œ๋žซํผ, ๋„๊ตฌ๋ฅผ ๋„์ž…ํ•  ๋•Œ ๊ฒ€์ฆ๋œ ๊ณ ํ’ˆ์งˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ๊ธฐ์ˆ  ๋ฆฌ์†Œ์Šค๋ฅผ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ ๋„์šฐ๋ฏธ ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Markdown, Git
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • Git ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ(Pull Request) ์ ˆ์ฐจ: ๋‹ค๋ฅธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋‚ด๊ฐ€ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•œ ์˜คํ”ˆ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด๋‹ฌ๋ผ๊ณ  ๊ธฐ์—ฌํ•˜๋Š” PR ๋ฐ ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด์„ ์Šค ๊ฒ€์ฆ ๋ฐฉ์‹์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„๋ฅ˜ ์„ค๊ณ„ ๋ฐ ๋งˆํฌ์—… ๊ทœ์น™: ๋ฐฉ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณต์žก๋„ ์—†์ด ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒด๊ณ„์ ์ธ ํŠธ๋ฆฌํ˜• ๋ชฉ์ฐจ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฌธ์„œ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ๋ฅผ ํ•™์Šตํ•ด ๋‘๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ์‹ ๊ทœ ์–ธ์–ด๋‚˜ ์ƒˆ๋กœ์šด DB(์˜ˆ: Vector DB ๋“ฑ) ์Šคํƒ์— ์ง„์ž…ํ•  ๋•Œ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰ ๋Œ€์‹  ํ•ด๋‹น ์ฃผ์ œ์˜ Awesome ๋ฆฌ์ŠคํŠธ๋ฅผ ์ตœ์ดˆ์˜ ๋ฐ”์ด๋ธ”๋กœ ์ฐธ์กฐํ•˜์—ฌ, ๋น„๊ณต์‹/๊ฒ€์ฆ๋˜์ง€ ์•Š์€ ์ฐŒ๊บผ๊ธฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด๋Š” ์•ˆ๋ชฉ์„ ๊ธฐ๋ฅด์„ธ์š”.

19. Git ๐Ÿ“ โ€‹

์„ธ๊ณ„ ๊ฐœ๋ฐœ ์ƒํƒœ๊ณ„์˜ ๊ธฐ์ดˆ ์ธํ”„๋ผ๊ฐ€ ๋œ ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œGitHub: git/git

Linus Torvalds๊ฐ€ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋‹จ 2์ฃผ์ผ ๋งŒ์— ์„ค๊ณ„ํ•œ ์ „์„ค์ ์ธ ์†Œ์Šค์ฝ”๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋„๊ตฌ๋กœ, ๋กœ์ปฌ ๋…๋ฆฝ ์ปค๋ฐ‹๊ณผ ๊ฐ•๋ ฅํ•œ ๋ธŒ๋žœ์นญ ๋ณ‘ํ•ฉ ๊ธฐ๋Šฅ์œผ๋กœ ํ˜‘์—…์˜ ๊ธฐ์ค€์ด ๋œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): C, Shell Scripts
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • DAG (์œ ํ–ฅ ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„) ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ: Git ๋‚ด๋ถ€์˜ ๋ชจ๋“  ์ปค๋ฐ‹์ด ์ด์ „ ๋ถ€๋ชจ ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ ์–ฝํ˜€์žˆ๋Š” ์œ ํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ์ˆ˜ํ•™์  ๋ชจ๋ธ์„ ์ดํ•ดํ•ด์•ผ ๋ฆฌ๋ฒ ์ด์Šค์™€ ๋ณ‘ํ•ฉ์˜ ์›๋ฆฌ๋ฅผ ๊ฟฐ๋šซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Git ์˜ค๋ธŒ์ ํŠธ ๋ชจ๋ธ: ํŒŒ์ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” blob, ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ง€๋‹ˆ๋Š” tree, ๊ทธ๋ฆฌ๊ณ  ์ปค๋ฐ‹ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์€ commit ์˜ค๋ธŒ์ ํŠธ๊ฐ€ .git/objects/ ํด๋”์— ํ•ด์‹œ ํŒŒ์ผ๋กœ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋งคํ•‘๋˜๋Š”์ง€ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ํ˜‘์—… ์ค‘ ๋ฐœ์ƒํ•œ ๋ณต์žกํ•œ ์†Œ์Šค์ฝ”๋“œ ์ถฉ๋Œ์ด๋‚˜ ์ž˜๋ชป๋œ ๋จธ์ง€๋กœ ์ธํ•ด ์ฝ”๋“œ๊ฐ€ ์œ ์‹ค๋˜์—ˆ์„ ๋•Œ, ์ง€์›Œ์ง„ ์ปค๋ฐ‹์˜ ํ•ด์‹œ ๊ฒฝ๋กœ๋ฅผ ์˜ํ˜ผ๊นŒ์ง€ ์ถ”์ ํ•ด ๋ณต์›ํ•ด์ฃผ๋Š” git reflog ๊ธฐ๋Šฅ์„ ์‹ค์Šตํ•˜์—ฌ ๋ฒ„์ „ ํŠธ๋ž™ํ‚น ๋‚ด๋ถ€ ์—”์ง„์˜ ๊ฐ•๋ ฅํ•จ์„ ์ฒดํ—˜ํ•ด ๋ณด์„ธ์š”.

20. Tailwind CSS ๐ŸŽจ โ€‹

์œ ํ‹ธ๋ฆฌํ‹ฐ ํผ์ŠคํŠธ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ํ˜„๋Œ€์  CSS ํ”„๋ ˆ์ž„์›ŒํฌGitHub: tailwindlabs/tailwindcss

๋ณ„๋„์˜ CSS ํŒŒ์ผ์ด๋‚˜ ํด๋ž˜์Šค ๋„ค์ด๋ฐ ๊ทœ์น™(BEM ๋“ฑ)์„ ๊ณ ๋ฏผํ•˜์ง€ ์•Š๊ณ  HTML ๋งˆํฌ์—… ํƒœ๊ทธ ๋‚ด์—์„œ ๋ฏธ๋ฆฌ ์ •์˜๋œ utility ํด๋ž˜์Šค๋“ค์„ ๊ฒฐํ•ฉํ•˜์—ฌ, ๋ชจ๋˜ํ•˜๊ณ  ํ†ต์ผ๊ฐ ์žˆ๋Š” ๋ฏธ๋ คํ•œ UI๋ฅผ ๊ทน๋„์˜ ์†๋„๋กœ ์กฐ๋ฆฝํ•ด ๋‚ด๋Š” ๋ฐ˜์‘ํ˜• ์Šคํƒ€์ผ๋ง ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): JavaScript, PostCSS, Rust(v4 Rust ์—”์ง„ํ™”)
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • Utility-First ์„ค๊ณ„ ์‚ฌ์ƒ: ๊ธฐ์กด์˜ ์‹œ๋งจํ‹ฑ CSS ๊ตฌ์กฐ ๋ฐฉ์‹๊ณผ ๋Œ€๋น„๋˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํผ์ŠคํŠธ์˜ ์ด์  ๋ฐ ์œ ์ง€๋ณด์ˆ˜ ์ด์ ์„ ์„ค๊ณ„์ ์œผ๋กœ ์ดํ•ดํ•ด์•ผ ์ฝ”๋“œ๊ฐ€ ์ง€์ €๋ถ„ํ•ด ๋ณด์ด์ง€ ์•Š๊ฒŒ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ •์  ์ฝ”๋“œ ๋ถ„์„๊ณผ JIT(Just-in-Time) ์ปดํŒŒ์ผ: ๋นŒ๋“œ ์‹œ ํ”„๋กœ์ ํŠธ ๋‚ด ๋งˆํฌ์—… ์ฝ”๋“œ๋ฅผ ์ •์  ์Šค์บ”ํ•˜์—ฌ ์‚ฌ์šฉ๋œ ํด๋ž˜์Šค๋งŒ ๊ณจ๋ผ๋‚ด CSS ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ๋ฅผ ๊ทน์†Œํ™”ํ•˜๋Š” ์—”์ง„์˜ ์›๋ฆฌ๋ฅผ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: Tailwind CSS๋ฅผ ์ ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ์˜ ํ…Œ๋งˆ ์ปฌ๋Ÿฌ๋‚˜ ๋‹คํฌ ๋ชจ๋“œ๋ฅผ ๋นŒ๋“œ ํƒ€์ž„์˜ ๋™์  CSS ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์œ ์—ฐํ•˜๊ฒŒ ์Šค์œ„์นญํ•˜๊ณ , ๋ชจ๋ฐ”์ผ ํ™”๋ฉด๋ถ€ํ„ฐ ๋ฐ์Šคํฌํ†ฑ 4K ๋ชจ๋‹ˆํ„ฐ๊นŒ์ง€ ์™„๋ฒฝ ๋Œ€์‘๋˜๋Š” ๊ณ ๋‚œ๋„ ๋ฐ˜์‘ํ˜• ๋ ˆ์ด์•„์›ƒ์„ CSS ์ฝ”๋“œ ํ•œ ์ค„ ์—†์ด ์˜ค์ง ์ธ๋ผ์ธ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋กœ๋งŒ ๊ตฌํ˜„ํ•˜๋Š” ํ›ˆ๋ จ์„ ํ•ด๋ณด์„ธ์š”.

21. Ollama ๐Ÿฆ™ โ€‹

๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)์„ ๋ฒˆ๊ฐœ์ฒ˜๋Ÿผ ๊ตฌ๋™ํ•˜๋Š” ๋Ÿฐํƒ€์ž„GitHub: ollama/ollama

Llama 3/3.3, Mistral, DeepSeek ๋“ฑ ์ตœ์‹  ์˜คํ”ˆ์†Œ์Šค LLM์„ ๋ณต์žกํ•œ ์„ธํŒ… ์—†์ด CLI ํ•œ ์ค„(ollama run)๋กœ ๋กœ์ปฌ GPU/CPU ํ™˜๊ฒฝ์—์„œ ์ฆ‰์‹œ ์‹คํ–‰ํ•˜๊ณ  REST API๋กœ ์ œ๊ณตํ•˜๋Š” ์ดˆ๊ฒฝ๋Ÿ‰ AI ๋Ÿฐํƒ€์ž„์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Go, C/C++ (llama.cpp ์—ฐ๋™), Metal/CUDA ํ•˜๋“œ์›จ์–ด ๊ฐ€์†
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • GGUF ํฌ๋งท ๋ฐ ์–‘์žํ™”(Quantization): 16๋น„ํŠธ ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋ฅผ 4๋น„ํŠธ๋‚˜ 8๋น„ํŠธ๋กœ ์••์ถ•ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๋ฉด์„œ ์ถ”๋ก  ์ •ํ™•๋„๋ฅผ ์œ ์ง€ํ•˜๋Š” ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • CGO์™€ C++ FFI ๋ฐ”์ธ๋”ฉ: Go ์–ธ์–ด์—์„œ C++๋กœ ์ž‘์„ฑ๋œ ๊ณ ์„ฑ๋Šฅ llama.cpp ์ถ”๋ก  ์—”์ง„์„ ํ˜ธ์ถœํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ธŒ๋ฆฟ์ง€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ดํŽด๋ณด์„ธ์š”.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: Ollama์˜ ๋กœ์ปฌ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ๋‚ด ๋ณด์•ˆ ๋ฌธ์„œ ๊ฒ€์ƒ‰(RAG) ์‹œ์Šคํ…œ์ด๋‚˜ ๊ฐœ์ธ ์ „์šฉ ์ฝ”๋”ฉ ์–ด์‹œ์Šคํ„ดํŠธ ๋ฐฑ์—”๋“œ๋กœ ์—ฐ๋™ํ•˜์—ฌ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์œ ์ถœ ์—†๋Š” ์•ˆ์ „ํ•œ AI ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด ๋ณด์„ธ์š”.

22. LangChain ๐Ÿฆœ๐Ÿ”— โ€‹

LLM ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ ๋ฐ RAG ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”„๋ ˆ์ž„์›ŒํฌGitHub: langchain-ai/langchain

๊ฑฐ๋Œ€ ์–ธ์–ด ๋ชจ๋ธ(LLM)๊ณผ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์™ธ๋ถ€ API ๋„๊ตฌ(Tools), ๊ทธ๋ฆฌ๊ณ  ์žฅ๊ธฐ ๊ธฐ์–ต(Memory)์„ ์œ ๊ธฐ์ ์ธ ์ฒด์ธ์œผ๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ ์ž์œจ ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋•๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Python, TypeScript (LangChain.js), Pydantic
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • RAG (๊ฒ€์ƒ‰ ์ฆ๊ฐ• ์ƒ์„ฑ) ์•„ํ‚คํ…์ฒ˜: ๋ฌธ์„œ ๋ถ„ํ• (Text Splitter), ์ž„๋ฒ ๋”ฉ ๋ฒกํ„ฐํ™”, ๋ฒกํ„ฐ ์ €์žฅ์†Œ ๊ฒ€์ƒ‰ ํ›„ ํ”„๋กฌํ”„ํŠธ์— ๋™์ ์œผ๋กœ ์‚ฝ์ž…ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ „ ๊ณผ์ •์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • LCEL (LangChain Expression Language): ํŒŒ์ดํ”„(|) ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ํ”„๋กฌํ”„ํŠธ-๋ชจ๋ธ-ํŒŒ์„œ๋ฅผ ์„ ์–ธ์ ์ด๊ณ  ๋น„๋™๊ธฐ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์ปดํฌ์ง€์…˜ ํŒจํ„ด์„ ์ˆ™์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: PDF ๋งค๋‰ด์–ผ์„ ์—…๋กœ๋“œํ•˜๋ฉด ๋‚ด์šฉ์„ ํ•™์Šตํ•˜์—ฌ ์งˆ๋ฌธ์— ์ •ํ™•ํžˆ ๋‹ต๋ณ€ํ•˜๊ณ , ํ•„์š” ์‹œ ์›น ๊ฒ€์ƒ‰๊นŒ์ง€ ์Šค์Šค๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž์œจ ๊ฒ€์ƒ‰ ์ฑ—๋ด‡ ์„œ๋น„์Šค๋ฅผ ์ง์ ‘ ๊ฐœ๋ฐœํ•ด ๋ณด์„ธ์š”.

23. Supabase โšก โ€‹

PostgreSQL ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค Firebase ๋Œ€์•ˆ ํ”Œ๋žซํผGitHub: supabase/supabase

์ธ์ฆ(Auth), ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Realtime Database), ์Šคํ† ๋ฆฌ์ง€, ์„œ๋ฒ„๋ฆฌ์Šค ์—ฃ์ง€ ํ•จ์ˆ˜๋ฅผ ์™„๋ฒฝํ•œ RDBMS์ธ PostgreSQL ์œ„์—์„œ ํ†ตํ•ฉ ์ œ๊ณตํ•˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ๋ฐฑ์—”๋“œ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Elixir, TypeScript, Go, PostgreSQL, Docker
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • Row Level Security (RLS): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ˆ˜์ค€์—์„œ ์‚ฌ์šฉ์ž ID(JWT) ๊ธฐ๋ฐ˜์œผ๋กœ ํŠน์ • ํ–‰(Row)์˜ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๋Š” ๋ณด์•ˆ ์ •์ฑ… ์ž‘์„ฑ๋ฒ•์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • PostgreSQL ๋…ผ๋ฆฌ์  ๋ณต์ œ์™€ ์›น์†Œ์ผ“: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ€๊ฒฝ ์‚ฌํ•ญ(WAL)์„ ๊ฐ์ง€ํ•˜๊ณ  Elixir Realtime ์—”์ง„์„ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ ๋ธŒ๋ผ์šฐ์ €๋กœ ์‹ค์‹œ๊ฐ„ ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ๋ณ„๋„์˜ ๋ฐฑ์—”๋“œ API ์„œ๋ฒ„๋ฅผ ์ง์ ‘ ๊ตฌ์ถ•ํ•˜์ง€ ์•Š๊ณ ๋„ Supabase SDK๋งŒ์„ ํ™œ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๋‹ค์ž๊ฐ„ ์ฑ„ํŒ… ๋ฐ ํŒŒ์ผ ๊ณต์œ  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹จ ํ•˜๋ฃจ ๋งŒ์— ์™„์„ฑํ•ด ๋ณด์„ธ์š”.

24. Three.js ๐ŸงŠ โ€‹

์›น ๋ธŒ๋ผ์šฐ์ € ์ƒ์—์„œ 3D ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๊ทธ๋ž˜ํ”ฝ์„ ๋ Œ๋”๋งํ•˜๋Š” WebGL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌGitHub: mrdoob/three.js

๋ณต์žกํ•œ WebGL ์…ฐ์ด๋” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—†์ด๋„ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ ๋งค๋„๋Ÿฌ์šด 3D ์”ฌ(Scene), ์นด๋ฉ”๋ผ, ์กฐ๋ช…, ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ, ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์†์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ‘œ์ค€ 3D ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): JavaScript, WebGL / WebGPU, GLSL (์…ฐ์ด๋” ์–ธ์–ด)
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • 3D ๊ณต๊ฐ„ ์ขŒํ‘œ๊ณ„ ๋ฐ ๋ Œ๋” ๋ฃจํ”„: ์นด๋ฉ”๋ผ ์‹œ์•ผ๊ฐ(FOV), ์›๊ทผ ํˆฌ์˜, ๋น›์˜ ๋ฐ˜์‚ฌ ๋ชจ๋ธ๊ณผ ๋งค ํ”„๋ ˆ์ž„ ์”ฌ์„ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” requestAnimationFrame ๋ Œ๋” ๋ฃจํ”„๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฉ”์‹œ(Mesh)์™€ ๋จธํ‹ฐ๋ฆฌ์–ผ(Material): ์ •์ (Vertices)๊ณผ ๋ฉด์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ˜•์ƒ(Geometry)์— ์งˆ๊ฐ(Texture)๊ณผ ์…ฐ์ด๋” ํšจ๊ณผ๋ฅผ ์ž…ํžˆ๋Š” ์›๋ฆฌ๋ฅผ ์ˆ™์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: 3D ๋ชจ๋ธ ํŒŒ์ผ(GLTF/GLB)์„ ๋กœ๋“œํ•˜์—ฌ ๋งˆ์šฐ์Šค ์ธํ„ฐ๋ž™์…˜์— ๋”ฐ๋ผ ํšŒ์ „ํ•˜๊ณ  ์กฐ๋ช…์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ 3D ์ œํ’ˆ ์‡ผ๋ฃธ ํŽ˜์ด์ง€๋ฅผ ์ œ์ž‘ํ•ด ๋ณด์„ธ์š”.

25. Deno ๐Ÿฆ• โ€‹

๋ณด์•ˆ์„ฑ๊ณผ ์ตœ์‹  ์›น ํ‘œ์ค€์„ ๊ทน๋Œ€ํ™”ํ•œ ์ฐจ์„ธ๋Œ€ JavaScript/TypeScript ๋Ÿฐํƒ€์ž„GitHub: denoland/deno

Node.js์˜ ์ฐฝ์‹œ์ž Ryan Dahl์ด ๊ธฐ์กด Node.js์˜ ์„ค๊ณ„์  ํ•œ๊ณ„(๋ณด์•ˆ, ๋ชจ๋“ˆ ์‹œ์Šคํ…œ, ๋นŒ๋“œ ๋„๊ตฌ ํŒŒํŽธํ™”)๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด Rust์™€ V8 ์—”์ง„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กญ๊ฒŒ ์„ค๊ณ„ํ•œ ๋Ÿฐํƒ€์ž„์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Rust, TypeScript, V8 Engine, Tokio
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ์ƒŒ๋“œ๋ฐ•์Šค ๋ณด์•ˆ ๋ชจ๋ธ: ๊ธฐ๋ณธ์ ์œผ๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ, ๋„คํŠธ์›Œํฌ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ ‘๊ทผ์ด ์ฐจ๋‹จ๋˜๋ฉฐ, ์‹คํ–‰ ์‹œ ๋ช…์‹œ์  ํ”Œ๋ž˜๊ทธ(--allow-net, --allow-read)๋ฅผ ๋ถ€์—ฌํ•ด์•ผ ๋™์ž‘ํ•˜๋Š” ๋ณด์•ˆ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์›น ํ‘œ์ค€ API(Fetch, WebSockets ๋“ฑ) ๋„ค์ดํ‹ฐ๋ธŒ ์ง€์›: ๋ณ„๋„ npm ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ์—†์ด ๋ธŒ๋ผ์šฐ์ €์™€ ๋™์ผํ•œ ์ „์—ญ ํ‘œ์ค€ API๋ฅผ ์ œ๊ณตํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ•™์Šตํ•˜์„ธ์š”.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ๋ณ„๋„์˜ ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ๋‚˜ package.json ์„ค์ • ์—†์ด ๋‹จ์ผ .ts ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋งŒ์œผ๋กœ ๊ฐ€๋™๋˜๋Š” ์ดˆ๊ฒฝ๋Ÿ‰ ๊ณ ์„ฑ๋Šฅ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค API๋ฅผ ๊ตฌ์ถ•ํ•ด ๋ณด์„ธ์š”.

26. Vite โšก โ€‹

ESM ๊ธฐ๋ฐ˜์˜ ์ฐจ์„ธ๋Œ€ ์ดˆ๊ณ ์† ํ”„๋ก ํŠธ์—”๋“œ ๋นŒ๋“œ ํˆด ๋ฐ ๊ฐœ๋ฐœ ์„œ๋ฒ„GitHub: vitejs/vite

์ „ํ†ต์ ์ธ ๋ฒˆ๋“ค๋Ÿฌ(Webpack)์˜ ๋А๋ฆฐ ์ฝœ๋“œ ์Šคํƒ€ํŠธ ๋ฌธ์ œ๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ ES ๋ชจ๋“ˆ(ESM)๊ณผ ์ดˆ๊ณ ์† Go ๊ธฐ๋ฐ˜ esbuild ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•˜์—ฌ, ์ˆ˜์ • ์ฆ‰์‹œ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ๋ฐ˜์˜๋˜๋Š” HMR์„ ์ œ๊ณตํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): TypeScript, Rollup, esbuild, Rolldown(์ฐจ์„ธ๋Œ€ Rust ๋ฒˆ๋“ค๋Ÿฌ)
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • On-demand ์†Œ์Šค์ฝ”๋“œ ์„œ๋น™: ์ „์ฒด ์†Œ์Šค๋ฅผ ๋ฏธ๋ฆฌ ๋ฒˆ๋“ค๋งํ•˜์ง€ ์•Š๊ณ  ๋ธŒ๋ผ์šฐ์ €์˜ ESM ์š”์ฒญ ์‹œ์ ์— ํ•„์š”ํ•œ ํŒŒ์ผ๋งŒ ์ฆ‰์‹œ ๋ณ€ํ™˜ํ•˜์—ฌ ์„œ๋น™ํ•˜๋Š” ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ํ”Œ๋Ÿฌ๊ทธ์ธ ํ›… ์•„ํ‚คํ…์ฒ˜: Rollup ํ˜ธํ™˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋ฒˆ๋“ค๋ง ๊ณผ์ •์—์„œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ฐ€๋กœ์ฑ„๊ณ  ๋ณ€ํ™˜ํ•˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์กฐ๋ฅผ ํ•™์Šตํ•˜์„ธ์š”.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ์˜ ๋ฒˆ๋“ค๋Ÿฌ๋ฅผ ๊ธฐ์กด Webpack์—์„œ Vite๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜์—ฌ ๋กœ์ปฌ ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๊ธฐ๋™ ์†๋„๋ฅผ 10๋ฐฐ ์ด์ƒ ๋‹จ์ถ•์‹œํ‚ค๋Š” ๋นŒ๋“œ ์ตœ์ ํ™” ์ž‘์—…์„ ์‹ค์Šตํ•ด ๋ณด์„ธ์š”.

27. FastAPI ๐Ÿš€ โ€‹

ํŒŒ์ด์ฌ 3.8+ ํƒ€์ž… ํžŒํŠธ ๊ธฐ๋ฐ˜์˜ ์ดˆ๊ณ ์† ๋น„๋™๊ธฐ API ์›น ํ”„๋ ˆ์ž„์›ŒํฌGitHub: fastapi/fastapi

Starlette๊ณผ Pydantic์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘๋˜์–ด NodeJS๋‚˜ Go์— ํ•„์ ํ•˜๋Š” ๊ณ ์„ฑ๋Šฅ ๋น„๋™๊ธฐ(ASGI) ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ํƒ€์ž… ํžŒํŠธ๋งŒ ์ž‘์„ฑํ•˜๋ฉด Swagger ๋ฌธ์„œ๊ฐ€ ์ž๋™ ์ƒ์„ฑ๋˜๋Š” ํ˜„๋Œ€์  ํŒŒ์ด์ฌ ๋ฐฑ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Python, Starlette, Pydantic, Uvicorn (ASGI ์„œ๋ฒ„)
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ๋ฃจํ”„(async/await): ํŒŒ์ด์ฌ์˜ asyncio ๊ธฐ๋ฐ˜ ๋น„๋™๊ธฐ I/O๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์™€ ์™ธ๋ถ€ API ํ˜ธ์ถœ ์‹œ ์Šค๋ ˆ๋“œ ๋ธ”๋กœํ‚น์„ ๋ฐฉ์ง€ํ•˜๋Š” ์›๋ฆฌ๋ฅผ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • Pydantic ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ๊ณผ ์˜์กด์„ฑ ์ฃผ์ž…(DI): ์š”์ฒญ ๋ฐ”๋””์˜ ์œ ํšจ์„ฑ์„ ๋Ÿฐํƒ€์ž„์— ์ž๋™ ๊ฒ€์ฆํ•˜๊ณ , ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ณด์•ˆ ์ธ์ฆ ๋กœ์ง์„ Depends()๋กœ ์ฃผ์ž…ํ•˜๋Š” ํŒจํ„ด์„ ์ตํžˆ์„ธ์š”.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: AI ๋ชจ๋ธ ์ถ”๋ก  ๋ฐฑ์—”๋“œ์™€ ์—ฐ๋™ํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ๋‹ต๋ณ€์„ ์ „์†กํ•˜๋Š” ๊ณ ์„ฑ๋Šฅ AI ์„œ๋น„์Šค์šฉ REST/WebSocket API ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•ด ๋ณด์„ธ์š”.

28. AutoGPT ๐Ÿค– โ€‹

๋ชฉํ‘œ๋ฅผ ๋ถ€์—ฌํ•˜๋ฉด ์Šค์Šค๋กœ ๊ณ„ํšํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์ž์œจ AI ์—์ด์ „ํŠธGitHub: Significant-Gravitas/AutoGPT

์‚ฌ์šฉ์ž๊ฐ€ ๋ณต์žกํ•œ ์ตœ์ข… ๋ชฉํ‘œ๋งŒ ์ œ์‹œํ•˜๋ฉด, LLM์ด ํ•˜์œ„ ๊ณผ์ œ๋ฅผ ์Šค์Šค๋กœ ์ชผ๊ฐœ๊ณ  ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰, ํŒŒ์ผ ์ƒ์„ฑ, ์ฝ”๋“œ ์‹คํ–‰ ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ ์ž์œจ์ ์œผ๋กœ ์—ฐ๊ณ„ํ•˜๋ฉฐ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ์—์ด์ „ํŠธ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Python, Docker, Flutter (UI), OpenAI API
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ์—์ด์ „ํŠธ ๋ฃจํ”„์™€ ๋ฆฌํ”Œ๋ ‰์…˜(Reflection): ์‚ฌ๊ณ (Thought) -> ๊ณ„ํš(Plan) -> ์‹คํ–‰(Action) -> ๊ฒฐ๊ณผ ํ‰๊ฐ€(Criticism)๋กœ ์ด์–ด์ง€๋Š” ์ˆœํ™˜ ์ถ”๋ก  ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ปจํ…์ŠคํŠธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ: ๋„๊ตฌ ์‹คํ–‰ ๊ฒฐ๊ณผ๋กœ ๋ˆ„์ ๋˜๋Š” ๋ฐฉ๋Œ€ํ•œ ํ† ํฐ์„ ์š”์•ฝํ•˜๊ณ  ๋‹จ๊ธฐ/์žฅ๊ธฐ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ ๋ณด์กดํ•˜๋Š” ์ „๋žต์„ ํ•™์Šตํ•˜์„ธ์š”.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ์›น ๋ธŒ๋ผ์šฐ์ง• ํˆด๊ณผ ํŒŒ์ผ ์ž‘์„ฑ ํˆด์„ ๊ฒฐํ•ฉํ•˜์—ฌ, ํŠน์ • ๊ธฐ์ˆ  ์ฃผ์ œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ธํ„ฐ๋„ท ๋ฆฌ์„œ์น˜๋ถ€ํ„ฐ ๋งˆํฌ๋‹ค์šด ๋ณด๊ณ ์„œ ์ž‘์„ฑ๊นŒ์ง€ ์ „ ๊ณผ์ •์„ ์Šค์Šค๋กœ ์™„๋ฃŒํ•˜๋Š” ์ž์œจ ์กฐ์‚ฌ ์—์ด์ „ํŠธ๋ฅผ ์‹ค์Šตํ•ด ๋ณด์„ธ์š”.

29. Ansible ๐Ÿ“œ โ€‹

์—์ด์ „ํŠธ ์„ค์น˜๊ฐ€ ํ•„์š” ์—†๋Š” Agentless IT ์ธํ”„๋ผ ์ž๋™ํ™” ์—”์ง„GitHub: ansible/ansible

์›๊ฒฉ ์„œ๋ฒ„์— ๋ณ„๋„์˜ ์—์ด์ „ํŠธ ๋ฐ๋ชฌ์„ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ์˜ค์ง SSH ํ”„๋กœํ† ์ฝœ๊ณผ ์„ ์–ธ์  YAML(Playbook) ํŒŒ์ผ๋งŒ์„ ์ด์šฉํ•ด ์ˆ˜๋ฐฑ ๋Œ€์˜ ์„œ๋ฒ„ ์„ค์ •๊ณผ ๋ฐฐํฌ๋ฅผ ๋ฉฑ๋“ฑ์„ฑ(Idempotency) ์žˆ๊ฒŒ ์ž๋™ํ™”ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): Python, YAML, OpenSSH
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ๋ฉฑ๋“ฑ์„ฑ(Idempotency)์˜ ์›๋ฆฌ: ๋™์ผํ•œ ํ”Œ๋ ˆ์ด๋ถ์„ ๋ช‡ ๋ฒˆ์ด๊ณ  ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๋”๋ผ๋„ ์„œ๋ฒ„์˜ ์ตœ์ข… ์ƒํƒœ๊ฐ€ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜๋„๋ก ๋ณด์žฅํ•˜๋Š” ์„ค๊ณ„ ์›์น™์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ธ๋ฒคํ† ๋ฆฌ(Inventory)์™€ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ: ๋Œ€์ƒ ํ˜ธ์ŠคํŠธ ๋ชฉ๋ก์„ ๊ทธ๋ฃนํ™”ํ•˜๊ณ , ํŒจํ‚ค์ง€ ์„ค์น˜(apt), ํŒŒ์ผ ๋ณต์‚ฌ(copy), ์„œ๋น„์Šค ์žฌ์‹œ์ž‘(systemd) ๋“ฑ์˜ ๋‹จ์œ„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋“ˆ ๊ตฌ์กฐ๋ฅผ ํ•™์Šตํ•˜์„ธ์š”.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ํด๋ผ์šฐ๋“œ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์งํ›„ ๋ณด์•ˆ ํŒจ์น˜, Docker ์„ค์น˜, ๋ฐฉํ™”๋ฒฝ ์„ค์ •, ์‚ฌ์šฉ์ž ๊ณ„์ • ์ƒ์„ฑ์„ ๋‹จ ํ•˜๋‚˜์˜ ์ปค๋งจ๋“œ๋กœ ์™„๋ฃŒํ•˜๋Š” ํ‘œ์ค€ ์ธํ”„๋ผ ๋ฒ ์ด์Šค๋ผ์ธ ๋ฐฐํฌ ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

30. Redis ๐Ÿง  โ€‹

์ดˆ๊ณ ์† ์ธ๋ฉ”๋ชจ๋ฆฌ ํ‚ค-๊ฐ’ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ €์žฅ์†Œ ๋ฐ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปคGitHub: redis/redis

๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ๊ฐ€ ์•„๋‹Œ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผ์‹œ์ผœ ๋งˆ์ดํฌ๋กœ์ดˆ(ยตs) ๋‹จ์œ„์˜ ๊ทน๋‹จ์ ์ธ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋‹จ์ˆœ Key-Value๋ฅผ ๋„˜์–ด ๋ฆฌ์ŠคํŠธ, ํ•ด์‹œ, ์…‹, Pub/Sub, ์ŠคํŠธ๋ฆผ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•˜๋Š” ํ•ต์‹ฌ ์ธํ”„๋ผ์ž…๋‹ˆ๋‹ค.

  • โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ (Tech Stack): C, POSIX, Jemalloc
  • ๐Ÿง  ์‚ฌ์ „์— ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค:
    • ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ์ด๋ฒคํŠธ ๋ฃจํ”„(ae engine): ๋ฝ(Lock) ๊ฒฝํ•ฉ ์—†์ด ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋กœ I/O ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ์›์ž์ (Atomic) ์—ฐ์‚ฐ์„ ๋ณด์žฅํ•˜๋Š” ๋‚ด๋ถ€ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์˜์†์„ฑ(Persistence) ๋ฉ”์ปค๋‹ˆ์ฆ˜: ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์— ์•ˆ์ „ํ•˜๊ฒŒ ์Šค๋ƒ…์ƒทํ•˜๋Š” RDB์™€ ๋ณ€๊ฒฝ ๋ช…๋ น์–ด๋ฅผ ์ˆœ์ฐจ ๊ธฐ๋กํ•˜๋Š” AOF์˜ ์ฐจ์ด์  ๋ฐ ์žฅ์•  ๋ณต๊ตฌ ์ „๋žต์„ ์ˆ™์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ’ก ํ™œ์šฉ ํŒ: ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆฌ๋Š” ๋กœ๊ทธ์ธ ์„ธ์…˜ ๊ด€๋ฆฌ, API ์š”์ฒญ ์†๋„ ์ œํ•œ(Rate Limiting), ์‹ค์‹œ๊ฐ„ ๋žญํ‚น ๋ฆฌ๋”๋ณด๋“œ(Sorted Set), ๊ทธ๋ฆฌ๊ณ  ์„œ๋น„์Šค ๊ฐ„ ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง€ ํ๋ฅผ Redis๋กœ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ณ  ์ ์šฉํ•ด ๋ณด์„ธ์š”.

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ง€์‹DB โ€” ๋” ๋‚˜์€ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์œ„ํ•ด