λ°°ν¬μ£Όμ : νμ¬λ λ―Έμ΄μμ€μ λλ€, λ€μ λ λ§λμ! π
μ¬ν
ν¬μ λν κ΄μ¬μ΄ λμμ§λ μλ μμμ, μ΄λ³΄ ν¬μμλ€μ΄ λ³΄λ€ μ½κ³ νΈλ¦¬νκ² μ¬ν
ν¬λ₯Ό κ²½νν μ μλλ‘ μ μλμμ΅λλ€.
- λΉμ·ν μ°λ Ήμ΄λ κΈμ¬λ₯Ό κ°μ§ μ¬μ©μμ κ²μλ¬Όμ μΆμ², κ°μΈνλ μ½ν μΈ μ 곡
- λκΈμ ν΅ν΄ μ견μ 곡μ νκ³ λ€λ₯Έ μ¬μ©μλ€κ³Ό μν΅
- κ°μ ν¬μ νκ²½μμ μ¬μ©μλ κ°μμ μκΈμΌλ‘ μ€μ μ£Όμ μμ₯κ³Ό μ μ¬ν κ±°λλ₯Ό κ²½νμ μ 곡
- AI κΈ°μ λ‘ ν¬μ μ±ν₯κ³Ό λ°μ΄ν°λ₯Ό λΆμν΄ λ§μΆ€ν μ λ΅μ μΆμ² λ° μ΅μ λν₯μ λ°μν μλ£ μ 곡
- μ νν ν€μλμ λ΄μ€κ²μμ ν΅ν΄ ν λμ λ³Ό μ μλ AI κ²½μ λ΄μ€ μμ½μ μ 곡
- AI λ΄μ€ μμ½μ λν κΈ°μ¬ μλ¬Έλ ν¨κ» μ‘°ννμ¬ λ μμΈνκ³ νλΆν μ 보λ₯Ό μ 곡
- μ νν μ§νμ λ°λ₯Έ λ§μΆ€ν μ£Όκ° μμΈ‘ μ 보λ₯Ό μ 곡
- λ€μν κΈ°μ μ μ§νλ₯Ό ν΅ν μ£Όκ° λΆμ μ 곡
- λͺ©ν κ°κ²©μ μ§μ ν΄ ν΄λΉ κ°κ²© λλ¬μ μ¬μ©μμκ² μ€μκ° μλ¦Όμ μ 곡
μ΅λ―Όκ· | κ°λ―Όμ¬ | κΉλλ |
---|---|---|
@Minkyu0424 |
@KMJ200 |
@NAKDO |
λΆλ₯ | κΈ°μ μ€ν |
---|---|
Environment |
|
Development |
|
Communication |
|
- SSRμ νμ©ν΄, μ μ μ νμ΄μ§ μ΄κΈ° μ§μ μ, μ§μ°μ μ΅μν ν΄ μ μ μ μ΄κΈ° κ²½νμ κ°μ
- Nextμμ μ 곡νλ μ±λ₯ μ΅μ ν λ° κ°λ° μμ°μ±μ λμμ£Όλ μ»΄ν¬λνΈμΈ Link, Image, fontsλ₯Ό μ κ·Ή νμ©
- μ ν΄μ§ κ·μΉμ λ°λΌ μλμ μΌλ‘ μ½λ μ€νμΌμ μ λ¦¬ν΄ μ½λμ μΌκ΄μ±μ μ μ§
- μ½λ νμ§ κ΄λ¦¬λ eslintμ, μ½λ ν¬λ§·ν μ prettierμ μΌμν΄ μ¬μ©
- air-bnb 컨벀μ μ μ¬μ©νλ©°, μμΈ κ·μΉμ νμλ€κ³Ό νμ
- κ° λͺ©λ‘κ΄λ ¨ κΈ°λ₯ UIμ νμ΄μ§λ€μ΄μ ꡬνμμ μ¬μ©
- invalidate, mutation, refetchλ± κΈ°λ₯μ ν΅ν μνΈμμ© λ°μ μ λ€λ₯Έ μ»΄ν¬λνΈμμλ ν΄λΉ λ³κ²½μ΄ μ¦κ° λ°μ
- λ€μν μν©(μΊμ±, λ°μ΄ν° μλ‘κ³ μΉ¨)μ μ μ ν μμ²μ΄ νΈλ¦¬νκ² κ°λ₯
- μ¬μ μ μλ μ νΈλ¦¬ν° ν΄λμ€λ€λ‘ λ€μν μ€νμΌμ λΉ λ₯΄κ³ μΌκ΄μ±μκ² μ μ©
- cssνμΌμ λ°λ‘ μμ±μμ΄ μ½λλ΄μ μμ±ν΄ λΉ λ₯Έ μ€νμΌλ§ λ° λμμΈ μμ€ν μ μΌκ΄λκ² μ μ§
- 컀μ€ν μμ±μ ν΅ν΄ μ§μ λ μ€νμΌλ§ λ΄μμ νμλ€μ΄ μ€λ³΅λ μ€νμΌ μ½λμμ΄ μ¬μ©
- μ»΄νμΌ μμ μ μ½λ λ΄ νμ μ€λ₯ μλ €μ€μΌλ‘μ¨ λ°νμ μ€λ₯λ₯Ό 미리 λ°©μ§ κ°λ₯
- νμ μ μκ° λͺ ννκΈ° λλ¬Έμ, 리ν©ν λ§ μ μ€λ₯λ₯Ό μ€μ΄κ³ μ½λλ₯Ό 체κ³μ μΌλ‘ λ³κ²½ κ°λ₯
- νμ μ μ λλΆμ ν¨μλ μ»΄ν¬λνΈμ μ λ ₯/μΆλ ₯μ λͺ ννκ² λͺ μκ°λ₯
- νμλ€μ΄ μ½λλ₯Ό λ μ½κ² μ΄ν΄ν μ μκ³ , μμμΉ λͺ»ν μ¬μ©μ λ°©μ§ κ°λ₯
- Git-flow μ λ΅μ κΈ°λ°μΌλ‘ main, develop λΈλμΉμ feature 보쑰 λΈλμΉλ₯Ό μ΄μ©νμ΅λλ€.
- main, develop, Feat λΈλμΉλ‘ λλμ΄ κ°λ°μ νμμ΅λλ€.
- μλ‘μ΄ κΈ°λ₯μ λΆλ₯νλ feature λΈλμΉ
- μλ‘μ΄ κΈ°λ₯μ΄ ν©μ³μ Έ ν μ€νΈμ QAκ° μ΄λ£¨μ΄μ§λ develop λΈλμΉ
- κ²μ¦λ μ½λλ€μ΄ ν©μ³μ§λ main λΈλμΉλ‘ λΆλ₯
flex-frontend/
βββ public/
β βββ images/ # μ μ μ΄λ―Έμ§ νμΌ
β βββ svgs/ # SVG νμΌ μ μ₯ ν΄λ
β
βββ src/app/
β βββ _types/ # TypeScript μΈν°νμ΄μ€ λ° νμ
μ μ
β βββ (route)/ # Next.jsμ λΌμ°νΈ νΈλ€λ§ νμΌ
β βββ api/ # API μμ² κ΄λ ¨ ν¨μ
β βββ components/ # μ¬μ¬μ© κ°λ₯ν UI μ»΄ν¬λνΈ λͺ¨μ
β β βββ auth/ # λ‘κ·ΈμΈ, νμκ°μ
κ΄λ ¨ μ»΄ν¬λνΈ
β β βββ blog/ # λΈλ‘κ·Έ κ΄λ ¨ μ»΄ν¬λνΈ
β β βββ common/ # μ¬λ¬ νμ΄μ§μμ 곡ν΅μΌλ‘ μ¬μ©λλ μ»΄ν¬λνΈ (λ²νΌ, λͺ¨λ¬, ν€λ, λλ‘λ€μ΄, μμ΄μ½)
β β βββ main/ # λ©μΈ νμ΄μ§ κ΄λ ¨ μ»΄ν¬λνΈ
β β βββ mypage/ # λ§μ΄νμ΄μ§ κ΄λ ¨ μ»΄ν¬λνΈ
β β βββ news/ # λ΄μ€ κ΄λ ¨ μ»΄ν¬λνΈ
β β βββ prediction/ # μ£Όκ° μμΈ‘ κ΄λ ¨ μ»΄ν¬λνΈ
β β βββ simulation/ # λͺ¨μν¬μ κ΄λ ¨ μ»΄ν¬λνΈ
β β βββ userpage/ # λ€λ₯Έ μ¬μ©μ νμ΄μ§ κ΄λ ¨ μ»΄ν¬λνΈ
β β
β βββ constants/ # νλ‘μ νΈμμ μ¬μ©νλ μμ κ°
β βββ data/ # λλ―Έ λ°μ΄ν° μ μ₯ νμΌ
β βββ hooks/ # 컀μ€ν
React Hook (무ν μ€ν¬λ‘€, μΏ ν€ νΈλ€λ§, λͺ¨λ¬ μν κ΄λ¦¬)
β βββ service/ # κ³΅ν΅ API μλΉμ€ ν¨μ
β βββ static/fonts/# ν°νΈ νμΌ μ μ₯ ν΄λ
β βββ store/ # μν κ΄λ¦¬ (zustand)
β βββ styles/ # μ μ μ€νμΌ, CSS νμΌ
β βββ utils/ # μ νΈλ¦¬ν° ν¨μ (λ μ§ λ³ν, λ¬Έμμ΄ μ²λ¦¬, μ°¨νΈ λ°μ΄ν° μμ²)
|
- μλΉμ€ μ΄κΈ° μ μνλ©΄
λ©μΈ νλ©΄ |
![]() |
- λΈλ‘κ·Έ μ‘°ν λ° μμ±
λΈλ‘κ·Έ λ©μΈνλ©΄ |
![]() |
κΈ μμ± νλ©΄ |
![]() |
- μ’ λͺ© κ²μ, μ°¨νΈ μ‘°ν, μ’ λͺ© μ 보, λͺ¨μν¬μ(λ§€μ/λ§€λ), κ΄μ¬μ’ λͺ©, 보μ μ’ λͺ©, λ°±ν μ€ν , κ±°λλ΄μ μ‘°ν κ°λ₯, μ¬ν ν¬ λΆμ
κ²μ μ νλ©΄ |
![]() |
κ²μ ν νλ©΄ |
![]() |
μ¬ν ν¬ λΆμ |
![]() |
- μ’ λͺ© κ²μ, μ°¨νΈ μ‘°ν, μ£Όκ° μμΈ‘ λ° λͺ©νκ° μλ¦Ό μ€μ
κ²μ μ νλ©΄ |
![]() |
κ²μ ν νλ©΄ |
![]() |
λ΄μ€μμ½ νλ©΄ |
![]() |
- mock apiλ₯Ό ν΅ν΄ μ€μ apiλμ μ μμ² λ‘μ§λ§ λ°κΎΈλ©΄ λλ κ°νΈν¨ 미리 νμ μ§μ μ ν΅ν μ΄ν μ μν κ°λ° κ°λ₯
- κΈ°μ‘΄μλ μκ° λͺ»νλ μμΈμ²λ¦¬ νΉμ λ‘μ§κ΄λ ¨ μ΄μλ₯Ό 미리 μλ°©, ν΄κ²° κ°λ₯
- κΈ°λ³Έ img νκ·Έ λμ Nextμ Image μ»΄ν¬λνΈμ μ¬μ©
- lazy lodaing : λ‘λ© μ νμν μ΄λ―Έμ§λ§ κ°μ Έμ μ΄κΈ°λ‘λ© μλλ₯Ό κ°μ μν΄
- μ΄λ―Έμ§ μ¬μ΄μ¦ μ΅μ ν + ν¬λ§·κΈ°λ₯ : μ΄λ―Έμ§ νμμ** avif λλ webpλ‘ λ³ν**ν΄ νμΌν¬κΈ°λ₯Ό κ°μμν΄
- fill μμ± νμ© : fill width, heightλ₯Ό κ° νλͺ©λ³ ν¬κΈ°λ₯Ό μ§μ ν΄ μ¬μ΄μ¦λ₯Ό μ¬κ³μ°νμ§ μλλ‘ ν¨
- λ‘컬ν°νΈ, μΉν°νΈ μ§μ μ¬μ©ν΄μ next/fontλ₯Ό μ¬μ©
- SSR νκ²½μμ ν°νΈλ₯Ό μλ μ΅μ ν ν΄ μ΄κΈ° λ‘λ©μλλ₯Ό κ°μ
- κΈ°λ³Έμ μΌλ‘ λΆ,μΌ,μ£Ό,μ,,λ λ³λ‘ λ€λ₯Έ λ°©μμ data fetching λ°©μμ μ¬μ©νκ³
- μ΄κΈ° : κΈ°κ° λ³ μ΅μ μ°¨νΈλ₯Ό 보μ¬μ£Όλλ° νμν λ°μ΄ν° + μ¬μ λ₯Ό μν μμ λ°μ΄ν°λ₯Ό μμ²
- λΆλ΄μ κ²½μ° 1, 5, 15, 60λΆ λͺ¨λ κ°μ λ°μ΄ν°λ₯Ό 곡μ ν΄ λΆλ΄λΌλ¦¬λ μ νν΄λ μΆκ° μμ² λ° μ§μ°μμ΄ λ°λ‘λ°λ‘ λ°μ΄ν°λ§ κΈ°κ°μ λ°λΌ λ³νλλ‘ ν¨
- μΌμ£Όμλ μ κ²½μ° μ°¨νΈ μ€ν¬λ‘€μ λ°λ₯Έ μΆκ° μμ²μ΄ νμν μΌ,μ£Ό λ΄μ κ²½μ°μ μ€ν¬λ‘€μ λ°λΌ μΆκ° μμ²νλλ‘ ν¨
- μ΄λ³΄μλ₯Ό μν ν΄ν, λμλ§ μ 곡
- μ§κ΄μ μΈ μμμ ν΅ν μ¬μ©μλ‘ νμ¬κΈ UI μμλ³ κΈ°λ₯ μμΈ‘κ°λ₯νκ² μ€κ³
- μΌκ° μ¬μ©μλ₯Όμν λ€ν¬λͺ¨λ μ 곡
- μλΉμ€ μ΄μ©μ€ λ¬Έμ λ°μ μ μνλ©μΈμ§ μ 곡
- 컀μ€ν μλ¬ νΈλ€λ§μ ν΅ν μ¬μ©μ κ²½ν κ°μ