Tony
๐Ÿ“ฆ๏ธ

Tony

Software Engineer, Front-end in Seoul, Korea, He/him

Resolving packages...

2 years ago

About

Interface Enthusiast (UI & API, Interoperable Architecture)

Contact

Facebook
LinkedIn
Email

Work Experience

2022 โ€” Now
Seoul, Korea

Leadership
ยท UX์‹œ์Šคํ…œ ์‹ค (ํ”„๋ก ํŠธ์—”๋“œ์ฝ”์–ด ํŒ€, ๋””์ž์ธ์‹œ์Šคํ…œ ํŒ€) ๋ฆฌ๋“œ
ยท ํ”„๋ก ํŠธ์—”๋“œ์ฝ”์–ด ํŒ€ ๋ฆฌ๋“œ
ยท ํ”„๋ก ํŠธ์—”๋“œ ์ฑ•ํ„ฐ ๋ฆฌ๋“œ

Engineering
ยท ์กฐํ•ฉ๊ฐ€๋Šฅํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ „์‚ฌ ์›น๋ทฐ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ (Stackflow)
ยท ์Šคํ‚ค๋งˆ๋ฅผ ํ†ตํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๋ฌธ์„œ ๋ฐ ์ฝ”๋“œ ์ƒ์„ฑ ์ž๋™ํ™” ๋„๊ตฌ ๊ฐœ๋ฐœ (Metabridge)
ยท SEO๋ฅผ ์œ„ํ•œ ์ฝ˜ํ…์ธ  ํ”Œ๋žซํผ ๊ฐœ๋ฐœ (Jampot โ€” Jamstack Data-layer as a Service)
ยท ๋žœ๋”ฉํŽ˜์ด์ง€ CMS ๋ฐ SDK ๊ฐœ๋ฐœ (Landkit)
ยท ์›น์‚ฌ์ดํŠธ ๊ธฐ์—ฌ ์›Œํฌํ”Œ๋กœ์šฐ ๊ฐœ๋ฐœ ๋ฐ ์šด์˜
ยท ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ๋ฅผ ํ†ตํ•œ ์ง€์†๊ฐ€๋Šฅํ•œ ๊ธฐ์ˆ  ์˜จ๋ณด๋”ฉ ๋ฌธ์„œ

Product
ยท ์ตœ๊ทผ ๋ฐฉ๋ฌธํ•œ ์„œ๋น„์Šค ์‹คํ—˜

2020 โ€” 2021
Seoul, Korea

Engineering
ยท WebView ํ”Œ๋žซํผ ๊ฐœ๋ฐœ (๋ธŒ๋ฆฟ์ง€ ์ธํ„ฐํŽ˜์ด์Šค, ๋ฐฐํฌ ์‹œ์Šคํ…œ ๋“ฑ)
ยท ํ–ฅ์ƒ๋œ Transition์„ ํ†ตํ•œ WebView UI/UX ๊ฐœ์„  (Karrotframe)
ยท ์›น์‚ฌ์ดํŠธ ํ”Œ๋žซํผ

Product
ยท ๋‚ด ๊ทผ์ฒ˜ ํƒญ ๊ฐœ๋ฐœ ๋ฐ ์šด์˜
ยท ์‹ ๊ทœ ์„œ๋น„์Šค ํ’€์Šคํƒ ๊ฐœ๋ฐœ (๋™๋„ค์•Œ๋ฐ”, ๋‹น๊ทผ๋ฏธ๋‹ˆ ๋“ฑ)
ยท ์จ๋“œํŒŒํ‹ฐ ์—ฐ๋™ SDK, OpenAPI ๊ฐœ๋ฐœ
ยท ์ค‘๊ณ ๊ฑฐ๋ž˜ ๊ฒ€์ƒ‰ WebView ์ „ํ™˜

2018 โ€” 2020
CTO at ์ด๋ฆฌ์˜จ์ปดํผ๋‹ˆ (Erion Company)
Seoul, Korea

Engineering
ยท ์‹ค์‹œ๊ฐ„ ํ™”์ƒ๊ต์œก ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
ยท ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ํ†ต์‹  ๊ทœ์•ฝ ๋ฐ ๋ Œ๋”๋ง ์—”์ง„ ๊ฐœ๋ฐœ
ยท ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ๊ณผ ํ™•์žฅ์„ฑ ์žˆ๋Š” ์„ค๊ณ„

Product
ยท ๋ผ์ด๋ธŒ ๋ฐฉ์†ก ํ”Œ๋žซํผ MVP ๊ฐœ๋ฐœ

