-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
π¨ design(#171): λ΄ λμ보λ κ³ μ λ λμμΈ μμ #175
Conversation
μ λ max-width μ£Όκ³ 100%λ‘ νμλλ° (PCλ νμ€ν μ ν΄μ§ ν¬κΈ°κ° μμ΄μ), μ΄λ€ κ² μμ μ§ λͺ¨λ₯΄κ² λ€μ.. |
μ λ pcλ κ³ μ νλλ° μ’λ€κ³ μκ°ν΄μ νλΈλ¦Ώ λΆν°λ κΈ°κΈ° μ¬μ΄μ¦κ° λ€ λ¬λΌμ λ°μνμ΄ λ μ’μκ±° κ°μμ π€ |
κ°λ‘ μ΅λ ν¬κΈ° μ‘°μ ν΄λμ΅λλ€! |
μΆκ°λ‘ μ¬κΈ°μ HTML HEADλ λ£μ΄μ μ¬λ Έμ΅λλ€ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
λ°μν λμμΈ μ’μ΅λλ€!! ꡬννμκΈ° λΉ‘μΈμ ¨κ² λ€μ....π±π
μ λ λ°νμμλ§ κ³ μ , νλΈλ¦Ώ μ΄νμμλ λ°μνμΌλ‘ νλκ² μ’λ€κ³ μκ°ν΄μ!
μμ§ νΈμ μνμ κ±°μ£ ??? |
μ νΈμλ₯Ό μνλ€μ γ γ γ ;;; |
HTML ν리뷰λ μΆκ°λ νλλ° νμΈμ λͺ»ν΄μ μ§κΈ λ¨Έμ§νκ³ λμ€μ νμΈνκ³ λ¬Έμ μμΌλ©΄ μμ νκ² μ΅λλ€ |
λ°°ν¬ μ μλ£ λλ©΄ λ§μλ릴κ²μ~~ |
* βοΈ Chore: tailwind μ»¬λ¬ νλ νΈ λ° λ°μν λΈλ μ΄ν¬ ν¬μΈνΈ μΈν (#33) βοΈ chore: tailwind μ»¬λ¬ νλ νΈ λ° λ°μν λΈλ μ΄ν¬ ν¬μΈνΈ μΈν * β¨ Feat: νμ΄μ§ λΌμ°ν μ€μ (#34) * βοΈ Chore: λ°°ν¬νκΈ° (#39) * βοΈ chore: pnpm-lock.yaml μ λ°μ΄νΈ * βοΈ chore: λ°°ν¬μ© repoμ mainκ³Ό develop λ³ν λ°μνλλ‘ workflow μμ± * β¨ feat: userReducer μΆκ° - store μ€μ - userSlice μΆκ° - app μ»΄ν¬λνΈμμμ Provider μ§μ * βοΈ Chore: eslintrc.json νμ μ€ν¬λ¦½νΈμ λ§μΆ°μ μμ (#38) * βοΈ Chore: eslintrc.json νμ μ€ν¬λ¦½νΈμ λ§μΆ°μ μμ * βοΈ Chore: eslintrc.json rules λ³κ²½ - react/jsx-filename-extensionμ .js, .jsx μΆκ° * β¨ feat: λ‘κ·ΈμΈ μ»€μ€ν ν useSignIn μΆκ° * β test: ν μ€νΈμ© λ‘κ·ΈμΈ νΌ * π fix: μ€λ³΅λ userReducer λ±λ‘ μμ * βοΈ Chore: eslintrc.json λ³κ²½μ λ°λ₯Έ ν¨ν€μ§ μΆκ° (#46) * βοΈ Chore: μ μ κΈ°λ₯ κ΄λ ¨ ν¨ν€μ§ μΆκ° (#47) * βοΈ chore: install React Query * βοΈ chore: install Redux Toolkit(+ Persist) * β¨ Feat: κ³΅μ© λ²νΌ μ»΄ν¬λνΈ κ΅¬ν (#50) * β¨ feat: κ³΅μ© λ²νΌ μ»΄ν¬λνΈ κ΅¬ν * β¨ feat: className κΈ°λ³Έκ° μΆκ° * π remove: ν μ€νΈ μ½λ μ κ±° * β¨ feat: useFetchData 컀μ€ν ν (#55) β¨ feat: useFetchData 컀μ€ν ν μ μ * β¨ Feat: generateTagIndex ν¨μ ꡬν (#44) β¨ feat: generateTagIndex ν¨μ ꡬν * βοΈ Chore: scope μ λ κ² κ°μ νλλ‘ λ³κ²½ (μ΄μλλ² μ κΈ°) (#56) βοΈ chore(#51): scope μ λ κ² κ°μ νλλ‘ λ³κ²½ (μ΄μλλ² μ κΈ°) * β»οΈ Refactor: μλΉμ€ λ‘μ§ λΆλ¦¬ & useFetch 컀μ€ν ν 리ν©ν λ§ (#63) * βοΈ chore(#58): install axios * β»οΈ refactor(#54): useFetchData 리ν©ν λ§ -> useQuery ν μ¬μ© * β¨ feat(#58): axios μΈμ€ν°μ€ μμ± & GET νΈμΆ λ‘μ§ λΆλ¦¬ * β¨ feat(#52): λμ보λ μΈν°νμ΄μ€ μ μ * β¨ feat(#52): λμ보λ λͺ©λ‘μ μ μ μνλ‘ λ±λ‘ (Reducer) * β¨ feat(#52): λμ보λ λͺ©λ‘ λ°μ΄ν° ν¨μΉ 컀μ€ν ν * π fix(#54): μΊμ ν€λ₯Ό νλΌλ―Έν°λ‘ μ§μ ν μ μλλ‘ μμ * π fix(#58): getDashboardsList() νλΌλ―Έν° νμ μμ * β¨ Feat(#2): Sidebar μ μ (#65) * β¨ Feat(#2): Sidebar Layout κ΅¬μ± * β¨ Feat(#2): Sidebar μμ api μ°λ λ° κ΅¬ν * β¨ Feat(#2): Sidebar μμ ꡬν μλ£ - API μ¬μ°λ νμ - λͺ¨λ¬ μ°λ νμ * β¨ Feat(#2): Sidebar μ μ μλ£ - λͺ¨λ¬ μ°λ νμ * β»οΈ refactor(#2): Sidebar μ½λ κ°μ * π¨ design(#2): sidebar css μμ * π¨ design(#2): padding, margin νΌκ·Έλ§ λμμΈμ λ§μΆ°μ μμ * β¨ Feat: user κ΄λ ¨ μ μ₯νλ μ 보 μΆκ° (μ΄λ©μΌ, νλ‘ν μ΄λ―Έμ§) (#70) * π fix(#69): λ‘κ·ΈμΈ μ μ΄λ©μΌ, νλ‘ν μ΄λ―Έμ§ μ 보λ μ μ₯νλλ‘ λ³κ²½ * βοΈ chore(#69): import named μλ¬ ν΄κ²° .eslintrc.jsonμimport/typescript νλ¬κ·ΈμΈ μΆκ° * β¨ feat(#31): Layout μ€μ (#67) * β¨ feat(#31): Layout μ μ© - λλ©, λ‘κ·ΈμΈ, νμκ°μ , 404 νμ΄μ§ μ μΈν λͺ¨λ νμ΄μ§μ λ μ΄μμ μ μ© * β¨ feat(#31): Layout μμ μ€μ * β»οΈ refactor(#2): Sidebar μ½λ κ°μ * π¨ design(#2): sidebar css μμ * π¨ design(#2): padding, margin νΌκ·Έλ§ λμμΈμ λ§μΆ°μ μμ * β¨ feat(#31): Layoutμ Sidebar μΆκ° * β¨ feat(#31): Layouts ν΄λλ‘ MainLayout μ΄λ - src/components/MainLayout/index.tsx -> src/layouts/MainLayout.tsxλ‘ λ³κ²½ - src/layouts/MainLayout.tsxμμ tailwindcss μ μ© μλλ λ¬Έμ ν΄κ²° * β¨ Feat(#6, #7): λ‘κ·ΈμΈ, νμκ°μ νμ΄μ§ (#68) * βοΈ chore: react-hook-form μΆκ° * βοΈ chore: yup μΆκ° * βοΈ chore: hookform resolvers μΆκ° * β¨ feat(#7): νμκ°μ νμ΄μ§ νΌλΈλ¦¬μ± * βοΈ chore(#7): νμΌ κ΅¬μ‘° λ³κ²½ * π¨ design(#7): css μ‘°μ * β¨ feat(#7): λΉλ°λ²νΈ νμΈ validation λ³κ²½ * βοΈ chore(#72): eslint tui μ κ±° *βοΈ style(#6): νμ΄ν ν¨μ, μ μΈλ¬ΈμΌλ‘ λ³κ²½ * π rename(#6, #7): input μ»΄ν¬λνΈ νμΌλͺ λ³κ²½ * βοΈ Chore(#74): tailwind.config.ts μ»¬λ¬ μμ λ° κΈ°μ‘΄ μ»¬λ¬ ν΄λμ€λͺ λ³κ²½ (#75) * βοΈ chore(#74): tailwind.config.ts μ»¬λ¬ μμ *βοΈ style(#74): κΈ°μ‘΄ color λ°μ΄ν° νμ¬ ν¬λ§·μ λ§κ² λ³κ²½ * β¨ Feat: μ»¬λΌ μΉμ & κ°λ³ μ»¬λΌ (#71) * βοΈ chore(#29): containers/ μ΄νμ μ»΄ν¬λνΈμλ tailwindCSS μ μ© * β¨ feat(#12): define Column Interface * β¨ feat(#12): add ColumnsSection.tsx * β¨ feat(#13): add Column.tsx *βοΈ style(#12, #13): μλ§¨ν± νκ·Έλ‘ μμ & μ£Όμ μΆκ° * π fix(#12): modify ColumnsSectionProps Type * β¨ feat(#12): dashboard/[id] νμ΄μ§ λ΄ ColumnsSection μ»΄ν¬λνΈ λ λλ§ *βοΈ style(#74): tailwind 컬λ¬λͺ μμ λ°μ * π fix(#31): λ μ΄μμ λ΄ main νκ·Έμ ν¨λ©κ° μ κ±° * βοΈ chore(#79): pnpm-lock.yaml μ΅μ ν (#81) * β¨ Feat(#9): Header μ»΄ν¬λνΈ κ΅¬ν (#78) * π¨ design(#9): ν°νΈ Pretendard 400 κΈ°λ³ΈμΌλ‘ μ€μ * β¨ feat(#9): λλ© νμ΄μ§ λ΄λΉκ²μ΄μ ꡬν(λ‘κ³ μ΄λ―Έμ§ μ μΈ λ°μν) * β¨ feat(#9): μ¬μ©μ νλ‘ν μ»΄ν¬λνΈ κ΅¬ν * β¨ feat(#9): κΈ°λ³Έ ν€λ μ»΄ν¬λνΈ κ΅¬ν * π rename(#9): μ΄λ―Έμ§ μ΄λ¦ - μ¬μ©νλλ‘ λ³κ²½ * β¨ feat(#9): λμ보λ ν€λ μ»΄ν¬λνΈ κ΅¬ν (ꡬμ±μ λͺ©λ‘ μ μΈ) * β¨ feat(#9): ν€λ μ»΄ν¬λνΈ κ΅¬ν * β¨ feat(#9): λμ보λ ν€λ μ»΄ν¬λνΈ κ΅¬μ±μ ꡬν(λ―Έμ) * β¨ feat(#9): λ μ΄μμμ ν€λ μ μ© *βοΈ style(#74): λ°λ tailwind μ€μ μ λ§κ² μμ μ§μ * π remove(#9): μ€λ³΅ μμ΄μ½ μμ * π¨ design(#9): μ μ μμ΄μ½ ν°νΈ μ μ© * π fix(#9): κ΄λ¦¬ λ²νΌ κ΄λ¦¬ νμ΄μ§λ‘ μ΄λνλλ‘ λ³κ²½ * βοΈ chore(#38): tailwind κ΄λ ¨ ν리ν°μ΄ μ€μ λ³κ²½ * π¨ design(#9): inline styleλ‘ κ΅¬μ±μ νλ‘ν κ²Ήμ³μ λ°°μ΄ * β¨ feat(#9): ν€λμ μ μ λ©λ΄ λλ‘λ€μ΄ κΈ°λ₯λ§ κ΅¬ν * π fix(#9): λμ보λ νμ΄μ§ μ νμ μλ¬ ν΄κ²° *βοΈ style(#9): 컨벀μ μ λ§κ² ν¨μ ννμμΌλ‘ λ³κ²½ * π fix(#9): localStoarge κ΄λ ¨ μ½λ μ κ±° * π¨ design(#9): μμ΄μ½μμ κΈμ κ°μ΄λ°μ λ ¬ * βοΈ chore(#38): tailwind κ΄λ ¨ eslint μ€μ λ³κ²½ * β¨ Feat(#16): mydashboard νμ΄μ§ DashboardList μ»΄ν¬λνΈ κ΅¬ν (#80) * β¨ Feat(#16): mydashboard νμ΄μ§ DashboardList μ»΄ν¬λνΈ κ΅¬ν - 리λμ€μ λ±λ‘λ λμ보λ λͺ©λ‘μ 5κ°μ© 보μ¬μ£Όλ μ»΄ν¬λνΈ κ΅¬ν - λμ보λ λͺ©λ‘μ ν΄λ¦νλ©΄ ν΄λΉ λμ보λλ‘ μ΄λνλ κΈ°λ₯ ꡬν * π fix(#16): mydashboard νμ΄μ§ λμ보λ λͺ©λ‘ νμ΄μ§ μμ - κΈ°μ‘΄ μ μ λμ보λ λͺ©λ‘μ λ°μμ€λ λ°©μμ μλ²μ μμ²νμ¬ λ°μμ€λλ‘ μμ - νμ΄μ§λ€μ΄μ κΈ°λ₯ μΆκ° * π fix(#16): mydashboard νμ΄μ§ κ°μ - API νΈμΆ λ°©μμ useFetchData hookμ μ¬μ©νλλ‘ λ³κ²½ - νμ΄μ§λ€μ΄μ λ²νΌ μμ * π¨ design(#16): λμ보λ μ΄λ λ²νΌ νμ΄ν μΆκ° - section ν¬κΈ° μ‘°μ * π¨ design(#16): νμ΄ν μ΄λ―Έμ§ μΆκ° * π¨ design(#16): λ°μν λμμΈ μ€μ * π¨ design(#16): λμ보λ λͺ©λ‘ λ²νΌ λ°°κ²½μ μμ * π fix(#16): νμ΄μ§λ€μ΄μ λ²νΌ λΆλ¦¬ * βοΈ chore(#78): ν리ν°μ΄ νλ¬κ·ΈμΈ μ€μΉμ λ°λ₯Έ ν¨ν€μ§ μ λ°μ΄νΈ (#91) * β¨ Feat: POST API λ‘μ§ λΆλ¦¬ (#83) *βοΈ style(#58): getService.ts λ΄μ function μ μΈ ν¨μλ€ -> ννμμΌλ‘ λ³κ²½ * β¨ feat(#76): define SignUpForm Interface * β¨ feat(#76): define async function - postSignUp() * β¨ feat(#76): νμκ°μ νΌ POST API μ°λ * β¨ feat(#76): νμκ°μ μ±κ³΅ μ λ‘κ·ΈμΈ νμ΄μ§λ‘ 리λ€μ΄λ νΈλλλ‘ λ‘μ§ μΆκ° * π fix(#6): λ‘κ·ΈμΈνΌ λ΄μ μ΄μ©μ½κ΄ λμ 체ν¬λ°μ€ μ κ±° * β¨ feat(#76): λ‘κ·ΈμΈ μ±κ³΅ μ MYλμ보λνμ΄μ§λ‘ 리λ€μ΄λ νΈλλλ‘ λ‘μ§ μΆκ° * β¨ feat(#76): λ‘κ·ΈμΈνΌ 리νμ€νΈ/리μ€ν°μ€ μΈν°νμ΄μ€ μ μ * β¨ feat(#76): redefined User Interface * β»οΈ refactor(#76): postSignInκ³Ό μ°λν useSignin 리ν©ν λ§ * π fix(#76): postSignIn ν¨μ λ΄ accessTokenμ λ‘컬μ€ν 리μ§μ μ μ₯νλ μ½λ μμ * β¨ Feat: SideBar μ»΄ν¬λνΈ λ°μν λμμΈ μΆκ° λ° λ‘λ© UI μμ (#92) * π fix(#2): API λ‘λ© μ UI μμ * π¨ design(#2): λ°μν λμμΈ μ€μ * π¨ design(#2): λͺ¨λ°μΌμ© λ‘κ³ μ΄λ―Έμ§ νμΌ μ λ‘λ * π¨ design(#2): μ΄λ―Έμ§λ₯Ό λΆλ¬μ€λ λ°©μ μμ * β»οΈ Refactor(#86): λ²νΌ λμμΈ ν΄λμ€ μμ± λ° λ²νΌ μ»΄ν¬λνΈ κ°μ (#89) * π¨ design(#86): μμλ³ λ²νΌ ν΄λμ€ μμ± * β»οΈ refactor(#86): λ²νΌ ν΄λμ€ λ¦¬ν©ν λ§ (μμ£Ό μ¬μ©νλ λ²νΌ μ»΄ν¬λνΈν) * π fix(#86): λ²νΌ μ»΄ν¬λνΈ λ°μν μμ * β»οΈ refactor(#86): κΈ°μ‘΄ λ²νΌμ λ²νΌ μ€νμΌ μ μ© * π¨ design(#86): λ²νΌ λμμΈ μ μ© * π¨ design(#86): λ‘κ·ΈμΈ/νμκ°μ λ²νΌ λμμΈ μ μ© * π fix(#16): λμ보λ 리μ€νΈ λ²νΌ λΉνμ±ν μΆκ° (#93) * π fix(#16): λμ보λ 리μ€νΈ λ²νΌ λΉνμ±ν μΆκ° * π¨ design(#16): νμ΄μ§ μ΄λ λ²νΌ λ°°κ²½μ μμ * π¨ design(#16): μ΄λ―Έμ§λ₯Ό λ°μμ€λ λ°©μ μμ * π fix(#16): νμ΄μ§ 리μ€νΈ totalPage μμ * π¨ design(#31): λ μ΄μμ ν¬κΈ°, μμ μμ (#95) - μ΅λ ν¬κΈ° μμ° - μ΅μ λλΉ 375pxλ‘ μ€μ - main λΆλΆ λ°°κ²½μ μ§μ (νμ΄μ§λ³λ‘ κ°κ° μ§μ νλ κ² μμ ) * π¨ Design(#31): λ μ΄μμ mainμ΄ λ¨μ ν¬κΈ° μ°¨μ§νλλ‘ μ€μ (#98) * βοΈ Chore: Tanstack Query μ κ·Έλ μ΄λ (#96) * β chore(#73): install Tanstack Query * π fix(#73): tanstack query ν¨ν€μ§ μν¬νΈ & κ°λ°μ λꡬ μΆκ° * π fix(#73): useFetchData μμ - Tanstack Query μ μ© * π fix(#73): useSignIn μμ - Tanstack Query μ μ© * π fix(#73): useFetchDashboards μμ - Tanstack Query μ μ© * β¨ Feat(#8): νλ‘ν μμ κΈ°λ₯ (#100) * π¨ design(#8): νλ‘ν λ³κ²½ μΉμ λμμΈ * β¨ feat(#8): μ λ ₯νΌ λ΄λΆκΈ°λ₯ μμ± (API μ°κ²° X) * β¨ feat(#8): νλ‘νλ³κ²½ API μ°κ²° (λ΄λΆμ 보 μ λ°μ΄νΈ X) * β¨ feat(#8): νλ‘ν λ³κ²½μ μ μ μ 보 μ λ°μ΄νΈ - userSliceμμ accessTokenμ΄ string | nullμ΄λ―λ‘ ν¨μμμλ κ°μ νμ μ λ°λλ‘ ν¨ * π fix(#9): ν€λμμ μλ¬ μ 보λ₯Ό μ μ μ 보λμ νμνμ§ μλλ‘ ν¨ *βοΈ style(#9): μμ°κ² λ import μμ * βοΈ chore(#9): νλ‘ν μ΄λ―Έμ§ λ°μμ¬ μ μκ² next.config.mjs μ€μ * π¨ design(#9): νλ‘ν μ΄λ―Έμ§ λμμΈ μμ - λΉμ¨ μ μ§ - λ₯κ·Ό ν λ리 * β¨ feat(#8): λλ€μ μ ν¨μ± κ²μ¬ - κΈΈμ΄ 1μ μ΄μ 10μ μ΄ν * β¨ feat(#8): νλ‘ν μ΄λ―Έμ§ μμ κΈ°λ₯ μΆκ° + μ λ°μ΄νΈ νΌμμ μ 보 μ νμ μΌλ‘ μ λ¬νλλ‘ λ³κ²½ * π¨ design(#8): μ΄λ―Έμ§ μΈν νΈλ², ν΄λ¦μ ν¨κ³Ό μ μ© * π fix(#8, #73): tanstack query μ κ·Έλ μ΄λμ λ°λ₯Έ ν κ³Ό μ¬μ©μ² μμ " * π¨ design(#8): label λ°μν ν¬κΈ° μμ * β¨ feat(#20) λ΄κ° λ°μ μ΄λ λͺ©λ‘ μ»΄ν¬λνΈ μ μ (#99) * β¨ feat(#20): λ΄κ° μ΄λλ°μ λμ보λ λͺ©λ‘μ 보μ¬μ£Όλ νμ΄μ§ μΆκ° - μμλ‘ μ΄λλ°μ λμ보λ λͺ©λ‘μ 보μ¬μ£Όλ νμ΄μ§λ₯Ό μΆκ° * π¨ design(#20): Image μ€λ₯ μμ * β¨ feat(#20): API μ°λ λ° UI ꡬν μλ£ * β¨ feat(#20): μ΄λ λͺ©λ‘ state κ΄λ¦¬ λ° λ λλ§ κ΅¬ν * β¨ feat(#20): μ΄λλ°μ λμ보λ κ²μ κΈ°λ₯ μΆκ° * β»οΈ refactor(#20): λ΄κ° λ°μ μ΄λ λͺ©λ‘ μ»΄ν¬λνΈ κ΅¬μ‘° λ³κ²½ λ° λΆλ¦¬ * β»οΈ refactor(#20): getInvitationsList μμ * β¨ feat(#20): μ΄λ μλ½ μ λμ보λ 리μ€νΈ κ°±μ * β¨ feat(#20): 무νμ€ν¬λ‘€ ꡬν - κ²μ κΈ°λ₯ API μ°λν΄μ κ²μνλλ‘ κ΅¬ν * π¨ design(#20): λ°μν λμμΈ μ€μ * π fix(#20): μ΄λ λͺ©λ‘ 무νμ€ν¬λ‘€ μμ * β¨ Feat: μ μ λͺ¨λ¬ 1μ°¨ μλ£ (#97) * β¨ feat(#42): redux λͺ¨λ¬ μν κ΄λ¦¬ μΆκ° * β¨ feat(#42): _appμ Modal μ»΄ν¬λνΈ μΆκ° * β¨ feat(#42): modal μ»΄ν¬λνΈ μΆκ° * β»οΈ refactor(#42): button μ»΄ν¬λνΈ λ³κ²½ * β¨ feat(#94, #42): κ³΅ν΅ λͺ¨λ¬ μλ¦Όμ°½ ꡬν * β¨ feat(#94, #42): openModalμ props optionalλ‘ λ³κ²½ * β¨ feat(#42): μ΄λνκΈ°, μ»¬λΌ μμ± λͺ¨λ¬ ꡬν * β¨ feat(#42, #17): λμ보λ μμ± λͺ¨λ¬ ꡬν * β¨ feat(#42, #17): μ΄λνκΈ° λͺ¨λ¬ valid μΆκ° * π rename(#42): μμ λ€μ΄λ° λ³κ²½ * β¨ feat(#42): μ»¬λΌ μμ μμ λͺ¨λ¬, props μΆκ° * β¨ feat(#42): λͺ¨λ¬ props νμ μΆκ° * β¨ feat(#42): λͺ¨λ¬ νλ‘ νμ μ μ * β¨ feat(#42): null κ° μ΄κΈ°ν μ κ±° * β¨ feat(#42): λμ보λ μμ± λͺ¨λ¬, μ»¬λΌ μμ± λͺ¨λ¬ API μ°κ²° * β¨ feat(#42): λμ보λ λ©€λ² μ΄λ API μ°κ²° * π fix(#42): λμ보λ μμ± λͺ¨λ¬ μ»¬λ¬ λ²νΌ μμ 보μ΄κ² μμ * π fix(#42): λμ보λ μμ± λͺ¨λ¬ μ»¬λ¬ λ²κ·Έ μμ * β¨ feat(#42): μ»¬λΌ μμ λ° μμ νκΈ° API μ°κ²° * β¨ feat(#42, #109): λμ보λ μμ λͺ¨λ¬ λ° λμ보λ μμ API μ°κ²° * β¨ feat(#42): μ΄λνκΈ° λͺ¨λ¬, μ‘΄μ¬νμ§ μλ λ©€λ² μ΄λ μ μλ¬ λ©μμ§ μΆλ ₯ * π fix(#42): ν¨μ μ΄λ¦ λ³κ²½ * π¨ Design(#85, #87): ν€λμ μ¬μ©μ νλ‘ν, λλ‘λ€μ΄ λμμΈ μμ± (#105) * π¨ design(#85): μμ΄μ½ κ°μ΄λ°μ λ ¬ * π¨ design(#87): λλ‘λ€μ΄ λμμΈ μ μ© * π fix(#87): λλ‘λ€μ΄ λ©λ΄ μ νμ λλ‘λ€μ΄ λ«κΈ° * π fix(#85): λμ보λ ν€λμμ μ§μ μμΈμ 보 μ‘°ννλλ‘ λ³κ²½ * π¨ design(#85): λλ© ν€λ λ‘κ³ λ°μν * β»οΈ refactor(#85): λμ보λ ν€λ μ»΄ν¬λνΈ νμΌ λΆλ¦¬ * π¨ design(#85): λμ보λ ν€λ λ©€λ²λͺ©λ‘ λ°μν λμμΈ (λ Έκ°λ€) * β¨ Feat(#27): λΉλ°λ²νΈ λ³κ²½ κΈ°λ₯ (#102) * π¨ design(#27): λΉλ°λ²νΈ λ³κ²½ κΈ°λ₯ λ°μν λμμΈ κ΅¬ν * β¨ feat(#27): λΉλ°λ²νΈ μ ν¨μ± κ²μ¬ * π fix(#8): νλ‘ν λ³κ²½ κ΄λ ¨ νμ export νλλ‘ λ³κ²½ * β¨ feat(#27): λΉλ°λ²νΈ λ³κ²½ κΈ°λ₯ ꡬν * π¨ design(#27): λ§μ΄νμ΄μ§μ λΉλ°λ²νΈ λ³κ²½ νΌ λ°°μΉ * π fix(#27): μ λ ₯ μ ν¨μ± κ²μ¬ λ‘μ§ λ³κ²½ - λͺ¨λ ν¬μ»€μ€ μμ λ λ κ²μ¬ - μ λΉλ°λ²νΈκ° κΈ°μ‘΄ λΉλ°λ²νΈλ κ°μ κ²½μ° κ±°μ (μλ²μμλ κ±°μ νλ©°, λ³κ²½ μλ―Έκ° μμΌλ―λ‘) - κ° μ λ ₯ μλμ΄μμ λ λ²νΌ λΉνμ±ν * π fix(#8, #27): type export/import κ΄λ ¨ λ¬Έμ ν΄κ²° * β¨ Feat(#84): μ¬μ©μ μμ΄μ½ μμ λ°°μ ν¨μ ꡬνκ³Ό μμ μ€μ (#107) * π¨ design(#84): νλ‘ν μμ΄μ½ μμ μ€μ * β¨ feat(#84): νλ‘ν μμ΄μ½ λ°°κ²½ μμ μ μ© * β¨ Feat: Card μ»΄ν¬λνΈ (λμ보λ νμ΄μ§) (#117) * β¨ feat(#13): define Card Interface * β¨ feat(#13): μ»¬λΌ λ΄ μΉ΄λ κ°μ λ°μ΄ν° νμ(API μ°κ²°) * β»οΈ refactor(#58): μλΉμ€ ν¨μλ€ νλΌλ―Έν° id νμ λ€μ numberλ‘ μμ * β¨ feat(#19): λ μ§ νμ ν¬λ§·ν ν¨μ μ μ * π¨ design(#41): λμ보λ νμ΄μ§ λ΄ divνκ·Έ μ κ±° * π fix(#31): λ©μΈ λ μ΄μμ λ΄ μμ§ μ€ν¬λ‘€ μ κ±° * π fix(#12): μ»¬λΌ μΉμ λ΄ μ€ν¬λ‘€ μμ * π fix(#13): μ»¬λΌ queryKey κ° μμ * β¨ feat(#13): μ»¬λΌ λ΄ μΉ΄λ λ λλ§ & μ»¬λΌ λ΄ μν μ€ν¬λ‘€ μΆκ° * β¨ feat(#19): ν μΌ μΉ΄λ μ»΄ν¬λνΈ μΆκ° * β¨ feat(#19): νκ·Έμ»¬λ¬ μλμμ± μ νΈν¨μ μ μ * β¨ feat(#19): μΉ΄λ μμΈ λ°μ΄ν° μ‘°ν GET ν¨μ μΆκ° * βοΈ chore(#19): νκ·Έμ μ© μ»¬λ¬ 4μ’ μΆκ° * β¨ feat(#19): μΉ΄λ λ΄ ProfilIcon μΆκ° * π fix(#19): μΉ΄λ λ΄ μ΄λ―Έμ§ κ°μ΄ μμ λλ§ λ λλ§λλλ‘ μμ * π fix(#12): μ»¬λΌ μΆκ° λ²νΌ λ΄ λ§μ§κ° μμ * β¨ feat(#13): 컬λΌμμ λͺ¨λ¬ μ°λ * β¨ feat(#12): 컬λΌμΆκ° λͺ¨λ¬ μ°λ * π fix(#12): μ»¬λΌ λ΄ x-scroll λ²κ·Έν½μ€ - widthν¬κΈ° μμ μ§μ * π fix(#13): μ»¬λΌ λ΄ y-scroll λ²κ·Έν½μ€ - height κ° μμ * π¬ comment(#12): 컬λΌμΆκ° λͺ¨λ¬μ μν μ£Όμ μΆκ° * π fix(#12): 컬λΌμΉμ λ΄ μ€λ²μ€ν¬λ‘€ μμ * β¨ feat(#104): μ¬μ΄λλ° νμ΄μ§λ€μ΄μ ꡬν λ° μ΄λ λ²νΌ μΆκ° (#110) * β¨ feat(#104): μ¬μ΄λλ° νμ΄μ§λ€μ΄μ ꡬν λ° μ΄λ λ²νΌ μΆκ° - λ΄ λμ보λ, λ΄ νμ΄μ§ μ΄λ λ²νΌ μΆκ° * π¨ design(#104): λμμΈ μμ * β¨ feat(#104): μ¬μ΄λλ°μ λμ보λ μμ± λͺ¨λ¬ μ°λ * π¨ design(#104): μ¬μ΄λλ° μ€μΌλ ν€ μΆκ° * β¨ Feat(#7): νμκ°μ λͺ¨λ¬ μ°κ²° (#112) * β¨ feat(#7): νμκ°μ λͺ¨λ¬ μ°κ²° * β¨ feat(#7): email μ€λ³΅ μ μ΄λ©μΌ νλ λΉμ°κΈ° * β¨ feat(#7): μ΄λ©μΌ input focus λ° λΉμ°κΈ°, μΌλ° ν μ€νΈ μ λ¬ λ°λ λͺ¨λ¬ μΆκ° * β¨ Feat: μ΄λ λ΄μ μ»΄ν¬λνΈ (#116) * π¨ design(#23): μ΄λλ΄μ μ»΄ν¬λνΈ λ°μν λμμΈ * β¨ feat(#23): μ΄λλ΄μ λΆλ¬μ€κΈ° κΈ°λ₯ ꡬν (νμ΄μ§λ΄μ΄μ ) * π fix(#23): olμ λͺ¨λ μμ νκ·Έμ κ³ μ ν key λΆμ¬ * β¨ feat(#23): μ΄λ μ·¨μ κΈ°λ₯ ꡬν * β»οΈ refactor(#23): useDeleteData ν μΌλ‘ λ€λ₯Έ delete ν¨μλ€λ νΈμΆν μ μλλ‘ ν¨ * β¨ feat(#23): νμ΄μ§λ€μ΄μ ν μ€νΈ μμ΄ μ¬μ© κ°λ₯νκ² λ³κ²½ * β»οΈ refactor(#23): κΈ°μ‘΄ μ½λμμλ νμ΄μ§λ€μ΄μ μ»΄ν¬λνΈ μ¬μ©νλλ‘ λ³κ²½ * π Fix(#84): λ©€λ²μ νλ‘νμμμ μ λλ‘ λ³΄μ¬μ€ μ μλλ‘ μμ (#120) * π fix(#84): λ©€λ²μ νλ‘νμμμ μ λλ‘ λ³΄μ¬μ€ μ μλλ‘ μμ * π fix(#84): μΉ΄λ μ»΄ν¬λνΈμμλ userId μ¬μ©νλλ‘ μμ --------- Co-authored-by: λ₯νμ <un0211@lyuhyewon-ui-MacBookAir.local> * π Fix(#118): μ λΉλ°λ²νΈλ κΈμμ νμΈνλλ‘ λ³κ²½ (#126) π fix(#118): μ λΉλ°λ²νΈλ κΈμμ νμΈνλλ‘ λ³κ²½ * π¨ design(#124): λ΄ λμ보λ λμ보λ λͺ©λ‘ μ€μΌλ ν€ μ€μ (#125) * π¨ design(#124): λ΄ λμ보λ λμ보λ λͺ©λ‘ μ€μΌλ ν€ μ€μ * π¨ design(#124): λμ보λ μ΄λ λͺ©λ‘ μ€μΌλ ν€ μ€μ * β»οΈ refactor(#124): μ€λ³΅ μ½λ λ°°μ΄λ‘ λ¬Άμ * β¨ Feat: Tags μ»΄ν¬λνΈ (#130) * βοΈ chore(#127): tailwind.config λ΄ νκ·Έμ»¬λ¬ μ μ μ κ±°" * π fix(#12): 컬λΌμΉμ λ΄ λλΉ/λμ΄ κ° λ²κ·Έ μμ * π remove(#127): generateTagColor μ νΈν¨μ μμ * β¨ feat(#127): add Tags Component * π fix(#19): νλ‘νμμ΄μ½ μ‘°κ±΄λΆ λ λλ§ * π fix(#127): generateTagIndex ν¨μλ₯Ό μ΄μ©ν κ³ μ μμκ° μ§μ & νλΌλ―Έν° μμ * π fix(#127): generateTagIndex μμ - generateTagIndex νλΌλ―Έν° μλλλ‘ μμ - μμ μ’ λ₯ 6κ°μ§λ‘ μμ (NUM_TAG_COLORS) - yellow, purple μμ μΆκ°(μμ κ°μ²΄) * β¨ Feat: λ‘κ·ΈμΈ νΌ, νμκ°μ νΌ λͺ¨λ¬ μ°κ²° λ° λͺ¨λ¬ 리ν©ν λ§ (#132) * β¨ feat(#6): λ‘κ·ΈμΈ νΌ λͺ¨λ¬ μ°κ²° * β»οΈ refactor(#6): λͺ¨λ¬ νλ‘ μ κ±° * β»οΈ refactor(#6): μλ¦Ό λͺ¨λ¬ μ κ±° ν ν μ€νΈ λͺ¨λ¬λ‘ λ³κ²½ * β»οΈ refactor(#6): λͺ¨λ¬ index μ½λ μ 리 * π remove(#6): notificationModal μ κ±° * β¨ Feat: λ©€λ² μ»΄ν¬λνΈ (#128) * π¨ design(#24): ꡬμ±μ μ»΄ν¬λνΈ λ°μν λμμΈ μμ± * β¨ feat(#24): ꡬμ±μ λΆλ¬μ€κΈ°μ νμ΄μ§λ€μ΄μ ꡬν * β¨ feat(#24): λ©€λ² μμ κΈ°λ₯ ꡬν * β¨ feat(#40): λμ보λ μμ νμ΄μ§ μμ± (#134) * β¨ feat(#40): λμ보λ μμ νμ΄μ§ μμ± * π fix(#9): ν€λ λͺ¨λ°μΌ λμ΄ μμ * π Remove(#136): μμ°λ νμΌ μμ (dashboard, context) (#138) * π remove(#136): dashboard μ μ μν κ΄λ ¨ μ μ°λ νμΌ μμ * π remove(#136): context ν΄λ μμ * β»οΈ Refactor(#121): κΈ°λ³Έ λͺ¨λ¬ 리ν©ν λ§ (#141) * β»οΈ refactor(#121): κΈ°λ³Έ λͺ¨λ¬ 리ν©ν λ§ - notificationModal: μ€λͺ κ³Ό νμΈ λ²νΌλ§ μ‘΄μ¬. νΉλ³ν μμ μν μ onClick μ νμ μΌλ‘ - confirmModal: μμ μ νμΈνλ λͺ¨λ¬. μμ μ νμΈ λ²νΌ μ‘΄μ¬. μμ μμ μ onActionClick νμ * β»οΈ refactor(#121): μ μ»¬λΌ μμ± λͺ¨λ¬ 리ν©ν λ§ - μ»¬λΌ μ€λ³΅ κ²μ¬ μΆκ° - μΆκ°μ νλ©΄μ λ°μλλλ‘ refetch - μ»¬λΌ 10κ° μμ λ λ μμ±νμ§ λͺ»νλλ‘ λ§μ * π remove(#121): default modal μμ νκ³ λΉ notificationμΌλ‘ λ체 * π fix(#121, #84, #24): button νμ μ§μ + λμ보λκ΄λ¦¬ ꡬμ±μ μ»΄ν¬λνΈ νλ‘ν μμ΄μ½ λ³κ²½ λ°μ * π fix(#121): λͺ¨λ¬μμ dashboard id μμμ κ°μ Έλ€ μ°λλ‘ λ³κ²½ * β¨ Feat(#25): λμ보λ μ 보 μμ μ»΄ν¬λνΈ μΆκ° (#143) * β¨ feat(#25): λμ보λ μ 보 μμ μ»΄ν¬λνΈ μΆκ° * π fix(#25): μ½λ 리뷰 λ°μ λ° μ£Όμ μ κ±° * π¨ design(#129): νλ©΄ μΈλ‘ ν¬κΈ°λ₯Ό μ€μ΄λ©΄ λ μ΄μμμ΄ κ³ μ₯λλ λ²κ·Έ μμ (#133) * π¨ design(#129): νλ©΄ μΈλ‘ ν¬κΈ°λ₯Ό μ€μ΄λ©΄ λ μ΄μμμ΄ κ³ μ₯λλ λ²κ·Έ μμ * π¨ design(#129): UI λμ΄ κ³ μ * π¨ design(#129): λμ보λ μ λͺ©μ΄ κΈ΄ κ²½μ° μκΈ°λ λ¬Έμ ν΄κ²° - μ¬μ΄λλ° ν¬κΈ° μ‘°μ - λμ보λ 리μ€νΈ μμ΄ν ν¬κΈ° μ‘°μ * β»οΈ refactor(#121, #114, #21): μ»¬λΌ μμ λͺ¨λ¬ 리ν©ν λ§ λ° μ μ© (#147) * β»οΈ refactor(#121, #114, #21): μ»¬λΌ μμ λͺ¨λ¬ 리ν©ν λ§ - μ€λ³΅ μ΄λ¦ λ°©μ§ - λ³κ²½μ¬ν λ°λ‘ λ°μλλλ‘ μΏΌλ¦¬ 무ν¨ν - μ¬μ©μ²μΈ dashboard λ³κ²½ (μΆκ° νμΌ μ 리) * π fix(#121): μλ¬ λ°μ μ μ λ ₯ νλ¨μ μλ¬λ©μμ§ μΆλ ₯νλλ‘ λ³κ²½ * β¨ feat(#121, #21): κΈμμ 10μ μ ν * β»οΈ Refactor(#121, #22): μ΄λνκΈ° λͺ¨λ¬ 리ν©ν λ§ λ° μ μ© (#148) * β»οΈ refactor(#121, #22): μ΄λνκΈ° λͺ¨λ¬ μ»΄ν¬λνΈ λ¦¬ν©ν λ§ * β¨ feat(#121, #9, #23): μ΄λνκΈ° λͺ¨λ¬ μ μ© * π fix(#121): μ΄λ λ²νΌ κΈμ λ³κ²½, μ΄κΈ° λΉνμ±ν μ€μ * β»οΈ Refactor: λμ보λ μμ± λͺ¨λ¬ 리ν©ν λ§ λ° μ μ© (#150) * β»οΈ refactor(#121, #17): λμ보λ μμ± λͺ¨λ¬ 리ν©ν λ§ - μλ¬ μΆλ ₯ μΆκ° * β¨ feat(#121): λμ보λ μμ± λͺ¨λ¬ μ μ© * β¨ feat(#121, #17): κΈμμ 10μ μ ν * β¨ Feat: μΉ΄λ DnD (λμ보λ νμ΄μ§) (#145) * βοΈ chore(#131): install react-beautiful-dnd * βοΈ chore(#131): next.config λ΄ reactStrictMode falseλ‘ λ³κ²½ * π¨ design(#19): μΉ΄λ μ»΄ν¬λνΈ μ€λ₯Έμͺ½ λ§μ§κ° μ κ±° * β¨ feat(#131): λμ보λ λ΄ μΉ΄λ DnD ꡬν - react-beautiful-dnd λΌμ΄λΈλ¬λ¦¬ νμ©(DragDropContext: μ»¬λΌ μΉμ , Droppable: κ°λ³ 컬λΌ/μΉ΄λ, Draggable: μΉ΄λ) - ν μ»¬λΌ λ΄ & λ€λ₯Έ 컬λΌμΌλ‘μ μΉ΄λ μ΄λ - λ€λ₯Έ 컬λΌμΌλ‘μ μ΄λμ, μ»¬λΌ IDκ°μ μμ νκΈ° μν PUT API ν¨μ μ μ * π fix(#131): ν μ»¬λΌ λ΄ μΉ΄λ DnD κΈ°λ₯ μμ * π Remove(#136): λλ½λ useFetchDashboard μμ (#159) π remove(#136): λλ½λ useFetchDashboard μμ * β¨ feat(#10): λλ©νμ΄μ§ μ μ (#115) * β¨ feat(#10): λλ©νμ΄μ§ μμ μ μ * π¨ design(#10): λ°μν λμμΈ μΆκ° * β¨ feat(#10): λ‘κ·ΈμΈ ν λ‘κ³ ν΄λ¦ μ λ΄ λμ보λλ‘ μ΄λνλ κΈ°λ₯ μΆκ° - λ‘κ·ΈμΈ μ μλ λλ© νμ΄μ§λ‘ μ΄λνλλ‘ μμ * π¨ design(#10): Footer λ§ν¬ μ κ±° λ° μ λ³κ²½ * π Fix(#128): λ°°ν¬ μ€λ₯ ν΄κ²° (#161) π fix(#128): μλͺ» λΆμ copy μμ * π fix(#158): λ΄ λμ보λ μ€μΌλ ν€ key λ¬Έμ ν΄κ²° (#160) * π fix(#137): λλ‘λ€μ΄ ν΄λ¦ν¨κ³Ό λ²μ μμ (#139) * π fix(#137): λλ‘λ€μ΄ ν΄λ¦ν¨κ³Ό λ²μ μμ * π¨ design(#137): μ 보μ΄κ² ν¬κΈ° μμ * π fix(#137): μ μμμ λλ‘λ€μ΄ λ«μ μ μλλ‘ λ³κ²½ * β¨ feat(#157): 404 νμ΄μ§ μ μ (#163) * β¨ feat(#157): 404 νμ΄μ§ μ μ * β¨ feat(#157): 404 νμ΄μ§μμ λ μ΄μμ μλμ€κ² μμ * β¨ feat(#157): λ‘κ·ΈμΈ μ 404νμ΄μ§μμ μ¬μ΄λλ° λ³΄μ΄κ² μ€μ * β»οΈ Refactor(#121): ν¨μλ₯Ό λΆλ¦¬νμ¬ νμ μ κ²ν¨μΌλ‘μ¨ νμ λ¨μΈ λ°©μ΄ (#151) * β»οΈ refactor(#121): ν¨μλ₯Ό λΆλ¦¬νμ¬ νμ μ κ²ν¨μΌλ‘μ¨ νμ λ¨μΈ λ°©μ΄ * π fix(#121): κΈμμ μ ν 15μλ‘ λ³κ²½ * β¨ feat(#121): λμ보λ μμ± μ μμ±λ λμ보λλ‘ μ΄λ * β¨ Feat(#90): λΉλ°λ²νΈ μνΈν (#164) * βοΈ chore(#90): .envλ₯Ό .gitignnoreμ μΆκ° * βοΈ chore(#90): sha256 μ€μΉ * β¨ feat(#90): λΉλ°λ²νΈ μνΈν (λλ keyλ₯Ό .envμ μ μ₯) * π¨ design(#171): λ΄ λμ보λ κ³ μ λ λμμΈ μμ (#175) * π¨ design(#171): λ΄ λμ보λ κ³ μ λ λμμΈ μμ * π¨ design(#162): HTML HEAD μ€μ * π¨ design(#171): λ΄ λμ보λ PC, Mobile μ΅λ κ°λ‘ μ¬μ΄μ¦ μ€μ * π¨ design(#162): HTML ν리뷰 μΆκ° * π Fix(#77): μ¬μμ² νμ μ ν (#172) * π fix(#85): ν€λ μμ (#169) * π fix(#85): ν€λ ꡬμ±μ νλ‘ν μ€λ₯ ν΄κ²° - ꡬμ±μ μ«μ λ°λ₯΄κ² (totalCount) - ꡬμ±μ μμ λ§λ μ¬μ΄μ¦ κ°λλ‘ - 385pxμΌ λ λ μ΄μμ κΉ¨μ§μ§ μλλ‘ λͺ¨λ°μΌ ν€λ ν¨λ© μ€μ * π¨ design(#9, #171): λͺ¨λ°μΌ μ¬μ΄μ¦μμ ν€λ λ²νΌ μμ΄μ½λ§ 보μ΄λλ‘ λ³κ²½ * π fix(#168): λμ보λ μμ±μκ° μλλ©΄ κ΄λ¦¬ λ²νΌ 보μ΄μ§ μλλ‘ ν¨ * π fix(#171): λμμΈ μ€λ₯ μμ - μμΉ μ μ νλλ‘ header relative μ€μ - z index μ€μ * β¨ Feat(#173): λͺ¨λ¬ μ μ©νκΈ° (#174) * β¨ feat(#173): κ³μ κ΄λ¦¬ - νλ‘ν λ³κ²½μ λͺ¨λ¬ μ μ© - μΆκ°λ‘ λ³κ²½μ¬ν μμλλ§ λ²νΌ νμ±ν * β¨ feat(#173): κ³μ κ΄λ¦¬ - λΉλ°λ²νΈ λ³κ²½μ λͺ¨λ¬ μ μ© * β¨ feat(#173): λμ보λ μμ - ꡬμ±μ μμ λͺ¨λ¬ μ°κ²° * π¨ design(#121): λͺ¨λ¬ ν μ€νΈ μ€λ°κΏ λ°μ, κΈμ¨ κ°μ΄λ°μ λ ¬ * β¨ feat(#173): λμ보λ μμ - λμ보λ μμ κΈ°λ₯ ꡬν λ° λͺ¨λ¬ μ°κ²° * β¨ Feat(#82) : λ‘κ·ΈμΈ μνμ λ°λ₯Έ 리λ€μ΄λ μ ꡬν (#154) * β¨ feat(#82): λ‘κ·ΈμΈ μνμ λ°λ₯Έ 리λ€μ΄λ μ ꡬν * π fix(#82): 리λ€μ΄λ νΈ λ‘μ§ μμ --------- Co-authored-by: un0211 <un0211@kaist.ac.kr> * βοΈHOTFIX(#82): 리λ€μ΄λ μ μ€ μ΄μ λͺ¨λ¬ μ¬μ©νλ λΆλΆ μμ (#186) * π fix(#185): λμ보λ μ΄λ¦ μμ μ 15μ κΈΈμ΄ μ ν (#187) * π fix(#185): λμ보λ μ΄λ¦ μμ μ 15μ κΈΈμ΄ μ ν * π fix(#185): νμκ°μ μ λλ€μ 10μλ‘ κΈΈμ΄ μ ν * β¨ Feat(#156): λμ보λ μ΄λ μλ¦Ό κΈ°λ₯ μΆκ° (#178) * π rename(#156): ν€λ ν΄λꡬ쑰 λ³κ²½ * βοΈ chore(#156): toastify μΆκ° * β¨ feat(#156): μ΄λ μλ¦Ό ν μ€νΈ ꡬν (3μ΄λ§λ€ κ°±μ ) * π rename(#156): μμΉ λ³κ²½, μ¬μμ² κ°κ²© 5μ΄λ‘ μ‘°μ * β¨ Feat(#11): ν μΌ μΉ΄λ μμ± λͺ¨λ¬ μ»΄ν¬λνΈ κ΅¬ν (#184) * β¨ feat(#11): ν μΌ μΉ΄λ λͺ¨λ¬ νΌλΈλ¦¬μ± λ° columnId μ λ¬ * β¨ feat(#11): λ΄λΉμ μ ν λλλ€μ΄ ꡬν * β¨ feat(#11): ν μΌ μΉ΄λ μμ± κΈ°λ³Έ νΌ κ΅¬ν * Merge branch 'develop' into feature/newCardModal * β¨ feat(#11): μμ± API μ°κ²° * β¨ feat(#11): λͺ¨λ¬ νΌ λμμΈ μμ λ° isEdit νλ‘ μΆκ° * βοΈ chore(#11): react-datepicker λΌμ΄λΈλ¬λ¦¬ μ€μΉ * β¨ feat(#11): μ΄λ―Έμ§ API μμ * π remove(#11): react-datepicker μ κ±° * π fix(#11): μ½λ 리뷰 λ°μ * π¨ design(#171): μ 체 λ μ΄μμκ³Ό λ΄ λμ보λ λμμΈ λ¬Έμ μμ (#189) * π¨ design(#171): λ΄ λμ보λ λμ΄ λμμΈ λ¬Έμ μμ * π¨ design(#171): λ΄ λμ보λ ν°μ λΆλΆ μ΅λ λμ΄ μ§μ * π¨ design(#171): λ΄ λμ보λ λͺ¨λ°μΌ ν¬κΈ° μμ * π¨ design(#171): μ΄λλ°μ λμ보λ λͺ©λ‘ λ²νΌ ν¬κΈ° μμ * π¨ design(#171): λ μ΄μμ μ λ°μ μΈ λ¬Έμ ν΄κ²° * π¨ design(#171): λμ보λ νμ΄μ§ λ μ΄μμ κ°μ - λλΉ μ‘°μ (μ¬μ΄λλ° ν¬κΈ° λ§κ², PCλ§) - λμ΄ μ‘°μ (fullλ‘ μ±μ°κ²) - section μμ κ΅³μ΄ div νμ μμ κ² κ°μ μμ --------- Co-authored-by: un0211 <un0211@kaist.ac.kr> * π¨ Design(#171) ν€λ κ΄λ ¨ λμμΈ μμ μ¬ν (#190) * π¨ design(#171): λλ€μ κΈΈμ΄λ ν€λ κΉ¨μ§μ§ μκ² κ°κ²© μ‘°μ * π¨ design(#171): ꡬμ±μ μμ λ§κ² λ©€λ² νλ‘ν μμ λλΉ λ³κ²½ * π¨ design(#171): ν€λ κ°κ²© μ¬μ‘°μ (ν¨λ© λ리기) * π fix(#168): λμ보λ μ΄λ μλ¦Ό λ¬Έμ ν΄κ²° (#193) π fix(#168): λμ보λ μ΄λ μλ¦Ό λΉλ‘κ·ΈμΈ μ κ³μ νΈμΆλλ λ¬Έμ ν΄κ²° * π fix(#11): μΉ΄λ μμ± λͺ¨λ¬ νκ·Έ μμ μΆκ° (#195) * π fix(#11): μΉ΄λ μμ± λͺ¨λ¬ νκ·Έ μμ μΆκ° * π fix(#11): νκ·Έ μ»΄ν¬λνΈ μμ λ° μ μ©(μμ κΈ°λ₯ λμνλλ‘) --------- Co-authored-by: un0211 <un0211@kaist.ac.kr> * π¨ design(#171): λ‘κ·ΈμΈ/νμκ°μ μ¬λ°±μ€μ (#191) * π¨ design(#171): λ‘κ·ΈμΈ/νμκ°μ μ¬λ°±μ€μ * π¨ design(#171): λ‘κ·ΈμΈ/νμκ°μ Tablet, PC μ΅λ λμ΄ μ§μ --------- Co-authored-by: jmj <wjsdncl2222@gmail.com> * π fix(#168): μ΄λμλ¦Όμμ user μ κ·Ό μ μλ¬ ν΄κ²° (#196) * β¨ Feat: ν μΌ μΉ΄λ λͺ¨λ¬ (#180) * π¨ design(#127): νκ·Έ νΈλ²μ 컀μ λμμΈ μμ * β»οΈ refactor(#3): formatDate ν¨μ μκ°κΉμ§ λ³Ό μ μλλ‘ μμ * π¨ design(#12): λμ보λ μ€ν¬λ‘€ νλΈλ¦Ώ μ΄νμμλ μ보μ΄λλ‘ μμ * β¨ feat(#3): ν μΌμΉ΄λ λͺ¨λ¬ μ μΈ & νμ μ μΈ * β¨ feat(#3): ν μΌμΉ΄λ λͺ¨λ¬ κ΄λ ¨ API ν¨μ μΆκ° - λκΈ μ‘°ν, μμ±, μμ , μμ API ν¨μ μ μ - POSTμ© CommentForm νμ μ μ * β¨ feat(#3): ν μΌμΉ΄λ λͺ¨λ¬ & λκΈ κΈ°λ₯ μΆκ° * π¨ design(#3): ν μΌμΉ΄λ λͺ¨λ¬ λ΄μ λμμΈ μμ - μ€ν¬λ‘€ 보μ΄κ² νκΈ° - (κΌ½μ¬λ¦¬ 컀λ°) λ°μ€ν¬ν± νλ©΄μμ μ»¬λΌ λλΉ κ³ μ λλλ‘ μμ * π¨ design(#127): ν μΌμΉ΄λ νκ·Έ μ€ν¬λ‘€/μ€λ°κΏ λμμΈ μΆκ° * β¨ feat(#3): μμ νκΈ° λλ‘λ€μ΄ μΆκ° - μμ νκΈ°/μμ νκΈ° λλ‘λ€μ΄ μΆκ° - μΉ΄λ μμ DELETE API ν¨μ μ μ * π¨ design(#3): μμ μΉΈ ν¨λ© & λκΈ μ€λ°κΏ μΆκ° * π¨ design(#3): λ΄λΉμ&λ§κ°μΌ μΉμ μμ§ μ€μ μ λ ¬ * π¨ design(#3): ν μΌμΉ΄λ λͺ¨λ¬ λ΄ λμμΈ μ€λ₯ μμ * βοΈ chore(#3): ν μΌμΉ΄λ λͺ¨λ¬ λ°°ν¬ ν μ€νΈ * β¨ Feat(#155): λμ보λ 곡μ κΈ°λ₯ (#181) * π¨ design(#155): ν κΈ λμμΈ, ν΄λ¦ κΈ°λ₯ ꡬν * β¨ feat(#155): λμ보λ μμ± μ 곡μ μ ννλ©΄ 곡μ κ³μ λ©€λ²λ‘ μΆκ° * β¨ feat(#155): λμ보λ μμ νμ΄μ§μμ 곡μ on/offμ λ°λ₯Έ λ©€λ² μΆκ° μμ * β¨ feat(#155): 곡μ κ³μ λ©€λ² μμ μ μλ 곡μ μ·¨μ * π¨ design(#155): 곡μ μ λ‘κ·ΈμΈ μν μνμμλ ν€λ 보μ΄κ² λ³κ²½ * π¨ design(#157): 404 νμ΄μ§μμ ν€λ 보μ΄κ² μμ ν λμμΈ μ‘°μ * π¨ design(#155): λ‘κ·ΈμΈ μν μνμμ 곡μ λμ보λ μ κ·Ό μ μ¬μ΄λλ° μ κ±° *βοΈ style(#155): μμ°λ μ½λ μ κ±° * π fix(#9, #155): λ©€λ² μμ μ μλ¨ λ©€λ² νλ‘νμ λ°μ * β¨ feat(#155, #168): κ΄λ¦¬ νμ΄μ§ μ κ·Ό κΆν μμ κ²½μ° λ¦¬λ€μ΄λ νΈ * π fix(#162): ν리뷰 μλ¨λ λ¬Έμ μμ (#204) * βοΈ HOTFIX(#24): λμ보λ μμ±μ λ©€λ² μμ λΆκ°λ₯νκ² λ³κ²½ (#203) π fix(#24): λμ보λ μμ±μ λ©€λ² μμ λΆκ°λ₯νκ² λ³κ²½ * π¨ design(#171): λλ© νμ΄μ§ λμμΈ μμ (#192) * π¨ design(#171): λλ© νμ΄μ§ κ°λ‘ ν¬κΈ° μ€λ²λλ λ¬Έμ ν΄κ²° * π¨ design(#171): λλ© νμ΄μ§ μ΄λ―Έμ§ μμ * π fix(#200): κ°μ λμ보λ μ΄λλ₯Ό νλλ§ λ°μ μ μλλ‘ μμ (#201) * π¨ Design(#153): λ€ν¬ λͺ¨λ μ€μ (#197) * π¨ design(#153): λ€ν¬ λͺ¨λ μΆκ° * π¨ design(#153): λ΄ λμ보λ νμ΄μ§ λ€ν¬ λͺ¨λ μΆκ° * π¨ design(#153): λͺ¨λ νμ΄μ§, λͺ¨λ¬ λ€ν¬ λͺ¨λ μΆκ° * π¨ design(#153): ν μΌ λͺ¨λ¬ λκΈ λ€ν¬λͺ¨λ μ μ© * π¨ design(#153): ν λ§ λ²νΌ μμ * π¨ design(#153): λ²νΌ λμμΈ μμ * π¨ design(#153): μ·¨μ λ²νΌ μμ λ³κ²½ * π¨ design(#153): λ‘κ·ΈμΈ, νμκ°μ νμ΄μ§ λ€ν¬λͺ¨λ μ μ© * β¨ Feat(#18): ν μΌ μΉ΄λ μμ λͺ¨λ¬ ꡬν (#205) * β¨ feat(#11): ν μΌ μμ± λͺ¨λ¬ μ»¬λΌ λλλ€μ΄ μΆκ° * β¨ feat(#11): ν μΌ μΉ΄λ μμ± λ° μμ props λ³κ²½ * β¨ feat(#11): ν μΌ μΉ΄λ λͺ¨λ¬ μμ μμ± * β¨ feat(#11): submit λ²νΌ λ‘λ© μ disabled * π remove(#11): μ£Όμ μ κ±° * β¨ feat(#18): μ»¬λΌ λ³ν μμ μ μμ λ²νΌ λΉνμ±ν * β¨ feat(#11, #18): μ λͺ© κΈΈμ΄ μ ν μΆκ° (νκΈ 25μ, μμ΄ 50μ) * π fix(#198): μ΄λλͺ©λ‘ λ³λ μκΈΈ κ²½μ°λ₯Ό κ³ λ €ν΄ νν°λ§ κΈ°μ€μ μκ°μΌλ‘ λ³κ²½ (#202) * β¨ Feat(#210): ν μΌ μΉ΄λ μμ λ° μμ± μΆκ° κΈ°λ₯ ꡬν (#212) * β¨ feat(#18): μμ -> μ·¨μ μ ν μΌ μΉ΄λ λ€μ μ€ν κΈ°λ₯ ꡬν * β¨ feat(#11, #18): μμ± λ° μμ μ μΉ΄λ μ€ν * β¨ feat(#11, #18): λ‘λ© μ€νΌλ ꡬν * π fix(#11, #18): μμ± μ μμ± μλ£ λͺ¨λ¬λ‘ λ³κ²½ λ° νμ λ³κ²½ * π Fix(#153): λ€ν¬λͺ¨λλ‘ λ°λ λ²νΌ λμμΈ λ³΅κ· (#216) π¨ design(#153): λ€ν¬λͺ¨λλ‘ λ°λ λ²νΌ λμμΈ λ³΅κ· * β¨ Feat(#209): ν°νΈ μ μ© (#219) * π¨ design(#209): λλκ³ λ, Pretendard ν°νΈ μ μ© * π¨ design(#209): νλ‘ν μμ΄μ½μ λλκ³ λ ν°νΈ μ μ© * π fix(#219): font weight 400 κΈ°λ³Έ μ€μ λ€μ μΆκ° * π¨ design(#217): λ€ν¬λͺ¨λ μμ (#218) * π¨ design(#217): λ€ν¬λͺ¨λ μμ * π¨ design(#153): λ€ν¬λͺ¨λλ‘ λ°λ λ²νΌ λμμΈ λ³΅κ· --------- Co-authored-by: un0211 <un0211@kaist.ac.kr> * π Fix: λμ보λ νμ΄μ§ λ΄ λ²κ·Έ μμ (#214) * β»οΈ refactor(#12): νλ‘ idλͺ μ dashboardIdλ‘ μμ * π¨ design(#180): μμ λλ‘λ€μ΄μ μν z-index μμ * π fix(#180): λ μ§κ° -1λ‘ μ°νλ λ¬Έμ μμ (fix formatDate.ts) * π fix(#182, #194): μΉ΄λ λ°μ΄ν° 쿼리 무ν¨ν μ μ© * π¨ design(#171): λμ보λ λ΄ μ’ ν© λμμΈ μμ - #207 : μΉ΄λ μ»΄ν¬λνΈ λκΈ κ°μ 보μ¬μ£ΌκΈ° - λμ보λ λ°μν λμμΈ μμ - μΉ΄λ μ΄λ―Έμ§ placeholder μ§μ - νλ‘νμ΄λ―Έμ§ κΉ¨μ§, μΉ΄λ μ λͺ© κΉ¨μ§ μμ - μΉ΄λμ λκΈμ΄ μμ λ λΉλκΈ μ΄λ―Έμ§ νμ - μΉ΄λ μ€λͺ κΈ μ€λ°κΏ λ°μ - μΉ΄λ λͺ¨λ¬ λ΄ μ λλ©μ΄μ λ€ μΆκ° * β¨ feat(#3): λκΈ μ λ ₯ μμ΄ μ μΆνλ©΄ μλ¬λ©μμ§ λ¨λ κΈ°λ₯ μΆκ° * π fix(#4): μΉ΄λλͺ¨λ¬ λκΈ μΉμ κΉλΉ‘κ±°λ¦Ό λ¬Έμ μμ (refetch μ μ©) * β¨ feat(#166): μ»¬λΌ μΉμ μ€μΌλ ν€ UI μ μ© * π fix(#4): refetch & useEffect ν μ μ»΄ν¬λνΈ μ΅μμ λ 벨μμ νΈμΆλλλ‘ λΆλ¦¬ * π¨ design(#3): λκΈ μλ¬λ©μμ§ ν¨λ© μμ * π fix(#4): λκΈ μλ¬λ₯Ό λ²νΌ disabledλ‘ λ³κ²½ * π¨ design(#184): μΉ΄λ λͺ¨λ¬ λ΄ νλ‘νμμ΄μ½ ν°νΈ ν¬κΈ° μμ - ν μΌ μμ±/μμ μΉ΄λ λ΄μ νλ‘νμμ΄μ½ - λκΈ λ΄μ νλ‘νμμ΄μ½ * π¨ design(#171): ν μΌμΉ΄λ λͺ¨λ¬ λ΄ νλ‘ν μμ΄μ½ ν¬κΈ° μμ * β»οΈ refactor(#167): λ΄ λμ보λ νμ΄μ§ μλ² μ¬μ΄λ λ λλ§ μ μ© (#199) * β»οΈ refactor(#167): λ΄ λμ보λ νμ΄μ§ μλ² μ¬μ΄λ λ λλ§ μ μ© * β»οΈ refactor(#167): λ΄ λμ보λ μλ² μ¬μ΄λ λ λλ§ μμ * π fix(#167): μλ²μ¬μ΄λ μ€λ³΅ μ½λ μ κ±° * π fix(#167): μ΄λ λͺ©λ‘ ν¨μ μμ * π fix(#167): μ΄λ―Έμ§ λΆλ¬μ€λ μ±λ₯ κ°μ * π fix(#167): 컨νλ¦νΈ ν΄κ²° * β¨ feat(#188): λμ보λ μ¦κ²¨μ°ΎκΈ° μΆκ° (#213) * β¨ feat(#188): λμ보λ μ¦κ²¨μ°ΎκΈ° API μΆκ° * β¨ feat(#188): λμ보λ μ¦κ²¨μ°ΎκΈ° 3κ° μ ν κΈ°λ₯ μΆκ° * β¨ feat(#188): λμ보λ μ¦κ²¨μ°ΎκΈ° μ¬μ΄λλ°μ μΆκ° * π fix(#188): λμ보λ μ¦κ²¨μ°ΎκΈ° κ°―μ μ ν μμ * π fix(#188): λμ보λ κ°―μ μ ν μμ * π fix(#188): request.http μ κ±° * π fix(#188): λμ보λ μ¦κ²¨μ°ΎκΈ° μ μ λ§λ€ λ°μμ€κ² μ€μ * π fix(#188): μ¦κ²¨μ°ΎκΈ° μ κ±°κΈ°λ₯ μμ * π fix(#188): μ¦κ²¨μ°ΎκΈ° μ΅λ 3κ°κΉμ§ μΆκ° κ°λ₯νκ² μμ * π fix(#188): μ¦κ²¨μ°ΎκΈ° μΆκ° μλλ λ²κ·Έ μμ * π fix(#188): μ¦κ²¨μ°ΎκΈ° μλ¬ μμ * π fix(#188): μ¦κ²¨μ°ΎκΈ° useFetchData μ¬μ©ν΄μ λΆλ¬μ€κ² μμ * π fix(#188): μ¦κ²¨μ°ΎκΈ° λ²κ·Έ μμ * π Fix(#168): κΆνμ λ°λ₯Έ νμ΄μ§ μ κ·Ό μ μ΄ (#211) * π fix(#82): ν μ΅μμμμλ§ μ°λλ‘ λ³κ²½ * π fix(#168): 곡μ κ³μ μΌλ‘ νλ μμ² μ ν * π fix(#168): μμ±μκ° μλ κ²½μ° λμ보λ κ΄λ¦¬ νμ΄μ§ μ κ·Όμ 리λ€μ΄λ νΈ * π¨ design(#168): λμ보λ κ΄λ¦¬νμ΄μ§ μλ¬λ¬Έκ΅¬ κ°μ * π fix(#168): λμ보λ κ΄λ¦¬νμ΄μ§ μ κ·Ό μμ μ μ΄, 리λ€μ΄λ νΈ ν νμ λ³κ²½ * π fix(#168): λμ보λ μ κ·Ό μ μ΄ * π¨ design(#168, #41): 곡μ λμ보λ λΉλ‘κ·ΈμΈ μνμΌλ λ μ΄μμ κ½ μ°¨κ² * π fix(#168): 곡μ κ³μ μμ λͺ¨λ μμ κΈ°λ₯ λΉνμ±ν * π fix(#4, #21): λ³κ²½μ¬ν μμ μ λ²νΌ λΉνμ±ν (λκΈμμ , μ»¬λΌ μμ * π fix(#168): 리λ€μ΄λ νΈ μμ (λλ©, 404) - λλ©: λ‘κ·ΈμΈ μνμΌλ λͺ¨λ¬ μμ΄ λ°λ‘ λμ λμ보λλ‘ - 404: 3μ΄ λ€ λ‘κ·ΈμΈ μ¬λΆμ λ°λΌ λλ© or λμ λμ보λλ‘ * π fix(#168): λ©€λ²κ° μλ λ‘κ·ΈμΈ ν μ¬λλ μμ λ²νΌ λΉνμ±ν * π¨ design(#13): λμ보λ μ»¬λΌ κΈΈμ΄ μμ (#220) * π fix(#212, #211): λ°°ν¬ μ€λ₯ ν΄κ²° (#222) * π fix(#212): postCardDat -> PostCardData * π fix(#211): ν μΌ μΉ΄λ λͺ¨λ¬ μ¬λ κ³³λ§λ€ isMember μΈμ μΆκ° * π fix(#212): postCardDat -> PostCardData * π fix(#214): ν μΌ μμ μμ μ»¬λΌ λ³λ μ λ μ»¬λΌ λͺ¨λ μλ‘κ³ μΉ¨νλλ‘ μμ (#223) * π fix(#198): 첫 λ²μ§Έ μ΄λλ μλ μ¬ μ μκ² λ³κ²½ (#224) * π¨ design(#188): μ¬μ΄λλ° μ¦κ²¨μ°ΎκΈ° κΈμ μμ (#221) * π¨ design(#188): μ¬μ΄λλ° μ¦κ²¨μ°ΎκΈ° λͺ¨λ°μΌ μ¬μ΄μ¦μμ μμ΄μ½μΌλ‘ λ³κ²½ * π¨ design(#188): μ¬μ΄λλ° μ¦κ²¨μ°ΎκΈ° κΈμ μμ * π¨ design(#188): μ¬μ΄λλ° λμμΈ μμ * π¨ design(#153): λ€ν¬λͺ¨λ λ²νΌ μμΉ μμ (#228) * π¨ design(#153): λ€ν¬λͺ¨λ λ²νΌ μμΉ μμ - λλ© νμ΄μ§λ νμ light λͺ¨λλ‘ κ³ μ * π¨ design(#181): ν κΈ μμ΄ μ κ°μ΄λ° μ€λλ‘ λμ΄κ³ μ --------- Co-authored-by: un0211 <un0211@kaist.ac.kr> * β»οΈ refactor(#226): μ¦κ²¨μ°ΎκΈ° κΈ°λ₯ μ΅μ ν (#227) * β»οΈ refactor(#188): μ¦κ²¨μ°ΎκΈ° κΈ°λ₯ μ΅μ ν - μ¦κ²¨μ°ΎκΈ°μ© μ μ μ 보λ₯Ό Reduxμ μ μ₯νλλ‘ λ³κ²½ - μ¦κ²¨μ°ΎκΈ° μ 보λ₯Ό κ°μ Έμ€λ μμ²μ μ΅μν * π fix(#226): μ΄κΈ°κ° νλ²λ§ λΆλ¬μ€κ² λ³κ²½ * π fix(#226): λ‘κ·Έμμ μ μ¦κ²¨μ°ΎκΈ° μ 보 μ 리 --------- Co-authored-by: un0211 <un0211@kaist.ac.kr> * β¨ Feat: μΉ΄λλͺ©λ‘, λκΈλͺ©λ‘ 무νμ€ν¬λ‘€ μ μ© & κΈ°ν 리ν©ν λ§ (#225) * β»οΈ refactor(#3): λκΈ μΉμ refetch - μΈλ§μ΄νΈμ 쿼리λ₯Ό μ·¨μνλλ‘ λ³κ²½ * π¨ design(#166): 컬λΌμΉμ μ€μΌλ ν€ μμ * π remove(#41): μ°μ§ μλ index.tsx νμΌ μμ * β»οΈ refactor(#4): λκΈ μμ± λ μ§(UTC)λ ν¬λ§·λ μ μλλ‘ formatDate.ts 리ν©ν λ§ * π¨ design(#166): λ€ν¬λͺ¨λ μ»¬λΌ μ€μΌλ ν€ μμ μμ * β¨ feat(#13): μ»¬λΌ λ΄ μΉ΄λ 무νμ€ν¬λ‘€ μ μ© - 10κ°λ₯Ό κΈ°λ³ΈμΌλ‘ λ‘λνκ³ , μ΄νλ‘λ 1κ°μ© λ‘λ - λ‘λ μ€μΈ μΉ΄λλ λ‘λ© μ€νΌλλ‘ λ체 - getCardsList() μλΉμ€ ν¨μ λ‘μ§ μμ * π¨ design(#166): λ‘λ© μ€νΌλ λΌμ΄νΈλͺ¨λμμ μμλ°μ * π fix(#13): μΉ΄λ ν¨μΉ κ°μ 5κ°λ‘ μμ * β¨ feat(#4): ν μΌμΉ΄λ λ΄ λκΈλͺ©λ‘ 무νμ€ν¬λ‘€ μ μ© * β¨ feat(#4): ν μΌμΉ΄λ λ΄ λκΈλͺ©λ‘ 무νμ€ν¬λ‘€ μ μ© * β»οΈ refactor(#58): getComments μλΉμ€ ν¨μ μμ * π¨ design(#207): λκΈμ΄ 10κ° μ΄μμ΄λ©΄ 10+λ‘ λ³΄μ΄λλ‘ μ§μ * π¨ design(#166): λμ보λ νμ΄μ§, μ»¬λΌ μΉμ μ λ‘λ© μ€νΌλ μ μ© * β»οΈ refactor(#194): μ°μ§ μλ refetch ν¨μ μ κ±° * π¨ design(#166): μΉ΄λ λ‘λ©μ€νΌλ ν¬λͺ λ μμ * π¨ design(#4): 컬λΌμΉμ λ΄ μΉ΄λμΆκ° λ²νΌ λμ΄ μμ * π docs(#165): README.md μμ (#215) * π docs(#165): νμΌ README.md 1μ°¨ μμ (μ΄λ―Έμ§, νμνκΈ° μΆκ° νμ) * π docs(#165): λλκ·Έ μ€ λλ‘ μ€λͺ μΆκ° * π docs(#165): μ¦κ²¨μ°ΎκΈ° μ€λͺ μΆκ° * π docs(#165): λ€ν¬λͺ¨λ μ€λͺ μΆκ° * π docs(#165): μ¦κ²¨μ°ΎκΈ° μ€λͺ μμ * π docs(#165): μ μ νλ‘μ° μΆκ° * π docs(#165): νμ΄μ§ μ΄λ―Έμ§μ μΌλΆ μ€λͺ μΆκ° * π docs(#165): μμ°μμ μΆκ° --------- Co-authored-by: Jiyun Kim <wayandway@kakao.com> Co-authored-by: jmj <wjsdncl2222@gmail.com> --------- Co-authored-by: DAEYANG LEE <108586797+oceanlee-seoul@users.noreply.github.com> Co-authored-by: JMJ <89517903+wjsdncl@users.noreply.github.com> Co-authored-by: Jiyun Kim <wayandway@kakao.com> Co-authored-by: jmj <wjsdncl2222@gmail.com>
μ°κ΄λ μ΄μ
μμ λ΄μ©
κ³ μ λμ΄μλ λ΄ λμ보λ λ΄μ©μ λμ΄λκ² λ§λ€μμ΅λλ€
μ€ν¬λ¦°μ·
μ½λ©νΈ λ° λ Όμ μ¬ν
μΌλ¨ μ΅λ ν¬κΈ°λ‘ ν΄λλλ° μ νμ λλκ² λ λμκΉμ?
ν€μ°λ€ 보λκΉ λμμΈμ΄ μ΄μν΄μ§λ λΆλΆμ΄ μ’ μλκ±° κ°μμ μ΄μν λΆλΆ λ§μν΄μ£Όμλ©΄ μμ ν΄λ³΄κ² μ΅λλ€! π«‘
λ°©κΈ μ¬λ¦¬κ³ λ€μ μ΄μκ°μ 보λκΉ λͺ¨λ°μΌλ§ μμ ν΄λ¬λΌκ³ νμ ¨λλΌκ΅¬μ γ γ γ νλΈλ¦Ώ, PC ν¬κΈ° κ³ μ μΌλ‘ λ€μ λ³κ²½ ν κΉμ?
μΆκ°λ‘ 곡κ°μ΄ λμ΄λλ©΄μ μλ¦¬κ° λ¨λλ°λ λ§μ°μ€ μ¬λ Έμλ μλ μ€ν¬λ‘€ λκΈΈλ λΊμ΅λλ€
μ΄κ±Έ μ²λ¦¬νλ €λ©΄ refμ¬μ©ν΄μΌνλ€κ³ ν΄μ liμκΈ°λκ±° μ λΆ refλ‘ μ°Ύμκ°λ건 μλκ±° κ°μμ μΌλ¨ λΉΌλμ΅λλ€