Skip to content

🐱 λ°˜λ €λ™λ¬Όμ„ μœ„ν•œ μ‡Όν•‘λͺ° μ„œλΉ„μŠ€

Notifications You must be signed in to change notification settings

forcat-project/Forcat-Frontend

Repository files navigation

Forcat-Frontend

ν”„λ‘œμ νŠΈ κ°œμš”

Forcat-FrontendλŠ” λ°˜λ €λ™λ¬Όμ„ μœ„ν•œ μ‡Όν•‘λͺ° μ„œλΉ„μŠ€μ˜ ν”„λ‘ νŠΈμ—”λ“œλ‘œ, μƒν’ˆ 관리, μ†Œμ…œ 둜그인, μž₯λ°”κ΅¬λ‹ˆ, 결제 κΈ°λŠ₯ 등을 μ§€μ›ν•©λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ ν™˜κ²½

  • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄: typescript 5.5.3
  • μŠ€νƒ€μΌ 도ꡬ: styled-components 6.1.13
  • 라이브러리: react 18.3.1
  • λΉŒλ“œ 도ꡬ: vite 5.4.8
  • νŒ¨ν‚€μ§€ 관리 도ꡬ: yarn 1.22.19
  • μ„œλ²„ μƒνƒœ 관리: tanstack Query 5.59.15
  • ν΄λΌμ΄μ–ΈνŠΈ μƒνƒœ 관리: Recoil 0.7.7

기술 μŠ€νƒ 및 선택 이유

정적 νƒ€μž…μ„ 톡해 μ½”λ“œ μ•ˆμ •μ„±μ„ 높이기 μœ„ν•΄ Typescriptλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. ReactλŠ” μ»΄ν¬λ„ŒνŠΈ 기반 아킀텍쳐λ₯Ό μ œκ³΅ν•˜κΈ° λ•Œλ¬Έμ— μž¬μ‚¬μš©μ„±κ³Ό μœ μ§€ λ³΄μˆ˜μ„±μ΄ λ†’κ³ , 가상 DOM을 톡해 ν•„μš”ν•œ λΆ€λΆ„λ§Œ μ—…λ°μ΄νŠΈν•˜μ—¬ μ„±λŠ₯을 ν–₯상할 수 μžˆμœΌλ―€λ‘œ μ„ νƒν•˜μ˜€μŠ΅λ‹ˆλ‹€. styled-componentsλŠ” propsλ₯Ό μ‚¬μš©ν•˜μ—¬ μŠ€νƒ€μΌμ„ λ™μ μœΌλ‘œ λ³€κ²½ν•  수 μžˆλ‹€λŠ” μ μ—μ„œ λ„μž…ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ£Όμš” κ΅¬ν˜„ νŠΉμ§•

1. Cursor based Pagination (μ»€μ„œ 기반 νŽ˜μ΄μ§€λ„€μ΄μ…˜)

κΈ°μ‘΄ offset 방식이 μ•„λ‹Œ, νŠΉμ • μ»€μ„œλ₯Ό 기반으둜 λ‹€μŒ 데이터λ₯Ό κ°€μ Έμ˜€κΈ° λ•Œλ¬Έμ—, λ°μ΄ν„°μ˜ 양이 λ§Žμ•„μ§€λ”λΌλ„ 처리 속도가 크게 떨어지지 μ•Šμ•„ 효율적인 μ»€μ„œ 기반 νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ μ‚¬μš©ν•©λ‹ˆλ‹€. λ‹€μŒ λ°μ΄ν„°μ˜ μ‹œμž‘ 지점을 μ•Œ 수 μžˆλŠ” μ»€μ„œλ₯Ό μ œκ³΅ν•˜κΈ° λ•Œλ¬Έμ— λ¬΄ν•œ 슀크둀 λ°©μ‹μ˜ νŽ˜μ΄μ§•μ— 맀우 μ ν•©ν•˜κ³ , μ‚¬μš©μžλŠ” μΆ”κ°€ λ‘œλ“œλ₯Ό μš”μ²­ν•  λ•Œλ§ˆλ‹€ μƒˆλ‘œμš΄ μ»€μ„œλ₯Ό κΈ°μ€€μœΌλ‘œ 데이터λ₯Ό κ°€μ Έμ˜€λ©΄ λ˜λ―€λ‘œ, μ‚¬μš©μž κ²½ν—˜ λ˜ν•œ 더 λ§€λ„λŸ½κ²Œ λ•μŠ΅λ‹ˆλ‹€.

2. μŠ€νƒ€μΌ 일관성

