μλ‘
μλ‘ ν μκ° & λμ μν νλ‘μ νΈ μκ° μ μν μ‘°ν λ° κ²μνκΈ° μμ± λ° κ³΅μ νλ‘μ νΈ κ΄λ¦¬ λ¬Έμνμ μμΌ μ€ν¬λΌνλ‘μ νΈ μΌμ κΈ°μ μ€ν1. νμ
μ€ν¬λ¦½νΈ2. Next.js 3. Ant Design λμ μμ
λ¬Όλλμ 1. λ°±μλμμ κ·μ€ν νμ
κ²½ν 2. λ¬Έμν & μ μμΌ μ€ν¬λΌ3. ν₯ν 리ν©ν λ§
λ°λΈμ½μ€ 5κ°μμ μ¬μ μ λλ§Ίμ λλ§μ μ΅μ’
νλ‘μ νΈβ¦.
νμλ€κ³Ό ν¨κ» μμ΄λμ΄λ₯Ό λ
Όμνλ κ²μ΄ μκ·Έμ μλ κ² κ°μλ°
λ²μ¨ ν λ¬μ΄λΌλ μκ°μ΄ μ§λκ°κ³ λͺ¨λ κ²μ΄ λ§λ¬΄λ¦¬λμλ€.
νλ‘μ νΈλ₯Ό νλ©΄μ 무μ²μ΄λ νλ€μμ§λ§,
λμμ κ°λ°, νμ
, νλ‘μ νΈ κ΄λ¦¬ λ± λ§μ κ²μ λ°°μΈ μ μλ κ·μ€ν μκ°μ΄μλ€.
ν μκ° & λμ μν
μ°λ¦¬λ νλ‘ νΈμλ 4λͺ
, λ°±μλ 4λͺ
μΌλ‘ ꡬμ±λ νμ΄μλ€.
λλ νλ‘ νΈμλ νμ₯μ λ§‘μμΌλ©°,
κ°λ°μμλ 'νκΈ° μμ± & μμ νμ΄μ§', 'λ§μ΄ νμ΄μ§', 'νλ‘ν μμ νμ΄μ§', βν€λβλ₯Ό ꡬννμκ³ ,
κ·Έ μΈ νλ‘μ νΈ νκ²½ μΈν
, Axiosλ₯Ό ν΅ν API μ°λ, SWRμ λμ
λ±μ λ§‘μλ€.
ννΈ, νμ₯μ΄λ€λ³΄λ κ°λ° μΈμ μΌλ‘λ ν΄μΌ ν μΌλ€μ΄ λ§μλ€.
νμ₯μΌλ‘μ νμ μ§ν, μΌμ κ΄λ¦¬, λ°±μλμμ μν΅ λ±μ μ
무λ₯Ό μ£Όλ‘ λ΄λΉνμλ€.

νλ‘μ νΈ μκ°
νλ‘μ νΈμ μ΄λ¦μ Art.zip(μνΈμ§)μΌλ‘,
λ―Έμ μ μνμ κ΄ν μ 보λ₯Ό μ‘°ννκ³ νκΈ°λ₯Ό 곡μ ν μ μλ μλΉμ€μ΄λ€.
μ μν μ‘°ν λ° κ²μ

νκΈ° μμ± λ° κ³΅μ

μλλ νλ‘μ νΈμ κ°μλ₯Ό μ 리ν κ²μ΄λ€.

μμΈν κ²μ githubμ READMEλ₯Ό μ°Έκ³ ν΄μ£ΌμκΈ° λ°λλ€.
Team-BackFro-ArtZip-FE
prgrms-web-devcourse β’ Updated Nov 16, 2022
νλ‘μ νΈ κ΄λ¦¬
λ¬Έμν
λ¬Έμνλ₯Ό κΌΌκΌΌν νκΈ° μν΄ λ
Έλ ₯νμλ€.
κ°λ°λ§νΌμ΄λ λ¬Έμμ μ 리λ μ€μν μ
무μ΄μ μλμ΄λΌκ³ μκ°νκΈ° λλ¬Έμ΄λ€.
νΉν μ€κ° νλ‘μ νΈμμλ κ°λ°μ μ«κ²¨ λ¬Έμ μ 리λ₯Ό μ½κ° μνν ν κ²½ν₯μ΄ μμλλ°,
μ΄ μ μ λ°μ±νμ¬ λ¬Έμνμ μ κ²½μ μΌλ€.
λ
Έμ
μ ν΅ν΄ μ£Όμ λ¬Έμλ€κ³Ό νμλ‘μ 체κ³μ μΌλ‘ μ 리νμλ€.


μ μμΌ μ€ν¬λΌ
ννΈ, μ μμΌ μ€ν¬λΌ λ°©μμ λμ
νμ¬
3~4μΌμ μ€νλ¦°νΈ λ¨μλ‘ νλ‘μ νΈλ₯Ό μ§ννμλ€.
λν, Githubμ Projectsλ₯Ό ν΅ν΄ μΌμΌ μ€ν¬λΌμ μ§ννμμΌλ©°,
λΉμΌμ μ건μ λ
Όμνκ³ μμ
νν©μ κ΄λ¦¬νμλ€.

νλ‘μ νΈ μΌμ
λ°±μλμμ νμ
μ΄ νμμ΄λ€λ³΄λ μ¬μ μ λ
Όμν΄μΌν κ²λ€μ΄ λ¬΄μ² λ§μμΌλ©°,
μμ
μ λ³λ ¬μ μΌλ‘ μ§ννλ©΄μλ, κ³΅ν΅ μΌμ μ μ‘°μ¨νλ©° ν©μ λ§μΆλ κ²μ΄ κ½€λ μ΄λ €μ λ€.
μ΄ μ μ λλμ μμ λ νμ νλλ‘ νκ² λ€.
νλ‘μ νΈ κΈ°κ°μ μ΄ 26μΌμ΄μμΌλ©°, μλλ μ 체 μΌμ μ νλ‘ μ 리ν κ²μ΄λ€.

κΈ°μ μ€ν

νΉν βTypescript, Next.js, Ant designβμ
μ΄λ² νλ‘μ νΈμμ μ²μ λμ
νλ κΈ°μ μ΄μκ³ , μ¬λ¬λͺ¨λ‘ λ¬΄μ² μΈμκΉμλ€.
λλμ μ μ€μ¬μΌλ‘ νκ³ νκ² λ€.
1. νμ μ€ν¬λ¦½νΈ
νμ
μ€ν¬λ¦½νΈλ₯Ό μ¬μ©ν¨μΌλ‘μ¨ νμ
μ λ μννκ² μ§νν μ μμλ€.
νΉν API λͺ
μΈμ λ°λ₯Έ νμ
λ€μ μ μν¨μΌλ‘μ¨ λ°μ΄ν°λ₯Ό λ λͺ
ννκ² μ΄ν΄ν μ μμκ³ ,
νμ
μΆλ‘ , μλ μμ± λ±μ κΈ°λ₯μ μ κ·Ήμ μΌλ‘ μ¬μ©ν μ μμλ€.
λν, μ»΄ν¬λνΈμ propsμλ νμ
μ μ μν¨μΌλ‘μ¨ μ½λλ₯Ό νμΈ΅ κ²¬κ³ νκ³ μμ μ μΌλ‘ λ§λ€ μ μμλ€.
λ νλ λ§λΆμ΄κ³ μΆμ κ²μ,
Cannot read properties of undefined
μλ¬κ° νκΈ°μ μΌλ‘ μ€μλ€λ κ²μ΄λ€. undefinedμ μμ±μ μ κ·Όνλ €κ³ ν λ λ°μνλ λ°λ‘ κ·Έ μλ¬λ€!
νμ
μ€ν¬λ¦½νΈκ° μ΄μ κ°μ νμ
μλ¬λ₯Ό μ»΄νμΌ μ μ λ§μμ£ΌμκΈ° λλ¬Έμ,
λλ²κΉ
μ μλͺ¨νλ μκ°μ ν¬κ² μ€μΌ μ μμλ€. λ§€μ° λ§μ‘±μ€λ¬μ λ λΆλΆμ΄λ€.
ννΈ, νμ
μ€ν¬λ¦½νΈμ νκ³λ μ΄λ ΄νμ΄ λκΌλ κ² κ°λ€.
Object.keysλ₯Ό μ¬μ© μ, 무쑰건 string[]μΌλ‘ νμ
μΆλ‘ μ΄ λλ€λκ°,
μμν νμ
μΈ κ²½μ°(μλ₯Ό λ€μ΄ Ant designμ νμ
λ±),
νμ
μ€ν¬λ¦½νΈκ° νμ
μΆλ‘ μ μ¬λ°λ₯΄κ² λͺ» νλ κ²½μ°κ° μ’
μ’
μμλ€.
κ·Έλ¬ν μ΄μλ€ λλ¬Έμ μκ°μ΄ κ½€λ μλΉλμκ³ , μ΄μ© μ μμ΄ νμ
λ¨μΈμ μ¬μ©ν΄μΌλ§ νλ€.
νμ
μ€λ¦½νΈκ° μλ²½νμ§ μλ€λ κ²μ κΉ¨λ¬μλ λΆλΆμ΄λ€.
λν, νμ
μ€ν¬λ¦½νΈλ κ°λ°μμ νμ
μ€μλ λ§μμ£Όμ§λ§,
μ¬μ©μ(μ μ )μ νμ
μ€μλ λ§μμ£Όμ§ λͺ»νλ€. (λΉμ°ν λ§μΌμ§λ λͺ¨λ₯΄κ² λ€)
μλ₯Ό λ€μ΄, μ¬μ©μκ° νΌμ μ
λ ₯ν λ μ
λ ₯κ°μ΄ μ¬λ°λ₯Έ νμ
μΈμ§λ λ§μμ£Όμ§ λͺ»νλ€.
(κ·Έ λλ μ΄λ―Έ νμ
μ€ν¬λ¦½νΈκ° μλ, νΈλμ€νμΌλ§λ μλ°μ€ν¬λ¦½νΈμ΄κΈ° λλ¬Έμ΄λ€)
λ°λΌμ λ³λμ validationμ ꡬνν΄μΌλ§ νλ€.
μ΄ λν νμ
μ€ν¬λ¦½νΈμ νκ³λ₯Ό μ΄λ ΄νμ΄ λκΌλ λΆλΆμ΄λ€.
2. Next.js
CRAλ‘ κ°λ°νλ μ€κ° νλ‘μ νΈμλ λ¬λ¦¬,
μ΄λ² νλ‘μ νΈμμλ SSR νλ μμν¬μΈ Next.jsλ₯Ό λμ
νμλ€.
Next.jsλ₯Ό λμ
ν κΉλμ μ°μ SEO λλ¬Έμ΄λ€.
μ°λ¦¬ μ¬μ΄νΈλ βμ μνμ μ 보λ₯Ό μ 곡ν΄μ£Όλ μ¬μ΄νΈβμ΄λ―λ‘,
κ²μ μμ§μ μ 리νκ² λ
ΈμΆλλ κ²μ΄ νΉν μ€μνκ³ , λ°λΌμ SEOκ° μ€μνλ€κ³ νλ¨νμλ€.
ννΈ, κ·Έ μΈμλ Next.jsλ λ§μ μ΄μ λ€μ μ겨주μλ€.
νμ΄μ§ κΈ°λ° λΌμ°ν
μμ€ν
, Pre-render, SSR, SSGλ₯Ό ν΅ν μ±λ₯ ν₯μ,
Next/image μ»΄ν¬λνΈλ₯Ό μ¬μ©ν μ΄λ―Έμ§ μ΅μ ν μ§μ λ±μ΄ κ·Έκ²μ΄μλ€.
ννΈ, Next.jsκ° μ΅μνμ§ μμκΈ° λλ¬Έμ κ°λ° λμ€μ μνμ°©μ€λ₯Ό κ½€ κ²ͺμλ€.
λνμ μΈ κ²μ μΈμ¦ λ¬Έμ μλ€.
μ΄κΈ°μλ ν ν°μ λ‘컬 μ€ν 리μ§μ μ μ₯νμ¬ κ΄λ¦¬νκΈ°λ‘ νλλ°,
Next.js μλ²μμ λ‘컬 μ€ν 리μ§μ μ κ·Όν μ μμΌλ―λ‘ SSR μ λ¬Έμ κ° λ°μνμλ€.
κ²°κ΅ λ‘컬 μ€ν 리μ§κ° μλ μΏ ν€μ ν ν°μ μ μ₯νλ κ²μΌλ‘ λ€λ¦κ² λ°κΎΈμ΄μΌλ§ νλ€.
κ·Έ μΈμλ, react-hydration-errorκ° μ’
μ’
λ°μν΄μ 골μΉλ₯Ό μ©μλ€.
μ΄κ²μ Next.jsμ μν΄ pre-renderingλ 리μ‘νΈ νΈλ¦¬μ
λΈλΌμ°μ μ 리μ‘νΈ νΈλ¦¬κ° λΆμΌμΉν΄μ λ°μνλ μλ¬μλλ°,
μμ μ²μ 보λ μλ¬μκΈ° λλ¬Έμ κ°λ° λμ€μ μλΉν λ¨Έλ¦¬κ° μν λ κ² κ°λ€.
κ²°κ΅, Next.jsμ λμ λ°©μμ λν κ·Όλ³Έμ μΈ μ΄ν΄κ° λΆμ‘±ν μνμμ
λμ
μ νμκΈ° λλ¬Έμ κ²ͺμλ λ¬Έμ λ€μ΄λΌκ³ μκ°νλ€.
μ΄λ€ κΈ°μ μ μ¬μ©λ²μ μ΅νλ κ²λ μ€μνμ§λ§,
κ·Έ κΈ°μ μ λμ λ°©μμ λν κ·Όλ³Έμ μ΄κ³ μ νν μ΄ν΄κ° μ νλμ΄μΌ ν¨μ κΉ¨λ¬μλ€.
3. Ant Design
Ant Designμ΄λΌλ UI λΌμ΄λΈλ¬λ¦¬λ₯Ό μ²μ μ¬μ©ν΄λ³΄μλ€.
κ²°λ‘ λΆν° λ§νλ©΄β¦μ₯λ¨μ μ΄ λ무λ λλ ·νλ λ
μμ΄μλ€κ³ μκ°νλ€.
μ₯μ μ μ¬λ¬ μ»΄ν¬λνΈ(modal, spinner, calender λ±)λ₯Ό μ½κ² μ¬μ©ν μ μλ€λ κ²μ΄μλ€.
μ΄ λλΆμ λΉ λ₯Έ μλλ‘ λ§ν¬μ
μμ
μ λλΌ μ μμμΌλ©°,
APIμ μ°λ λ± λΉμ¦λμ€ λ‘μ§μ νμ΄λκ°λλ° μ§μ€ν μ μμλ€.
λν, Form μ»΄ν¬λνΈμ μ±λ₯μ΄ λ§€μ° μ’μκΈ° λλ¬Έμ
useFormμ μ¬μ©ν΄μ validationμ ν¨μ¨μ μΌλ‘ μ²λ¦¬νλλ° λμμ λ°μ μ μμλ€.
λν, Antdλ λμμ΄λμ λΆμ¬ λ¬Έμ λ₯Ό ν΄κ²°ν΄μ£Όμλ€.
μ°λ¦¬ νμλ λμμ΄λκ° μκΈ° λλ¬Έμ λμμΈμ΄ κ°μ₯ ν° κ³ λ―Όμ΄μλλ°,
Antdμ μμκ³ κΉλν λμμΈ λλΆμ μ΄λ¬ν κ³ λ―Όμ μ‘°κΈμ΄λλ§ λ μ μμλ€.
λ¨μ μ, Antdμ λμμΈμ 컀μ€ν
νκΈ°κ° λ무 κΉλ€λ‘μ λ€λ μ μ΄λ€.
Antdμ μ»΄ν¬λνΈμμ μΌλΆ μμ±(ν°νΈ, μ»¬λ¬ λ±)λ§ λ°κΎΈλ €ν λ,
μ μ©μ΄ μ μ λλ κ²½μ°κ° λ§μλ€.
λλ κ°μ ν μ μ©μ΄ λμλ€κ³ ν΄λ, κ·Έ λ³κ²½μ μ΄
κΈ°μ‘΄μ λ€λ₯Έ μμ±λ€κ³Ό μΆ©λμ μΌμΌμΌ λμμΈμ΄ μ΄μν΄μ§κ³ λ νμλ€.
μ°λ¦¬λ Emotionμ μ¬μ©νμλλ°,
μ΄μ©λ©΄ Antdμ Emotionμ νΈνμ΄ μ λ§μλ κ²μΈμ§λ λͺ¨λ₯΄κ² λ€.
Antdκ° μλλΌ MUIλ₯Ό μ¬μ©νλ€λ©΄ μ΄λ μκΉνλ μκ°μ΄ λ€μλ λΆλΆμ΄λ€.
κ·Έλ¦¬κ³ λν, Antdμ μ»΄ν¬λνΈλ κ³ μ μ λμ λ°©μμ κ°μ§κ³ μμλ€.
λμ λ°©μμ΄λΌ ν¨μ propsλ‘ μ λ¬νλ μμ±, λ©μλ, κ·Έκ²λ€μ νμ
λ±μ λ§νλ€.
μλ₯Ό λ€μ΄, μ΄λ―Έμ§λ₯Ό μ
λ‘λν μ μλ UploadλΌλ μ»΄ν¬λνΈκ° μλ€.
μ΄λ―Έμ§κ° μ
λ‘λλ νλ₯Ό μ²λ¦¬νλ €λ©΄
onChange
μ ν¨μλ₯Ό λκ²¨μΌ νλ€. onChange
λ λ§€κ° λ³μ, λ°νκ°, κ·Έκ²λ€μ νμ
μ΄ λ€ μ ν΄μ Έ μμ΄μ κ·Έκ²μ λ°λμ μ€μν΄μΌλ§ νκ³ , κ·Έλ¬ν κΉλ€λ‘μ΄ μ ν λλ¬Έμ μκ°μ κ½€ μλΉν΄μΌλ§ νλ€.
λν,
File
νμ
μ νμ₯ν UploadFile
λ± Antd κ³ μ μ νμ
λ€λ λ§μλ κΉλμνμ
μ€ν¬λ¦½νΈλ₯Ό μμ
νλ κ²μ΄ νμΈ΅ λ κΉλ€λ‘μ λ€.
κ·Έκ²λ€μ μμν νμ
μ΄μ΄μ νμ
μ€ν¬λ¦½νΈκ° μ μΈμμ λͺ»νλ κ²½μ°λ λ°μνλ κ²μ΄λ€.
μ΄λ¬ν μ λ€μ΄ Antdλ₯Ό μ¬μ©νλ©΄μ μμ¬μ λ λΆλΆμ΄λ€.
κ²°λ‘ μ μΌλ‘, Antdμ κ°μ UI λΌμ΄λΈλ¬λ¦¬μ μ₯λ¨μ μ μ λλ μ μμλ€.
λ΄κ° κ²°λ‘ λ΄λ¦° λ°λ μ΄λ λ€.
κ°λ¨ν κ²μ ꡬνν λ, μμκ²λ λ§λ€κ³ μΆμ§λ§ λμμΈ μ€λ ₯μ΄ λΆμ‘±ν λ,
μ§μ λ§λ€κΈ° λ²κ±°λ‘μ΄ μ»΄ν¬λνΈλ₯Ό μ¬μ©νκ³ μΆμ λ UI λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ©΄ μ’μ κ² κ°λ€.
λ°λ©΄μ λμμΈμ μΌλ‘ 컀μ€ν
μ΄ λ§μ΄ νμνκ±°λ,
μ»΄ν¬λνΈκ° μ 곡ν΄μ£Όλ κ² μ΄μμ μ¬ν κΈ°λ₯μ μΆκ°νλ € νλ€λ©΄ μ’μ§ μλ€κ³ μκ°νλ€.
κ·Έ κ²½μ°μλ λ¬Έμ κ° λ 볡μ‘ν΄μ§ μ μλ€.
Antd μ»΄ν¬λνΈλ κ³ μ μ λμ λ°©μμ΄ μ ν΄μ Έ μμ΄, κ·Έκ²μ΄ 컀μ€ν
μ ν° μ μ½μ κ±ΈκΈ° λλ¬Έμ΄λ€.
ννΈ, UI λΌμ΄λΈλ¬λ¦¬λ₯Ό μ λλ‘ μ¬μ©νκΈ° μν΄μλ κ·Έκ²μ λν μ¬μ 곡λΆκ° νμμμ
μμ΄μλ μ λ κ² κ°λ€. μ¬μ©λ²μ΄ μ½λ€κ³ κ°κ³Όν΄μλ μ λλ€.
곡μ λ¬Έμλ₯Ό κΌΌκΌΌν μ½μΌλ©΄μ νμ€ν μ΄ν΄λ₯Ό ν λ€μμΌ,
μ»΄ν¬λνΈμ κΈ°λ₯μ μ¨μ ν, μ λλ‘ μ¬μ©ν μ μμ κ²μ΄λ€.
λμ μμ λ¬Ό
- νκΈ° μμ± & μμ νμ΄μ§
μ μνμ νκΈ°λ₯Ό μμ± λ° μμ ν μ μλ νμ΄μ§ ꡬν
- λ€λ μ¨ μ μν κ²μ κΈ°λ₯
- κ²μμ΄ μλ μμ± UI
- 컀μ€ν ν μΌλ‘ λλ°μ΄μ€ μ μ©
- κΈ°μ λ¬Έμ: https://gitul0515.github.io/νλ‘μ νΈλ¦¬λ·°/2022/09/08/μνΈμ§.html
- νκΈ° λ΄μ© μ λ ₯ νΌ
- λ€λ μ¨ λ μ§, μ λͺ©, λ΄μ©, κ³΅κ° μ¬λΆ
- μ ν¨μ± κ²μ¬
- λ€μ μ΄λ―Έμ§ νμΌ μ λ‘λ λ° μμ