2018 โ€” 2018
ํ”„๋ฆฌ๋žœ์„œ at ์ฝ”์˜ค๋กฑ์ธ๋”์ŠคํŠธ๋ฆฌ (Kolon Industries)
Seoul, Korea

ยท ์ฝ”์˜ค๋กฑ์ธ๋”์ŠคํŠธ๋ฆฌ ๋‚ด ๊ธ€๋กœ๋ฒŒ ๋ธŒ๋žœ๋”ฉ ์›น์‚ฌ์ดํŠธ๋ฅผ React.js ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœํŽธ
ยท Headless CMS ํ™œ์šฉ

Projects

2023
Landkit at ๋‹น๊ทผ (Karrot)

ยท ์ธ์•ฑ ์บ ํŽ˜์ธ ์šฉ ๋žœ๋”ฉํŽ˜์ด์ง€ ์—๋””ํŒ…, ๊ฐœ๋ฐœ, ๋ Œ๋”๋ง ๋„๊ตฌ
ยท ์ปค์Šคํ…€ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์ถ• ๊ธฐ๋Šฅ (์ปดํฌ๋„ŒํŠธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋ฐ SDK)
ยท Vanilla Extract Sprinkes๋ฅผ ํ™œ์šฉํ•ด ์ปค์Šคํ…€ ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„์— ํ•„์š”ํ•œ Atomic CSS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌ์ถ•
ยท 1000๋งŒ ์ˆ˜์ค€์˜ ์ˆœ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์˜ ์บ์‹ฑ์„ ์œ„ํ•ด Cloudflare CDN ํ™œ์šฉ
ยท Cloudflare Image Optimization์„ ํ†ตํ•œ Responsive Image ๊ตฌํ˜„

2023
Jampot at ๋‹น๊ทผ (Karrot)

ยท SEO ์ตœ์ ํ™” ๋ฐ ์‚ฌ์ดํŠธ๋งต ๊ตฌ์ถ• ์ „๋žต ์ž๋™ํ™”๋ฅผ ์œ„ํ•œ GraphQL ๊ธฐ๋ฐ˜ ์ฝ˜ํ…์ธ  ํ”Œ๋žซํผ ๋ฐฑ์—”๋“œ
ยท Cache-Control ํ—ค๋”๋ฅผ ํ™œ์šฉํ•œ ํ‘œ์ค€์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ์บ์‹œ ๊ธฐ๋Šฅ
ยท Event-sourcing๋กœ ๊ตฌ์ถ•๋˜์–ด ์‚ฌ์šฉ์ž์˜ ์‹ค์ˆ˜๋กœ๋ถ€ํ„ฐ ๋ณต๊ตฌ(Rollback) ๊ฐ€๋Šฅ
ยท Node.js, Fastify, MongoDB, GraphQL

2022

ยท ์กฐํ•ฉ ๊ฐ€๋Šฅํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์Šคํƒ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ยท Karrotframe์„ ๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ๋‹ค์‹œ ๊ตฌํ˜„
ยท ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์˜ ์ƒํƒœ ๊ธฐ๊ณ„ ์„ค๊ณ„
ยท Zero-dependencies

2022
๋‹น๊ทผ๋ฏธ๋‹ˆ at ๋‹น๊ทผ (Karrot)

ยท Third-party ์—ฐ๋™ Open API ๊ฐœ๋ฐœ
ยท Third-party ์—ฐ๋™ JavaScript SDK ๊ฐœ๋ฐœ
ยท ๋‚ด ๊ทผ์ฒ˜ ํƒญ ๋‚ด "๋‚˜์˜ ์ฆ๊ฒจ์ฐพ๊ธฐ" ์„น์…˜ ๊ฐœ๋ฐœ
ยท ๋ฏธ๋‹ˆ์•ฑ ํ”„๋กœํ•„, ๋ฆฌ๋ทฐ ๋“ฑ ํ’€์Šคํƒ ๊ฐœ๋ฐœ
ยท Node.js, GraphQL, Relay
ยท ์„ธํƒํŠน๊ณต๋Œ€, ๋ฏธ์†Œ, ํŽซํŠธ๋„ˆ, ์บ์ŠคํŒ…, ์ฒญ์†Œ์—ฐ๊ตฌ์†Œ ๋“ฑ ์„œ๋น„์Šค ์ถœ์‹œ

2022

ยท ์ œํœด ์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ •์  ์›น ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค
ยท Origin ๊ฒฉ๋ฆฌ (Custom Domain ํ†ตํ•ฉ)
ยท Cloudflare Workers, KV ํ™œ์šฉ
ยท ์‹คํ–‰ ๋งฅ๋ฝ์„ ๋™๊ธฐ ํ•จ์ˆ˜๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก `HTMLRewriter` API ํ™œ์šฉ

