Backend & Frontend Engineer ยท Seoul, South Korea ๐ฐ๐ท
๐ GitHub ยท ๐ซ cjbormk11@gmail.com
Spring Boot ๊ธฐ๋ฐ ์๋ฒ ๊ฐ๋ฐ๊ณผ React ๊ธฐ๋ฐ ์น ํ๋ก ํธ์๋๋ฅผ ๋ชจ๋ ๋ค๋ฃน๋๋ค.
API ์ค๊ณ ยท ์ธ์ฆ/๋ณด์ ยท ๊ด์ธก ๊ฐ๋ฅ์ฑ(Observability) ยท CI/CD๊น์ง ์๋น์ค๊ฐ ์ค์ ๋ก ๊ตด๋ฌ๊ฐ๋ ๊ตฌ๊ฐ์ ๊ด์ฌ์ด ๋ง์ต๋๋ค.
์ผ์ : 2026.08 ~ 2026.09
๊ธฐ์ ์คํ : React 19, TypeScript 6, Vite 8, Tailwind CSS 4, TanStack Router, TossPayments SDK, html-to-image, qr-code-styling, Oxlint, pnpm, AWS Amplify
์ฐธ์ฌ ์ธ์ : 3์ธ (ํ๋ก ํธ์๋ 1์ธ)
์๋น์ค : ์คํ๋ผ์ธ ๋งค์ฅ์ ๋ค์ปท์ฌ์ง ์ดฌ์๋ถํฐ ๊ฒฐ์ ยท ํ๋ ์ ์ ์ ยท ์ธ์ ยท QR ๋ค์ด๋ก๋๊น์ง ์ด์ด์ง๋ ํค์ค์คํฌ ์น ์๋น์ค
์ค๊ณ ๊ธฐ์ค : ์์ดํจ๋ ํค์ค์คํฌ(Safari/WebKit) ๋จ์ผ ๋๋ฐ์ด์ค ํ๊ฒฝ, ์ธ์
๊ธฐ๋ฐ ์คํ
๋ง๋ฃ ์ฒ๋ฆฌ ๋ฐ ์ด๋ฏธ์ง ์บก์ฒ ํ์ดํ๋ผ์ธ ์ต์ ํ
- ํค์ค์คํฌ(Safari/WebKit)์์ ์คํ์คํฌ๋ฆฐ ํ๋ ์ ์บก์ฒ ์ ์ฌ์ง ยท QR์ด ๋๋ฝ๋๊ณ ๋ฐฐ๊ฒฝ๋ง ๋ ๋๋ง๋๋ ๋ฌธ์ ๋ฅผ, ์บก์ฒ ์ปจํ
์ด๋๋ฅผ
-9999px์ด๋ ๋ฐฉ์์์ ๋ทฐํฌํธ ์์ +w-0 h-0 overflow-hidden๋ฐฉ์์ผ๋ก ์ ํํ๊ณ ๊ณ ์ setTimeout๋๊ธฐ๋ฅผdocument.fonts.ready+ ๋๋ธrequestAnimationFrame์กฐ๊ฑด ๋๊ธฐ๋ก ๊ต์ฒดํ์ฌ ํด๊ฒฐ, ์ธํ ์ด๋ฏธ์ง ๋๋ฝ ํ์ ์ ๊ฑฐ - ๋๋ฆฐ ๋คํธ์ํฌ ํ๊ฒฝ์์ S3 ์ธ๋ถ ์ด๋ฏธ์ง ๋ก๋ฉ ์๋ฃ ์ ์บก์ฒ๊ฐ ์คํ๋์ด
toBlob์ดnull์ ๋ฐํ, ์ต์ข ์ด๋ฏธ์ง ์ ๋ก๋ ์์ฒญ ์์ฒด๊ฐ ๋ฐ์ํ์ง ์๋ ์ฅ์ ๋ฅผ ์บก์ฒ ์ง์ ๋ ธ๋ ๋ด ๋ชจ๋<img>์decode()์๋ฃ ๋๊ธฐ ๋ก์ง์ผ๋ก ๋ณด์ํ์ฌ ์ ๋ก๋ ์คํจ ์ฐจ๋จ - ํ๋ก ํธ์๋๊ฐ ๋ฐฑ์๋ ์๋ฌ ์๋ต์
code๊ฐ์ด ์๋ Java enum ์์๋ช ์ ๋น๊ตํ๊ณ ์์ด ์ด๋ฏธ ๊ตฌํ๋ ์ฌ์๋ ยท ์๋ด ๋ก์ง์ด ๋ฌด๋ ฅํ๋์ด ์๋ ๋ฌธ์ ๋ฅผ, ์ค์ ์ฝ๋(SESSION_404_2,PRINT400_5) ๊ธฐ์ค์ผ๋ก ์ ์ ํ๊ณ 2์ด ๊ฐ๊ฒฉ ์ต๋ 5ํ ์ฌ์๋๋ฅผ ์ ์ฉํ์ฌ ํํธ๋ ๋ฐฐ์ ยท ์ธ์ ์กฐํ ์คํจ ๋ณต๊ตฌ - AWS Amplify ๋น๋๊ฐ
pnpm: command not found๋ฐ corepack ์บ์ ๋ถ์ผ์น๋ก ์ธํMODULE_NOT_FOUND๋ก ์คํจํ๋ ๋ฌธ์ ๋ฅผamplify.yml๋น๋ ์คํ ์์ฑ ๋ฐpackageManager๋ฒ์ ๊ณ ์ (pnpm@11.21.0)์ผ๋ก ํด๊ฒฐํ์ฌ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ์์ ํ - TossPayments ๊ฒฐ์ ๋ฐฉ์์ ์ฃผ๋ฌธ์ํ(์์ ฏ ์ธ๋ผ์ธ)์์ ๊ฒฐ์ ์ฐฝํ(์ค๋ฒ๋ ์ด) ์ผ๋ก ์ ํํ๊ณ , ์น์ธ ์๋ฃ ์ ์๋์ผ๋ก ๋ค์ ์คํ (๊ด๊ณ ์ ํ)์ผ๋ก ์ง์ ํ๋๋ก ๊ฐ์ ํ์ฌ ํค์ค์คํฌ ์กฐ์ ๋จ๊ณ ์ถ์
GET /sessions/{id}/statusํด๋ง ๊ธฐ๋ฐ ์๋ฒ ๋๊ธฐํ ํ์ด๋จธ(useCountdown,useStepExpiry)๋ฅผ ๋์ ํ์ฌ ์คํ ๋ณ ๋ง๋ฃ ์ ์๋ ์ ํ ยท ์ด๊ธฐํ ยท ๊ฒฐ์ ์ฐฝ ์ทจ์ ๋ฑ ์ํ ์ ์ด ์ฒ๋ฆฌ- ๊ฒฝ๋ FSD(Feature-Sliced Design) ์ํคํ
์ฒ(
app โ routes โ features โ shared๋จ๋ฐฉํฅ ์์กด)์cva๊ธฐ๋ฐ ๊ณต์ฉ UI ์ปดํฌ๋ํธ ยท ๋์์ธ ํ ํฐ ์ฒด๊ณ๋ฅผ ์๋ฆฝํ์ฌ ํ๋ก ํธ์๋ ๊ตฌ์กฐ ํ์คํ - ์ด์ ๊ธฐ๋ฐ ์ํฌํ๋ก์ฐ์
main/develop2-๋ธ๋์น ๋ฐฐํฌ ์ ๋ต์ ์ ๋ฆฝํ๊ณ README ๊ฐ๋ฐ ๊ฐ์ด๋๋ฅผ ๋ฌธ์ํํ์ฌ ํ์ ๊ท์น ์ ์ฐฉ
์ผ์ : 2026.06 ~ 2026.08
๊ธฐ์ ์คํ : Java 21, Spring Boot 4.1, Spring Security 7.1, Spring Data JPA, MySQL, AWS S3 (SDK v2), Docker, GitHub Actions, Nginx, Swagger(Springdoc), Prometheus, Grafana, Loki, Tempo
์ฐธ์ฌ ์ธ์ : 8์ธ (๋ฐฑ์๋ 4์ธ)
์๋น์ค : ๋ฐ๋ ์ฌ๋์ด ์ํ๋ ์ ๋ฌผ์ ๊ณต์ ํ๋ฉด ์น๊ตฌ๋ค์ด ๋งํฌ๋ก ์ฐธ์ฌํด ๋ง์๊ณผ ๊ธ์ก์ ํจ๊ป ๋ชจ์ผ๋ ์ ๋ฌผ ํ๋ฉ ์๋น์ค
์ค๊ณ ๊ธฐ์ค : ๋ฐ๋ชจ๋ฐ์ด ์ค์ฌ์ฉ ํธ๋ํฝ ๋์, 100๋ง ๊ฑด ๊ท๋ชจ ๋ถํ ํ
์คํธ ๋ฐ์ดํฐ์
๊ธฐ๋ฐ ์ฑ๋ฅ ๊ฒ์ฆ ๋ฐ 3-Pillar Observability ์ฒด๊ณ ๊ตฌ์ถ
- ์ฅ์ ๋ฐ์ ์ ๋ก๊ทธ ยท ๋ฉํธ๋ฆญ ยท ํธ๋ ์ด์ค๊ฐ ๋ถ๋ฆฌ๋์ด ์์ธ ์ถ์ ์ด ๋ถ๊ฐ๋ฅํ๋ ๋ฌธ์ ๋ฅผ Prometheus(๋ฉํธ๋ฆญ) + Loki(๋ก๊น
) + Tempo(๋ถ์ฐ ํธ๋ ์ด์ฑ) ์ฐ๋์ผ๋ก ํด๊ฒฐ, Logback MDC์
traceId/spanId๋ฅผ ์ฃผ์ ํ๊ณ Grafana Derived Fields๋ก Logs โ Traces ์ํธ ์ด๋์ ๊ตฌ์ฑํ์ฌ Metrics-Logs-Traces 3-Pillar Observability ์ฒด๊ณ ํ๋ฆฝ - ๋ถํ ํ
์คํธ๋ฅผ ์ํ ๋๋ ๋ฐ์ดํฐ ํ๋ณด๊ฐ ๋ถ๊ฐ๋ฅํ๋ ๋ฌธ์ ๋ฅผ
CommandLineRunner+JdbcTemplateBatch Insert ๊ธฐ๋ฐ ๋ชฉ ๋ฐ์ดํฐ Runner๋ก ํด๊ฒฐ, ์ธ๋ฑ์ค ํด์ ๋ฐ ๋ค์ธต ๋ฌด์์ ์กฐํฉ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก 100๋ง ๊ฑด ๋ฌด์ค๋ณต ๋ฐ์ดํฐ ์ฃผ์ ์ ๋ณด์ฅํ๊ณ@Profile("mock-data")+mock-data.scale๋ก ์ค์ผ์ผ(1.0x / 0.1x / 0.01x) ๋์ ์ ์ด - ์ฌ์ฉ์๊ฐ ๊ณ์ข๋ฒํธ๋ง ์
๋ ฅํด๋ ์ํ์ ์๋ ์ธ์ํด์ผ ํ๋ ์๊ตฌ๋ฅผ KFTC ๊ณ์ข ํ
ํ๋ฆฟ ๋ฐ Y-Code ๊ณผ๋ชฉ์ฝ๋ ํจํด ๊ท์น ์์ง(
BankDetector) ์ผ๋ก ๊ตฌํํ์ฌ 22๊ฐ ๊ธ์ต๊ธฐ๊ด ์ถ๋ก API(POST /api/v1/banks/detections) ์์ฑ - 11-14์๋ฆฌ ๊ณ์ข ์
๋ ฅ ์ ํ๋ฆฌํฝ์ค๋ฅผ ๊ฒ์ฆํ์ง ์๋ ๊ท์น ๋๋ฌธ์ 7-9๊ฐ ์ํ์ด ๋์ ์ถ์ฒ๋๋ ์ค์ถ์ฒ ํ์์, ์ถ๋ก ๊ท์น์
List<DetectionRule>์ ์ธ์ ํ ์ด๋ธ๋ก ๊ตฌ์กฐํํ๊ณ ์ ๋ขฐ๋(HIGH/LOW) ๊ธฐ๋ฐ ํํฐ๋ง์ ๋์ ํ์ฌ ๋จ์ผ ์ํ ์ถ๋ก ์ผ๋ก ์ ์ , ์ ๋ฐ๋ ๊ฒ์ฆ ํ ์คํธ(detectPrecisionTest) ์ ์ค - ์ ์ญ ์์ธ ํธ๋ค๋ฌ๊ฐ
Exception๋ฉ์์ง๋ฅผ ๊ทธ๋๋ก ์๋ต์ ๋ ธ์ถํ๊ณDataIntegrityViolationException์ ๋ฌด์กฐ๊ฑด 409๋ก ๋ฐํํ๋ ๋ณด์ ยท ์ ํ์ฑ ๋ฌธ์ ๋ฅผ, ๋ด๋ถ ๋ฉ์์ง ์ฐจ๋จ ๋ฐ ์ ๋ํฌ ์ ์ฝ ์๋ฐ๋ง 409๋ก ๋ถ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ ํ์ฌ ์๋ฌ ์๋ต ๊ท๊ฒฉ ํ์คํ - ํ์๊ฐ์
์งํ ์ค(๋นํ์ ์ํ) S3 Presigned URL ๋ฐ๊ธ์ด 401๋ก ์ฐจ๋จ๋๋ ๋ฌธ์ ๋ฅผ
SecurityConfigpermitAll ๋ฑ๋ก๊ณผJwtAuthenticationFilter์ ํ ํฐ ์์ธ ํ์ฉ ๊ฒฝ๋ก ์ฒ๋ฆฌ๋ก ํด๊ฒฐ, ์จ๋ณด๋ฉ ์ค ํ๋กํ ์ด๋ฏธ์ง ์ ๋ก๋ ์ ์ํ - ์ํ ์นดํ
๊ณ ๋ฆฌ ๋จ์ผ ์ ํ ๊ตฌ์กฐ์ ํ์ฅ ํ๊ณ๋ฅผ
product_categoryN:M ๋งคํ ์ํฐํฐ๋ก ๊ฐํธํ๊ณLEFT JOIN๊ธฐ๋ฐ ์นดํ ๊ณ ๋ฆฌ ํํฐ๋ง ์ฟผ๋ฆฌ๋ฅผ ์ ์ฉํ์ฌ ๋ค์ค ์นดํ ๊ณ ๋ฆฌ ๋ฐ ์ธ๊ธฐ ํต๊ณ ์ ๋ ฌ ์ง์ - ์ ๋ฌผ ์ค๋น ์์ ์ ์ฅ(
IndividualFundingDraft,FundingTogetherDraft) Upsert API๋ฅผ ๊ตฌํํ๊ณ ๋ ์ง ์ ํจ์ฑ ยท ๊ณ์ข ์์ ๊ถ ๊ฒ์ฆ ๋ฐ ์ฐ๊ด ์ ๋ฌผ ๋ฆฌ์คํธ Cascade ์ญ์ ์ฒ๋ฆฌ - REST API ํ๊ฒฝ์ ๋ง์ถฐ
SessionCreationPolicy.STATELESS์ ํ ๋ฐ CORS ยท ์์ ๋ก๊ทธ์ธ(๊ตฌ๊ธ/์นด์นด์ค) ยท ๋นํ์ ๊ณต๊ฐ API ๊ฒฝ๋ก๋ฅผ ์ธ๋ถํํSecurityConfig์ค๊ณ Dockerfile๋ฐ GitHub Actions ๊ธฐ๋ฐ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๊ณ Nginx ํ๋ก์ ํค๋ ์ค์ ์ ์ ์ฉํ์ฌ ๋ฐฐํฌ ์๋ํ,v1.0.0์ ์ ๋ฐฐํฌ ์ํ
์ผ์ : 2026.04 ~ 2026.08
๊ธฐ์ ์คํ : React 19, TypeScript, Vite, TanStack Query, TanStack Router, Zustand, React Hook Form, Zod, Tailwind CSS, shadcn/ui, dnd-kit, Motion, AWS Amplify
์ฐธ์ฌ ์ธ์ : 12์ธ (ํ๋ก ํธ์๋ 4์ธ)
์๋น์ค : ๋ชจ์ง ๊ณต๊ณ ๋ฑ๋ก๋ถํฐ ์ง์ ยท ์๋ฅ/๋ฉด์ ํ๊ฐ ยท ํ ๋งค์นญ ยท ํ๋ ๊ด๋ฆฌ๊น์ง ๋ฆฌํฌ๋ฃจํ
์ ๊ณผ์ ์ ํ๋๋ก ์ฐ๊ฒฐํ๋ ์น ํ๋ซํผ
์ค๊ณ ๊ธฐ์ค : ์ด์์ง ยท Plan ์ฑ๋ฆฐ์ ยท ์ผ๋ฐ ์ฑ๋ฆฐ์ 3์ค ์ญํ ๊ธฐ๋ฐ ๊ถํ ๋ถ๊ธฐ, ์ง๋ถ/ํ๊ต ๋จ์ ๋ฉํฐ ํ
๋์ ๋ฐ์ดํฐ ๋ชจ๋ธ
- ์ง๋ถ ๋ชฉ๋ก์ด ํ๋ก ํธ์๋ ์ฝ๋ ์ ๋ฐ์ ์์๋ก ํ๋์ฝ๋ฉ๋์ด ์ ๊ท ์ง๋ถ ์ถ๊ฐ ์๋ง๋ค ์ฝ๋ ์์ ์ด ํ์ํ๋ ๊ตฌ์กฐ์ ๋ฌธ์ ๋ฅผ,
GET /v1/chapters/with-schools๊ธฐ๋ฐuseSchoolChapterMapํ ์ผ๋ก ์ ํํ๊ณChapterํ์ ์string์ผ๋ก ํ์ฅํ์ฌ ํด๋ผ์ด์ธํธ ์์ ์์ด ์ ๊ท ์ง๋ถ๊ฐ ๋์ ๋ฐ์๋๋๋ก ๊ฐ์ - ํ๊ฐ ๋ด๋น์ ๋ฐฐ์ ํ์ด์ง ์ง์
์ ์ ์์ ์์๊ณผ ๋ฌด๊ดํ๊ฒ
groups[0](ํน์ ํ๊ต)์ด ๊ณ ์ ์ ํ๋์ด ํ ํ๊ต ์ด์์ง์ด ๋ ธ์ถ๋๋ ๊ถํ ๋ฌธ์ ๋ฅผ,me.schoolId๊ธฐ๋ฐmySchoolGroupํ์ ๋ก์ง์ผ๋ก ํด๊ฒฐํ๊ณ ์งํ ์ค์ธ ๋ชจ์ง ์ฐจ์๊ฐ ์์ ๋์ ๋น ์ํ ์๋ด๋ฅผ ์ถ๊ฐ - ํ๊ต ํ์ฅ ๊ถํ ๊ณ์ ์ด ๋ชจ์ง ์ธ์(TO)์ ์ ์ฅํ ๋ ๊ถํ ์๋ ํ ํ๊ต API ์์ฒญ๊น์ง ํจ๊ป ์ ์ก๋์ด 403์ผ๋ก ์คํจํ๋ ๋ฌธ์ ๋ฅผ ์์ฒญ ๋ฒ์ ์ ํ์ผ๋ก ํด๊ฒฐ, ๊ถํ๋ณ ์ ์ฅ ํ๋ก์ฐ ์ ์ํ
- OAuth ์ฒซ ๋ก๊ทธ์ธ ์ ์ ์ ์ํ๊ฐ ๋ฐ์๋์ง ์๋ ํ์์ ์ฝ๋ฐฑ ์ฒ๋ฆฌ ๋ฐ ์ฟผ๋ฆฌ ์บ์ฑ ๊ตฌ์กฐ๋ก ๋ณด์ํ๊ณ , ์ด๋ฉ์ผ ์ธ์ฆ๋ฒํธ ์ค๊ธฐ์ ์ ๋ก๊ทธ์ธ ํ๋ฉด์ผ๋ก ๊ฐ์ ์ด๋ํ๋ ์ธํฐ์ ํฐ ์ค๋์์ ์ธ์ฆ ์์ฒญ ๊ฒฝ๋ก ์์ธ ์ฒ๋ฆฌ๋ก ์์ ํ์ฌ ์จ๋ณด๋ฉ ์์ ํ
- ํ๊ต ยท ์ง๋ถ ๋ชฉ๋ก ๋ฑ ๋ณ๋์ด ์ ์ ๋ฐ์ดํฐ์ ๋ฐ๋ณต API ํธ์ถ์ TanStack Query ์บ์ฑ ํ ์ผ๋ก ์ผ์ํํ๊ณ ๋ด ์ ๋ณด ยท ํ์ฑ ๊ธฐ์ ์ ๋ณด๋ฅผ ์บ์ฑํ์ฌ ๋ ๋๋ง ์๋ต์ฑ ๊ฐ์
- ํ๋ก์ ํธ ํํฐ ์ ํ ํ ์๋ก๊ณ ์นจ ์ ์ํ๊ฐ ์ด๊ธฐํ๋๋ ํ์์ URL Query Parameter ๋๊ธฐํ๋ก ํด๊ฒฐํ์ฌ ๋์ผ ํํฐ ๋ทฐ ๊ณต์ ๋ฐ ํ์ UX ๊ฐ์
- ํ๋ก์ ํธ ์์ ์ ์์์ ์ฅ(DRAFT)์์ ๊ฒํ ๋๊ธฐ(PENDING REVIEW)๋ก ์ํ ์ ์ด๋์ง ์๋ ์ค๋ฅ๋ฅผ ์บ์ ๋ฌดํจํ ๋ฐ ์์ธ ์ฒ๋ฆฌ ๋ณด์์ผ๋ก ํด๊ฒฐํ์ฌ ์ ์ฒญ/์์ ์ํฌํ๋ก์ฐ ์ ์ํ
- ์ง์ ํํฉ ์ง๊ณ์์ iOS ยท Android๊ฐ ๋๋ฝ๋๋ ๋ฌธ์ , ์ง๋ถ์ฅ/ํ์ฅ๋จ ๊ถํ๋ณ ์กฐํ ๋ฒ์ ๋ถ์ผ์น, ํ๋ก์ ํธ ๋ฉค๋ฒ ์๋ ๋ฐฐ์ ์ ํ์ ํํธ๊ฐ Frontend๋ก ๊ณ ์ ๋๋ ์ค๋ฅ ๋ฑ ๊ถํ ยท ์ง๊ณ ๋๋ฉ์ธ ๋ก์ง ๊ฒฐํจ์ ์ฐ์ ์์
- ๊ณต์ง์ฌํญ ๋ก๋ฉ ์ Layout Shift๋ฅผ ์ ์ฉ Skeleton UI๋ก ํด๊ฒฐํ๊ณ , ๊ณต์ง ๋ณธ๋ฌธ ๋งํฌ๋ค์ด(๋ฆฌ์คํธ ยท ๋ณผ๋) ๋ ๋๋ง ๋ฐ ํ์๊ฐ์ ์ด๋ฆ ์ ํจ์ฑ ๊ฒ์ฆ(๊ณต๋ฐฑ trim ยท 10์ ์ ํ) ๋ฑ ์ฌ์ฉ์ฑ ๊ฐ์ ๋ค์ ๋ฐ์
- ์ธ๋ถ ํด๋ฆญ ๊ฐ์ง ๋ก์ง์
useClickOutsideํ ์ผ๋ก ์ผ์ํํ๊ณ ๋ฏธ์ฌ์ฉ store๋ฅผ ์ ๋ฆฌํ์ฌ ์ ์ญ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๊ตฌ์กฐ ํตํฉ
์ผ์ : 2025.12 ~ 2026.02
๊ธฐ์ ์คํ : React, TypeScript, Tailwind CSS, TanStack Query, Framer Motion, Axios, Vite, Vercel
์ฐธ์ฌ ์ธ์ : 8์ธ (ํ๋ก ํธ์๋ 4์ธ)
์๋น์ค : ์ฌ์ํ ์ผ์๊น์ง ๋ฃจํด์ผ๋ก ๊ธฐ๋กํ๋ฉด '๋ฃจํด๋๋ฌด'์ ์ด๋งค๊ฐ ๋งบํ๊ณ , ํต๊ณ์ ์น๊ตฌ ๊ณต์ ๋ก ์ต๊ด ํ์ฑ์ ๋๋ ๋ชจ๋ฐ์ผ ์น ์๋น์ค
์ค๊ณ ๊ธฐ์ค : ๋ชจ๋ฐ์ผ ์น ๋ธ๋ผ์ฐ์ ์ ์ฉ ๋ฐ์ํ ํ๊ฒฝ, ์ผ๊ฐ/์ฃผ๊ฐ/์๊ฐ ํต๊ณ API ์๋ต ์๊ฐํ
- ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์ ์ ์ ์ํ๋จ ์์คํ ๋ฐ ๋ฐฐ๊ฒฝ์์ด ํ์ด์ง์ ๋ฌ๋ผ ๋ชฐ์ ๊ฐ์ด ์ ํด๋๋ ๋ฌธ์ ๋ฅผ ๋ทฐํฌํธ ๋ฉํ ํ๊ทธ ๋ฐ ๊ธ๋ก๋ฒ CSS ํต์ผ ์ค์ ์ผ๋ก ํด๊ฒฐํ์ฌ ์ผ๊ด๋ UI ์ ๊ณต
- ํต๊ณ ๋ฐ์ดํฐ ๋ก๋ฉ ์ค ์๊ฐ์ ํผ๋๋ฐฑ์ด ์์ด ์ดํ ์ํ์ด ์๋ ๊ตฌ๊ฐ์ ์ ์ฉ ๋ก๋ฉ ์คํผ๋ UI๋ฅผ ๊ตฌํํ์ฌ ์ฒด๊ฐ ๋๊ธฐ์๊ฐ ๊ฐ์
- ๋ฃจํด ํธ๋์ปค ยท ์ฑ์ทจ๋ ํต๊ณ API ์๋ต ์ฒ๋ฆฌ๋ฅผ TanStack Query ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ก ์ ํํ์ฌ ์ผ๊ฐ/์ฃผ๊ฐ/์๊ฐ ๋ฌ์ฑ๋ฅ ๋์ ๋ ๋๋ง ๊ตฌํ
- ์น๊ตฌ ๊ฒ์ ยท ์ ์ฒญ ยท ์๋ฝ ยท ์ญ์ ๋ฐ ์น๊ตฌ ๋ฃจํด๋๋ฌด/์์นด์ด๋ธ ์กฐํ API๋ฅผ ์ฐ๋ํ๊ณ ๋ผ์ฐํ ์ ๊ตฌ์ฑํ์ฌ ์์ ๊ธฐ๋ฅ ์์ฑ
- ๋ฃจํด๋๋ฌด ๋ฉ์ธ ํ์ด์ง ๋ฐ ๋ง์ดํ์ด์ง ์ ์ฒด ํผ๋ธ๋ฆฌ์ฑ, Framer Motion ๊ธฐ๋ฐ ์ธํฐ๋์ ๊ณผ ๊ณต์ฉ ๋ชจ๋ฌ(๋ก๊ทธ์์ ยท ๊ณต๊ฐ์ค์ ยท ์ฐจ๋จํด์ ยท ํ์ํํด) ์ปดํฌ๋ํธ ๊ตฌํ
๋๊ตญ๋ํ๊ต ์์ธ์บ ํผ์ค (Dongguk University, Seoul, South Korea)
- ์ ๊ณต: ์ปดํจํฐ๊ณตํ์ ๊ณต
- ๊ธฐ๊ฐ: 2021.03 ~ 2027.08 (ํ์ฌ ์กธ์ ์์ )
- UMC (University MakeUs Challenge) 9th: Web Challenger | 2025.09 ~ 2026.02
- UMC (University MakeUs Challenge) 10th: Spring Boot Challenger | 2026.03 ~ 2026.08
- UMC (University MakeUs Challenge) 10th: Product Team Web Part | 2026.03 ~ 2026.08