- μ μ νμ΄μ§ & νλ‘ν μμ νμ΄μ§
- μ μ μ μ 보λ₯Ό μ‘°νν μ μλ νμ΄μ§ ꡬν
- μμ±ν νκΈ°, μ’μμ λλ₯Έ νκΈ° λ° μ μν μ‘°ν
- SWRμ μ¬μ©ν λ°μ΄ν° fetching
- νμ΄μ§λ€μ΄μ
- νλ‘ν μ 보λ₯Ό μμ ν μ μλ νμ΄μ§ ꡬν
- νλ‘ν μ¬μ§, λλ€μ, λΉλ°λ²νΈ μμ
- useFormμ μ¬μ©ν μ ν¨μ± κ²μ¬


- λ°μν ν€λ
- λ‘κ·ΈμΈ μν, νμ¬ νμ΄μ§, λλ°μ΄μ€ νκ²½μ λ°λΌ μ€νμΌ λ³ν
- useClickAway ν μ μ¬μ©νμ¬ Dropdown ꡬν


- μ΅μ ν
- λ²νΌ μ€λ³΅ ν΄λ¦ λ± APIμ κ³Όλν νΈμΆ λ°©μ§
- 컀μ€ν ν μΌλ‘ λλ°μ΄μ€ μ μ©
- κΈ°μ λ¬Έμ: https://gitul0515.github.io/νλ‘μ νΈλ¦¬λ·°/2022/09/04/μνΈμ§.html
- Next/Imageλ₯Ό νμ©ν μ΄λ―Έμ§ μ΅μ ν
- μ΄λ―Έμ§ μ¬μ΄μ¦ κ²½λν, lazy loading, placeholder λ±
- SEO
- λ©ν νκ·Έ μ€μ λ±
- νλ‘ νΈμλ νμ₯
- λ°±μλμμ μν΅ λ° μ견 μ‘°μ¨μ μν λ Έλ ₯
- νμ μ§ν, μΌμ κ΄λ¦¬, λ°ν
- λ°ν μμ: https://www.youtube.com/watch?v=GRonUVaSoFE&t=9
λλμ
1. λ°±μλμμ κ·μ€ν νμ κ²½ν
λ°±μλμ νμ
νλ κ·μ€ν κ²½νμ ν μ μμ΄μ μ’μλ€.
νλ‘ νΈ νμλ€κ³Ό νμ
ν μ μ μμμ§λ§, λ°±μλ νμλ€κ³Όμ νμ
μ μ΄λ²μ΄ μ²μμ΄μλ€.
κΈ°νλΆν° μμν΄μ API λͺ
μΈμ λν μ‘°μ¨, κ°λ° λ¨κ³μμμ μν΅, λ§λ¬΄λ¦¬κΉμ§
μ€μ νλ‘μ νΈ μ λ°μ νλ¦μ μ΅ν μ μλ κ·μ€ν κ²½νμ΄μλ€κ³ μκ°νλ€.
ννΈ, νλ‘ νΈμ λ°±μλμ μ§μ λ° κ΄μ μ μ°¨μ΄λ‘ μΈν΄ μν΅μ λ€μ μ΄λ €μμ΄ μμλ€.
νλ‘ νΈμ βμ μ μν κ΄λ¦¬β κ°λ
μ λ°±μλ νμλ€μ΄ μ μ΄ν΄νμ§ λͺ»νκ±°λ,
λ°λλ‘ λ°±μλμμ λ°μ΄ν°λ₯Ό μ μ₯ λ° μ μ μ μΈμ¦μ κ΄λ¦¬νλ λ°©μμ λν΄
νλ‘ νΈ μΈ‘μ μ΄ν΄κ° λΆμ‘±ν΄μ μν΅μ μ΄λ €μμ΄ μμλ€.
κ·Έ μΈμλ API λͺ
μΈλ₯Ό μΌλΆ μμ νλ λ±, νλ°λΆμλ μ¦μ νμλ€μ΄ μ΄μ΄μ‘λ€.
μ΄μ© μ μμλ€λ μκ°μ΄ λ€λ©΄μλβ¦.
κ·Έ λλ¬Έμ κ°λ°μ μλ μκ°μ λΉΌμκΈ°κ² λμ΄ λ§μ΄ μμ¬μ λ λΆλΆμ΄λ€.
κ·Έλ‘ μΈν΄ νλ°λΆμλ λ²κ·Έ 리ν¬ν
κ³Ό ν΄κ²°μ΄ λ―Έμ§ν΄μ λ€μ μμ¬μ λ€.
μ°λ¦¬κ° μ΄λ°μ λ λͺ
ννκ² κΈ°ν λ° μ€κ³λ₯Ό νκ³ ,
μ¬νμ κ³΅ν΅ λ¬Έμ λ€μ λν΄ μνΈ μ견 μΌμΉλ₯Ό μ΄λ£¨μλ€λ©΄
λ μ’μμ κ²μ΄λΌλ μκ°μ΄ λ€μ΄ ν° μμ¬μμ΄ λ¨λλ€.
βνΌνΌν κΈ°νκ³Ό μ€κ³κ° μ’μ κ°λ°μ λ³λλ€βλ κ²μ κΉ¨λ¬μ κ²½νμ΄μλ€.
2. λ¬Έμν & μ μμΌ μ€ν¬λΌ
μ€μ κ°λ°λ³΄λ€λ μλλλΌλ, κ·Έμ λ²κΈκ°κ² μ€μν κ²μ΄ βλ¬ΈμνβλΌκ³ μκ°νλ€.
νμλ₯Ό νλ©΄μ μ견μ λλκ³ κ²°λ‘ λ΄λ¦° κ²μ λν΄
λ¬Έμλ‘ λͺ
ννκ² μ 리νμ§ μμΌλ©΄, κΈλ°© κΈ°μ΅μμ μνμ§κ³ νμ§λΆμ§ λμ΄λ²λ¦°λ€.
μ€κ° νλ‘μ νΈμμ μμ¬μ λ λΆλΆμ΄μκΈ°μ,
μ΄λ² μ΅μ’
νλ‘μ νΈμμλ λ¬Έμνλ₯Ό 체κ³μ μΌλ‘ νκΈ° μν΄ λ§μ λ
Έλ ₯μ κΈ°μΈμλ€.
λ
Έμ
μ μΊλ¦°λμ νμλ‘μ λ§€μΌ μ 리νκ³ , μ£Όμ λ¬Έμλ€μ κΌΌκΌΌν μ 리νμλ€.
λν, githubμ Discussionsλ₯Ό μ κ·Ή νμ©ν΄μ μ£Όμ μ΄μλ€μ λν΄ μ 리νκ³ ν λ‘ νμλ€.
μ΄μ²λΌ λ¬Έμνλ₯Ό κΌΌκΌΌν ν λλΆμ λμ€μ μ°Ύμλ³΄κΈ°κ° μ©μ΄νκ³ ,
μ₯κΈ°μ μΌλ‘λ κ°λ°μ νΈμμ±μ ν¬κ² λμ¬μ£Όμλ€.
μ΄λ² νλ‘μ νΈμμ λ§μ‘±μ€λ¬μ λ λΆλΆ μ€ νλμ΄λ€.
ννΈ, μ μμΌ μ€ν¬λΌ λ°©μμ λμ
νμ¬ μ€νλ¦°νΈ λ¨μλ‘ νλ‘μ νΈλ₯Ό κ΄λ¦¬νμλ€.
μ€νλ¦°νΈ μ£ΌκΈ°λ 3~4μΌλ‘ λμμΌλ©°,
μ€νλ¦°νΈ μ²«λ μλ ν΄λΉ κΈ°κ°λμ κ°μ ν΄μΌν μΌμ μ νμΌλ©°,
μ€νλ¦°νΈ λ§μ§λ§λ μλ λ¬μ± μ¬λΆλ₯Ό μ κ² λ° νκ³ νλ λ°©μμΌλ‘ μ§ννμλ€.
μ΄ λλΆμ νλ‘μ νΈμ μ λ°μ μΈ νλ¦μ κ³ννκ³ , μμ
μν©μ μ κ²νλ λ±
νλ‘μ νΈλ₯Ό ν¨κ³Όμ μΌλ‘ κ΄λ¦¬ν μ μμλ€κ³ μκ°νλ€.
μ μ€λ¬΄μμ μ μμΌ μ€ν¬λΌ λ°©μμ λ§μ΄ μ¬μ©νλμ§ μ΄ν΄ν μ μμκ³ ,
λͺΈμ 체νν΄λ³Ό μ μλ κ·μ€ν κ²½νμ΄μλ€κ³ μκ°νλ€.
3. ν₯ν 리ν©ν λ§
μλ²½ν νλ‘μ νΈμ μ½λλ μ΄ μΈμμ μλ€κ³ μκ°νλ€.
μ°λ¦¬μ νλ‘μ νΈ μμ λ§μ°¬κ°μ§λ€.
νλ‘μ νΈ κΈ°κ°μ΄ λλ¬λ€κ³ ν΄μ μμ λμλ²λ¦¬λ κ²μ΄ μλλΌ,
κΎΈμ€ν 리ν©ν λ§μ ν΅ν΄μ κ°μ ν΄λκ°λ κ²μ΄ νμν κ²μ΄λ€.
λΉμ₯ ν΄κ²°μ΄ μκΈν κ²μ βμ¬μ΄νΈμ μλκ° λ리λ€βλ λ¬Έμ μ μ΄λ€.
μΆλ‘ ν건λ, μ΄κ²μ μ¬μ΄νΈμμ λ§μ μμ μ΄λ―Έμ§ νμΌμ μ¬μ©νκ³ μμΌλ©°,
μ΄ λλ¬Έμ λ‘λ© μλκ° μ€λ걸리기 λλ¬Έμ΄λΌκ³ μκ°νλ€.
next/imageλ₯Ό μ¬μ©νμ¬ μ΄λ―Έμ§ μ©λμ κ²½λννλ μμ
μ ν΅ν΄ κ°μ ν΄μΌλ§ νλ€.
κ·Έ μΈμλ μ»΄ν¬λνΈλ₯Ό λ μκ° μͺΌκ°κ³ μΆμννκΈ°, validation κ°ννκΈ°,
λ°μν μ λ μ΄μμ κ°μ νκΈ°, ν
μ€νΈ μ½λμ μΆκ° λ±μ΄ νμν κ² κ°λ€.
μ΄μ κ°μ 리ν©ν λ§μ ν΅ν΄ λ λ§μ κ²μ μ΅νκ³ λ°°μΈ μ μμ κ²μ΄λΌκ³ μκ°νλ€.