2022
๋‹คํฌ๋ชจ๋“œ TF at ๋‹น๊ทผ (Karrot)

ยท ๋‹น๊ทผ๋งˆ์ผ“ ํด๋ผ์ด์–ธํŠธ์˜ ์ปฌ๋Ÿฌ ์‹œ์Šคํ…œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ TPM
ยท ์ „์‚ฌ ๊ทœ๋ชจ์˜ ๋ฆฌ์†Œ์Šค ์„ค๋“๊ณผ ํŒ€ ๋ณ„ ์ผ์ • ํ• ๋‹น ๋ฐ ๊ด€๋ฆฌ

2022
๋ฐ”๋กœ๊ฐ€๊ธฐ TF at ๋‹น๊ทผ (Karrot)

ยท ๋‹น๊ทผ๋งˆ์ผ“ ๋‚ด ์‹ ๊ทœ ์„œ๋น„์Šค๋“ค์˜ ์ง„์ž… ๋ฌธ์ œ๋ฅผ ๋•๋Š” ๋ฐ”๋กœ๊ฐ€๊ธฐ ์„œ๋น„์Šค
ยท ํ™ˆ ํƒญ ์ƒ๋‹จ์— ์œ„์น˜ ๋งˆ๋ จ ๋ฐ ๊ธฐํƒ€ ์‹คํ—˜ ์„ค๊ณ„

2022

ยท ๋‹น๊ทผ๋งˆ์ผ“์˜ ๋‹ค์Œ ์„ธ๋Œ€ ์›น์‚ฌ์ดํŠธ ๊ธฐ๋ฐ˜
ยท ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด(GraphQL)์™€ ํŽ˜์ด์ง€ ์ •์  ์ƒ์„ฑ(Next.js) ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„
ยท ์ง€์—ญํ™”์™€ ์œ ๋‹ˆ๋ฒ„์„ค ๋งํฌ๋ฅผ ๊ณ ๋ คํ•œ Origin, Path ํ‘œ์ค€
ยท SEO ์ตœ์ ํ™”

2022

ยท ๋ชจ๋ฐ”์ผ ๋„ค์ดํ‹ฐ๋ธŒ(iOS/Android)์™€ ์›น๋ทฐ๊ฐ„์˜ IPC ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ž๋™ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๋„๊ตฌ
ยท JSON Schema ๊ธฐ๋ฐ˜
ยท TypeScript SDK, TypeScript SDK ๋ฌธ์„œ ์ž๋™์ƒ์„ฑ
ยท Swift, Kotlin Stub ์ž๋™ ์ƒ์„ฑ
ยท ํ”Œ๋Ÿฌ๊ทธ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•œ ํ™•์žฅ์„ฑ ๊ณ ๋ ค

2021

ยท ์›น๋ทฐ์˜ ์ „๋ฐ˜์ ์ธ UX ํ–ฅ์ƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ยท react-router-dom ๊ธฐ๋ฐ˜์˜ ๋„ค์ดํ‹ฐ๋ธŒ ํ™”๋ฉด์ „ํ™˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ยท ๋‹น๊ทผ๋งˆ์ผ“ ๋‚ด ์›น๋ทฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹ ๊ทœ ์‚ฌ์—…, ์„œ๋น„์Šค์—์„œ ํ™œ์šฉ

2021
๋™๋„ค์•Œ๋ฐ” at ๋‹น๊ทผ (Karrot)

ยท ๋‹น๊ทผ๋งˆ์ผ“ ๋‚ด ์‹ ๊ทœ ๊ตฌ์ธ๊ตฌ์ง ์„œ๋น„์Šค
ยท ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๊ฐœ๋ฐœ
ยท Node.js, GraphQL
ยท GraphQL JIT Executor ๋ฐ Persisted Queries๋ฅผ ํ†ตํ•œ GraphQL ํผํฌ๋จผ์Šค ์ตœ์ ํ™”

2021
Airport at ๋‹น๊ทผ (Karrot)

ยท ๋‹น๊ทผ๋งˆ์ผ“์˜ ์›น๋ทฐ ๋ฐฐํฌ ํ”Œ๋žซํผ
ยท ๋กค๋ฐฑ ๋ฐ ์นด๋‚˜๋ฆฌ ๋ฐฐํฌ ๊ธฐ๋Šฅ
ยท ์นด๋‚˜๋ฆฌ ๋ฐฐํฌ ๊ธฐ๋Šฅ์„ ํ†ตํ•œ AB ํ…Œ์ŠคํŠธ ์‚ฌ๋‚ด ์ „ํŒŒ

