์ด๋ ฅ์
์คํ์ ์ธ ์์ด๋์ด๋ค์ ๋น ๋ฅธ ๊ฒ์ฆ๊ณผ ๋น ๋ฅธ ์๋น์คํ๊ฐ ํน๊ธฐ์ธ, 3๋
์ฐจ ํ์คํ ๊ฐ๋ฐ์ ๊ฐ๋ฏผ์์
๋๋ค.
์ธ์ ์ฌํญ
์ฑ๋ช
| ๊ฐ๋ฏผ์ (ๅงๆป็ง, KANG MIN SU) |
ํด๋์ ํ | 010-2700-7673 |
์ด๋ฉ์ผ | skymin0417@gmail.com |
GitHub |
์ง๋ฌด๊ฒฝ๋ ฅ
๊ฒฝ๋ ฅ ๊ธฐ๊ฐ ๋ด ์งํํ ํ๋ก๋ํธ ๊ฐ๋ฐ ํฌํธํด๋ฆฌ์ค๋ Product Portfolio ํ์ด์ง์์ ์ด๋ํ ์ ์์ต๋๋ค.
์ฃผ์ํ์ฌ ํฌ๊ณ ๋ (2023.04 ~ ์ฌ์ง ์ค)
์ง๋ฌด | Software Engneer (์ ๊ท์ง) |
์ง๋ฌด ์ค๋ช
| - ์ปคํผ์ด๋ ๋ฌด์ธ์ปคํผ๋จธ์ ์๋น์ค ๊ฐ๋ฐ ํ๋ก์ ํธ PM ๋ฐ ๊ฐ๋ฐํ์ฅ
- ์ปคํผ์ด๋ DID ์๋น์ค ๊ฐ๋ฐ ๋ด๋น
- ์ปคํผ์ด๋ KIOSK ์๋น์ค ๊ฐ๋ฐ ๋ด๋น
- ์ปคํผ์ด๋ ์ ์ฃผ๊ด๋ฆฌ์ฑ ์๋น์ค ๊ฐ๋ฐ ๋ด๋น
- ์ปคํผ์ด๋ ์ปคํผ๋ก๋ด ๋ฉ์ธ๋ณด๋ ํ์จ์ด ๊ฐ๋ฐ ๋ด๋น
- ์ปคํผ์ด๋ ์ปคํผ๋ก๋ด ์ค์๊ฐ ํต์ ์ค๊ณ๊ธฐ ๊ฐ๋ฐ ๋ด๋น
- ์ปคํผ์ด๋ ๋ฉ์ธ์๋ฒ ๊ฐ๋ฐ ๋ด๋น |
์ฃผ์ ๊ธฐ์ ์คํ | - Common: Socket.io, Docker, PM2
- Frontend: TypeScript, React, S3, Cloudfront
- Backend: Nest.js, TypeORM, Redis, MariaDB, AWS
- Firmware: C++, FreeRTOS |
์ฃผ์ํ์ฌ ์ด์ ์ด์ (2023.05 ~ 2023.04)
์ง๋ฌด | Frontend Developer (์ ๊ท์ง) |
์ง๋ฌด ์ค๋ช
| - TWIP ์ ํ๊ตฐ์ Frontend ์๋น์ค์ ์ ๊ท๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ฐ ์ ์ง๋ณด์
- TWIP ์ ํ๊ตฐ ์ ํ๋ธ ๊ณ์ ๊ณ ์ง์ Frontend ๋ด๋น
- TWIP 2.0 ๋ฉ์ธํ์ด์ง Frontend ์ ๊ท๊ฐ๋ฐ ๋ด๋น
- TWIP Chrome Extension ์ ๊ท๊ฐ๋ฐ ๋ด๋น |
์ฃผ์ ๊ธฐ์ ์คํ | React, Next.js, Yarn, PNPM, Turborepo, SWR, Socket.io, React-Hook-Form, Zod, OpenAPI Generator, Tailwind CSS, Headless UI, Docker, GitHub Action |
์ฃผ์ํ์ฌ ๋ธ๋ฆฌ์ผ (2023.01 ~ 2023.05)
์ง๋ฌด | ์ธ์ฃผ์ฉ์ญ |
์ง๋ฌด ์ค๋ช
| - BRIYA ARK ์๋ฃจ์
์ ์ฒด ์๋น์ค ๊ฐ๋ฐ
- User client (Frontend, Next.js) ์ ์ฒด๊ฐ๋ฐ ๋ด๋น
- API Server (Backend, Nest.js) ์ ์ฒด๊ฐ๋ฐ ๋ด๋น
- AI Server (Backend, Python) ์ค์๊ฐ ํต์ ์์คํ
ํํธ ๊ฐ๋ฐ ๋ด๋น |
์ฃผ์ ๊ธฐ์ ์คํ | React, Next.js, MUI, Tailwind CSS, Vercel, Nest.js, MariaDB, TypeORM, Redis, Socket.io, AWS Lightsail, PM2, Docker, Yarn, Python, YOLOv5, PyTorch, OpenCV |
์ฃผ์ํ์ฌ ์ผ์ดํ๋ซํผ (2021.03 ~ 2021.11)
์ง๋ฌด | ์ธ์ฃผ์ฉ์ญ |
์ง๋ฌด ์ค๋ช
| - iambuyer ์ ์ฒด ์๋น์ค(ํด๋ผ์ด์ธํธ, ๋ฐฑ์คํผ์ค) ๊ฐ๋ฐ |
์ฃผ์ ๊ธฐ์ ์คํ | JQuery, PHP, CSS, ๊ทธ๋๋ณด๋ 5 |
๊ธฐ์ ์คํ
Frontend
โข
React.js
โฆ
React.js๋ฅผ ์ฃผ๋ ฅ์ผ๋ก, ๋ค์ํ ์น์๋น์ค๋ฅผ ๊ฐ๋ฐํด์์ต๋๋ค.
โฆ
์ ์ง๋ณด์์ฑ๊ณผ ๋ฆฌ๋ ๋๋ง ์ต์ํ๋ฅผ ์ํด ์ปดํฌ๋ํธ๋ฅผ ๋๋ฉ์ธ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํ๊ณ ์ ์ธ์ ์ผ๋ก ์์ฑ ํ ์ ์์ต๋๋ค.
โข
State Management
โฆ
๋ณ๋์ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ด React.js์ Context API๋ฅผ ์ฌ์ฉํด, ๊ตญ์์ /์ ์ญ์ ์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
โฆ
Redux๋ฅผ ์ด์ฉํด ์ ์ญ ์ํ์ ๋น๋๊ธฐ ์์
์ Type-Saftyํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
โฆ
Recoil, Jotai๋ฅผ ํตํด Atom ๊ธฐ๋ฐ ์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
โข
Datasource & Fetching
โฆ
OpenAPI Generator๋ฅผ ์ด์ฉํด, ๋ฌธ์ ๊ธฐ๋ฐ API ์ถ์ํ ๋ ์ด์ด๋ฅผ ์๋ ์์ฑํ ๊ฒฝํ์ด ์์ต๋๋ค.
โฆ
SWR, TanStack Query๋ฅผ ์ด์ฉํด Fetching์ ์ถ์ํํ์ฌ ํจ์จ์ ์ผ๋ก API ์๋ต์ Caching / Invalidation ํ ๊ฒฝํ์ด ์์ต๋๋ค.
โช
SWR, TanStack Query์ ์บ์ ์คํ ์ด๋ฅผ ํตํด ๋ณ๋์ ์ ์ญ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ด ์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ณ , ๋ฒ๋ค ์ฌ์ด์ฆ๋ฅผ ์ ๊ฐํ ๊ฒฝํ์ด ์์ต๋๋ค
โข
Styling
โฆ
Design System Library(Chakra UI, Matine UI, Headless UI ๋ฑ), Tailwind CSS, SASS, CSS Module๋ฅผ ์ฌ์ฉํด ๋ฐ์ํ ์คํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค.
โฆ
ํ๋ก์ ํธ์ Storybook์ ๊ตฌ์ฑํด ์ปดํฌ๋ํธ๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
โข
Form & Validation
โฆ
React Hook Form์ ์ฌ์ฉํด Input field๊ฐ ๋งค์ฐ ๋ง์ ๋์๋ณด๋ ์๋น์ค ์์
์์ ์์
ํจ์จ๊ณผ ๊ฐ๋
์ฑ์ ํฅ์์ํค๊ณ , ๋ฆฌ๋๋๋ง์ ์ต์ํ์ํจ ๊ฒฝํ์ด ์์ต๋๋ค.
โฆ
Zod๋ฅผ ์ฌ์ฉํ์ฌ Object์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ ์ธ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์์
ํจ์จ๊ณผ ๊ฐ๋
์ฑ์ ํฅ์์ํจ ๊ฒฝํ์ด ์์ต๋๋ค.
โช
๋น๋๊ธฐ refine์ด ํ์ํ์ง ์๋ ํ๋ก์ ํธ์์ SuperStruct๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒ๋ค ์ฌ์ด์ฆ๋ฅผ ์ ๊ฐํ ๊ฒฝํ์ด ์์ต๋๋ค.
โข
Bundling
โฆ
Webpack, Rollup, Vite ๋ฑ์ ๋ฒ๋ค๋ฌ๋ฅผ ํ๋ก์ ํธ์ ๊ตฌ์ฑํ๊ณ , ํ๋ก์ ํธ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ ์ค์ ์ ์ง์ ์์ ํด ์ฌ์ฉํ ์ ์์ต๋๋ค.
โฆ
webpack-bundle-analyzer๋ฅผ ์ฌ์ฉํด ๋ฒ๋ค ๊ตฌ์ฑ ํํฉ์ ์ถ์ ํ๊ณ , ๋ฒ๋ค ์ฌ์ด์ฆ๋ฅผ ์ ๊ฐํ๊ธฐ ์ํด tree-shaking, ํจํค์ง ๋ณ๊ฒฝ ๋ฑ์ ์ ์ฉํด๋ณธ ๊ฒฝํ์ด ์์ต๋๋ค.
โฆ
React.js ํ๋ก์ ํธ๋ฅผ ๋ฒ๋ค๋ง ์์ ์์ React.js ํจํค์ง๋ค์ Preact ํจํค์ง๋ก ์นํํ์ฌ ๋ฒ๋ค ์ฌ์ด์ฆ๋ฅผ ์ ๊ฐํ ๊ฒฝํ์ด ์์ต๋๋ค.
โข
Monorepo
โฆ
Yarn Workspace, PNPM Workspace, Turborepo๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋
ธ๋ ํฌ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ถํ ๊ฒฝํ์ด ์์ต๋๋ค.
โฆ
๋ชจ๋
ธ๋ ํฌ ๊ณตํต ์ค์ ํ์ผ๋ค์(.eslintrc, .prettierrc, tsconfig.json, tailwind.config.js ๋ฑ) ๊ณต์ฉ ํจํค์ง๋ก ๋ถ๋ฆฌํด ์ผ๊ด๋ ์ค์ ์ด ์ ์ฉ๋๋๋ก ๊ตฌ์ถํ ๊ฒฝํ์ด ์์ต๋๋ค.
โฆ
Changeset๋ฅผ ์ด์ฉํด ๋ชจ๋
ธ๋ ํฌ ๋ด ํจํค์ง ๋ฒ์ ๋ค์ ๊ด๋ฆฌํ ๊ฒฝํ์ด ์์ต๋๋ค.
โข
Next.js
โฆ
Next.js(Page router, App router)๋ฅผ ์ด์ฉํด SSR, SSG ํ๊ฒฝ์ ์น์๋น์ค๋ฅผ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
โฆ
๋ณ๋์ Backend ์๋น์ค ๊ตฌ์ฑ ์์ด, Next.js App router๋ฅผ ์ด์ฉํ์ฌ Backend ๊ธฐ๋ฅ(DB, Cache, Open Graph, API)์ ๊ตฌ์ถํด๋ณธ ๊ฒฝํ์ด ์์ต๋๋ค.
โฆ
PWA(Progressive Web Application)์ Next.js ํ๋ก์ ํธ์ ์ธํ
ํ์ฌ ๋ฐฐํฌํด๋ณธ ๊ฒฝํ์ด ์์ต๋๋ค.
โฆ
Next.js๋ฅผ ํตํด FCP, SI, TTI, TBT, LCP, CLS, SEO๋ฅผ ๊ฐ์ ํ์ฌ LightHouse ์ ์๋ฅผ ํฅ์์ํจ ๊ฒฝํ์ด ์์ต๋๋ค.
โฆ
optimizePackageImports ์ต์
์ ์ด์ฉํ์ฌ Next.js์ ๋ฒ๋ค ์ฌ์ด์ฆ๋ฅผ ์ ๊ฐํ ๊ฒฝํ์ด ์์ต๋๋ค.
Backend
โข
Nest.js
โฆ
Nest.js๋ฅผ ์ฌ์ฉํด REST API, WebSocket gateway๋ฅผ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
โฆ
class-validator์ class-transformer๋ฅผ ํ๋ก์ ํธ์ ์ ์ฉํ๊ณ validation์ ์ํ DTO๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
โฆ
swagger์ ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ด์ฉํด API ๋ฌธ์๋ฅผ ์๋ ์์ฑํ ์ ์์ต๋๋ค.
โฆ
guard์ strategy๋ฅผ ์ด์ฉํด OAuth์ JWT ๋ฐ๊ธ์ ์ง์ ๊ตฌํํ ์ ์์ต๋๋ค.
โข
DB & ORM
โฆ
MariaDB, OracleDB์ RDBMS๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ค๊ณ์ ๋ง๋ ์ ๊ทํ๋ ์คํค๋ง๋ฅผ ์ค๊ณํ ์ ์๊ณ , ํ๋ก์์ ์ ์ค์ผ์ฅด์ ์์ฑํ ์ ์์ต๋๋ค.
โฆ
TypeORM๊ณผ Prisma๋ฅผ ์ฌ์ฉํ์ฌ Entity๋ฅผ ์ ์ํ๊ณ ๋ง์ด๊ทธ๋ ์ด์
ํ ์ ์์ต๋๋ค.
โข
Redis
โฆ
Redis๋ฅผ ์ฌ์ฉํ์ฌ ์บ์๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
โฆ
Redis Event Pub/Sub์ ์ด์ฉํ์ฌ ๋ค์ค Replica ํ๊ฒฝ์์ WebSocket ๋ค์์คํ์ด์ค์ room์ด ์ฐ๋๋ ์ ์๋๋ก ๊ตฌ์ฑํด๋ณธ ๊ฒฝํ์ด ์์ต๋๋ค.
โข
Firebase Firestore, MongoDB ๋ฑ์ NoSQL๋ฅผ ํ๋ก์ ํธ ๋ชฉ์ ์ ๋ง์ถ์ด ์ ์ฉํ ์ ์์ต๋๋ค.
โข
Firebase๋ฅผ ํตํด ํ๋ก์ ํธ ๋ฐฐํฌ, ์ ์ ์ธ์ฆ ๋ฐ ๊ด๋ฆฌ๋ฅผ ํ ์ ์์ต๋๋ค.
DevOps
โข
Docker
โฆ
Docker๋ฅผ ์ด์๊ณผ ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ฑ์ ํ์ฉํ ์ ์์ต๋๋ค.
โฆ
๊ฐ ์ฑ์ ์ํ ๋น๋ ๊ณผ์ ์ Dockerfile์ ์์ฑํ๊ณ Docker Image๋ฅผ ๋น๋ ํ ์ ์์ต๋๋ค.
โข
CI
โฆ
Jenkins, GitHub Actions์ ์ค์ ํ์ผ์ ์ง์ ์์ฑํ ์ ์๊ณ , ํ
์คํธ / ๋น๋ / ๋ฐฐํฌ๋ฅผ ์ํํ๋ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
โช
๋ชจ๋
ธ๋ ํฌ ํ๊ฒฝ ๋ด ์ฌ๋ฌ ์ฑ๋ค์ CI๋ฅผ Jenkins๋ GitHub Actions๋ก ๊ตฌ์ถํ ๊ฒฝํ์ด ์์ต๋๋ค.
โช
GitHub Actinons Cache๋ฅผ ํตํด Image Layer Cache์ PNPM Cache๋ฅผ ์ ์ฉํด, CI ์คํ ์๊ฐ์ ๋จ์ถ์ํจ ๊ฒฝํ์ด ์์ต๋๋ค.
โข
Netlify, Vercel, Cloudflare Pages๋ฅผ ์ด์ฉํด Frontend ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
โข
NginX ๋๋ Nginx Proxy Manager๋ฅผ ์ฌ์ฉํด Resverse Proxy๋ฅผ ๊ตฌ์ฑํ๊ณ , SSL ์ธ์ฆ์๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค.
โข
Cloudflare์ ๋ค์ํ ๊ธฐ๋ฅ(DNS, Site Rules, R2, Workers & Pages ๋ฑ)์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Etc.
โข
Typescript์ ES6 ์ด์์ Javascript๋ฅผ ๋ฅ์ํ ์ฌ์ฉํ ์ ์์ต๋๋ค.
โข
Jest, Testing Library๋ฅผ ์ฌ์ฉํ์ฌ Node ํ๋ก์ ํธ์ ํ
์คํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
โข
Puppeteer๋ฅผ ์ฌ์ฉํ์ฌ Headless browsing์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
โข
Chromium ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ ํ์ฅํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ๋ํ ๋๋ฉ์ธ ์ง์์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
โฆ
Chrome Web Store ๋ฑ๋ก ์ฌ์ฌ์ ๋ฒ์ ์ ์ง๊ด๋ฆฌ๊น์ง ํ์ฅํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ์ ๋ฐ์ ๋ํ ๊ฒฝํ์ด ์์ต๋๋ค.
โฆ
๋ชจ๋
ธ๋ ํฌ๋ฅผ ์ํด ํ์ฅ ํ๋ก๊ทธ๋จ ๊ฐ ๊ตฌ์ฑ์๋ก์ ํ๊ฒฝ์ ๋ถ๋ฆฌํด ๊ด๋ฆฌํ ๊ฒฝํ์ด ์์ต๋๋ค.
โข
Git์ ์ฌ์ฉํด ์์ค์ฝ๋์ ๋ถ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๊ณ PR๊ณผ ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํตํด ํ์๊ณผ ํ์
ํ ์ ์์ต๋๋ค.
โฆ
์ฝ๋๋ฆฌ๋ทฐ ์ฝ๋ฉํธ์ Pn ๋ฃฐ์ ์ ์ฉํด ์ปค๋ฎค๋์ผ์ด์
๋น์ฉ์ ์ ๊ฐํ ๊ฒฝํ์ด ์์ต๋๋ค.
โข
Electron์ ํตํ Cross-Platform ๋ฐ์คํฌํ ํ๋ก๊ทธ๋จ๋ฅผ ๊ฐ๋ฐ ํ ์ ์์ต๋๋ค.
โฆ
electron-updater์ github release๋ฅผ ์ฐ๋ํ์ฌ ์
๋ฐ์ดํธ๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
โข
Web Serial API๋ฅผ ํตํด ๋ฌผ๋ฆฌ์ฅ์น์์ ์๋ฆฌ์ผ ํต์ ์ ๊ตฌํํ ์ ์์ต๋๋ค.
์์์ด๋ ฅ
[2022๋ ๊ณต๊ณต๋ฐ์ดํฐ ๊ธฐ์ ๋งค์นญ ์ฌ์ ] ๊ณต๊ณต๋ฐ์ดํฐ ํ์ฉ ์๋น์ค ๊ฐ๋ฐ ๊ณต๋ชจ์ - ์ต์ฐ์์ (NIA์์ฅ์, 3์)
2022.12.08
ํ์๋ถ ์ฃผ๊ด ๊ณต๊ณต๋ฐ์ดํฐ ํ์ฉ ์๋น์ค ๊ฐ๋ฐ ๊ณต๋ชจ์ ์์ ๊ณ ๊ตํ์ผ๋ก ์ถํํ์ฌ ์ต์ฐ์์ ์์(1,2์ ๊ธฐ์
ํ ์์/4,5์ ๋ํํ ์์). ๋ถ์ฐ๋ ํ์ฒ, ๋, ๋ณด ์์ ๋ฐ ๊ธฐ์ ๊ณต๊ณต๋ฐ์ดํฐ๋ฅผ ํตํฉํ๋ DB ๋ฐ API๋ฅผ ๊ตฌ์ถํ๊ณ , ์ด๋ฅผ ์๊ฐํํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ ํด๋ผ์ด์ธํธ๋ฅผ ๊ฐ๋ฐํจ.
[EJN ์ฒํ์ ์ผ ํธ๊พธ ๊ณต๋ชจ์ ] ์ฑํ ์์ ฏ ๋ถ๋ฌธ(์ปค์คํ CSS) - ๊ธ์
2022.10.19
EJN ์ฒํ์ ์ผ ํธ๊พธ ๊ณต๋ชจ์ ์ฑํ
์์ ฏ ๋ถ๋ฌธ์ ์นด์นด์คํก, ๋์ค์ฝ๋, ํ์ด์ค๋ถ ๋ฉ์์ง, ์ฌํ ๋ผ์ด๋ ๋ฐ์ค ํ
๋ง ์ถํ ๋ฐ ๊ธ์ ์์.
ํ๋ ฅ์ฌํญ
2022.07.12 | ๋คํธ์ํฌ๊ด๋ฆฌ์ฌ 2๊ธ ์ทจ๋ |
2022.03.07 ~
2022.12.28 | ์ธ์ฒ์ง์
๋ฅ๋ ฅ๊ต์ก์ ๊ณ ๊ต์ํ ์ ๋ณด๋ณด์์ ๋ฌธ๊ฐ๊ณผ์ |
2020.03.02 ~
2023.02.28 | ๊ด์ฑ๊ณ ๋ฑํ๊ต (์ธ๋ฌธ๊ณ์ด) |