Taskifyλ λμ보λ κΈ°λ°μ μΌμ λ° ν μΌ κ΄λ¦¬ μΉ μ ν리μΌμ΄μ
μ
λλ€.
μ¬μ©μλ λμ보λλ₯Ό μμ±νκ³ κ΅¬μ±μμ μ΄λν΄ ν¨κ» ν μΌμ κ΄λ¦¬ν μ μμ΅λλ€. μΉ΄λ μμ±Β·μμ Β·μμ , λκΈ μμ±, μ΄λ―Έμ§ μ
λ‘λ, λλκ·Έ μ€ λλ‘ κΈ°λ° μν λ³κ²½ λ±μ ν΅ν΄ νμ
νλ¦μ μ§κ΄μ μΌλ‘ κ΄λ¦¬νλ κ²μ λͺ©νλ‘ νμ΅λλ€.
- νλ‘μ νΈ κΈ°κ°: 2026.04.20 ~ 2026.05.08
- νλ‘μ νΈ μ£Όμ : Taskify
- λ°°ν¬ μ£Όμ: https://taskify-drowning.vercel.app/
| κΈ°λ₯ | μ€λͺ |
|---|---|
| νμ μΈμ¦ | λ‘κ·ΈμΈ, νμκ°μ , OAuth κΈ°λ° μΈμ¦ κΈ°λ₯μ μ 곡ν©λλ€. |
| λμ보λ κ΄λ¦¬ | λμ보λ μμ±, μ‘°ν, μμ , μμ κΈ°λ₯μ μ 곡ν©λλ€. |
| λ©€λ² μ΄λ | λμ보λμ λ©€λ²λ₯Ό μ΄λνκ³ μ΄λ μλ΅μ μ²λ¦¬ν μ μμ΅λλ€. |
| μ»¬λΌ κ΄λ¦¬ | ν μΌ μνλ₯Ό ꡬλΆνλ 컬λΌμ μμ±, μμ , μμ ν μ μμ΅λλ€. |
| μΉ΄λ κ΄λ¦¬ | ν μΌ μΉ΄λ μμ±, μμΈ μ‘°ν, μμ , μμ κΈ°λ₯μ μ 곡ν©λλ€. |
| Drag & Drop | μΉ΄λμ μμΉμ μνλ₯Ό λλκ·Έ μ€ λλ‘μΌλ‘ λ³κ²½ν μ μμ΅λλ€. |
| λκΈ | μΉ΄λλ³ λκΈ μμ±, μ‘°ν, μμ , μμ κΈ°λ₯μ μ 곡ν©λλ€. |
| μ΄λ―Έμ§ μ λ‘λ | νλ‘ν μ΄λ―Έμ§μ μΉ΄λ μ΄λ―Έμ§λ₯Ό μ λ‘λν μ μμ΅λλ€. |
| λ°μν UI | λͺ¨λ°μΌ, νλΈλ¦Ώ, λ°μ€ν¬ν± νλ©΄μ λμν©λλ€. |
| λΆλ₯ | κΈ°μ |
|---|---|
| ꡬ쑰 | HTML |
| μΈμ΄ | JavaScript, TypeScript |
| νλ μμν¬ / λΌμ΄λΈλ¬λ¦¬ | Next.js, React |
| μ€νμΌλ§ | Tailwind CSS |
| μΈν°λμ | Drag & Drop UI |
| μΈμ¦ / 보μ | OAuth |
| λΆλ₯ | κΈ°μ |
|---|---|
| νμ / λ²μ κ΄λ¦¬ | Git, GitHub |
| νμ λ¬Έμ / λμμΈ | Notion, Figma |
| λ°°ν¬ / μΈνλΌ | Vercel |
# 1. μ μ₯μ ν΄λ‘
git clone https://github.com/your-org/your-repository.git
# 2. νλ‘μ νΈ ν΄λ μ΄λ
cd codeit-FE23-Team5-Taskify
# 3. ν¨ν€μ§ μ€μΉ
npm install
# 4. κ°λ° μλ² μ€ν
npm run devκ°λ° μλ² μ€ν ν http://localhost:3000μμ νμΈν μ μμ΅λλ€.
νλ‘μ νΈ μ€ν μ νμν νκ²½ λ³μλ .env.localμ μμ±ν©λλ€.
NEXT_PUBLIC_API_URL=codeit-FE23-Team5-Taskify
my-app/
βββ .github/ # GitHub μ€μ
βββ app/ # App Router κΈ°λ° λΌμ°ν
β βββ (dashboard)/ # λμ보λ κ΄λ ¨ λΌμ°νΈ κ·Έλ£Ή
β β βββ dashboard/
β β β βββ [id]/
β β β βββ page.tsx # λμ보λ μμΈ νμ΄μ§
β β β βββ edit/
β β β βββ page.tsx # λμ보λ μμ νμ΄μ§
β β βββ mydashboard/
β β β βββ page.tsx # λ΄ λμ보λ νμ΄μ§
β β βββ layout.tsx # λμ보λ κ·Έλ£Ή λ μ΄μμ
β β βββ page.tsx # λμ보λ λ©μΈ νμ΄μ§
β βββ dashboard/
β βββ login/
β β βββ page.tsx # λ‘κ·ΈμΈ νμ΄μ§
β βββ signup/
β β βββ page.tsx # νμκ°μ
νμ΄μ§
β βββ favicon.ico # νλΉμ½
β βββ layout.tsx # μ μ λ μ΄μμ
β βββ page.tsx # λ©μΈ νμ΄μ§
βββ assets/ # λ΄λΆ μ μ 리μμ€
β βββ icons/ # μμ΄μ½ νμΌ
β βββ imgs/ # μ΄λ―Έμ§ νμΌ
βββ components/
β βββ common/ # κ³΅ν΅ UI μ»΄ν¬λνΈ
βββ libs/ # λΌμ΄λΈλ¬λ¦¬ μ€μ , κ³΅ν΅ λͺ¨λ
βββ .gitignore
βββ .prettierrc
βββ AGENTS.md
βββ CLAUDE.md
βββ LICENSE
βββ README.md
βββ eslint.config.mjs
βββ next.config.ts # Next.js μ€μ
βββ package-lock.json
βββ package.json
βββ postcss.config.mjs
βββ tsconfig.json
| μ΄μμ§ | λ°μΉν | μ΅μ ν | μ₯νμ |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| @isuzzi | @hanpla | @Choiyuhyeon | @hhhnseo |
| λμ λμ보λ λμμΈ μ΄κ΄ |
κΈ°μ΄ μΈν
API λλ© λ‘κ·ΈμΈ, νμκ°μ |
λμ보λ νμ΄μ§ DnD UI λ°ν |
API λμ보λ μμ , κ΄λ¦¬ νλ‘ν κ΄λ¦¬ |
| λΈλμΉ | μ€λͺ |
|---|---|
main |
μ νμΌλ‘ μΆμ κ°λ₯ν μμ λ²μ λΈλμΉ |
develop |
λ€μ λ°°ν¬ λ²μ μ ν΅ν© κ°λ°νλ λΈλμΉ |
feat/#μ΄μλ²νΈ |
μ κ· κΈ°λ₯ κ°λ° λΈλμΉ |
fix/#μ΄μλ²νΈ |
λ²κ·Έ μμ λΈλμΉ |
refactor/#μ΄μλ²νΈ |
리ν©ν λ§ λΈλμΉ |
design/#μ΄μλ²νΈ |
UI λ° μ€νμΌ μμ λΈλμΉ |
chore/#μ΄μλ²νΈ |
κΈ°ν μ€μ λ° λ¬Έμ μμ λΈλμΉ |
- GitHub Issueμμ μμ λ΄μ©μ μμ±ν©λλ€.
- μμ λ΄λΉμλ₯Ό μ§μ ν©λλ€.
- μμ±ν Issue λ²νΈλ₯Ό κΈ°μ€μΌλ‘ λΈλμΉλ₯Ό μμ±ν©λλ€.
- μμ μλ£ ν Pull Requestλ₯Ό μμ±ν©λλ€.
- μ½λ 리뷰μ approve ν
developλΈλμΉμ λ³ν©ν©λλ€.
feat/#3
fix/#10
refactor/#15
design/#21
chore/#28
# μ격 λΈλμΉ μ 보 κ°μ Έμ€κΈ°
git fetch origin
# μμ
λΈλμΉλ‘ μ΄λ
git checkout feat/#3λλ Git λ²μ μ λ°λΌ μλ λͺ λ Ήμ΄λ₯Ό μ¬μ©ν μ μμ΅λλ€.
git switch feat/#3| νμ | μ€λͺ |
|---|---|
| feat | μλ‘μ΄ κΈ°λ₯ μΆκ° |
| fix | λ²κ·Έ μμ |
| docs | λ¬Έμ μμ |
| style | μ½λ ν¬λ§·ν , μΈλ―Έμ½λ‘ λλ½ λ± μ½λ λμ λ³κ²½μ΄ μλ μμ |
| refactor | μ½λ 리ν©ν λ§ |
| design | UI λμμΈ λ° μ€νμΌ μμ |
| test | ν μ€νΈ μ½λ μΆκ° λλ μμ |
| chore | λΉλ μ 무, ν¨ν€μ§ λ§€λμ μ€μ , κΈ°ν μμ |
| λμ | κ·μΉ | μμ |
|---|---|---|
| ν΄λλͺ | μλ¬Έμ μ¬μ© | components, dashboard, common |
| μ»΄ν¬λνΈ νμΌ | PascalCase | DashboardCard.tsx |
| μΌλ° λ³μ | camelCase | dashboardList, accessToken |
| μ΄λ―Έμ§ νμΌ | μλ¬Έμ + μΈλλ° | img_profile.png |
| μμ΄μ½ νμΌ | ic_ prefix + μλ¬Έμ + μΈλλ° |
ic_arrow_left.svg |
- import κ²½λ‘λ μ λ κ²½λ‘λ₯Ό μ¬μ©ν©λλ€.
import Button from '@/components/common/Button'- μΌλ° ν¨μλ νμ΄ν ν¨μλ₯Ό μ°μ μ¬μ©ν©λλ€.
const getDashboardList = async () => {
// ...
}- μ»΄ν¬λνΈλ λͺ νν μ΄λ¦μ μ¬μ©νκ³ , κΈ°λ³Έ export μ»΄ν¬λνΈλ μλ νμμ μ¬μ©ν©λλ€.
export default function DashboardCard() {
return <div>DashboardCard</div>
}- import
- type / interface / μμ μ μ
- ν¨μ μ μ
- μ»΄ν¬λνΈ μ μ
- export
μ΄ νλ‘μ νΈλ νμ΅ λ° ν νλ‘μ νΈ λͺ©μ μΌλ‘ μ μλμμ΅λλ€.