2021
์ค‘๊ณ ๊ฑฐ๋ž˜ ๊ฒ€์ƒ‰ WebView ์ „ํ™˜ at ๋‹น๊ทผ (Karrot)

ยท ๋‹น๊ทผ๋งˆ์ผ“ ๋‚ด ์ค‘๊ณ ๊ฑฐ๋ž˜ ๊ฒ€์ƒ‰์„ ์›น๋ทฐ๋กœ ์ „ํ™˜
ยท ๋„ค์ดํ‹ฐ๋ธŒ ์ˆ˜์ค€์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ž‘์—…

2020
Qlova at ๋‹น๊ทผ (Karrot)

ยท GraphQL์„ ํ†ตํ•œ gRPC ์„œ๋น„์Šค ํ†ตํ•ฉ ํ”„๋กœ์ ํŠธ
ยท ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋“ค์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก Aggregation
ยท ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋‚ด ๋„๋ฉ”์ธ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ GraphQL๋กœ ํ‘œํ˜„, ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋„๋ก SDL๊ณผ GraphQL Voyager๋กœ ์ œ๊ณต

2020
์–ด๋“œ๋ฏผ ์ธ์ฆ ํ”Œ๋žซํผ at ๋‹น๊ทผ (Karrot)

ยท ๋‹น๊ทผ๋งˆ์ผ“ ๋‚ด ๋…๋ฆฝ์ ์ธ ์–ด๋“œ๋ฏผ ์„œ๋น„์Šค๋“ค ๊ฐ„์˜ ์„ธ์…˜ ๊ณต์œ ๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„
ยท Node.js, GraphQL

2020
WebView Platform at ๋‹น๊ทผ (Karrot)

ยท ์ „๋ฐ˜์ ์ธ ๋‹น๊ทผ๋งˆ์ผ“ iOS/Android ํด๋ผ์ด์–ธํŠธ ๋‚ด WebView ๊ธฐ๋ฐ˜์„ ๊ฐœํŽธ
ยท iOS/Android ํด๋ผ์ด์–ธํŠธ์™€์˜ ํ†ต์‹  ๊ทœ์•ฝ์„ ์ •ํ•˜๊ณ , ๋„ค์ดํ‹ฐ๋ธŒ ํ†ตํ•ฉ์— ๋Œ€ํ•œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ •์˜
ยท JavaScript SDK ๋ฉ”์ธํ…Œ์ด๋‹

2020
๋‚ด ๊ทผ์ฒ˜ ํƒญ at ๋‹น๊ทผ (Karrot)

ยท ๋‹น๊ทผ๋งˆ์ผ“์˜ 3๋ฒˆ์งธ ํƒญ์ธ ๋‚ด ๊ทผ์ฒ˜ ํƒญ์„ ์›น๋ทฐ ํ˜•ํƒœ๋กœ ๊ฐœ๋ฐœ.
ยท GraphQL Client Schema
ยท GraphQL Schema Stitching (@graphql-tools/stitch)
ยท Relay

2019
ํด๋ž˜์Šค๋ฃธ 2.0 at ์ด๋ฆฌ์˜จ์ปดํผ๋‹ˆ (Erion Company)

ยท ๊ธฐ์กด์˜ 1.0 MVP๋ฅผ React.js๋กœ ์ „ํ™˜
ยท Twilio Programmable Video ํ™œ์šฉ
ยท iframe์„ ํ™œ์šฉํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ ๋ฐ SDK ๊ฐœ๋ฐœ

2018
ํด๋ž˜์Šค๋ฃธ 1.0 MVP at ์ด๋ฆฌ์˜จ์ปดํผ๋‹ˆ (Erion Company)

ยท Vue.js ๊ธฐ๋ฐ˜์˜ ์‹ค์‹œ๊ฐ„ ํ™”์ƒ๊ต์œก ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ฐœ๋ฐœ
ยท Twilio Programmable Video ํ™œ์šฉ

Side Projects

2023

ยท `.env.example` ์„ ์ฝ์–ด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ Validate ํ•ด์ฃผ๋Š” ์œ ํ‹ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
ยท ๊ธฐ์กด ์˜๋ฌธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ•œ๊ธ€๋กœ ๋ฐ”๊พธ๊ณ  ์ƒ‰์ƒ์œผ๋กœ ์—๋Ÿฌ์™€ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ๊ฐ•์กฐ

2023
eventive๏ปฟ

ยท Event-sourcing library built on MongoDB

2022

ยท Nact.js์˜ MongoDB ํผ์‹œ์Šคํ„ดํŠธ ํ†ตํ•ฉ

Volunteering

2019 โ€” Now
Seoul, Korea
2017 โ€” 2019
Co-organizer at AUSG
Seoul, Korea

Education