μλ
νμΈμ!
μ¬μ©μ κ²½νμ μ€μνλ νλ‘ νΈμλ κ°λ°μ "μ€μκ·Ό"μ
λλ€.
μΌ κ²½ν
λͺ°μ
ν μ μλ νκ²½μ μ νΈν©λλ€.
μν΅μ μ΅μ°μ μΌλ‘ μκ°ν©λλ€.
μ½λ리뷰, νμ΄ νλ‘κ·Έλλ°μ μ’μν©λλ€.
κ·Όκ±° μλ μ½λλ₯Ό μμ±νκΈ° μν΄ λ
Έλ ₯ν©λλ€.
νμ μ ν
μ€νΈ μ½λλ₯Ό μμ±ν©λλ€.
μμ±λ μ½λμ κ΄ν λ€μν μ견μ νμν©λλ€.
νμ€νμΌλ‘ μΌν΄ λ³Έ κ²½νλ μμ΅λλ€.
컀μ, ν΄λ‘λκ°μ AI λꡬλ₯Ό ν΅μ κ°λ₯ν λ²μλ‘ νμ©ν©λλ€.
λ©λμΏΌν°μ€
2022.11 ~ νμ¬
FE Developer
MAU 100λ§ μΌλ³Έ μ»€λ¨Έμ€ νλ«νΌ nuguλ₯Ό κ°λ° μ€μ
λλ€.
νλ‘μ νΈ μ΄κΈ°μλ νμ€νμΌλ‘ κ°λ°μ μ°Έμ¬νμ΅λλ€.
UIμ λ―Έλ¬ν μ°¨μ΄λ₯Ό λ°κ²¬νκ³ κ°μ νλ κ²μ 보λμ λκ»΄ νμ¬λ FE κ°λ°μ μ§μ€νκ³ μμ΅λλ€.
skills: {
fe: {
// nugu mall
react: [
"Next.js 14 page router",
"storybook",
"react-bootstrap",
"jotai",
"react-query",
"tanstack-virtual",
{
testing: [
"vitest",
"testing-library/react"
],
}
],
// back office
svelte: ["SvelteKit", "svelte4"]
},
be: {
python: {
django: ["django-rest-framework"]
}
},
vcs: ["git", "github"]
}
}
μλ²μ¨
2022.03 - 2022.10 (7κ°μ)
FE Developer
μ°¨μΈλ λ°±μ€νΌμ€ κΈ°λ₯ κ°λ°μ λ΄λΉνμ΅λλ€.
κΈ°λ°μ λ§λ€μ΄κ°λ κ²½νμ νμ΅λλ€.
μ μ½ μλ νκ²½μΌλ‘ BE κ°λ°λ ν΄λ³Ό μ μμμ΅λλ€.
κ°λ°λ¬Ένκ° μ±μν μ‘°μ§μμ μΌνκ³ μΆμ΄ μ΄μ§νμ΅λλ€.
{
skills: {
fe: {
js: ["typescript", "es6"],
react: ["react-admin", "mui"]
},
be: {
node: ["express"],
java: ["spring boot"]
},
vcs: ["git", "gitlab"]
}
}
ν¬μμμ€
2019.06 - 2022.02 (2λ
8κ°μ)
Software Engineer
OZReport HTML λ·°μ΄ κΈ°λ₯μ κ°λ°νμ΅λλ€.
κ°λ° νλ‘μΈμ€μ λ§μΆ° μΌνλ λ²μ λ°°μ μ΅λλ€.
μ£Όμ΄μ§ κ³Όμ λ₯Ό μλλλ‘ κ΅¬ννλ κ²μ μ§μ€νμ΅λλ€.
μ€λλκ³ λ³΅μ‘ν μ루μ
μ½λλ₯Ό λ€λ£¨λ κ²½νμ νμ΅λλ€.
λ€μν κΈ°μ μ€νμ κ²½νν΄λ³΄κ³ μΆμ΄ μ΄μ§νμ΅λλ€.
{
skills: {
fe: {
html5: {
js: ["vanila js(ES5)", "jQuery"]
},
flash: ["ActionScript"],
java: ["Applet"]
},
vcs: ["git", "gitlab"]
}
}
κΈ°ν κ²½ν
μμ©κ΅μ‘μΌν° κ΅μ‘ κ³Όμ
Python Java μμ© SW μ€λ¬΄ κ°λ°μ μμ±κ³Όμ μλ£
2018.10 - 2019.05 (7κ°μ)
λ―Έλμ΅ν©μ 보기μ μΈν΄
2018.01 - 2018.06 (5κ°μ)
μΈν΄μΌλ‘ κ°λ° μ€μ΄λ μ루μ
QA μ
무λ₯Ό μννμ΅λλ€.
μκ΅ μνΉν리λ°μ΄
YMS(Youth Mobility Scheme) λΉμλ‘ ν΄μΈ 체λ₯νμ΅λλ€.
2015.06 - 2017.06 (2λ
)
λκ΅λνκ΅ λ©ν°λ―Έλμ΄κ³΅νκ³Ό μ‘Έμ
2010.03 - 2018.08
μννΈμ€ν¬
ν¨κ» μλΌκΈ°λ₯Ό μ§ν₯ν©λλ€.
μ μμΌ μ μΈμ λ°λ₯΄κΈ° μν΄ λ
Έλ ₯ν©λλ€.
μꡬμ¬νμ΄ ν릴 μ μλ€λ μ μ μΌλμ λκ³ κ³ λ―Όν©λλ€.
μ κ·Ήμ μΌλ‘ μ§λ¬Ένκ³ μν©μ 곡μ ν©λλ€.
ν΄κ²°νκΈ° μ΄λ €μ΄ λ¬Έμ μ λν΄ λμμ μμ²ν©λλ€.
ν μμμ λ΄ μΌκ³Ό λ¨μ μΌμ κ²½κ³λ₯Ό λμ§ μμΌλ € ν©λλ€.
νλ‘μ νΈ κ²½ν
λ©λμΏΌν°μ€ (2023 ~ νμ¬)
nugu λͺ° μ΅μ ν
π€ λ°°κ²½
μΌλ³Έ μΈν°λ· μλκ° νκ΅μ λΉν΄ λλ € μλκ΄λ ¨ μ΄μλ€μ΄ μ£ΌκΈ°μ μΌλ‘ μΈμ
λμκ³ κΈ°μ‘΄ λͺ°μ ν¬λ‘¬ κ°λ°μλꡬ λΌμ΄νΈνμ°μ€, νΌν¬λ¨Όμ€ ν μΈ‘μ κ²°κ³Όκ° μ’μ§ μμ μ΅μ νλ₯Ό μ§ννμ΅λλ€.
π§ μ§ν
β
λ§μ μνμ λ€λ₯Έ κ΄μ¬μ κ°λ ν
λ€μ΄ μμΈ ν° μ»΄ν¬λνΈλ€μ΄ λ§μμ΅λλ€. μμ μ»΄ν¬λνΈλ€λ‘ λΆλ¦¬νμ¬ κ΄λ ¨ μνμ ν
μ λΆλ¦¬νλ ꡬ쑰 μ΅μ ννμ΅λλ€.
β
λΆνμν νλ‘ λ릴λ§μ΄ λ§μ μ μ μν 곡μ κ° νμνλ©΄ jotai Atomμ μ€μ²©λ μ»΄ν¬λνΈ μν 곡μ κ° νμνλ©΄ 컨ν
μ€νΈ APIλ₯Ό νμ©νλλ‘ μμ νμ¬ λΆνμν νλ‘ λ릴λ§μ μ€μμ΅λλ€.
β
form νλλ³λ‘ μ§μ μ μ΄νλ μν(isSubmitting, errors)λ€μ΄ λ§μκ³ νλ μ ν¨μ± κ²μ¬κ° submitνλ μμ μ ν κ³³μμ μ΄λ€μ§κ³ μμ΄ μμ§λκ° λ¨μ΄μ§λ€ νλ¨νμ΅λλ€. react-hook-form λͺ¨λμ μ μ©νμ¬ μνκ° κ΄λ¦¬λ₯Ό μμμμΌ μ§μ μ μ΄νλ μν κ°λ€μ μ κ±°νκ³ νλ μ»΄ν¬λνΈ λ΄μμ μ ν¨μ± κ²μ¬ μ½λκ° ν¬ν¨λκ² νμ¬ μμ§λλ₯Ό λμμ΅λλ€.
β
μλ² μνκ°λ€μ΄ λΆνμνκ² λ°λ³΅ μμ²λλ κ²½μ°λ€μ΄ λ§μ react-queryλ‘ μλ² μνλ₯Ό κ΄λ¦¬νλλ‘ μμ νμ¬ μΊμλ₯Ό νμ©ν΄ λΆνμν μμ²μ μ κ±°νμ΅λλ€.
β
λ·°ν¬νΈ μ€λ²νλ‘λλ μμμ μμκΉμ§ λͺ¨λ λ λλ§νμ¬ λΆνμνκ² λ§μ μμλ€μ΄ λ λλ§λκ³ μμμ΅λλ€. μλμ° κ°μν(tanstack/react-virtual)λ₯Ό μ μ©νμ¬ λ·°ν¬νΈ λ° μμλ€μ λ λλ§λμ§ μλλ‘ νμ΅λλ€.
β
λμΌ κΈ°λ₯μ νλ λͺ¨λ μ€ λ²λ€ μ¬μ΄μ¦κ° λ μμ λͺ¨λμ μ°Ύμ κ΅μ²΄νμ΅λλ€. (classNames β clsx, react-virtualized β tanstack/react-virtual)
β
μΈλΆ μ€ν¬λ¦½νΈ λ‘λλ‘ μΈν Total Blocking Timeμ΄ λ°μνκ³ μμμ΅λλ€. next/script λ‘λ μ λ΅μ λ³κ²½(beforeInteractive β afterInteractive)νμ¬ Total Blocking Timeμ κ°μ νμ΅λλ€.
β
CDNμ μ°κ²°μκ°μ λ¨μΆμν€κ³ μ CDN ν리컀λ₯νΈ λ§ν¬λ₯Ό μΆκ°νμ΅λλ€.
β
LCPλ₯Ό μ€μ΄κ³ μ κ°μ₯ ν° λ λλ§ μμμΈ μ΄λ―Έμ§μ fetchPriority high μΆκ°νμ΅λλ€.
β
νλ μ΄μ€ νλκ° μλ κ²½μ°, μμ΄λ λ λλ§λλ ν¬κΈ°μ λ€λ₯Έ κ²½μ°λ€μ΄ μ‘΄μ¬ν΄μ CLSκ° λ°μνκ³ μμμ΅λλ€. λ λλ§λλ μμμ λμΌν νλ μ΄μ€ νλλ₯Ό μΆκ°νκ³ νμν κ²½μ° μ΅μ λμ΄λ₯Ό μ€μ νμ¬ λ μ΄μμ μ¬ννΈλ₯Ό λ°©μ§νμ΅λλ€.
β
μν μ¬λ°±μ λ£κΈ° μν΄μλ§ μ¬μ©νλ μ»΄ν¬λνΈκ° μμλλ° μ£Όλ³ μμλ€μ margin, paddingκ°μ μ μ ν μ£Όλ©΄ μ κ±°κ°λ₯νλ¨ νλ¨μ DOM μμλ₯Ό μ€μ΄κ³ μ μ κ±°νμ΅λλ€.
β
λ§€λ² μλ² λ λλ§μ΄ νμνμ§ μκ±°λ λ°μ΄ν° λ³κ²½μ΄ λΉλ²νμ§ μμ νμ΄μ§λ€μ SSR λμ ISR νμ΄μ§λ‘ λ³κ²½νμ΅λλ€.
π κ²°κ³Ό
β
μ»΄ν¬λνΈλ₯Ό λΆλ¦¬νμ¬ λ¬Έμ λ°μ μ νμΈν΄μΌ ν μ»΄ν¬λνΈ μ½λλ₯Ό μ€μ¬ DXλ₯Ό κ°μ νμ΅λλ€.
β
λ²λ€ μ¬μ΄μ¦κ° μ½ 0.5MB κ°μνμ΅λλ€.
β
λͺ° νμ΄μ§ λ‘λ© μλκ° κ°μ λμμ΅λλ€.
β
λ©μΈ νμ΄μ§ κΈ°μ€ μΈ‘μ κ²°κ³Ό
β
FCP μ΄μ μΈ‘μ κΈ°λ‘ κΉλΉ‘ π« β 404ms
β
LCP μ΄μ μΈ‘μ κΈ°λ‘ κΉλΉ‘ π« β 0.48s
β
Total Blocking Time μ΄μ μΈ‘μ κΈ°λ‘ κΉλΉ‘ π« β 600ms
β
νΌν¬λ¨Όμ€ μ μ 28 β 43
β
CLS 0 λ¬μ± π
β
μλμ° κ°μν μ μ© ν μ΅μ΄ μν μΉ΄λ λ λλ§ μμκ° μ΅λ 95% κ°μλμμ΅λλ€. κ°μ₯ λ§μ΄ κ°μν νμ΄μ§λ μν μΉ΄λ λ λλ§ μμκ° 1403κ°μμ 64κ°λ‘ κ°μνμ΅λλ€.
nugu λͺ° μ€νμΌλ§ μλΉμ€ κ°λ°
π€ λ°°κ²½
μΈμ€ν μ€ν 리μ²λΌ λΈλλμ μΈν루μΈμλ€μ μ€νμΌ μ»¨ν
μΈ λ₯Ό μ¬λ¦΄ μ μλ μλΉμ€ λμ¦κ° μμ΄ κ°λ°νκ² λμ΅λλ€.
π§ μ§ν
β
κΈ°ν 1λͺ
, BE 1λͺ
, FE 3λͺ
TFνμΌλ‘ ꡬμ±λ νμμ FE 리λλ₯Ό λ§‘μ νμ
νμ΅λλ€.
β
μ£Όλμ΄ κ°λ°μλ€κ³Ό νμ΄ νλ‘κ·Έλλ°μΌλ‘ μ§ννλ©° μ½μΉ λ° μ½λ리뷰λ₯Ό μ§ννμ΅λλ€.
β
λμμ μ€νΈλ¦¬λ° κΈ°λ₯μ ꡬν(hls.js)νμ΅λλ€. μΈνΌλν° μ€ν¬λ‘€ μ λΉλμ€ λμ μΌλ‘ μΈν λ©λͺ¨λ¦¬ μ€λ²νλ‘μ° μ΄μκ° λ°μνμ¬ μλμ° κ°μν ꡬν(react-virtualized)μΌλ‘ ν΄κ²°νμ΅λλ€.
π κ²°κ³Ό
β
μμ κΈ°νμ λ§μΆ° μ΄μ μμ΄ μλΉμ€ μΆμλμμ΅λλ€.
β
2025λ
7μ κΈ°μ€ μ½ 500λͺ
μ μΈν루μΈμκ° 4000κ° μ΄μμ 컨ν
μΈ λ₯Ό λ±λ‘νκ³ νκ· 10% μ₯λ°κ΅¬λ μ νμ¨μ λ¬μ±νμ΅λλ€.
nugu λͺ° νλ‘λͺ¨μ νμ΄μ§ κ°λ°
π€ λ°°κ²½
μ£ΌκΈ°μ μΌλ‘ μΈν°λ ν°λΈν μμκ° ν¬ν¨λ νλ‘λͺ¨μ
νμ΄μ§ κ°λ°μμ²μ΄ μμ΄ μ΄λ₯Ό μ§μνμ΅λλ€.
π§ μ§ν
β
λ§μΌν
, κΈ°ν, λμμΈνκ³Ό νμ
, μ€ν 리 보λ μ°Έκ³ νμ¬ νλ‘λͺ¨μ
νμ΄μ§ κ°λ°νμ΅λλ€.
β
νλ‘λͺ¨μ
μ© APIλ₯Ό λ§λ€μ΄ λ°±μ€λ κ°λ°λ κ°μ΄ μ§ννμ΅λλ€.
π κ²°κ³Ό
β
μΆμμ²΄ν¬ μ΄λ²€νΈ, λλ€ μΏ ν°, μ μ°©μ μΏ ν° λ± λ€μν νλ‘λͺ¨μ
μμ² κΈ°λ₯λ€μ ꡬννμ΅λλ€.
β
λ°λ³΅ μ¬μ©λλ μ΄λ²€νΈ κ΄λ ¨ μ»΄ν¬λνΈλ€ μΆμννμ¬ μ¬μ¬μ©μ± ν₯μνμ΅λλ€.
β
νλ‘λͺ¨μ
νμ΄μ§κ° κΈ°κ°μ λ§μΆ° μλκ΅μ²΄λλλ‘ νμ¬ μ§μ μκ°λ§μΆ° νλ λΆνμν λ°°ν¬λ₯Ό μ κ±°νμ΅λλ€.
μ 무 μΈ μλ°μ κΈ°μ¬ λ° κ°μ
π€ λ°°κ²½
νλ©΄ μ’μ κ²λ€μ Fun List(TODO)μ λͺ¨μλλ€κ° μ¬μ κ° μμ λ κΊΌλ΄ μ²λ¦¬νμ΅λλ€.
π§ μ§ν λ° π κ²°κ³Ό
β
κ°λ° νκ²½μμ μ€μ CDN μ΄λ―Έμ§ λμ λλ―Έ μ΄λ―Έμ§λ₯Ό μ¬μ©νλ νκ²½λ³μ μΆκ°νμ΅λλ€. κ°λ° μ€μ λΆνμν CDN 리μμ€λ₯Ό μ¬μ©νμ§ μλλ‘ νμ¬ λΉμ©μ μ κ°νμ΅λλ€.
β
git PR templateμ μΆκ°νμ¬ μ½λ리뷰 μ νμν μ 보λ₯Ό νμ κΈ°μ
ν μ μκ² κ°μ΄λνμ΅λλ€. PR μμ
λ΄μ©μ μ νννμ¬ μ½λ리뷰 μ μ°Έκ³ ν μ μλλ‘ νμ΅λλ€.
β
μμ¬λͺ° ν μΈμνλ€μ λͺ¨μ보λ νμ΄μ§λ₯Ό λ§λ€μ΄ νμ 곡μ νμ¬ νμλ€μ΄ μμ¬λͺ° ν μΈμνλ€μ μ½κ² λ³Ό μ μλλ‘ νμ΅λλ€.
2023 ~ 2024 μμ λ΄μ© μμ½
nugu λͺ° UI κ³ λν
β
nextjs12β14λ‘ λ²μ μ
: nextjs λ§μ΄λ μ΄μ ν΄κ²°, μ± λΌμ°ν°λ‘ μ ν κ°λ₯ν κΈ°λ° κ΅¬μΆ
β
Figma λμμΈ κΈ°λ° λμμΈ λ¦¬λ΄μΌ: κΈ°ν, λμμΈ νκ³Ό νμ
νμ¬ UI/UX κ°μ
β
Storybookμ λμ
νμ¬ μΌλΆ κ³΅μ© μ»΄ν¬λνΈλ€μ μ€ν λ¦¬λ‘ μΆμΆ: ꡬνμ΄ ννΈνλ κ³΅μ© μ»΄ν¬λνΈλ€μ νλμ μ»΄ν¬λνΈλ‘ ν΅ν©
β
vitest, react testing libraryλ‘ λ¦¬ν©ν°λ§ μ§νν μΌλΆ μ»΄ν¬λνΈλ€ TDD μ§ν: ν
μ€νΈ μ½λ μμ±μΌλ‘ μ»΄ν¬λνΈ μμ μ± ν보
nugu κΈ°νμ νΌλΈλ¦¬μ±
β
λμμΈ μꡬμ¬νμ λ§μΆ° flex, gridλ₯Ό μ΄μ©νμ¬ λ€μν λ μ΄μμ ꡬμ±, μμ, μ λλ©μ΄μ
λ± μꡬμ¬νμ λ§μΆκΈ° μν΄ vimeo sdk, aos λ± λͺ¨λμ μ¬μ©
nugu λͺ°, μ΄λλ―Ό(Back Office) κ°λ°
β
cafe24 λͺ°κ³Ό μ΄λλ―Όμ μμ¬ λͺ°, μ΄λλ―ΌμΌλ‘ μ΄κ΄: cafe24 μ’
μμ± μ κ±°
β
μ€ν¬λνμ ν΅ν΄ cafe24 λ°μ΄ν° λ§μ΄κ·Έλ μ΄μ
β
κ²μλ¬Ό κ΄λ¦¬ κΈ°λ₯(tinymce, ace editor, dropzone) ꡬν
β
μΉ΄ν
κ³ λ¦¬ κ΄λ¦¬ κΈ°λ₯(fancytree) ꡬν
β
μν κ΄λ¦¬ κΈ°λ₯ ꡬν
β
μ
λ©μ΄νΈ μν λκΈ°ν κΈ°λ₯ κ°λ°
μλ²μ¨ (2022)
μ°¨μΈλ λ°±μ€νΌμ€ κΈ°λ₯ κ°λ°
β
react-admin νλ μμν¬λ₯Ό μ΄μ©ν μ΄λλ―Ό νμ΄μ§ ꡬν
β
Keycloakμ μ΄μ©ν RBAC SSO ꡬν
β
Dooray! κ·Έλ£Ήμ¨μ΄ μ°λ
β
nivo κ·Έλν λͺ¨λμ μ΄μ©ν ν΅κ³ λμ보λ ꡬμΆ
β
κ²μνμΌλ‘ κ΄λ¦¬λλ κ³ κ° λ¬Έμλ₯Ό μΉΈλ°λ³΄λ UIλ‘ μ΄κ΄: κ³ κ° λ¬Έμ κ΄λ¦¬ νκ²½ κ°μ
β
SVNμΌλ‘ κ΄λ¦¬νλ μμ€μ½λλ₯Ό GitlabμΌλ‘ μ΄κ΄: μμ€μ½λ κ΄λ¦¬ νκ²½ κ°μ
ν¬μμμ€ (2019 ~ 2022)
μ€μ¦λ¦¬ν¬νΈ HTML5 λ·°μ΄ μ루μ κ°λ°
β
λ€μν λΈλΌμ°μ νΈνμ±(IE8~)μ κ³ λ €νλ κ°λ° κ²½ν
β
λμΌ λ‘μ§μ μ¬μ©νλ λ€μν μΈμ΄(C++, C#, Applet, ActionScript)μ μ νλ€μ΄ μμ΄ λ€μν κ°λ° μΈμ΄λ‘ κΈ°λ₯ ν¬ν
κ²½ν
β
λ·°μ΄ λ΄μ©μ μ€ν¬λ¦° 리λ(μΌμ€λ¦¬λ)λ‘ μ½μ μ μλλ‘ μ κ·Όμ± κ°μ
β
μ μλ¬Έμ μΆλ ₯ μ μΈμ¦ λ°μ½λ μ루μ
μ°λ(MarkAny, SGA)
β
opencv-js, zxing λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄μ©νμ¬ μΈκ° μ€μΊ, μΉ΄λ μ€μΊ κΈ°λ₯ ꡬν
β
λ·°μ΄ λκΈ°ν μ€κ³ μλ² λͺ¨λ κ°λ°
β
WYSIWYG νΈμ§κΈ°(summernote) μλ² λ© κΈ°λ₯ κ°λ°
ν μ΄νλ‘μ νΈ
π λͺ¨λ°μΌ μ²μ²©μ₯(2025)
λͺ¨λ°μΌ μ²μ²©μ₯ κ°λ°νμ΅λλ€. λ°©λͺ
λ‘, κΈΈμ°ΎκΈ° κΈ°λ₯μ μ 곡νμ΅λλ€.
π οΈ μ¬μ©
β
NextJS app router RSC
β
tanstack query
β
tailwindcss
β
firebase
β
NAVER map API # λΌμ΄μΌμ€ λ³κ²½μΌλ‘ νμ¬λ μ κ±°
π λ°°ν¬
β
Vercel
π λ©λμΏΌν°μ€ μμ¬λͺ° μν λͺ¨μ보λ νμ΄μ§(2025)
μμ§μμ© μμ¬λͺ° ν μΈ μνμ λͺ¨μλ³Ό μ μλ νμ΄μ§λ₯Ό κ°λ°νμ΅λλ€.
cafe24λ‘ μ΄μμ€μΈ μ¬λ¬ μμ¬λͺ° μνλ€μ λͺ¨μλ³Ό μ μκ² νμ΅λλ€.
π οΈ μ¬μ©
β
NextJS app router RSC
β
tanstack query
β
tailwindcss
π λ°°ν¬
β
Vercel
π domado(2024)
κ°μΈμ μΌλ‘ λ½λͺ¨λλ‘λ₯Ό μ¬μ©νκΈ° μν΄ μΌλ νΈλ‘ λ½λͺ¨λλ‘ μ±μ λ§λ€μμ΅λλ€.
π οΈ μ¬μ©
β
electron-react-boilerplate
π λ°°ν¬
β
github release
π°π· react-simple-south-korea-map-chart(2022)
μ§μλ³ ν΅κ³ μ 보λ₯Ό 보μ¬μ€ μ μλ κ°λ¨ν νκ΅ μ§λ μ°¨νΈ μ»΄ν¬λνΈλ₯Ό λ§λ€μμ΅λλ€.
π οΈ μ¬μ©
β
React
π λ°°ν¬
β
npm
π§ Pick Your Holds(2022)
μ¬μ§ 촬μ ν ν΄λΌμ΄λ° λ¬Έμ λ₯Ό λ§λ€μ΄ μ΄λ―Έμ§λ₯Ό 곡μ ν μ μλ μΉμ±μ λ§λ€μμ΅λλ€.
π οΈ μ¬μ©
β
vanilaJS(jQuery), React
π λ°°ν¬
β
μ΄μ λΈλ‘κ·Έ(github.io)μ λ°°ν¬
