๊ฐ๋ฐ์ ์ง๋ง์
- Email: pen051203@naver.com
- GitHub: github.com/516B
- ์์ ์ ์ธ ์์คํ ๊ณผ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๋ ๊ฒ์ ๊ฐ์ ์ด ์๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์์ ๋๋ค.
- ๋์ฉ๋ ํธ๋ํฝ์ ์์ ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ํ์ฅ ๊ฐ๋ฅํ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ณ , ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํตํด ์พ์ ํ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ธฐ๋ฐ์ ๋ง๋๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
- Node.js, Express: RESTful API ๋ฐ ์ค์๊ฐ ์๋ฒ ๊ฐ๋ฐ, ๋น๋๊ธฐ ์ฒ๋ฆฌ, ์์ธ ์๋ต ์ค๊ณ
- FastAPI: ๋น๋๊ธฐ API, ์์ธ ์ฒ๋ฆฌ, ๋ฌธ์ํ ๋ฐ ์ปจํ ์ด๋ํ(Docker)
- Socket.IO: ์ค์๊ฐ ์ด๋ฒคํธ/๋ฐ์ดํฐ ๋๊ธฐํ, ๋ฉํฐํ๋ ์ด ๊ฒ์ ๋ฐ ์ฑํ ์๋น์ค ๊ตฌํ
- MongoDB, Mongoose: ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง, ๋์์ฑ ์ ์ด(VersionError ํด๊ฒฐ), ์ค์๊ฐ ๊ฒ์/์ฌ์ฉ์ ๋ฐ์ดํฐ ๊ด๋ฆฌ
- PostgreSQL: N:M ๊ด๊ณ, ์ ๊ทํ, ์ธ๋ถ ๋ณํ ๋ฑ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ค๊ณ ๋ฐ ๊ด๋ฆฌ
- Typesense: ์ค์๊ฐ ๊ฒ์์์ง ์ฐ๋, ๋๊ท๋ชจ ๋ ์ํผ ๋ฐ์ดํฐ ์ธ๋ฑ์ฑ ๋ฐ ํํฐ๋ง
- BeautifulSoup: ์ธ๋ถ ๋ฐ์ดํฐ ํฌ๋กค๋ง ๋ฐ ์ ์ฒ๋ฆฌ, JSON ๋ฐ์ดํฐ ๊ตฌ์กฐํ
- React: SPA ๊ฐ๋ฐ, ์ปดํฌ๋ํธ ์ค๊ณ, ์ํ ๊ด๋ฆฌ(Context), ์ฌ์ฉ์ ์นํ์ UI/UX
- Vite: ๋น ๋ฅธ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ ๋ฐ ์ต์ ํ
- ์ค์๊ฐ ์ธํฐํ์ด์ค: ๊ฒ์ ์ํ ํ์, ์ฑํ , ๊ฒ์ ๋ฑ ์ค์๊ฐ ๋ฐ์ UI ๊ตฌํ
- Docker: ์๋น์ค ์ปจํ ์ด๋ํ, ๋ฐฐํฌ ์๋ํ, ํ๊ฒฝ ๋ณ์/๋ณด์ ๊ด๋ฆฌ
- Git, GitHub: ๋ธ๋์น ์ ๋ต, ์ฝ๋ ๋ฆฌ๋ทฐ, ์ด์ ๊ด๋ฆฌ ๋ฑ ํ์ ๊ฒฝํ
- ๋์์ฑ/์ค์๊ฐ ์ฒ๋ฆฌ: VersionError ๋ฑ ๋ฐ์ดํฐ ์ถฉ๋ ๋ฌธ์ ํด๊ฒฐ, ์ฌ์๋/๋๊ธฐํ ๋ก์ง ์ง์ ๊ตฌํ
- ์๊ณ ๋ฆฌ์ฆ/๋ฐ์ดํฐ ๊ตฌ์กฐ: ๋ ์ํผ ์ถ์ฒ, ์ธ๋ถ ๋ณํ, ๋์ฒด์ฌ ํ์ ๋ฑ ์ค์๋น์ค์ ์ ์ฉ
Java ๊ธฐ๋ฐ ํ ํ๋ก์ ํธ | ํ๊ต ๋ด ๋ถ์ค๋ฌผ ๋ฑ๋ก ๋ฐ ํด์ํ๊ทธ ๊ธฐ๋ฐ ์๋ฆผ ์์คํ
- ๋ก๊ทธ์ธ ๋ฐ ์ธ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ ๊ตฌํ
- ๋ถ์ค๋ฌผ ๋ฑ๋ก ์ ์ฌ์ง, ๋ ์ง, ์ฅ์ ๋ฑ ์์ธ ์ ๋ณด ์ ๋ ฅ
- ํด์ํ๊ทธ ์ค์ ์ ๊ด๋ จ ๋ถ์ค๋ฌผ ๋ฐ์ ์ ์๋ ์๋ฆผ ์ ์ก ๋ก์ง ๊ฐ๋ฐ
- ๋๊ธ ๊ธฐ๋ฐ ์ฌ์ฉ์ ์ปค๋ฎค๋์ผ์ด์ ๊ธฐ๋ฅ ์ ๊ณต
- ์ค์๊ฐ ์ ๋ณด ๊ณต์ ๋ฐ ์ํต์ ์ํ UI ๊ตฌํ
๋คํธ์ํฌ ์์ ํ๋ก์ ํธ | ๋์ด๊ธฐ๊ตฌ ๋๊ธฐ ์ธ์ ๊ด๋ฆฌ ๋ฐ ์ฑํ ์๋น์ค
- ๊ด๋ฆฌ์/์ฌ์ฉ์ ๋ก๊ทธ์ธ ๋ฐ ๊ถํ ์ฒ๋ฆฌ
- ๋๊ธฐ์ ์ ์ค์๊ฐ ๋ฐ์ ๊ธฐ๋ฅ ๊ตฌํ
- ๊ด๋ฆฌ์/์ฌ์ฉ์ ๊ฐ ์ฑํ ๊ธฐ๋ฅ ๊ฐ๋ฐ (ํ๋ก ํธ์๋ UI ๋ด๋น)
- ์น ์ธํฐํ์ด์ค ๊ธฐ๋ฐ ์๊ฐ์ ์ํธ์์ฉ ๊ตฌํ
FastAPI + React ๊ธฐ๋ฐ ์๋ฆฌ ๋ ์ํผ ์ถ์ฒ ์น ์๋น์ค | GitHub Repo
-
์๋น์ค ๊ฐ์:
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ฌ๋ฃ, ์ธ๋ถ ์, ์กฐ๋ฆฌ ์๊ฐ, ๋์ด๋ ๋ฑ ๋ค์ํ ์กฐ๊ฑด์ ๋ฐํ์ผ๋ก AI ์ฑ๋ด์ด ๋ง์ถคํ ๋ ์ํผ๋ฅผ ์ถ์ฒํ๋ ์น์ฑ ์๋น์ค์ ๋๋ค.
ํฌ๋กค๋ง์ ํตํด ํ๋ณดํ ๋๊ท๋ชจ ๋ ์ํผ ๋ฐ์ดํฐ๋ฅผ Typesense ๊ฒ์์์ง์ ์ ๋ก๋ํ์ฌ, ์ค์๊ฐ ๊ฒ์๊ณผ ์ถ์ฒ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. -
์ฃผ์ ๊ธฐ๋ฅ:
- ์ฌ๋ฃ ๊ธฐ๋ฐ ๋ ์ํผ ์ถ์ฒ: ์ง์ ์๋ ์ฌ๋ฃ๋ง ์ ๋ ฅํด๋ ๋ง๋ค ์ ์๋ ์๋ฆฌ ์ถ์ฒ
- n์ธ๋ถ ๋ ์ํผ ๋ณํ: ์ํ๋ ์ธ๋ถ ์์ ๋ง๊ฒ ์ฌ๋ฃ ์๊ณผ ์กฐ๋ฆฌ๋ฒ ์๋ ๋ณํ
- ๋์ฒด ์ฌ๋ฃ ์ถ์ฒ: ์๋ ์ฌ๋ฃ๊ฐ ์์ ๋ ์ฌ์ฉํ ์ ์๋ ๋์ฒด ์ฌ๋ฃ ์๋ด
- ๋ถ๋งํฌ/๋ฉ๋ชจ ๊ธฐ๋ฅ: ๋ง์์ ๋๋ ๋ ์ํผ ์ ์ฅ ๋ฐ ๊ฐ์ธ ๋ฉ๋ชจ ๊ด๋ฆฌ
- ์ค์๊ฐ ๊ฒ์: Typesense์ ์ฐ๋ํ์ฌ ๋น ๋ฅธ ๋ ์ํผ ํ์
- ํฌ๋กค๋ง ๋ฐ์ดํฐ ์ฐ๋: BeautifulSoup ๋ฑ์ผ๋ก ์ธ๋ถ ๋ ์ํผ ์ฌ์ดํธ์์ ๋ฐ์ดํฐ ์์ง ๋ฐ ์ ์
-
๊ธฐ์ ์ ๋์ ๋ฐ ์ฑ๊ณผ:
- ์ฌ๋ฃ์ ๋ ์ํผ ๊ฐ N:M ๊ด๊ณ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ์ง์ ์ค๊ณ
- ์ฌ๋ฃ ์ผ์น์จ, ์ค์๋ ๊ธฐ๋ฐ ์ค์ฝ์ด๋ง ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
- ๋ชจ๋ ๋ ์ํผ์ ์ฌ๋ฃ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค 1์ธ๋ถ์ผ๋ก ์ ๊ทํํ์ฌ ์ธ๋ถ ๋ณํ ๋ก์ง ๊ฐ๋ฐ
- ๋์ฒด์ฌ ํ์์ ์ํ ๊ทธ๋ํ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ค๊ณ
- FastAPI ๋น๋๊ธฐ API ๋ฐ ์บ์ ์ฒ๋ฆฌ๋ก ์๋ต ์๋ ๊ฐ์
- Docker๋ฅผ ํ์ฉํ ์๋น์ค ์ปจํ ์ด๋ํ ๋ฐ ๋ฐฐํฌ ์๋ํ
-
๊ธฐ์ ์คํ:
FastAPI, React, Typesense, PostgreSQL, Docker, GitHub, BeautifulSoup, OpenAI GPT
Node.js + React ๊ธฐ๋ฐ ์ค์๊ฐ ๋ฉํฐํ๋ ์ด ๋ธ๋์ญ ๊ฒ์ | GitHub Repo
-
์๋น์ค ๊ฐ์:
์ฌ๋ฌ ๋ช ์ ์ฌ์ฉ์๊ฐ ๋์์ ๋ฐฉ์ ์ ์ฅํด ์ค์๊ฐ์ผ๋ก ๋ธ๋์ญ ๊ฒ์์ ์ฆ๊ธธ ์ ์๋ ์น ์๋น์ค์ ๋๋ค. MongoDB๋ฅผ ํ์ฉํด ๊ฒ์ ์ํ์ ํ๋ ์ด์ด ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, Socket.IO๋ก ์ค์๊ฐ ํต์ ์ ๊ตฌํํ์ต๋๋ค. -
์ฃผ์ ๊ธฐ๋ฅ:
- ๋ฐฉ ์์ฑ/์ ์ฅ ๋ฐ ์ค์๊ฐ ํ๋ ์ด์ด ์ํ ๋๊ธฐํ
- ๋ฒ ํ , ์นด๋ ๋ถ๋ฐฐ, ํด ์งํ ๋ฑ ๋ธ๋์ญ ๊ฒ์ ๋ก์ง ๊ตฌํ
- ๋์ ์ ์ ์ ๋ฐ์ดํฐ ์ถฉ๋(VersionError) ์๋ ์ฒ๋ฆฌ ๋ฐ ์์ ์ ๊ฒ์ ์งํ
- React ๊ธฐ๋ฐ UI/UX, ์ค์๊ฐ ๊ฒ์ ์ํ ํ์ ๋ฐ ์ฑํ ๊ธฐ๋ฅ
- ์๋ฒ/ํด๋ผ์ด์ธํธ ๋ถ๋ฆฌ ๊ตฌ์กฐ, Vite ๊ธฐ๋ฐ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ํ๊ฒฝ
-
๊ธฐ์ ์ ๋์ ๋ฐ ์ฑ๊ณผ:
- Mongoose ๋ฒ์ ์ถฉ๋(VersionError) ๋ฌธ์ ํด๊ฒฐ: ๋์ ์ ์ฅ/์ ์ฅ ์ ์ฌ์๋ ๋ฐ ๋๊ธฐํ ๋ก์ง ์ง์ ๊ตฌํ
- ์ค์๊ฐ ์์ผ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฐ ๊ฒ์ ์ํ ๊ด๋ฆฌ ์ต์ ํ
- MongoDB, Express, Socket.IO, React, Vite ๋ฑ ๋ค์ํ ์คํ ํตํฉ ๊ฒฝํ
-
๊ธฐ์ ์คํ:
Node.js, Express, MongoDB, Mongoose, Socket.IO, React, Vite, GitHub