๐ Awesome Open Source โ ๊ธ๋ก๋ฒ ์ถ์ฒ ์คํ์์ค TOP 30 โ
๊ธ๋ก๋ฒ ์คํ์์ค ์์นด์ด๋ธ์ธ Awesome Open Source์์ ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์๊ฒ ๊ฐ์ฅ ๋์ ์ฐฌ์ฌ๋ฅผ ๋ฐ์ผ๋ฉฐ ๋๋ฆฌ ํ์ฉ๋๊ณ ์๋ ์ถ์ฒ ์คํ์์ค ํ๋ก์ ํธ 30์ ์ ๋๋ค. ์ด ํ๋ก์ ํธ๋ค์ ์ต์ ์น ์ํคํ ์ฒ, ์๋ฒ๋ฆฌ์ค ๋ฐฑ์๋, ๋ฐ์ดํฐ ์๊ฐํ, AI ํตํฉ, ์์ฐ์ฑ ๋๊ตฌ ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ์ค๋ฌด๊ธ ์คํ์ ์ง๋๊ณ ์์ต๋๋ค. ๊ฐ ํ๋ก์ ํธ๋ฅผ ์ฐ๊ตฌ ๋ฐ ์์ฉํ๊ธฐ ์ํด ํ์ํ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ฌ์ ์ง์(Prerequisites) ์ ์์ธํ๊ฒ ์ ๋ฆฌํ์ต๋๋ค.
1. HTTPie ๐ฅง โ
๊ฐ์ฅ ์ง๊ด์ ์ด๊ณ ์น์ ํ ๊ฐ๋ฐ์์ฉ CLI HTTP ํด๋ผ์ด์ธํธGitHub: httpie/cli
์๊ฐ: ํฐ๋ฏธ๋ ํ๊ฒฝ์์ curl์ ๋ณต์กํ ๋ฌธ๋ฒ ๋์ ์์ฐ์ด์ ๊ฐ๊น์ด ๋ช ๋ น์ด ๊ตฌ์กฐ์ ์๋ฆ๋ค์ด ๋ฌธ๋ฒ ํ์ด๋ผ์ดํ ์ ํตํด API๋ฅผ ์ ์ํ๊ฒ ํ ์คํธํ ์ ์๊ฒ ๋๋ ๋ชจ๋ ์ปค๋งจ๋๋ผ์ธ ์ธํฐํ์ด์ค(CLI) ๋๊ตฌ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Python, Pygments (๋ฌธ๋ฒ ๊ฐ์กฐ), Requests (HTTP ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- HTTP ํ๋กํ ์ฝ ์คํ: HTTP ๋ฉ์๋(GET, POST, PUT, DELETE), ํค๋ ๊ฐ์ ์ข ๋ฅ, ๋ฐ๋ ๋ฐ์ดํฐ ํ์(MIME Type, JSON)์ ๋ํ ๊น์ ์ง์์ด ํ์ํฉ๋๋ค.
- CLI ์๊ท๋จผํธ ํ์ฑ: ํฐ๋ฏธ๋์ ๋ฌธ์์ด ์ ๋ ฅ์ ์ ์ ํ ํฐ์ผ๋ก ๋ถํดํด ๋ด๋ถ ํ๋ผ๋ฏธํฐ๋ก ๋งคํํ๋ CLI ํ์ ์๋ ๋ฐฉ์์ ์ดํดํ๋ฉด ์ข์ต๋๋ค.
- ๐ก ํ์ฉ ํ: ๋ณต์กํ ํค๋ ์ ์ก์ด๋ JWT ํ ํฐ ์ธ์ฆ์ด ํ์ํ ๋ณด์ API ํ
์คํธ ์, curl์ ์ฅํฉํจ ๋์
http POST api.example.com Authorization:"Bearer [token]"ํํ์ ๊ฐ์ํ๋ ์ฝ๋๋ฅผ ์ ์คํฌ๋ฆฝํธ์ ํ์ฌํด ํ ์คํธ ์๋ํ๋ฅผ ๊ตฌ์ถํ์ธ์.
2. tldraw ๐จ โ
์น ์ธํฐ๋ํฐ๋ธ ๋๋ก์ ์บ๋ฒ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌGitHub: tldraw/tldraw
์๊ฐ: ํผ๊ทธ๋ง๋ ๋ฏธ๋ก(Miro)์ฒ๋ผ ์น ๋ธ๋ผ์ฐ์ ์์์ ๊ณ ์์ผ๋ก ์ ์ ๊ทธ๋ฆฌ๊ณ , ๋ฉ๋ชจ๋ฅผ ๋จ๊ธฐ๋ฉฐ, ๊ธฐํํ์ ๋ํ์ ์ค๊ณํ ์ ์๋ ๊ฒฝ๋ ์บ๋ฒ์ค ๋ชจ๋์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): TypeScript, React, HTML5 Canvas / SVG
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์ขํ๊ณ ๋ณํ (Matrix Transform): ํ๋ฉด ๋ทฐํฌํธ ์ขํ์ ์ค์ ์บ๋ฒ์ค์ ์๋ ์ขํ ๊ฐ์ ์ค, ๋๋๊ทธ(Pan) ๋ณํ์ ์ํ์ ์ผ๋ก ๋งคํํ๋ 2D ๋ณํ ํ๋ ฌ ๊ธฐํํ์ ์์์ผ ํฉ๋๋ค.
- Canvas API vs SVG: ๋๋์ ๋ฒกํฐ ๊ฐ์ฒด๋ฅผ ๊ณ ์ ๋ ๋๋งํ๊ธฐ ์ํ ๋ ๊ธฐ์ (๋ช ๋ นํ Canvas ๋ ๋๋ง๊ณผ ์ ์ธ์ SVG DOM ๊ฐ์ฒด ์ ์ด)์ ์ฅ๋จ์ ์ ๊น์ด ์์งํด์ผ ์ฑ๋ฅ ํธ๋ฌ๋ธ์ํ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ์์ฌ ์๋ฃจ์ ๋ด๋ถ์ ์ค์๊ฐ ์์ด๋์ด ๊ณต์ ํ์ดํธ๋ณด๋๋ ์คํฐ๋ ์ ์ฉ ๊ทธ๋ฆผํ ์์ ฏ์ ์๋ฒ ๋ฉํ๊ณ ์ถ์ ๋ tldraw SDK ์ปดํฌ๋ํธ๋ฅผ ์ด์ํ์ฌ ์ฆ๊ฐ์ ์ผ๋ก UI๋ฅผ ๊ตฌํํด ๋ณด์ธ์.
3. Excalidraw โ๏ธ โ
์๊ทธ๋ฆผ ์คํ์ผ์ ๊ฐ๋ฐ ๋ค์ด์ด๊ทธ๋จ ๊ฐ์ ํ์ดํธ๋ณด๋GitHub: excalidraw/excalidraw
์๊ฐ: ๊ฐ๋ฐ์ ์ํคํ ์ฒ ์ค๊ณ, ์ํ์ค ๋ค์ด์ด๊ทธ๋จ ์์ฑ์ ํ์ค์ด ๋ ๋๊ตฌ๋ก, ์ ๊ตํ ๊ทธ๋ํฝ ๋์ ์น๊ทผํ ์๊ทธ๋ฆผ(Hand-drawn) ๋๋์ ๋ฒกํฐ ๋ ์ด์์์ ํตํด ์์ด๋์ด๋ฅผ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์๊ฐํํ๊ฒ ๋๋ ๋ณด๋์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): TypeScript, React, Canvas, Rough.js (์๊ทธ๋ฆผ ๋ ๋๋ฌ)
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- Rough.js ๋ ๋๋ง ์ฒ ํ: ์ง์ ์ ๊ทธ๋ฆด ๋ ๋ฏธ์ธํ ํ๋ค๋ฆผ์ด๋ ๊ฒน์นจ ํจ๊ณผ๋ฅผ ๋ฌผ๋ฆฌ ๋ฒ์น์ฒ๋ผ ์๋ฎฌ๋ ์ด์ ํด ๋ ๋๋งํ๋ ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐ๋ ๊ตฌ์กฐ๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค.
- WebRTC ์ค์๊ฐ ๋ฐ์ดํฐ ์ฑ๋: ์๋ฒ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ํผ์ด ํฌ ํผ์ด(P2P)๋ก ๋ณด๋ ์ขํ ๋ฐ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํด ๋์ ํธ์ง๋ฐฉ์ ํ์์ํค๋ ๊ธฐ์ ์ ํ์ตํด ๋ณด์ธ์.
- ๐ก ํ์ฉ ํ: ์์ฑ๋ ๋ค์ด์ด๊ทธ๋จ์ ๋ก์ปฌ
.excalidrawJSON ์๋ณธ ํฌ๋งท์ผ๋ก ์ถ์ถํ๊ฑฐ๋, ์ด๋ฅผ Next.js์ ๊ฒฐํฉํด ํ์๋ค์ ์ํคํ ์ฒ ๋ค์ด์ด๊ทธ๋จ ์คํ ๋ฆฌ์ง ํฌํธ์ ์ง์ ๊ตฌ์ถํด ์ ๋ฌด ๊ณต์ ์ฉ์ผ๋ก ์ฌ์ฉํด ๋ณด์ธ์.
4. Supabase โก โ
์คํ์์ค ํ์ด์ด๋ฒ ์ด์ค(Firebase)์ ์์ ํ ๋์GitHub: supabase/supabase
์๊ฐ: ์ธ์ฆ, ์ค์๊ฐ ๋ฐ์ดํฐ ๋๊ธฐํ, ๋์ฉ๋ ์คํ ๋ฆฌ์ง, ์๋ฒ๋ฆฌ์ค ํจ์(Edge Functions)๋ฅผ PostgreSQL ํ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํต์ผํ์ฌ ์ ๊ณตํ๋ ๊ฐ๋ ฅํ ๋ฐฑ์๋ ํ๋ซํผ(BaaS)์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Elixir (API ๊ฒ์ดํธ์จ์ด), Go (์ธ์ฆ ๋ชจ๋), PostgreSQL (๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฝ์ด), TypeScript
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- PostgreSQL RLS (Row Level Security): ๋ฏธ๋ค์จ์ด ๋ฐฑ์๋ ์๋ฒ ์์ด ํ๋ก ํธ์๋๊ฐ DB์ ๋ค์ด๋ ํธ ์ฟผ๋ฆฌ๋ฅผ ๋์ ธ๋, ์ฌ์ฉ์ ์๋ณ์(JWT)์ ๊ธฐ๋ฐํด ์์ ์ด ์์ ํ ํ๋ง ์์ ํ๊ฒ ์กฐํ/์์ ํ ์ ์๋๋ก ์ ์ดํ๋ ํ ๋ ๋ฒจ ๋ณด์ ์ ์ฑ ์ ๊ฐ๋ ์ ๋ฌด์กฐ๊ฑด ๋ง์คํฐํด์ผ ํฉ๋๋ค.
- ๋ ผ๋ฆฌ์ ๋ณต์ (Logical Replication): DB ํ ์ด๋ธ ๋ณ๊ฒฝ ๊ฑด์ ์บ์นํด ํด๋ผ์ด์ธํธ์ ์ค์๊ฐ ์์ผ์ผ๋ก ํธ์ํ๋ ์๋ฆฌ๋ฅผ ์์์ผ ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ์ ๊ท ๋ชจ๋ฐ์ผ ์ฑ์ด๋ ์น SaaS ์์ ํ ๊ฐ๋ฐ ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ๋์์ ์๋ ์์ฑ๋๋ REST/GraphQL API ๋ฐ ์ฌ์ฉ์ ๋ก๊ทธ์ธ ํ๋ฆ์ ๋จ 10๋ถ ๋ง์ ๊ตฌ์ถํ๋ ์ด๊ณ ์ ๋ฐฐํฌ ์คํ์ผ๋ก ์ด์ฉํด ๋ณด์ธ์.
5. Appwrite ๐ โ
์น/๋ชจ๋ฐ์ผ/Flutter ๊ฐ๋ฐ์๋ฅผ ์ํ ์ ํํธ์คํ BaaSGitHub: appwrite/appwrite
์๊ฐ: Supabase์ ํจ๊ป ๋ฐฑ์๋ ์๋น์ค์ ์๋ ์ฐ๋งฅ์ผ๋ก ๊ผฝํ๋ฉฐ, Docker ํ๊ฒฝ๋ง ๊ฐ์ถ์ด์ ธ ์๋ค๋ฉด ๋จ ํ๋์ ๋ช ๋ น์ด๋ก ์ฌ๋ด ์ธํ๋ผ์ ์์ ํ ์ฌ์ค๋ก ๊ฐ๋ํ ์ ์๋ ๋์ปค ๊ธฐ๋ฐ ํตํฉ ๋ฐฑ์๋ ์์ง์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): PHP (Swoole ๋น๋๊ธฐ ์์ง), Docker, Redis, MariaDB
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- Docker Compose ์ค์ผ์คํธ๋ ์ด์ : ์ปจํ ์ด๋ ๊ฐ์ ๋ ๋ฆฝ ๋คํธ์ํน๊ณผ Redis ์บ์, MariaDB ์์ ์คํ ๋ฆฌ์ง ๋ณผ๋ฅจ ๋งคํ ๊ตฌ์ฑ์ ์ ์ดํ ์ ์๋ ๋์ปค ์ค๋ฌด ์ง์์ด ์๊ตฌ๋ฉ๋๋ค.
- ๋น๋๊ธฐ PHP (Swoole): ์ผ๋ฐ์ ์ธ ๋๊ธฐ์ FPM ๊ตฌ์กฐ๊ฐ ์๋ ๋ฉ๋ชจ๋ฆฌ ๋ก๋ฉ ๊ธฐ๋ฐ ๊ณ ์ฑ๋ฅ ์ด๋ฒคํธ ๋๋ฆฌ๋ธ PHP ์คํ ์์ง์ ํจ์จ์ฑ์ ์ดํดํด์ผ ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ํด๋ผ์ฐ๋ ๋น์ฉ์ ์ต์ํํ๊ธฐ ์ํด ์ฌ๋ด ์จํ๋ ๋ฏธ์ค ์๋ฒ๋ ๊ฐ์ธ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ์๋ฒ์ Appwrite๋ฅผ ์ค์นํ๊ณ , ๊ฐ์ธ ์น ์๋น์ค์ ๋ก๊ทธ์ธ ๊ณ์ ์ ์ฅ์ ๋ฐ ์ด๋ฏธ์ง CDN ์๋ฒ๋ก ์์ ํ๊ฒ ํ์ฉํด ๋ณด์ธ์.
6. Directus ๐ โ
๋ณด์ ์ค์ธ ๋ชจ๋ SQL DB๋ฅผ ์ฆ๊ฐ์ ์ธ API์ ์ด๋๋ฏผ ๋ทฐ๋ก ์ ํํ๋ ์์งGitHub: directus/directus
์๊ฐ: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ข ์๋ ๋ ์์ ์ธ ์คํค๋ง๋ฅผ ๊ฐ์ ํ์ง ์๊ณ , ํ์ฌ ๊ฐ๋ ์ค์ธ ๋ณต์กํ SQL DB๋ฅผ ๋ถ์(Introspection)ํ์ฌ ๊ฐ๋ฐ์์๊ฒ๋ ์ฆ์ REST/GraphQL API๋ฅผ, ๋น๊ฐ๋ฐ์ ๊ด๋ฆฌ์์๊ฒ๋ ๊ณ ํ๊ฒฉ ๋ฐ์ดํฐ CRUD ๋์๋ณด๋๋ฅผ ์์ฑํด์ฃผ๋ ๋๊ตฌ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Node.js, Vue.js, Knex.js (SQL ์ฟผ๋ฆฌ ๋น๋)
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์คํค๋ง ์ธํธ๋ก์คํ์ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฉํํ ์ด๋ธ(Information Schema)์ ์ญ์ผ๋ก ์กฐํํด ๋ฐ์ดํฐ ์ปฌ๋ผ ๊ตฌ์กฐ์ ๊ด๊ณ์ฑ์ ์ฝ์ด์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ๋์ ๊ฐ๊ณตํ๋ ์์คํ ๊ธฐ์ ์ ์์๋์ด์ผ ํฉ๋๋ค.
- RBAC (์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด): ์ฌ๋ด ์ง๊ตฐ๋ณ๋ก ํ ์ด๋ธ์ CRUD ๊ถํ์ ์ธ๋ฐํ๊ฒ ๋ถํ ํต์ ํ๋ ๊ถํ ๋งคํธ๋ฆญ์ค๋ฅผ ์ดํดํด์ผ ๋ณด์ ์ฌ๊ณ ๋ฅผ ๋ง์ ์ ์์ต๋๋ค.
- ๐ก ํ์ฉ ํ: ์ ๊ท ํ ์ด๋ธ์ ๋ง๋ค ํ์ ์์ด, ์ด๋ฏธ ์ด์ ์ค์ธ ์ผํ๋ชฐ์ด๋ ์๋น์ค์ ๋ณต์กํ MySQL/PostgreSQL์ Directus๋ง ํฌํธ๋ก ์น์ด ์ฌ๋ด CS ๋ถ์๋ ์ ์ฐํ์ด ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ ์ ๊ตํ ๋ฐฑ์คํผ์ค ์ด๋๋ฏผ ํ๋ก๊ทธ๋จ์ ์ฆ์ ํ๋ณดํ์ธ์.
7. Strapi ๐ โ
REST์ GraphQL์ ์๋ฒฝ ์ง์ํ๋ ๊ธ๋ก๋ฒ 1์ ํค๋๋ฆฌ์ค CMSGitHub: strapi/strapi
์๊ฐ: ์ฝํ ์ธ ์ ์์(์๋ํฐ)๋ ์๋ฆ๋ค์ด ๊ด๋ฆฌ์ ํผ์์ ๊ธ์ ์ฐ๊ณ ์ด๋ฏธ์ง๋ ํ๊ทธ๋ฅผ ๋ถ์ฌ ์ ์ฅํ๊ณ , ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ ์์ํ JSON API๋ง ๋ฐ์์ ์์ ๋กญ๊ฒ ํ๋ฉด์ ๋๋ก์ํ ์ ์๋๋ก ๋๋ ๋ํ์ ์ธ API-first ์ฝํ ์ธ ๊ด๋ฆฌ ์๋ฃจ์ ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): JavaScript, React (์ด๋๋ฏผ ํจ๋), Koa.js (๊ฒฝ๋ ์๋ฒ ํ๋ ์์ํฌ)
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ํค๋๋ฆฌ์ค(Headless) ์ํคํ ์ฒ: ํ๋ฉด๋จ(Head)์ด ์กด์ฌํ์ง ์๊ณ ์์ ์์ ๋ฐ์ดํฐ ์ก์ถ์ฐฝ(API)๋ง ๊ด๋ฆฌํ์ฌ ์ ์ ์ฌ์ดํธ ๋น๋๋ ๋ชจ๋ฐ์ผ ์ฑ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฟ์ด์ฃผ๋ ๋ฐฑ์๋ ๊ตฌ์กฐ๋ฅผ ์์์ผ ํฉ๋๋ค.
- Dynamic Zones ๋ชจ๋ธ๋ง: ์๋ํฐ๊ฐ ์ฝํ ์ธ ์์ญ์ ํ ์คํธ, ์ฐจํธ, ์ฌ๋ผ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์์ ๋กญ๊ฒ ๊ฐ๋ณ ๋ฐฐ์ดํ ์ ์๊ฒ ๋๋ ๋์ JSON ์๋ฃํ ๋ชจ๋ธ๋ง ๊ธฐ์ ์ ์์งํด์ผ ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ์ฝํ ์ธ ๋ Strapi์์ ํผ๋ธ๋ฆฌ์ฑํ๊ณ , Next.js๋ Gatsby ์น์ฑ์ ๋น๋ ํ์์ Strapi API๋ฅผ ๋ก๊ฒจ์ ์น ๋ก๋ฉ ์๋๊ฐ 0.1์ด ์์ค์ผ๋ก ๋น ๋ฅธ ๋ธ๋ก๊ทธ/๋ด์ค ์๋น์ค ์ ์ ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ ์ฉํด ๋ณด์ธ์.
8. Cal.com ๐ โ
์ปค์คํฐ๋ง์ด์ง์ด ๊ฐ๋ฅํ ์คํ์์ค ์ผ์ ์์ฝ ํ๋ซํผGitHub: calcom/cal.com
์๊ฐ: ์บ๋ฆฐ๋ค๋ฆฌ(Calendly)๋ฅผ ์์ ํ ๋์ฒดํ๋ ์คํ์์ค ์ค์ผ์ค๋ง ์ธํ๋ผ๋ก, ๊ตฌ๊ธ ์บ๋ฆฐ๋๋ ์์๋ฃฉ, ํ์ ํ์์ฉ Zoom/Meet์ ์์ ํ๊ฒ ๋๊ธฐํํด ๊ณ ๊ฐ์ด ๋ด ๊ฐ์ฉ ์๊ฐ๋์ ๋ฏธํ ์ ์์ฝํ ์ ์๊ฒ ํ๋ ๋๊ตฌ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Next.js, React, Prisma (ORM), PostgreSQL, TailwindCSS
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์๊ฐ๋(Timezone) ์ฐ์ฐ: ์์ฝ์๊ฐ ์ธ๊ณ ๊ฐ๊ตญ์ ํผ์ ธ์์ ๋ ์๊ธฐ๋ UTC ํ์ค์์ ๋ก์ปฌ ์๊ฐ(KST, EST ๋ฑ) ๊ฐ์ ์ค๋ณต ์์ฝ ์ฐจ๋จ๊ณผ ์จ๋จธํ์ ์ค์ฐจ๋ฅผ ์ก๋ ์๊ณ์ด ์ํ์ ์์งํด์ผ ํฉ๋๋ค.
- OAuth 3์ฌ ํ ํฐ ์ฐ๋: ๊ตฌ๊ธ/๋ง์ดํฌ๋ก์ํํธ ์บ๋ฆฐ๋ API ๊ถํ์ ๋ฐ์์ ์ฌ์ฉ์์ ์ผ์ ์ ์ค์๊ฐ ์ค์บํด ๋น์ด์๋ ํ์ ์ฌ๋กฏ์ ์ถ์ถํ๋ ๊ธฐ๋ฒ์ด ํ์ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ์ ๋ฃ ํ๋ซํผ ๊ตฌ๋ ๋น์ฉ์ ์ ์ฝํ๊ธฐ ์ํด ๊ฐ์ธ VPS ์๋ฒ์ Cal.com์ ์ ํ ํธ์คํ ์ผ๋ก ๋์, ๋ด ํฌํธํด๋ฆฌ์ค ์น์ฌ์ดํธ๋ ์ฌ๋ด ์น์ฑ ๋ด์ ์ง์ ์ผ์ ์์ฝ ์์ ฏ์ ์ฐ๋ํด ์ฌ์ฉํ์ธ์.
9. Metabase ๐ โ
๋๊ตฌ๋ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ํํ๋ ์คํ์์ค ๋น์ฆ๋์ค ์ธํ ๋ฆฌ์ ์ค(BI)GitHub: metabase/metabase
์๊ฐ: ๋ณต์กํ ์ฝ๋ฉ์ด๋ SQL ์ง์์ด ์๋ ๊ธฐํ์๋ ๋ง์ผํฐ๋ ๋ง์ฐ์ค ํด๋ฆญ ๋ช ๋ฒ(Visual Query Builder)์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๊ฐ์ ์ฐจํธ์ ์ค์๊ฐ ์ฐ๋ ๋์๋ณด๋๋ก ๋ง๋ค์ด ์ฌ๋ด์ ๊ณต์ ํ ์ ์๋ ์๊ฐํ ์ํํธ์จ์ด์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Clojure (LISP ๊ณ์ด์ ๋ฐฑ์๋), React, Java
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ๋ฐ์ดํฐ ๋ ์ดํฌ ๋ฐ ์จ์ดํ์ฐ์ง: ์๋ง์ ์๋น์ค ํธ๋์ญ์ ์ด ๋ฐ์ํ๋ ์ค์๊ฐ DB์ ๋ถํ๋ฅผ ์ฃผ์ง ์๊ณ ๋ณต์ DB๋ ๋ฐ์ดํฐ์จ์ดํ์ฐ์ค(BigQuery ๋ฑ)์ ์ปค๋ฅ์ ์ ๋งบ์ด ๊ฒฉ๋ฆฌ ์กฐํํ๋ ํ์ดํ๋ผ์ธ ์ง์์ ๋ฐฐ์์ผ ํฉ๋๋ค.
- SQL ์ง์ ์ปดํ์ผ๋ฌ: ๋น๊ธฐ์ ์๊ฐ UI์์ ์ค์ ํ ํํฐ ์กฐ๊ฑด์ด ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ RDBMS ํธํ SELECT ์ฟผ๋ฆฌ๋ก ์ปดํ์ผ๋์ด ๋๊ฐ๋์ง ์๋ฆฌ๋ฅผ ํ์ ํด ๋ณด์ธ์.
- ๐ก ํ์ฉ ํ: ์ฌ๋ด ๊ธฐ์ ์งํ ๋ชจ๋ํฐ๋ง์ ์ํด ์ฃผ์ ํธ๋ํฝ DB๋ฅผ Metabase์ ์ฐ๊ฒฐํด ๋งค์ผ ์์นจ ๊ฐ์ ์ ์, ๊ฒฐ์ ์จ ํต๊ณ๋ฅผ ์ฌ๋ ์ฑ๋๋ก ์ฐจํธ ์ด๋ฏธ์ง์ ํจ๊ป ์๋ ์ค์ผ์ค๋ง ์ ์กํ๋ ์๋ ๋์๋ณด๋๋ฅผ ์ฐ๋ํ์ธ์.
10. n8n ๐ โ
๋ ธ๋ ๊ธฐ๋ฐ ๋น๋๊ธฐ์ ์ํฌํ๋ก์ฐ ๋น์ฃผ์ผ ์๋ํ ์์งGitHub: n8n-io/n8n
์๊ฐ: ์ํผ์ด(Zapier)์ ๊ฐ๋ ฅํ ์คํ์์ค ๋ฒ์ ์ผ๋ก, ๊ฐ ์๋น์ค ๋ธ๋ก(GitHub, Gmail, Slack ๋ฑ)์ ํ๋ฉด ์์ ์ ์ผ๋ก ๋์ด๋ค ๋์ ์กฐ๊ฑด ๋ถ๊ธฐ, ๋ฐ์ดํฐ ๋ณํ์ ๊ฐ๋ํด ์ ๋ฌด๋ฅผ ์๋ํํด ์ฃผ๋ ๋ ธ๋ ์คํ๊ธฐ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): TypeScript, Vue.js, Node.js
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ๋น์ฃผ์ผ ์ธํฐํ๋ฆฌํฐ ์ํคํ ์ฒ: ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ ธ๋ ๊ทธ๋ํ๋ฅผ ์ง๋ฉด ์ด์ ๋ ธ๋์ ์์ํ JSON ๊ฐ์ฒด๊ฐ ๋ค์ ๋ ธ๋์ ์ธํ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ธ๋ฉ๋์ด ์คํ๋๋ ๋ฐ์ดํฐ ์งํฅ ์๋๋ฐ์ค์ ์๋ฆฌ๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค.
- Webhook ์์ ํธ๋ค๋ง: ์ธ๋ถ ์๋น์ค์ ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ฐ์๋ด๋ ์นํ ์ปจํธ๋กค๋ฌ ์๋ํฌ์ธํธ ์๋ฆฝ ๋ฐฉ์์ ๋ง์คํฐํด์ผ ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ๊ฐ๋ฐ ์ ๋ฌด ํจ์จ์ ์ํด **"๊นํ๋ธ์ ๋๊ตฐ๊ฐ ์คํ๋ฅผ ๋๋ฅด๋ฉด, ๊ทธ ์ฌ๋์ ๊ณ์ ํ๋กํ ์ ๋ณด๋ฅผ ์กฐํํ์ฌ ์ฌ๋ ์ฑ๋๋ก ์์ ํ๋กํ ์ฌ์ง๊ณผ ์นด๋๋ฅผ ์ ์กํ๋ ์ํฌํ๋ก์ฐ"**๋ฅผ ๋จ 5๋ถ ๋ง์ ๊ตฌ์ฑํด ํ์๋ค๊ณผ ๊ณต์ ํด ๋ณด์ธ์.
11. Rasa ๐ฌ โ
๊ธฐ์ ์ฉ ๊ณ ์ฑ๋ฅ ๋จธ์ ๋ฌ๋ ๋ํํ AI ํ๋ ์์ํฌGitHub: RasaHQ/rasa
์๊ฐ: ์ธ๋ถ ํด๋ผ์ฐ๋ AI ์๋น์ค(ChatGPT ๋ฑ)์ ๋ฏผ๊ฐํ ์ฌ๋ด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ์ง ์๊ณ , ์ฌ์ค ์จํ๋ ๋ฏธ์ค ์ฅ๋น ์์์ ๊ธฐ๊ณํ์ต ๋ชจ๋ธ์ ์ง์ ํ๋ จ์์ผ ์ฌ์ฉ์ ๋ฐํ์ ์๋(Intent)๋ฅผ ํ์ ํ๊ณ ๋ํ๋ฅผ ์ด๋์ด๋ด๋ ์คํ์์ค ๋ํ ์์ง์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Python, TensorFlow, PyTorch
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- NLU (์์ฐ์ด ์ดํด) ํ์ดํ๋ผ์ธ: ํ ์คํธ ํ ํฐํ, ํํ์ ๋ถ์, ์ฌ์ ํ์ต๋ ์๋ฒ ๋ฉ ๋ฒกํฐ ๋ชจ๋ธ์ ์ด์ฉํด ํ ์คํธ์ ์ค์ ์๋๋ฅผ ๋ถ๋ฅํ๋ ๋จธ์ ๋ฌ๋ ๊ตฌ์กฐ๋ฅผ ํ์ ํด์ผ ํฉ๋๋ค.
- ๋ํ ์ํ ์ ์ด (Dialogue Management): ์ฌ์ฉ์๊ฐ ์ด์ ์ ์ด๋ค ๋ง์ ํ๋์ง ๋ฌธ๋งฅ(Slot, Story) ์ ๋ณด๋ฅผ ์ถ์ ํด ์ ์ ํ ๋ต๋ณ์ ์์ฑํ๋ ์ํ ์ ์ด ์ด๋ก ์ ๋ฐฐ์์ผ ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: Rasa๋ฅผ ์ด์ฉํด ์ฌ๋ด ์ธ์ฌ ๊ฐ์ด๋๋ถ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฑ๋ด ์์ง์ ๋ก์ปฌ ํ์ต์ํค๊ณ , "์ฐ์ฐจ ์ ์ฒญ", "๊ธ์ฌ ์กฐํ" ๋ฑ์ ํน์ ํค์๋ ์์ ์ ์ฌ๋ด ์ธํธ๋ผ๋ท ์์คํ API์ ์ฐ๋ํด ์๋ ๋ต๋ณํด ์ฃผ๋ ์ฌ๋ด AI ๋น์๋ฅผ ๊ตฌํํ์ธ์.
12. Hasura ๐๏ธ โ
DB ์คํค๋ง ๊ธฐ๋ฐ ์ค์๊ฐ ์ด๊ณ ์ GraphQL ์๋ ์์ฑ ์์งGitHub: hasura/graphql-engine
์๊ฐ: PostgreSQL, SQL Server ๋ฑ ๋ค์ํ DB์ ์ฐ๊ฒฐํ๊ธฐ๋ง ํ๋ฉด ์คํค๋ง ๊ตฌ์กฐ๋ฅผ ๋์ ์ปดํ์ผํ์ฌ ์๋ฒฝํ ๋ณด์ ์ ์ฑ ๊ณผ ์ค์๊ฐ ๊ตฌ๋ (Subscription) ๊ธฐ๋ฅ์ด ํฌํจ๋ ์ํฐํ๋ผ์ด์ฆ๊ธ GraphQL API๋ฅผ ์ฆ์ ๋ฟ์ด๋ด๋ ๋ชจ๋ ์ํคํ ์ฒ์ฉ API ๊ฒ์ดํธ์จ์ด ์์ง์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Haskell, PostgreSQL, C/C++
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- GraphQL AST to SQL Compiler: ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ์ค์ฒฉ๋ GraphQL ์ง์๋ฅผ ๊ฐ๊ณตํด N+1 ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ฉฐ ์ต์ ์ ์กฐ์ธ(JOIN) ์ฟผ๋ฆฌ๋ฅผ ํฌํจํ ๋จ ํ๋์ ๊ณ ์ฑ๋ฅ SQL๋ก ์ปดํ์ผํด DB์ ์ง์ํ๋ ์ปดํ์ผ ๋ฉ์ปค๋์ฆ์ ์์์ผ ํฉ๋๋ค.
- ์น์์ผ ์ปค๋ฅ์ ํ๋ง: ์ค์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์๊ฐ๋ ์์ฒ ๋ช ์ ํด๋ผ์ด์ธํธ ๊ตฌ๋ ์์ฒญ์ ๋จ์ผ ์ปค๋ฅ์ ํ๋ก ์์ถํด ๊ฐ์งํ๋ ์๋ฆฌ๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ ๋ณ๋ ์๋ง๋ค ๋ฐฑ์๋ ์ฝ๋๋ฅผ ์ง์ ๋ฐฐํฌํ ํ์ ์์ด, Hasura ์์ง์ ๊ฒ์ดํธ์จ์ด๋ก ๋๊ณ ํ๋ก ํธ์๋๊ฐ ํ์ํ ์ฟผ๋ฆฌ๋ฅผ ์ฆ์ ์์ฒญํด ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋งํ๋ ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ๋ฅผ ๊ฐ๋ํด ๋ณด์ธ์.
13. LocalStack ๐ป โ
๋ก์ปฌ์์ ์๋ฒฝํ๊ฒ ๊ตฌ๋๋๋ AWS ํด๋ผ์ฐ๋ ์คํ ์๋ฎฌ๋ ์ดํฐGitHub: localstack/localstack
์๊ฐ: S3, Lambda, DynamoDB, SQ, API Gateway ๋ฑ AWS์ ์ ๋ฃ ํด๋ผ์ฐ๋ ์๋น์ค ๋ช ์ธ์ ๋์ผํ๊ฒ ๋์ํ๋ ๊ฐ์์ AWS ๋ชจํ ์๋ฒ๋ฅผ ๋ด ์ปดํจํฐ ๋ด ๋์ปค ์ปจํ ์ด๋์์ 100% ๋ชจ๋ฐฉํด ์คํ์์ผ ์ฃผ๋ ๊ฐ๋ฐ ๋ฐ ํตํฉ ํ ์คํธ์ฉ ํต์ฌ ์๋ฃจ์ ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Python, Docker
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- AWS API ๋ฐ SDK: boto3๋ aws-cli๋ฅผ ์ด์ฉํด ํด๋ผ์ฐ๋ ํ๊ฒฝ์ด ์๋ ๋ก์ปฌ LocalStack ์๋ํฌ์ธํธ URL(
http://localhost:4566)๋ก ๋ฐฉํฅ์ ํ์ด ์ ์์ํค๋ ์ง์์ด ํ์ํฉ๋๋ค. - ํด๋ผ์ฐ๋ IaC (IaC - Infrastructure as Code): Terraform์ด๋ CloudFormation ๋ช ์ธ๋ฅผ ๋ก์ปฌ ํ๊ฒฝ์ ๊ฐ์ AWS์ ๋ฐ์ํ๋ ๊ธฐ๋ณธ ๊ฐ๋ ์ ํ์ตํ๋ฉด ์ข์ต๋๋ค.
- AWS API ๋ฐ SDK: boto3๋ aws-cli๋ฅผ ์ด์ฉํด ํด๋ผ์ฐ๋ ํ๊ฒฝ์ด ์๋ ๋ก์ปฌ LocalStack ์๋ํฌ์ธํธ URL(
- ๐ก ํ์ฉ ํ: ๋๋ค(Lambda) ์๋ฒ๋ฆฌ์ค ํจ์๋ S3 ๋ฒํท ํ์ผ ํธ๋ฆฌ๊ฑฐ ๋ก์ง์ AWS์ ์ค์ ์ฌ๋ฆฌ๋ฉฐ ๋น์ฉ์ ๋ญ๋นํ๋ ๋์ , ๋ก์ปฌ ํ ์คํ ํ์ดํ๋ผ์ธ์์ ์์ ํ ๊ฒ์ฆํ ํ์ ๋จ ํ ๋ฒ์ ์ปค๋งจ๋๋ก ์์ฉ ํด๋ผ์ฐ๋์ ์ด์ํ๋ ๊ตฌ์กฐ๋ฅผ ์์ฑํด ๋ณด์ธ์.
14. Meilisearch ๐ โ
์ด๊ณ ์์ด๋ฉฐ ์๋ ์คํ ๊ต์ ์ด ์ง์๋๋ ๋ชจ๋ ๊ฒ์ ์์งGitHub: meilisearch/meilisearch
์๊ฐ: ๋ฌด๊ฒ๊ณ ๋ณต์กํ Elasticsearch ๋์ , ๋จ์ผ ์คํ ํ์ผ๋ง์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ต์ํํ๋ฉด์ ์ด์ฑ ๊ฒ์, ์คํ ํ์ฉ(Typo Tolerance), ํํฐ ์กฐ๊ฑด์ ๋ฐ๋ฆฌ์ด ๋จ์๋ก ์ด๊ณ ์ ๋ฐ์ํด ์ฃผ๋ ํ๋ก ํธ์๋ ์ต์ ํํ ๊ฒ์์์ง์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Rust, Actix-web, LMDB (Lightning Memory-Mapped Database)
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์ญ์์ธ(Inverted Index): ๋ฌธ์ ๋ด๋ถ์ ๋ชจ๋ ๋จ์ด๋ฅผ ํ ํฐ ๋ถํดํด ๋จ์ด๋ณ ๋ฌธ์ ์์น ๋งต์ ์์ฑํ์ฌ, ๊ฒ์ ์ ์์ฐจ ํ์ ์์ด ํด์ ๋งคํ์ผ๋ก ์ฆ๊ฐ ๋์ถํ๋ ๊ฒ์ ํต์ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฐ์์ผ ํฉ๋๋ค.
- ๋ญํน ๋ฐ ๊ฐ์ค์น ๊ท์น: ๊ฒ์์ด์ ์ค์๋, ๋ฌธ์์ ์ต์ ์ฑ, ์คํ ๊ฑฐ๋ฆฌ(Levenshtein Distance)๋ฅผ ์ข ํฉ ์ฐ์ถํด ๊ด๋ จ๋๊ฐ ๋์ ๋ฌธ์๋ฅผ ์ต์๋จ์ ๋ฐฐ์นํ๋ ์์ ๊ฒฐ์ ๊ณต์์ ์ดํดํด์ผ ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ์ผํ๋ชฐ ์ํ ๊ฒ์์ฐฝ์ด๋ ์์ฌ ๊ธฐ์ ๊ฐ์ด๋ ๋ฌธ์ ์ฌ์ดํธ์ Meilisearch ์๋ฐ์คํฌ๋ฆฝํธ ํด๋ผ์ด์ธํธ๋ฅผ ์ฐ๋ํ๊ณ , ์ฌ์ฉ์๊ฐ ํ ๊ธ์์ฉ ์ ๋ ฅํ ๋๋ง๋ค ์ค์๊ฐ์ผ๋ก ๊ฒฐ๊ณผ ๋ชฉ๋ก์ด ๋น๋๊ธฐ ๊ฐฑ์ ๋๋ ์ธ์คํดํธ ๊ฒ์ UI๋ฅผ ์ด์ํ์ธ์.
15. Typesense โก โ
๋ฉ๋ชจ๋ฆฌ ์์ฃผ ๊ธฐ๋ฐ ๊ณ ์ฑ๋ฅ ์ค์๊ฐ ๊ฒ์ ์์งGitHub: typesense/typesense
์๊ฐ: Meilisearch์ ๊ฒฝ์ํ๋ฉฐ, ์ธ๋ฉ๋ชจ๋ฆฌ(In-Memory) ๊ธฐ๋ฐ์ผ๋ก ๋๋์ ์ธ๋ฑ์ค๋ฅผ ๋ณด๊ดํ์ฌ ๋์คํฌ I/O ๋ณ๋ชฉ์ ์ ๋กํํ๊ณ Raft ํฉ์ ํ๋กํ ์ฝ์ ํตํด ํด๋ฌ์คํฐ๋ง ํ์ฅ์ฑ๊น์ง ์ง์ํ๋ ๊ธฐ์ ์ฉ ๊ณ ์ ๊ฒ์ ์๋ฃจ์ ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): C++, Raft Consensus
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํคํ ์ฒ: ๋ชจ๋ ๊ฒ์ ์ธ๋ฑ์ค๋ฅผ RAM ์์ ์ฌ๋ ค ์ฐ์ฐ ์๋๋ฅผ ๋ณด์ฅํ๊ณ , ๋ณ๊ฒฝ ๋ด์ญ์ ํธ๋์ญ์ ๋ก๊ทธ(WAL) ํํ๋ก ๋์คํฌ์ ๊ธฐ๋กํด ์์ ์ฑ์ ๋ด๋ณดํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณตํ์ ์ดํดํด์ผ ํฉ๋๋ค.
- Raft ํฉ์ ํ๋กํ ์ฝ: ์ฌ๋ฌ ๋์ ๊ฒ์ ๋ ธ๋๊ฐ ํด๋ฌ์คํฐ๋ง๋ ๋ ๋ฆฌ๋ ๋ ธ๋๋ฅผ ์ ์ถํ๊ณ ๋ถ์ฐ ์ธ๋ฑ์ค ๋๊ธฐํ ์ํ๋ฅผ ๋์ํ๋ ๊ณ ๊ฐ์ฉ์ฑ ๊ตฌ์กฐ๋ฅผ ์์งํด์ผ ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ๋์ฉ๋ ๋ก๊ทธ ์์ง๊ธฐ๋ ์ ์ฌ ๋ฌธ์ ์์นด์ด๋ธ์ฒ๋ผ ๊ฒ์ ๋์ ๋ฐ์ดํฐ๊ฐ ์๋ฐฑ๋ง ๊ฑด ์ด์์ผ๋ก ๋๊ท๋ชจํ๋ ๋, Typesense ํด๋ฌ์คํฐ๋ฅผ ๋์ ๋ค์์ ์๋น์ค API ์๋ฒ์์ ๊ณ ์ ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋๋ก ์ด์ํด ๋ณด์ธ์.
16. PostHog ๐ฆ โ
ํด๋ผ์ฐ๋ ์ข ์ ์๋ ์ฌ์ธ์ ์ ํ ๋ถ์ ๋ฐ ์ฌ์ฉ์ ํ๋ ์ถ์ ํ๋ซํผGitHub: posthog/posthog
์๊ฐ: ๊ตฌ๊ธ ์ ๋๋ฆฌํฑ์ค๋ ์ฐํ๋ฆฌํ๋(Amplitude)์ฒ๋ผ ์ฌ์ฉ์์ ์ ์ ๊ฒฝ๋ก, ํ์ด์ง ๋ทฐ, ๋ฒํผ ํด๋ฆญ ํจํด์ ํธ๋ํนํ๊ณ ๋์๊ฐ ์ฌ์ฉ์ ํ๋ฉด ๋ง์ฐ์ค ์์ง์์ ๋์์์ฒ๋ผ ์ฌ์ํด์ฃผ๋ ์ธ์ ๋ฆฌํ๋ ์ด(Session Recording) ๊ธฐ๋ฅ๊น์ง ํ์ฌํ ํตํฉ ๋ถ์ ํ๋ซํผ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Python (Django), ClickHouse (์ด ์งํฅ ๋ถ์์ฉ DB), React, TypeScript
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์ด ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค (ClickHouse): ๋์ฉ๋์ ์ด๋ฒคํธ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ํน์ ์ปฌ๋ผ ๋จ์๋ก ์์ถํ์ฌ ์ ์ฅํ๊ณ , ์์ต ๊ฐ์ ๋ ์ฝ๋ ์ค ํน์ ์ด๋ฒคํธ์ ํฉ๊ณ๋ฅผ ๋จ ์์ด ๋ง์ ๊ณ์ฐํด๋ด๋ OLAP ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์๋์ด์ผ ํฉ๋๋ค.
- DOM ์ง๋ ฌํ(Serialization): ์ฌ์ฉ์ ํ๋ฉด์ ํ๋ผ์ด๋ฒ์ ์ ๋ณด๋ฅผ ๋ง์คํนํ๋ฉด์ HTML ์์์ ํฌ๊ธฐ์ ๋ง์ฐ์ค ๊ฒฝ๋ก๋ฅผ ์ค์๊ฐ ์ง๋ ฌํํด ์๋ฒ๋ก ์ ์กํ๋ ์๋ฆฌ๋ฅผ ์๋ฉด ์ข์ต๋๋ค.
- ๐ก ํ์ฉ ํ: ์ ๊ท ๋ฐ์นญํ ์น ์๋น์ค์ ๊ฐ์ ํผ๋(Funnel)์ ์ค์ ํ๊ณ , ์ฌ์ฉ์๋ค์ด ์ด๋ ๋จ๊ณ์์ ๊ฐ์ ์ ํฌ๊ธฐํ๊ณ ์ดํํ๋์ง ํผ๋ ์ฐจํธ์ ์ธ์ ๋ นํ๋ณธ์ ๋ถ์ํ์ฌ UX๋ฅผ ์ ์ง์ ์ผ๋ก ๊ฐ์ ํด๋๊ฐ๋ ๋๊ตฌ๋ก ํ์ฉํ์ธ์.
17. Plausible Analytics ๐ โ
1KB ๋ฏธ๋ง ๊ฒฝ๋ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ ๊ฐ์ธ์ ๋ณด ๋ณดํธํ ์น ๋ถ์ ์๋ฃจ์ GitHub: plausible/analytics
์๊ฐ: ๊ตฌ๊ธ ์ ๋๋ฆฌํฑ์ค์ ๋ฌด๊ฑฐ์ด ํธ๋์ปค ์คํฌ๋ฆฝํธ(์์ญ KB)๋ก ์ธํด ์น ์ฌ์ดํธ ์๋๊ฐ ๋๋ ค์ง๋ ๋ฌธ์ ๋ฅผ ๋จ 1KB ๋ฏธ๋ง์ ๊ฒฝ๋ ํธ๋์ปค ์คํฌ๋ฆฝํธ๋ก ํด๊ฒฐํ๋ฉฐ, ์ฟ ํค๋ฅผ ์ผ์ ๊ตฝ์ง ์์ GDPR(์ ๋ฝ ๊ฐ์ธ์ ๋ณด๋ณดํธ๊ท์ ) ์ค์๊ฐ ์ฉ์ดํ ๊น๋ํ ์น ํธ๋ํฝ ๋ชจ๋ํฐ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Elixir (Phoenix), ClickHouse, PostgreSQL
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์ฟ ํค ์๋ ์น ๋ถ์ (Cookie-less Tracking): IP ํด์๊ฐ๊ณผ ๋ธ๋ผ์ฐ์ User-Agent ์ ๋ณด๋ฅผ ์กฐํฉํด ๋จ 24์๊ฐ ๋์๋ง ์ ํจํ ์์ ์๋ณ์๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉ์๋ฅผ ์ถ์ ํ๋ ๊ฐ์ธ์ ๋ณด ์นํ ๊ธฐ์ ์ ์ดํดํด์ผ ํฉ๋๋ค.
- ์น ์ฑ๋ฅ ์ต์ ํ: ๋ธ๋ผ์ฐ์ ๋ ๋๋ง์ ๋ฐฉํดํ์ง ์๋ ๋น๋๊ธฐ(
defer) ์คํฌ๋ฆฝํธ ์คํ ์ ์ด๋ฒ์ ์ต๋ํด์ผ ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ๊ธฐ์ ๋ธ๋ก๊ทธ๋ ์ฌ๋ด ํ๋ณด ํ์ด์ง์ ์ ์ ๋, ์ธ๊ธฐ ํฌ์คํธ ์์๋ฅผ ์นํ์ด์ง ๋ฐ์ ์ฑ๋ฅ ์ ํ ์์ด ๊ฐ์ฅ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ๋ถ์ํ๊ณ ์ถ์ ๋ Plausible์ ์์ฌ ๊ฐ์ ์๋ฒ์ ๊ตฌ์ถํด ์ฐ๋ํ์ธ์.
18. Uptime Kuma ๐ฆ โ
์๋ฆ๋ค์ด ๋ชจ๋ ์ธํฐํ์ด์ค์ ์ ํํธ์คํ ์๋ฒ ๊ฐ์ ๋ชจ๋ํฐGitHub: louislam/uptime-kuma
์๊ฐ: ์ฌ๋ด ์๋ฒ, API ์๋ํฌ์ธํธ, DB ํฌํธ๊ฐ ์ ์ ๊ฐ๋ ์ค์ธ์ง ์ฃผ๊ธฐ์ ์ผ๋ก ์ ํธ(Ping/HTTP)๋ฅผ ๋ณด๋ด ์ฒดํฌํ๊ณ , ์ฅ์ ๋ฐ์ ์ ํ ๋ ๊ทธ๋จ, ๋์ค์ฝ๋, ์ฌ๋ ๋ฑ์ผ๋ก ์ฅ์ ์๋ฆผ์ ์ฆ์ ์์์ฃผ๋ ์ธ๋ จ๋ ๋ชจ๋ํฐ๋ง ๋์๋ณด๋์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Vue.js, Node.js (Socket.io), SQLite
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ๋น๋๊ธฐ ์์ผ ํต์ (Socket.io): ์๋ฒ ์ํ ๋ณํ ์ด๋ฒคํธ๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์ค์๊ฐ ์๋ฐฉํฅ์ผ๋ก ๋๋ ์ด ์์ด ์คํธ๋ฆฌ๋ฐํ๋ ์์ผ ์น ํ๋กํ ์ฝ์ ์ดํดํด์ผ ํฉ๋๋ค.
- ๋คํธ์ํฌ ์ง๋จ ํ๋กํ ์ฝ: ICMP Ping, TCP handshake, HTTP ์๋ต ์ํ ์ฝ๋์ ๋ฐ๋ฅธ ์ฅ์ ๊ธฐ์ค ์๋ฆฝ ์๋ฆฌ๋ฅผ ์์งํด์ผ ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ์ ๋ ดํ ์ํ ํด๋ผ์ฐ๋ ์ธ์คํด์ค์ Uptime Kuma๋ฅผ ์ฌ๋ฆฐ ๋ค, ์์ฌ ํ๋ก๋์ ์น์ฌ์ดํธ URL๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํฌํธ๋ฅผ ๋ฑ๋กํ๊ณ ํ ๋ ๊ทธ๋จ ๋ด ํ ํฐ์ ์ฐ๋ํด ์๋ฒ ๋ค์ด ์ ๋ชจ๋ฐ์ผ ํฐ์ผ๋ก 30์ด ๋ด์ ๊ธด๊ธ ์ฅ์ ํธ์๋ฅผ ๋ฐ๋๋ก ์ค์ ํด ๋์ญ์์ค.
19. Outline ๐ โ
ํ์ ์ํ ์ธ๋ จ๋๊ณ ๊ณ ์์ธ ๋ชจ๋ ๋งํฌ๋ค์ด ์ํค ์์ ฏGitHub: outline/outline
์๊ฐ: ๋ ธ์ (Notion)์ ์๋ ๋ณ๋ชฉ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ณ ์๋ ๋งํฌ๋ค์ด ๊ธฐ๋ฐ์ ํ์ ์ํค ํ๋ซํผ์ผ๋ก, ์ค์๊ฐ ๊ณต๋ ํธ์ง๊ณผ ์ฌ๋ ์ฐ๋์ด ๊ฐ๋ ฅํ๊ฒ ํ์ฌ๋ ์ฐจ์ธ๋ ์ฌ๋ด ์ง์ ๊ณต์ ํ๋ซํผ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Node.js, React, PostgreSQL, Redis, Sequelize (ORM)
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- Collaborative Editor (Yjs/ProseMirror): ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋์ ํ์ดํํ ๋ ๊ธ์๊ฐ ๊ผฌ์ด์ง ์๋๋ก ์ถฉ๋์ ์ค์ฌํ๊ณ ๋ฌธ์๋ฅผ ๋ณํฉํ๋ ๋ถ์ฐ ๋๊ธฐํ ํ๋กํ ์ฝ์ ์์์ผ ์๋ํฐ ์ฑ๋ฅ ์ปค์คํ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- S3 ํธํ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง: ์ํค์ ์ ๋ก๋๋๋ ์ฒจ๋ถ ์ด๋ฏธ์ง๋ ํ์ผ์ ๋ณด๊ดํ๊ธฐ ์ํด AWS S3๋ ์คํ์์ค MinIO์ ์ฐ๋ํ๋ ํ์ผ ๋งคํ ๊ธฐ์ ์ด ํ์์ ์ ๋๋ค.
- ๐ก ํ์ฉ ํ: ๊ฐ๋ฐํ ๋ด๋ถ์ API ๋ช ์ธ์, ์์คํ ์ธํ๋ผ ๋ค์ด์ด๊ทธ๋จ, ์ ๊ท ์ ์ฌ์ ๊ฐ์ด๋ ๊ฐ์ด๋๋ผ์ธ ๋ฌธ์๋ฅผ ์ฌ๋ ์ํฌ์คํ์ด์ค์ ์ฐ๋ํด Outline ์์์ ๋งํฌ๋ค์ด ํํ๋ก ๊ฐ์ฅ ๊ธฐ๋ฏผํ๊ฒ ์์ฑ ๋ฐ ๊ณต์ ํด ๋ณด์ธ์.
20. Focalboard ๐ โ
ํธ๋ ๋ก(Trello)๋ฅผ ๋์ฒดํ๋ ์คํ์์ค ์ ํํธ์คํ ์นธ๋ฐ ๋ณด๋GitHub: mattermost/focalboard
์๊ฐ: ๋ฉํฐ๋ชจ์คํธ(Mattermost) ํ์ด ๋ฆฌ๋ํ๋ ํ๋ก์ ํธ ๊ด๋ฆฌ ํ์ ํด๋ก, ์ผ์ ํ, ๋ฆฌ์คํธ, ์นด๋ ๋ณด๋(์นธ๋ฐ) ๋ทฐ๋ฅผ ์ง๊ด์ ์ผ๋ก ์ ๊ณตํ์ฌ ๊ฐ์ธ ์ ๋ฌด ์ค์ผ์ค์ด๋ ์๊ท๋ชจ ๊ฐ๋ฐ ํ๋ก์ ํธ์ ์คํ๋ฆฐํธ ์ด์๋ฅผ ์๋ฒฝํ๊ฒ ์ถ์ ํ ์ ์๋๋ก ๋๋ ๋ณด๋์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Go, React, TypeScript, SQLite / PostgreSQL
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- RESTful API์ ๊ตฌ์กฐ์ฒด: Go ๋ฐฑ์๋ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฐ๋ผ ํ์คํฌ์ ์ํ ํ๋(To Do, In Progress, Done)๋ฅผ ์กฐ์ํ๊ณ ๊ด๊ณ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฐ์ดํฐ ์คํค๋ง ์ค๊ณ๋ฅผ ํ์ ํด์ผ ํฉ๋๋ค.
- Drag-and-Drop (๋๋๊ทธ ์ค ๋๋กญ) UI: ๋ธ๋ผ์ฐ์ ๋ง์ฐ์ค ํฌ์ธํฐ ์ด๋ฒคํธ๋ฅผ ์ถ์ ํด ์นด๋์ ์๊ฐ์ ์ ๋ ฌ ์์น๋ฅผ ์ฎ๊ธฐ๊ณ ์ํ ๋ณ๊ฒฝ API๋ฅผ ๋น๋๊ธฐ ํธ์ถํ๋ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ํธ๋ค๋ง ๊ธฐ์ ์ ์์์ผ ํฉ๋๋ค.
- ๐ก ํ์ฉ ํ: ์ธ๋ถ ์ผ์ ๊ด๋ฆฌ ํด(Trello, Jira ๋ฑ)์ ๊ณ ๋น์ฉ ๊ตฌ๋ ๋ชจ๋ธ ๋์ , ๋ก์ปฌ ์๋ฒ๋ ์ฌ๋ด ๋คํธ์ํน ๋ง ๋ด๋ถ์ Focalboard ์๋ฒ๋ฅผ ์คํํด๋๊ณ , ํ์๋ค๊ณผ ์ ๋ฌด ์ง๋๋ฅผ ์นธ๋ฐ๋ณด๋ ํํ๋ก ๋ณด์ ๋ฌธ์ ์์ด ๊ธฐ๋ฏผํ๊ฒ ์ด์ํ์ญ์์ค.
21. Infisical ๐ โ
ํ๊ฒฝ ๋ณ์(ENV)์ ์ํฌ๋ฆฟ ํค๋ฅผ ์๋ํฌ์๋๋ก ์ํธํํ๊ณ ํ ๊ฐ ๋๊ธฐํํ๋ ๋ณด์ ํ๋ซํผGitHub: Infisical/infisical
์๊ฐ: ๊ฐ๋ฐ์๋ค ๊ฐ์ .env ํ์ผ์ ๋ฉ์ ์ ๋ก ์ฃผ๊ณ ๋ฐ๋ ๋ณด์ ์ํ์ ์์ฒ ์ฐจ๋จํ๊ณ , ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ๋ถํฐ CI/CD, ์ฟ ๋ฒ๋คํฐ์ค, ํ๋ก๋์
์๋ฒ๊น์ง ๋ชจ๋ ์ํฌ๋ฆฟ ํค๋ฅผ E2EE(์ข
๋จ๊ฐ ์ํธํ)๋ก ์๋ฒฝํ๊ฒ ์๋ ์ฃผ์
ํด ์ฃผ๋ ๋น๋ฐ ์ ๋ณด ๊ด๋ฆฌ ํ๋ซํผ์
๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Node.js, TypeScript, Next.js, PostgreSQL, Redis
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์ข ๋จ๊ฐ ์ํธํ(E2EE): ์๋ฒ์กฐ์ฐจ ์ฌ์ฉ์์ ๋น๋ฐํค ๋ณตํธํ ํค๋ฅผ ์์ง ๋ชปํ๋๋ก ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ /CLI ๋จ์์ ๋น๋์นญ ํค(RSA/ECC)๋ก ์ํธํํ๋ ์์ง์(Zero-Knowledge) ๊ตฌ์กฐ๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค.
- CLI ๋ฐํ์ ํ๊ฒฝ ๋ณ์ ์ธ์ ์
:
infisical run -- npm start๋ช ๋ น์ด๋ก ์์ ํ๋ก์ธ์ค๊ฐ ๊ธฐ๋๋ ๋ ๋ฉ๋ชจ๋ฆฌ ์์๋ง ํ๊ฒฝ ๋ณ์๋ฅผ ๊ฐ์์ผ๋ก ์ฃผ์ ํ๊ณ ๋์คํฌ์ ํ์ ์ ๋จ๊ธฐ์ง ์๋ ๋ณด์ ํ๋ก์ธ์ค ๊ฒฉ๋ฆฌ๋ฅผ ํ์ตํ์ธ์.
- ๐ก ํ์ฉ ํ: ์ฌ๋ด ๊ฐ๋ฐํ์
.envํ์ผ ์ ์ถ ์ฌ๊ณ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด Infisical CLI๋ฅผ ์ค์นํ๊ณ ๊ฐ๋ฐ ์๋ฒ ๊ธฐ๋ ๋ช ๋ น์ด๋ฅผ ๋ํํ์ฌ, ํ์ ๋ชจ๋๊ฐ ์ต์ ํ๊ฒฝ ๋ณ์๋ฅผ 1์ด ๋ง์ ์์ ํ๊ฒ ์๋ ๋๊ธฐํํ๋๋ก ์ค์ ํ์ธ์.
22. Documenso โ๏ธ โ
DocuSign์ ์๋ฒฝํ ๋์ฒดํ๋ ๋ฒ์ ํจ๋ ฅ์ ์คํ์์ค ์ ์ ์๋ช ํ๋ซํผGitHub: documenso/documenso
์๊ฐ: ๊ณ์ฝ์, ๋์์, ํ๋ฆฌ๋์ ์ฉ์ญ ๊ณ์ฝ ๋ฑ ๋ค์ํ PDF ๋ฌธ์์ ์๋ช ํ๋๋ฅผ ๋ฐฐ์นํ๊ณ ์์ ์์๊ฒ ์๋ช ์์ฒญ ๋ฉ์ผ์ ๋ฐ์กํ์ฌ, ์๋ณ์กฐ ๋ฐฉ์ง ๊ฐ์ฌ ๋ก๊ทธ(Audit Trail)์ ๋์งํธ ์๋ช ์ ์์ ํ๊ฒ ์์ฑํด ์ฃผ๋ ํ๋ซํผ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): TypeScript, Next.js, Prisma, PostgreSQL, PDF-lib
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- PDF ๋ฐ์ด๋๋ฆฌ ์คํธ๋ฆผ ์กฐ์:
pdf-lib์ ํตํด ๊ธฐ์กด PDF์ ํ์ด์ง ์ขํ๊ณ์ ์๋ช ์ด๋ฏธ์ง ๋ฐ ํ ์คํธ ํผ ํ๋๋ฅผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ํฉ์ฑํ๋ ๋ฐ์ด๋๋ฆฌ ๋ ๋๋ง์ ์ดํดํด์ผ ํฉ๋๋ค. - PKI(๊ณต๊ฐํค ๊ธฐ๋ฐ๊ตฌ์กฐ) ์ ์ ์๋ช : ์๋ช ์๋ฃ ์์ ์ ๋ฌธ์ ํด์(SHA-256)๋ฅผ ํ์์คํฌํ ์ธ์ฆ์์ ๊ฒฐํฉํ์ฌ ๋ฌธ์์ ์ฌํ ์๋ณ์กฐ ์ฌ๋ถ๋ฅผ ์ฆ๋ช ํ๋ ์ํธํ์ ๋ฌด๊ฒฐ์ฑ ์๋ฆฌ๋ฅผ ํ์ตํ์ธ์.
- PDF ๋ฐ์ด๋๋ฆฌ ์คํธ๋ฆผ ์กฐ์:
- ๐ก ํ์ฉ ํ: ์ ๋ฃ ์ ์์๋ช ์๋น์ค์ ๊ฑด๋น ๊ฒฐ์ ๋น์ฉ์ ์ ๊ฐํ๊ธฐ ์ํด ์์ฌ ๋๋ฉ์ธ์ Documenso๋ฅผ ํธ์คํ ํ๊ณ ์นํ ์ ์ฐ๋ํ์ฌ, ๊ฒฐ์ ์๋ฃ ๊ณ ๊ฐ์๊ฒ ์ด์ฉ ๊ณ์ฝ์๋ฅผ ์๋์ผ๋ก ๋ฐ์กํ๊ณ ์ฒด๊ฒฐํ๋ ์ ๋ฌด ์๋ํ๋ฅผ ๊ตฌํํด ๋ณด์ธ์.
23. Dub.co ๐ โ
๊ณ ๋ํ๋ ๋ถ์ ๊ธฐ๋ฅ๊ณผ ๋ง์ถคํ ๋๋ฉ์ธ์ ์ง์ํ๋ ์ต์ ์คํ์์ค ๋งํฌ ๋จ์ถ ์๋น์คGitHub: dubinc/dub
์๊ฐ: Bitly๋ฅผ ๋ฅ๊ฐํ๋ ์คํ์์ค ๋จ์ถ ๋งํฌ ์ธํ๋ผ๋ก, ์ปค์คํ ๋๋ฉ์ธ ๋งคํ, ์ค์๊ฐ ํด๋ฆญ ์ง๋ฆฌ์ ์์น ๋ถ์, ๋๋ฐ์ด์ค/OS๋ณ ๋์ ๋ฆฌ๋ค์ด๋ ํธ, ๊ทธ๋ฆฌ๊ณ QR ์ฝ๋ ์๋ ์์ฑ์ ์ ๊ณตํ๋ ํ๋์ ๋ง์ผํ ์์ง๋์ด๋ง ๋๊ตฌ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): TypeScript, Next.js, TailwindCSS, Tinybird (ClickHouse), Redis
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์ด์ ์ง์ฐ ์ฃ์ง ๋ฆฌ๋ค์ด๋ ํธ: Vercel Edge Middleware ๋ฐ Redis ์บ์๋ฅผ ํ์ฉํด HTTP 301/302 ๋ฆฌ๋ค์ด๋ ํธ๋ฅผ 10ms ๋ฏธ๋ง์ ๋ฒ๊ฐ ๊ฐ์ ์๋๋ก ์ฒ๋ฆฌํ๋ ์ฃ์ง ์ปดํจํ ์ ์ดํดํด์ผ ํฉ๋๋ค.
- ์ค์๊ฐ ๋์ฉ๋ ์ด๋ฒคํธ ๋ถ์: ์ด๋น ์๋ง ๊ฑด์ ํด๋ฆญ ๋ก๊ทธ๋ฅผ ClickHouse/Tinybird ์ปฌ๋ผ ์งํฅ DB์ ์ง๊ณํ์ฌ ๋๋ ์ด ์์ด ์๊ฐํ ๋์๋ณด๋๋ก ๋ ๋๋งํ๋ ๋ฐ์ดํฐ ์ํคํ ์ฒ๋ฅผ ํ์ตํ์ธ์.
- ๐ก ํ์ฉ ํ: ๋ง์ผํ
์บ ํ์ธ ๋งํฌ๋ ๋ด์ค๋ ํฐ URL์ ์์ฌ ์ ์ฉ ๋จ์ถ ๋๋ฉ์ธ(
link.mycompany.com)์ผ๋ก ๋ณํํ๊ณ , ์ ์์์ ๊ตญ๊ฐ์ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ ์ข ๋ฅ์ ๋ฐ๋ผ ์ต์ ์ ๋๋ฉ ํ์ด์ง๋ก ์๋ ๋ถ๊ธฐ์ํค๋ ์ง๋ฅํ ๋งํฌ ๋ผ์ฐํฐ๋ฅผ ๊ตฌ์ถํ์ธ์.
24. Novu ๐ โ
์ธ์ฑ, ํธ์, ์ด๋ฉ์ผ, SMS, ์ฌ๋ ๋ฑ ๋ชจ๋ ์๋ฆผ ์ธํ๋ผ๋ฅผ ํ๋๋ก ํตํฉํ๋ ์คํ์์ค ์๋ฆผ ์์งGitHub: novuhq/novu
์๊ฐ: ์ด๋ฉ์ผ(SendGrid/SES), SMS(Twilio), ํธ์(FCM), ์ฌ๋ด ๋ฉ์ ์ (Slack/Discord), ๊ทธ๋ฆฌ๊ณ ํ๋ก ํธ์๋ ์น ์๋ฆผ ๋ฒจ ์ผํฐ(Notification Center) UI ์ปดํฌ๋ํธ๊น์ง ๋จ ํ๋์ API๋ก ์ค์ผ์คํธ๋ ์ด์ ํด ์ฃผ๋ ์ฐจ์ธ๋ ์๋ฆผ ์ธํ๋ผ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): TypeScript, NestJS, React, Redis, MongoDB
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์๋ฆผ ์ํฌํ๋ก์ฐ ์์ง: ํธ๋ฆฌ๊ฑฐ ๋ฐ์ ์ "ํธ์ ๋ฐ์ก ํ 5๋ถ๊ฐ ๋ฏธํ์ธ ์ ์ด๋ฉ์ผ 2์ฐจ ๋ฐ์ก"๊ณผ ๊ฐ์ ์กฐ๊ฑด๋ถ ์ง์ฐ(Digest/Delay) ํ์ดํ๋ผ์ธ์ ์ํ ๋จธ์ ์ผ๋ก ์ ์ดํ๋ ์๋ฆฌ๋ฅผ ์์์ผ ํฉ๋๋ค.
- ํค๋๋ฆฌ์ค(Headless) UI ์์ ฏ: ๋ฆฌ์กํธ ์ฑ์ ์๋ฆผ ์ข (Bell) ์์ด์ฝ๊ณผ ์ฝ์ ์ฒ๋ฆฌ ํ์ ๋๋กญ๋ค์ด์ ๋จ ํ ์ค์ ์ปดํฌ๋ํธ๋ก ์ด์ํ๋ SDK ํจํค์ง ์ํคํ ์ฒ๋ฅผ ํ์ตํ์ธ์.
- ๐ก ํ์ฉ ํ: ๊ฐ ์ฑ๋๋ณ๋ก ์ ๊ฐ๊ฐ ๋ถ์ฐ๋์ด ์๋ ํธ์ ๋ฐ์ก ๋ก์ง๊ณผ ์ด๋ฉ์ผ ํ ํ๋ฆฟ์ Novu ๋์๋ณด๋ ํ๋๋ก ํตํฉ ๊ด๋ฆฌํ์ฌ, ๊ฐ๋ฐ์์ ์๋ฆผ ์ฝ๋ ์์ฑ ์๊ฐ์ 80% ๋จ์ถ์ํค๋ ์๋ฆผ ํ๋ธ๋ฅผ ๊ตฌ์ถํ์ธ์.
25. Twenty ๐ฅ โ
Salesforce์ HubSpot์ ๋์ฒดํ๋ ๋ชจ๋ํ๊ณ ๋ฏธ๋ คํ ์คํ์์ค CRMGitHub: twentyhq/twenty
์๊ฐ: ์ ํต์ ์ธ CRM์ ๋ต๋ตํ๊ณ ๋ณต์กํ ์ธํฐํ์ด์ค๋ฅผ ๋ ธ์ (Notion)์ฒ๋ผ ์ธ๋ จ๋๊ณ ๊ธฐ๋ฏผํ UX๋ก ์์ ํ ์ฌ์ฐฝ์กฐํ ์ต์ ๊ณ ๊ฐ ๊ด๊ณ ๊ด๋ฆฌ(CRM) ํ๋ซํผ์ผ๋ก, ๊ณ ๊ฐ ํ์ดํ๋ผ์ธ ๊ด๋ฆฌ, ์ด๋ฉ์ผ ๋๊ธฐํ, ์ปค์คํ ํ๋ ์ค๊ณ๋ฅผ ์๋ฒฝ ์ง์ํฉ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): TypeScript, NestJS, React, GraphQL, PostgreSQL
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ๋์ ์คํค๋ง ๋ฉํ๋ฐ์ดํฐ(Metadata Engine): DB ํ ์ด๋ธ์ ์ง์ ๊ฑด๋๋ฆฌ์ง ์๊ณ ๋ ์ฌ์ฉ์๊ฐ ์น UI์์ ์ฆ์ ์๋ก์ด ๋ฐ์ดํฐ ํ๋(๊ณ ๊ฐ ์์ฑ)๋ฅผ ์ ์ํ๊ณ ์ธ๋ฑ์ฑํ ์ ์๋ ์ ์ฐํ ์คํค๋ง ์ค๊ณ๋ฒ์ ์ดํดํด์ผ ํฉ๋๋ค.
- GraphQL Apollo Federation: ๋ณต์กํ๊ฒ ์ฝํ ๊ณ ๊ฐ, ํ์ฌ, ๊ฑฐ๋(Deal), ํ๋ ๋ก๊ทธ ๊ฐ์ ๊ด๊ณํ ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฅผ ๋จ์ผ ์ฟผ๋ฆฌ๋ก ์ต์ ํํ์ฌ ํจ์นํ๋ ๋ฐฑ์๋ ์ํคํ ์ฒ๋ฅผ ํ์ตํ์ธ์.
- ๐ก ํ์ฉ ํ: ๋น์ผ ์์ฉ CRM ๋ผ์ด์ ์ค ๋น์ฉ ์์ด ์ฌ๋ด B2B ์์ ํ์ ๋ฆฌ๋ ๋ฐ๊ตด๋ถํฐ ๊ณ์ฝ ์ฒด๊ฒฐ๊น์ง์ ์ ์ฒด ์ธ์ผ์ฆ ํ์ดํ๋ผ์ธ์ Twenty๋ก ์ค์ ์ง์คํํ์ฌ ํฌ๋ช ํ๊ฒ ๊ด๋ฆฌํด ๋ณด์ธ์.
26. Formbricks ๐ โ
Typeform์ ๋์ฒดํ๋ ํ๋ผ์ด๋ฒ์ ์ค์ฌ์ ๋ง์ดํฌ๋ก ์๋ฒ ์ด ๋ฐ ์ฌ์ฉ์ ํผ๋๋ฐฑ ์๋ฃจ์ GitHub: formbricks/formbricks
์๊ฐ: ์น/์ฑ ์๋น์ค ๋ด๋ถ์ ์์ฐ์ค๋ฌ์ด ํ์ ๋ชจ๋ฌ ํํ๋ก ์ค๋ฌธ์กฐ์ฌ๋ฅผ ๋์ฐ๊ฑฐ๋ ๋ ๋ฆฝ ๋งํฌ๋ก ๋ฐฐํฌํ์ฌ, ์ฌ์ฉ์๊ฐ ํน์ ๊ธฐ๋ฅ(์: ๊ฒฐ์ ์๋ฃ, ๊ธฐ๋ฅ ์ดํ)์ ์ฌ์ฉํ ๋ ์ฆ๊ฐ์ ์ธ ์ ์ฑ์ ํผ๋๋ฐฑ์ ์์งํ ์ ์๋ ์๋ฒ ์ด ๋๊ตฌ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): TypeScript, Next.js, TailwindCSS, Prisma, PostgreSQL
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์ฌ์ฉ์ ํ๋ ํธ๋ฆฌ๊ฑฐ(Behavioral Targeting): ํน์ ํ์ด์ง N์ด ์ฒด๋ฅ, ํน์ ๋ฒํผ ํด๋ฆญ, ์ ์ ์ธ๊ทธ๋จผํธ(์ ๊ท/์ ๋ฃ ์ ์ ) ์กฐ๊ฑด์ ๋ฐ๋ผ ๋์ ์ผ๋ก ์ค๋ฌธ ์์ ฏ์ ๋ ธ์ถ์ํค๋ ์ด๋ฒคํธ ๋์คํจ์น ์๋ฆฌ๋ฅผ ์์์ผ ํฉ๋๋ค.
- ๊ฒฝ๋ ์ธ์ฑ SDK ์๋ฒ ๋ฉ: ๊ณ ๊ฐ์ฌ ์๋น์ค์ ๋ฒ๋ค ์ฉ๋์ ์ํฅ์ ์ฃผ์ง ์๋๋ก 20KB ๋ฏธ๋ง์ ์ด๊ฒฝ๋ ์คํฌ๋ฆฝํธ๋ก ์๋ํ๋ ์์ ฏ ์๋๋ฐ์ค ํจํค์ง ๊ธฐ๋ฒ์ ์ดํดํ์ธ์.
- ๐ก ํ์ฉ ํ: ์ ๊ท ๊ธฐ๋ฅ ์ถ์ ํ ์ฌ์ฉ์๊ฐ ํด๋น ๊ธฐ๋ฅ์ 3ํ ์ด์ ์ฌ์ฉํ์ ๋ "์ด ๊ธฐ๋ฅ ์ด๋ ์ จ๋์?"๋ผ๋ 1์ด ๋ณ์ ์ค๋ฌธ์ ๋์ ์ฆ๊ฐ์ ์ธ ์ ํ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ๋ณดํ๋ ๊ทธ๋ก์ค ํดํน ์คํ์ ์ํํด ๋ณด์ธ์.
27. Latent Scope ๐ฌ โ
์์ญ๋ง ๊ฐ์ ํ ์คํธ ์๋ฒ ๋ฉ ๋ฐ์ดํฐ๋ฅผ 2D ์ธํฐ๋ํฐ๋ธ ์ง๋๋ก ์๊ฐํํ๊ณ ํ์ํ๋ AI ํดGitHub: enjalot/latent-scope
์๊ฐ: LLM๊ณผ ์๋ฒ ๋ฉ ๋ชจ๋ธ(OpenAI, Cohere ๋ฑ)์ ํตํด ์์นํ๋ ๊ณ ์ฐจ์ ๋ฒกํฐ ๋ฐ์ดํฐ๋ฅผ UMAP ๊ธฐ๋ฒ์ผ๋ก 2์ฐจ์ ๊ณต๊ฐ์ ํฌ์ํ๊ณ , ํด๋ฌ์คํฐ๋ง(HDBSCAN)์ ํตํด ๋ฐ์ดํฐ์ ์จ๊ฒจ์ง ํจํด๊ณผ ํ ํฝ์ ์ง๊ฐ์ ์ผ๋ก ํ์ํ๊ฒ ํด์ฃผ๋ AI ๋ถ์ ํ๋ซํผ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Python, DuckDB, Polars, Svelte / WebGL
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ์ฐจ์ ์ถ์(UMAP) ๋ฐ ํด๋ฌ์คํฐ๋ง: 1536์ฐจ์์ ๊ณ ์ฐจ์ ๋ฒกํฐ ๊ฑฐ๋ฆฌ(์ฝ์ฌ์ธ ์ ์ฌ๋) ๊ด๊ณ๋ฅผ 2์ฐจ์ ํ๋ฉด ์ขํ(X, Y)๋ก ์์ถํ๋ฉด์ ๋ฐ์ดํฐ ๊ฐ์ ์ง์ญ์ /์ ์ญ์ ๊ตฌ์กฐ๋ฅผ ๋ณด์กดํ๋ ์ํ์ ๋ฉ์ปค๋์ฆ์ ์ดํดํด์ผ ํฉ๋๋ค.
- DuckDB ์ธ๋ฉ๋ชจ๋ฆฌ OLAP ์์ง: ์์ญ๋ง ๊ฑด์ ๋ฒกํฐ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ธ๋ผ์ฐ์ ๋ฐ ๋ก์ปฌ ํ์ด์ฌ ์์์ ๋ฐ๋ฆฌ์ด ๋จ์๋ก ํํฐ๋งํ๊ณ ์ฌ๋ผ์ด์ฑํ๋ ์ด๊ณ ์ ์ฟผ๋ฆฌ ์๋ฆฌ๋ฅผ ํ์ตํ์ธ์.
- ๐ก ํ์ฉ ํ: ํ์ฌ์ ์ถ์ ๋ ์๋ง ๊ฑด์ ๊ณ ๊ฐ ๋ฌธ์(CS) ๋ก๊ทธ๋ ๋ฒ๊ทธ ๋ฆฌํฌํธ๋ฅผ ์๋ฒ ๋ฉํ์ฌ ์ด๋ค ์ ํ์ ๋ถ๋ง์ด ์์ฃผ ๋ฐ์ํ๋์ง 2D ํด๋ฌ์คํฐ ๋งต์ผ๋ก ์๊ฐํํ๊ณ , AI๋ก ๊ฐ ๊ตฐ์ง์ ํต์ฌ ์์ธ์ ์๋ ๋ผ๋ฒจ๋งํด ๋ณด์ธ์.
28. Paperless-ngx ๐ โ
์ค์บํ ์ข ์ด ๋ฌธ์์ ์ ์ ์์์ฆ์ OCR๋ก ์ธ์ํ์ฌ ์๋ ํ๊น ๋ฐ ์ธ๋ฑ์ฑํด์ฃผ๋ ๋ฌธ์ ๊ด๋ฆฌ ์์คํ GitHub: paperless-ngx/paperless-ngx
์๊ฐ: ์ค์บํ ๊ณ์ฝ์, ์์์ฆ, ์ธ๊ธ๊ณ์ฐ์, ๊ณ ์ง์ ์ด๋ฏธ์ง๋ PDF ํ์ผ์ ํด๋์ ๋ฃ๊ฑฐ๋ ์ด๋ฉ์ผ๋ก ์ ๋ฌํ๋ฉด, Tesseract OCR ์์ง์ด ๊ธ์๋ฅผ 100% ์ธ์ํ์ฌๅ จๆ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ณ ๋จธ์ ๋ฌ๋์ผ๋ก ๋ณด๊ดํจ์ ์๋ ๋ถ๋ฅํด ์ฃผ๋ ์ค๋งํธ ์์นด์ด๋น ํ๋ซํผ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Python (Django), Angular, Tesseract OCR, Redis, Celery
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ๋น๋๊ธฐ OCR ํ์ดํ๋ผ์ธ: ๋์ฉ๋ PDF ์ ๋ก๋ ์ ์น ์๋ฒ์ ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด Celery ํ์คํฌ ํ๋ฅผ ํตํด ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ปค์์ OCR ํ ์คํธ ์ถ์ถ ๋ฐ PDF/A ์์นด์ด๋ธ ๋ณํ์ ์ฒ๋ฆฌํ๋ ๋น๋๊ธฐ ์ค๊ณ๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค.
- ์๋ ๋ฌธ์ ๋ถ๋ฅ ๋จธ์ ๋ฌ๋: ๋ฌธ์์ ๋ฑ์ฅํ๋ ํ ์คํธ ํจํด์ ๋ฐํ์ผ๋ก ๋ฐํ์ฒ, ๋ฌธ์ ์ ํ(์์์ฆ/๊ณ์ฝ์), ๋ ์ง๋ฅผ ์ค์ค๋ก ํ์ตํด ํ๊ทธ๋ฅผ ์๋ ๋ถ์ฌํ๋ Naive Bayes ๋ถ๋ฅ๊ธฐ ์๊ณ ๋ฆฌ์ฆ์ ํ์ตํ์ธ์.
- ๐ก ํ์ฉ ํ: ๊ฐ๋ฐ์ค์ด๋ ์ฌ๋ฌด์ค์ ๋ชจ๋ ํ๋์นดํผ ๊ณ์ฝ์์ ์ง์ถ ์ฆ๋น ์์์ฆ์ ์ค๋งํธํฐ์ผ๋ก ์ฐ์ด ์ ๋ก๋ํ๊ณ , ํ์ํ ๋ ๋จ์ด ๊ฒ์ ํ ๋ฒ์ผ๋ก 1์ด ๋ง์ ์๋ณธ ๋ฌธ์๋ฅผ ์ฐพ์๋ด๋ ํ์ดํผ๋ฆฌ์ค ์คํผ์ค๋ฅผ ๊ตฌ์ถํ์ธ์.
29. RustDesk ๐ฅ๏ธ โ
TeamViewer์ AnyDesk๋ฅผ ์๋ฒฝํ ๋์ฒดํ๋ ์คํ์์ค ์ ํํธ์คํ ์๊ฒฉ ์ ์ด ์๋ฃจ์ GitHub: rustdesk/rustdesk
์๊ฐ: ์์ฉ ์๊ฒฉ ๋ฐ์คํฌํฑ ํ๋ก๊ทธ๋จ์ ์ ์ ์๊ฐ ์ ํ ๋ฐ ๊ณ ๊ฐ ๋ผ์ด์ ์ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋๊ตฌ๋ก, Rust๋ก ์์ฑ๋์ด ์ด๊ณ ์ ๋ฐ์ ์๋์ ์๋ํฌ์๋ ์ํธํ๋ฅผ ์ ๊ณตํ๋ฉฐ ์ฌ๋ด ์์ฒด ๋๋ฐ๋ถ(Rendezvous) ๋ฆด๋ ์ด ์๋ฒ๋ฅผ ๊ตฌ์ถํด ์๋ฒฝํ ๋ณด์ ๋ง์ ์ ๊ณตํฉ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): Rust, Flutter (UI), WebRTC, Tokio
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- NAT ํต๊ณผ(NAT Traversal / STUN / TURN): ๊ณต์ ๊ธฐ(๋ฐฉํ๋ฒฝ) ๋ค์ ์๋ ๋ ์ปดํจํฐ๊ฐ ๊ณต์ธ IP ์์ด๋ P2P ์ง์ ํต์ ํฐ๋์ ๊ฐ์คํ๋ ํ ํ์นญ(Hole Punching) ๋คํธ์ํฌ ๋ฉ์ปค๋์ฆ์ ์ดํดํด์ผ ํฉ๋๋ค.
- ํ๋์จ์ด ๊ฐ์ ๋น๋์ค ์ธ์ฝ๋ฉ: ํ๋ฉด ๋ณ๊ฒฝ ํฝ์ ์ CPU ๋ถ๋ด ์์ด GPU(NVENC, VAAPI ๋ฑ)๋ก ์ค์๊ฐ ์์ถ(H.264/H.265/VP9)ํ์ฌ ์คํธ๋ฆฌ๋ฐํ๋ ์ ์ง์ฐ ๋น๋์ค ํ์ดํ๋ผ์ธ์ ์์งํ์ธ์.
- ๐ก ํ์ฉ ํ: ๋ณด์์ด ์ค์ํ ํ์ฌ ๋ด๋ถ ์๋ฒ๋ ์ฌํ๊ทผ๋ฌด PC์ ์์ฒด RustDesk ๋ฆด๋ ์ด ์๋ฒ๋ฅผ ์ฌ๋ ค ์ธ๋ถ ํด๋ผ์ฐ๋ ์ค๊ณ ์์ด ํ์ฌ ์ ์ฉ ๊ณ ์ ์๊ฒฉ ๋ฐ์คํฌํฑ ํ๊ฒฝ์ ๊ตฌ์ฑํ์ธ์.
30. Coolify ๐ โ
Heroku, Netlify, Vercel์ ๋๋ง์ VPS ์๋ฒ์ ์์ฒด ๊ตฌ์ถํ๋ ์ํด๋ฆญ PaaS ์๋ฃจ์ GitHub: coollabsio/coolify
์๊ฐ: ํด๋ผ์ฐ๋(Vercel, AWS)์ ๋น์ผ ํธ์คํ ๋น์ฉ์ ์ง์น ๊ฐ๋ฐ์๋ค์ ์ํ ์ต๊ณ ์ ์ ํํธ์คํ PaaS๋ก, 5์ฒ์์ง๋ฆฌ ์ ๋ ดํ ๋ฆฌ๋ ์ค VPS ์๋ฒ์ ์ค์นํ๊ธฐ๋ง ํ๋ฉด Git Push ์ ์๋ ๋น๋/๋ฐฐํฌ, ๋ฌด๋ฃ SSL ์ธ์ฆ์ ๋ฐ๊ธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค(PostgreSQL, Redis ๋ฑ) ์ํด๋ฆญ ์์ฑ์ ์ง์ํ๋ ๋ง๋ฒ ๊ฐ์ ํ๋ซํผ์ ๋๋ค.
- โ๏ธ ๊ฐ๋ฐ ํ๊ฒฝ (Tech Stack): PHP (Laravel), Livewire, Docker Engine, Traefik (์ญ๋ฐฉํฅ ํ๋ก์)
- ๐ง ์ฌ์ ์ ์ดํดํด์ผ ํ๋ ๋ด์ฉ๋ค:
- ๋์ปค ์์ผ ์ ์ด์ Nixpacks: ์น UI์์ Docker API๋ฅผ ์ง์ ์ ์ดํ์ฌ ์ปจํ ์ด๋๋ฅผ ๋น๋ ๋ฐ ๊ธฐ๋ํ๊ณ , ์์ค์ฝ๋์ ์ธ์ด๋ฅผ ์๋ ์ธ์ํด ์ต์ ์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ Nixpacks ์์ง์ ์๋ฆฌ๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค.
- ๋์ ๋ฆฌ๋ฒ์ค ํ๋ก์(Traefik): ์ ๊ท ์ฑ ์ปจํ ์ด๋๊ฐ ๋ฐฐํฌ๋ ๋๋ง๋ค ์ค์ ํ์ผ ์ฌ๋ถํ ์์ด ์ค์๊ฐ์ผ๋ก ๋ผ์ฐํ ๊ท์น์ ๊ฐฑ์ ํ๊ณ Let's Encrypt ๋ฌด๋ฃ SSL ์ธ์ฆ์๋ฅผ ์๋ ๋ฐ๊ธ๋ฐ๋ ํ๋ก์ ๊ตฌ์กฐ๋ฅผ ํ์ตํ์ธ์.
- ๐ก ํ์ฉ ํ: ํ ์ด ํ๋ก์ ํธ๋ ๊ฐ์ธ ์๋น์ค๊ฐ ๋์ด๋ ๋๋ง๋ค ๋ฐ์ํ๋ ํด๋ผ์ฐ๋ ์๋ฒ ๋น์ฉ์ ์๋ผ๊ธฐ ์ํด, ๋จ ํ๋์ VPS์ Coolify๋ฅผ ์ค์นํ๊ณ ์์ญ ๊ฐ์ Node.js, Next.js, FastAPI ์น์ฑ๊ณผ DB๋ฅผ ์ํด๋ฆญ์ผ๋ก ๋ฌด์ ํ ํธ์คํ ํ๋ ๋๋ง์ ์ ์ฉ ํด๋ผ์ฐ๋๋ฅผ ์์ฑํด ๋ณด์ธ์.