색상, 폰트 크기, 폰트 λ‘κ»˜λ₯Ό μ •μ˜ν•œ theme 객체λ₯Ό μƒμ„±ν•˜μ—¬ μŠ€νƒ€μΌμ˜ 일관성을 λ†’μ˜€μŠ΅λ‹ˆλ‹€. λ˜ν•œ, styled-componentsλ₯Ό μ‚¬μš©ν•΄ Text, Block, Button, Img, Input μ»΄ν¬λ„ŒνŠΈ 등을 μž¬μ‚¬μš© κ°€λŠ₯ν•˜λ„λ‘ μ„ΈνŒ…ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

3. 폴더 ꡬ쑰

β”œβ”€β”€ public
β”‚   └── svg
β”œβ”€β”€ src
β”‚   β”œβ”€β”€ api
β”‚   β”œβ”€β”€ assets
β”‚   β”œβ”€β”€ components
β”‚   β”œβ”€β”€ hooks
β”‚   β”œβ”€β”€ interfaces
β”‚   β”œβ”€β”€ pages
β”‚   β”œβ”€β”€ recoil
β”‚   └── style
└─ App.tsx

각 ν΄λ”μ˜ 역할에 맞게 λΆ„λ₯˜ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ»΄ν¬λ„ŒνŠΈλŠ” /src/componenst μ•„λž˜μ— μ •μ˜ν•˜λ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€. /public/svg 폴더 내뢀에 svg 이미지λ₯Ό λ‹΄κ³  SVGR을 μ‚¬μš©ν•˜μ—¬ μ»΄ν¬λ„ŒνŠΈν™” 된 svgνŒŒμΌμ€ /src/assets 폴더 μ•„λž˜μ— μœ„μΉ˜ν•˜κ²Œ λ©λ‹ˆλ‹€.

μ£Όμš” κ΅¬ν˜„ 사항 (κΈ°λŠ₯별 Sprint)

SPRINT_1: μƒν’ˆ 관리 κΈ°λŠ₯ (10/18 ~ 10/23, 총 6일 μ†Œμš”)

  • [μ™„λ£Œ] ν”Όκ·Έλ§ˆ λ””μžμΈ μ‹œμŠ€ν…œ
  • [μ™„λ£Œ] ν”„λ‘œμ νŠΈ 초기 μ„ΈνŒ…
  • [μ™„λ£Œ] 헀더, ν‘Έν„°, λ„€λΉ„κ²Œμ΄μ…˜ λ°” μ»΄ν¬λ„ŒνŠΈ μ œμž‘
  • [μ™„λ£Œ] μƒν’ˆ 전체 쑰회 νŽ˜μ΄μ§€
  • [μ™„λ£Œ] μƒν’ˆ 상세 쑰회 νŽ˜μ΄μ§€
  • [μ™„λ£Œ] μΉ΄ν…Œκ³ λ¦¬ 별 μƒν’ˆ νŽ˜μ΄μ§€

SPRINT_2: μ‚¬μš©μž 인증 및 고양이 관리 κΈ°λŠ₯ (10/24 ~ 10/29, 총 6일 μ†Œμš”)

  • [μ™„λ£Œ] 카카였 μ†Œμ…œ 둜그인 API μ—°κ²°
  • [μ™„λ£Œ] μΉ΄ν…Œκ³ λ¦¬, 검색 νŽ˜μ΄μ§€
  • [μ™„λ£Œ] νšŒμ›κ°€μž… (μ‚¬μš©μž, 고양이 정보 μž…λ ₯λ°›κΈ°)
  • [μ™„λ£Œ] λ§ˆμ΄νŽ˜μ΄μ§€
  • [μ™„λ£Œ] μž₯λ°”κ΅¬λ‹ˆ νŽ˜μ΄μ§€

SPRINT_3: μƒν’ˆ μ£Όλ¬Έ 및 결제 연동 (10/30 ~ 11/3, 총 5일 μ†Œμš”)

  • [μ™„λ£Œ] μ£Όλ¬Έ λ‚΄μ—­ 및 결제 둜직 κ΅¬ν˜„
  • [μ™„λ£Œ] 결제 API μ—°κ²°

μ‹œμž‘ν•˜κΈ° (Getting Started)

git clone https://github.com/forcat-project/Forcat-Frontend.git
cd forcat-frontend
yarn
yarn dev

About

🐱 λ°˜λ €λ™λ¬Όμ„ μœ„ν•œ μ‡Όν•‘λͺ° μ„œλΉ„μŠ€

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages