Skip to content

IT-Cotato/COTATO-FE-v2

Repository files navigation

COTATO Official FE v2

React Next.js TypeScript TailwindCSS Vercel


COde Together, Arrive TOgether. IT 연합동아리 μ½”ν…Œμ΄ν† 

배포 링크 λ°”λ‘œκ°€κΈ°

μ½”ν…Œμ΄ν†  배포 링크 리크루트 배포 링크


COTATO Main Banner


πŸ“‹ λͺ©μ°¨


πŸ“– ν”„λ‘œμ νŠΈ κ°œμš”

Important

COTATO Official은 COde Together, Arrive TOgetherλΌλŠ” 비전을 μ‹€μ²œν•˜λŠ” IT 연합동아리 μ½”ν…Œμ΄ν† μ˜ 곡식 ν”Œλž«νΌμž…λ‹ˆλ‹€.

κΈ°μ‘΄ ν™ˆνŽ˜μ΄μ§€μ˜ ν™œλ™ 아카이빙 λΆ€μž¬μ™€ λΆˆνŽΈν•œ UIλ₯Ό κ°œμ„ ν•˜κΈ° μœ„ν•œ v2 리뉴얼 ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.
이번 v2 리뉴얼 ν”„λ‘œμ νŠΈλŠ” μ‚¬μš©μž μ€‘μ‹¬μ˜ 섀계λ₯Ό 톡해 λ™μ•„λ¦¬μ˜ κ°€μΉ˜λ₯Ό λͺ…ν™•νžˆ μ „λ‹¬ν•˜κ³  운영 νš¨μœ¨μ„ κ·ΉλŒ€ν™”ν•˜λŠ” 데 μ§‘μ€‘ν–ˆμŠ΅λ‹ˆλ‹€.



πŸ‘€ νŒ€μ›

κΉ€μ΄ˆμ—°
κΉ€μ΄ˆμ—°
Frontend Leader
κΉ€λ―Όμ•„
κΉ€λ―Όμ•„
Frontend Dev
양희정
양희정
Frontend Dev
ν•˜μ§€λ―Ό
ν•˜μ§€λ―Ό
Frontend Dev


πŸ’‘ μ£Όμš” κΈ°λŠ₯

🏠 Homepage (apps/homepage)

  • 동아리 λΈŒλžœλ”©: μ½”ν…Œμ΄ν† μ˜ 정체성과 ν™œλ™ 내역을 ν•œλˆˆμ— 확인
  • μ„Έμ…˜ 아카이빙: λ§€μ£Ό μ§„ν–‰λ˜λŠ” ꡐ윑 μ„Έμ…˜ μžλ£Œμ™€ 기둝 보관
  • μΆœμ„: μ„Έμ…˜λ³„ μΆœμ„ 관리 및 μœ„μΉ˜ 정보 기반 μΆœμ„ μ§„ν–‰
  • CS ν€΄μ¦ˆ λ°”λ‘œκ°€κΈ°: λΆ€μ›λ“€μ˜ 기술 μ—­λŸ‰ κ°•ν™”λ₯Ό μœ„ν•œ ν€΄μ¦ˆ 풀이 μ‹œμŠ€ν…œ Mait λ°”λ‘œκ°€κΈ°
  • λ§ˆμ΄νŽ˜μ΄μ§€: κ°œμΈλ³„ μΆœμ„ ν˜„ν™© 및 μƒλ²Œμ  μ‹€μ‹œκ°„ 쑰회

πŸ” Recruit (apps/recruit)

  • 지원 ν”„λ‘œμ„ΈμŠ€: ꡬ글 폼을 λŒ€μ²΄ν•˜λŠ” 자체 μ§€μ›μ„œ μž‘μ„± 및 μž„μ‹œμ €μž₯ κΈ°λŠ₯을 제곡
  • μ–΄λ“œλ―Ό λŒ€μ‹œλ³΄λ“œ 제곡: μš΄μ˜μ§„μ΄ μ§€μ›μ„œλ₯Ό μ‹¬μ‚¬ν•˜κ³  합격 μ—¬λΆ€λ₯Ό λŒ€λŸ‰μœΌλ‘œ 관리


πŸ–₯️ ν™”λ©΄ UI

🏠 Homepage (apps/homepage)

μ½”ν…Œμ΄ν† μ˜ λΈŒλžœλ”©κ³Ό ν™œλ™ 아카이빙을 λ‹΄λ‹Ήν•˜λŠ” 메인 ν”Œλž«νΌμž…λ‹ˆλ‹€.

HOME ABOUT US PROJECT
HOME ABOUT_US PROJECT
μ½”ν…Œμ΄ν†  λΉ„μ „ 및 메인 λžœλ”© 동아리 νžˆμŠ€ν† λ¦¬ 및 μ†Œκ°œ ν”„λ‘œμ νŠΈ 톡합 아카이빙
MYPAGE MYPAGE_ADMIN MYPAGE_ADMIN
MYPAGE MYPAGE_ADMIN MYPAGE_ADMIN
개인 ν™œλ™ 톡계 및 정보 μš΄μ˜μ§„ μ „μš© 톡합 관리 μžλ™ν™” μ‹œμŠ€ν…œ μš΄μ˜μ§„ μ „μš© 톡합 관리 μžλ™ν™” μ‹œμŠ€ν…œ

πŸ” Recruit (apps/recruit)

μ‹ κ·œ 뢀원 λͺ¨μ§‘ 및 μš΄μ˜μ§„μ˜ 효율적인 심사 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.

APPLY ADMIN
Apply Form Admin Dashboard
μ‹ μž…κΈ°μˆ˜ μ§€μ›μ„œ μž‘μ„± μš΄μ˜μ§„μš© μ„œλ₯˜/λ©΄μ ‘ 평가

βš™οΈ 기술 μŠ€νƒ & μ•„ν‚€ν…μ²˜

πŸ“¦ 기술 μŠ€νƒ

Tip

κ³ μ„±λŠ₯ λΉŒλ“œ μ‹œμŠ€ν…œκ³Ό νƒ€μž… μ•ˆμ •μ„±μ„ λ°”νƒ•μœΌλ‘œ 효율적인 ν˜‘μ—… ν™˜κ²½μ„ κ΅¬μΆ•ν–ˆμŠ΅λ‹ˆλ‹€.
Turborepo와 pnpm workspaceλ₯Ό 톡해 λ°˜λ³΅λ˜λŠ” UI μ»΄ν¬λ„ŒνŠΈμ™€ 섀정을 λͺ¨λ“ˆν™”ν•˜μ—¬ 개발 생산성을 κ·ΉλŒ€ν™”ν–ˆμŠ΅λ‹ˆλ‹€.

πŸ–ŒοΈ λͺ¨λ…Έλ ˆν¬ νŒ¨ν‚€μ§€ 상세 ꡬ쑰

기쑴의 νŒŒνŽΈν™”λœ κ΅¬μ‘°μ—μ„œ λ²—μ–΄λ‚˜, λͺ¨λ…Έλ ˆν¬λ₯Ό μ΄μš©ν•΄ packagesμ—μ„œ μ •μ˜λœ ν‘œμ€€μ„ appsμ—μ„œ μ†ŒλΉ„ν•˜λŠ” μ„ μˆœν™˜ ꡬ쑰λ₯Ό κ΅¬μΆ•ν–ˆμŠ΅λ‹ˆλ‹€.

.
β”œβ”€β”€ πŸš€ apps
β”‚   β”œβ”€β”€ homepage        # 곡식 ν™ˆνŽ˜μ΄μ§€ (cotato.kr)
β”‚   └── recruit         # 리크루트 νŽ˜μ΄μ§€ (recruit.cotato.kr)
β”‚
└── πŸ“¦ packages
    β”œβ”€β”€ ui              # λ””μžμΈ μ‹œμŠ€ν…œ 기반 곡톡 μ»΄ν¬λ„ŒνŠΈ
    β”œβ”€β”€ tailwind-config # 곡톡 ν…Œλ§ˆ 및 μŠ€νƒ€μΌ 규격
    β”œβ”€β”€ typescript-config # μ—„κ²©ν•œ νƒ€μž… 체크λ₯Ό μœ„ν•œ μ „μ—­ μ„€μ •
    └── eslint-config   # μΌκ΄€λœ μ½”λ“œ ν’ˆμ§ˆμ„ μœ„ν•œ λ¦°νŒ… λ£°

FE-architecture-1 FE-architecture-2

πŸ“¦ 핡심 기술

  • Workspaces: pnpm을 ν†΅ν•œ 효율적인 νŒ¨ν‚€μ§€ μ˜μ‘΄μ„± 관리
  • Build System: Turborepoλ₯Ό ν™œμš©ν•œ λΉŒλ“œ 캐싱 및 νŒŒμ΄ν”„λΌμΈ μ΅œμ ν™”
  • Data Fetching: React Query 기반의 μ„œλ²„ μƒνƒœ 관리 (Apps κ°„ 곡톡 Query Key 곡유)
  • Shared UI: packages/uiλ₯Ό 톡해 ν™ˆνŽ˜μ΄μ§€μ™€ 리크루트 μ•± κ°„μ˜ μΌκ΄€λœ λ””μžμΈ μ‹œμŠ€ν…œ μœ μ§€

πŸ—οΈ Monorepo Architecture

  • Turborepo: κ³ μ„±λŠ₯ λΉŒλ“œ μ‹œμŠ€ν…œ 및 캐싱 지원을 ν†΅ν•œ νŒŒμ΄ν”„λΌμΈ μ΅œμ ν™”
  • pnpm Workspace: μ˜μ‘΄μ„± 관리 μ΅œμ ν™” 및 둜컬 νŒ¨ν‚€μ§€ κ°„ 효율적 곡유

⚑ Framework & Language

  • Next.js: React 기반 SSR/SSG 지원 및 μ„œλ²„ μ»΄ν¬λ„ŒνŠΈ ν™œμš©
  • TypeScript: κ°•λ ₯ν•œ νƒ€μž… μ‹œμŠ€ν…œμ„ ν†΅ν•œ μ•ˆμ •μ μΈ μ½”λ“œ μž‘μ„±

🎨 Styling & State

  • Tailwind CSS: μœ ν‹Έλ¦¬ν‹° 클래슀 기반의 λΉ λ₯Έ μŠ€νƒ€μΌλ§ 및 μ‘λ‹΅ν˜• λ””μžμΈ
  • Zustand: 가볍고 직관적인 μ „μ—­ μƒνƒœ 관리
  • React Query: @tanstack/react-queryλ₯Ό μ΄μš©ν•œ μ„œλ²„ μƒνƒœ 캐싱 및 관리

πŸ› οΈ Code Quality & Tools

  • ESLint & Prettier: μ½”λ“œ ν’ˆμ§ˆ μœ μ§€ 및 νŒ€ μ»¨λ²€μ…˜ μžλ™ 적용
  • Husky: Git hook을 ν†΅ν•œ 컀밋 μ „ lint/format μžλ™ 검사
  • SVGR: SVGλ₯Ό React μ»΄ν¬λ„ŒνŠΈλ‘œ λ³€ν™˜ν•˜μ—¬ 관리
  • CodeRabbit: AI 기반 μ½”λ“œ 리뷰 및 μžλ™ ν”Όλ“œλ°± μ‹œμŠ€ν…œ λ„μž…

πŸ“ 개발 μ»¨λ²€μ…˜

Important

λͺ¨λ“  νŒ€μ›μ€ μ›ν™œν•œ ν˜‘μ—…μ„ μœ„ν•΄ μ•„λž˜ λͺ…μ‹œλœ κ·œμΉ™μ„ λ°˜λ“œμ‹œ μ€€μˆ˜ν•©λ‹ˆλ‹€.

πŸ“ 파일 및 폴더 넀이밍

ν˜•μ‹ λŒ€μƒ μ˜ˆμ‹œ
PascalCase μ»΄ν¬λ„ŒνŠΈ 파일 HomeClient.tsx
camelCase 일반 ν•¨μˆ˜, μ»€μŠ€ν…€ ν›…, μŠ€ν† μ–΄ formatDate.ts, useClickOutside.tsx, useAuthStore.ts
kebab-case 일반 파일(styles, mocks), 폴더λͺ…, μ•„μ΄μ½˜ mock-faq.ts, app/, brand-logo.svg
πŸ“Œ mutation, query, api, schema, type useApply.mutation.ts, auth.api.ts, admin.schema.ts
  • μ»΄ν¬λ„ŒνŠΈ μ„ μ–Έ: νŽ˜μ΄μ§€/λ ˆμ΄μ•„μ›ƒμ€ export default function, 일반 μ»΄ν¬λ„ŒνŠΈλŠ” export const (Arrow Function) μ‚¬μš©
  • μ»΄ν¬λ„ŒνŠΈ μœ„μΉ˜: νŠΉμ • 도메인 μ „μš© μ»΄ν¬λ„ŒνŠΈλŠ” ν•΄λ‹Ή 폴더 λ‚΄ _components/μ—μ„œ 관리
  • 경둜: @λ₯Ό μ΄μš©ν•œ μ ˆλŒ€κ²½λ‘œ μ‚¬μš©

πŸŽ„ 브랜치 μ „λž΅ (Git Flow)

Format: prefix/scope/이슈번호-μž‘μ—…λ‚΄μš© (kebab-case μ‚¬μš©)

  • Scope: recruit, homepage, root(곡톡)
  • μ˜ˆμ‹œ: feat/recruit/1-apply-form, fix/homepage/12-login-error
머릿말 μ„€λͺ…
main μ‹€μ œ μ„œλΉ„μŠ€ 브랜치
develop 배포 μ „ μž‘μ—… κΈ°μ€€ 브랜치 (Default)
feat μƒˆλ‘œμš΄ κΈ°λŠ₯ λ‹¨μœ„ κ΅¬ν˜„
fix 버그 μˆ˜μ • 및 μ—λŸ¬ ν•΄κ²°
refactor κΈ°λŠ₯ λ³€κ²½ μ—†λŠ” μ½”λ“œ ꡬ쑰 κ°œμ„ 
hotfix μ„œλΉ„μŠ€ 쀑 κΈ΄κΈ‰ μˆ˜μ •

βœ‰οΈ 컀밋 λ©”μ‹œμ§€ μ»¨λ²€μ…˜

Format: prefix(scope): μž‘μ—…λ‚΄μš© (#이슈번호)

  • μ˜ˆμ‹œ: feat(recruit): μ§€μ›μ„œ 제좜 κΈ°λŠ₯ κ΅¬ν˜„ (#5)
  1. 제λͺ©κ³Ό 본문을 빈 ν–‰μœΌλ‘œ λΆ„λ¦¬ν•©λ‹ˆλ‹€.
  2. λ³Έλ¬Έμ—λŠ” 'μ–΄λ–»κ²Œ'보닀 '무엇을, μ™œ' λ³€κ²½ν–ˆλŠ”μ§€ μ„€λͺ…ν•©λ‹ˆλ‹€.
  3. 제λͺ© 끝에 λ§ˆμΉ¨ν‘œ(.)λŠ” κΈˆμ§€ν•˜λ©°, 첫 κΈ€μžλŠ” λŒ€λ¬Έμžλ‘œ μž‘μ„±ν•©λ‹ˆλ‹€.

πŸš€ λͺ¨λ…Έλ ˆν¬ ν”„λ‘œμ νŠΈ 관리 (GitHub)

  • Label: Recruit와 Homepage 라벨을 μƒ‰μƒμœΌλ‘œ κ΅¬λΆ„ν•˜μ—¬ PR에 μ μš©ν•©λ‹ˆλ‹€.
  • Milestone: PR 생성 μ‹œ ν•΄λ‹Ήλ˜λŠ” λ§ˆμΌμŠ€ν†€μ„ λ°˜λ“œμ‹œ μ—°κ²°ν•˜μ—¬ μ§„ν–‰ 상황을 κ°€μ‹œν™”ν•©λ‹ˆλ‹€.


⭐ μ„€μΉ˜ 및 μ‹€ν–‰

πŸ“‹ ν•„μˆ˜ ν™˜κ²½

Warning

ν”„λ‘œμ νŠΈ μ‹€ν–‰ 전에 λ°˜λ“œμ‹œ μ•„λž˜ ν™˜κ²½μ„ ν™•μΈν•΄μ£Όμ„Έμš”.

ν•„μˆ˜ ν™˜κ²½:

  • Node.js 18 이상
  • pnpm (ꢌμž₯ νŒ¨ν‚€μ§€ λ§€λ‹ˆμ €)
# ν™˜κ²½ 확인
node -v
pnpm -v

πŸ’Ύ μ„€μΉ˜ κ³Όμ •

  1. Repository 클둠
git clone https://github.com/IT-Cotato/COTATO-FE-v2.git
cd COTATO-FE-v2
  1. 전체 μ˜μ‘΄μ„± μ„€μΉ˜ (Rootμ—μ„œ μ‹€ν–‰)
pnpm install
  1. 전체 ν”„λ‘œμ νŠΈ μ‹€ν–‰
pnpm dev


Cotato_Project

About

COTATO FE λͺ¨λ…Έλ ˆν¬ πŸ‘½

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages