src/app/
βββ layout.tsx # μ μ λ μ΄μμ (λͺ¨λ νμ΄μ§ κ³΅ν΅ ν€λ/νΈν°)
βββ page.tsx # λ©μΈνμ΄μ§ (νμ΄λ‘μΉμ
+ μ΅κ·Ό 곡μ§μ¬ν)
βββ providers.tsx # μ μ Provider μ€μ (React Query, Theme λ±)
βββ globals.css # μ μ μ€νμΌ (Tailwind, 리μ
CSS)
β
βββ (support)/ # κ³ κ°μ© Route Group
β βββ layout.tsx # Support μ μ© λ μ΄μμ (breadcrumb λ±)
β βββ qa/page.tsx # β support/features/qaλ‘ μμ
β βββ faq/page.tsx # β support/features/faqλ‘ μμ
β βββ notice/
β βββ page.tsx # β support/features/notice/listλ‘ μμ
β βββ [id]/page.tsx # β support/features/notice/detailλ‘ μμ
β
βββ (auth)/ # μΈμ¦ μ μ© Route Group
β βββ layout.tsx # μΈμ¦ μ μ© λ μ΄μμ (ν€λ/νΈν° μμ)
β βββ admin-login/page.tsx # β admin/features/auth/loginμΌλ‘ μμ
β
βββ (super-admin)/ # κ΄λ¦¬μμ© Route Group
βββ layout.tsx # Admin λ μ΄μμ + κΆν 체ν¬
βββ dashboard/page.tsx # κ°λ¨ν νμ λ©μμ§
βββ users/
β βββ page.tsx # β admin/features/user/listλ‘ μμ
β βββ [id]/page.tsx # β admin/features/user/detailλ‘ μμ
βββ qa-manage/ # Q&A κ΄λ¦¬ (κ²½λ‘ μΆ©λ ν΄κ²°)
β βββ page.tsx # β admin/features/qa/listλ‘ μμ
β βββ [id]/page.tsx # β admin/features/qa/detailλ‘ μμ
βββ faq-manage/ # FAQ κ΄λ¦¬ (κ²½λ‘ μΆ©λ ν΄κ²°)
β βββ page.tsx # β admin/features/faq/listλ‘ μμ
β βββ create/page.tsx # β admin/features/faq/createλ‘ μμ
β βββ [id]/
β βββ page.tsx # β admin/features/faq/detailλ‘ μμ
β βββ edit/page.tsx # β admin/features/faq/editλ‘ μμ
βββ notices/
β βββ page.tsx # β admin/features/notice/listλ‘ μμ
β βββ create/page.tsx # β admin/features/notice/createλ‘ μμ
β βββ [id]/
β βββ page.tsx # β admin/features/notice/detailλ‘ μμ
β βββ edit/page.tsx # β admin/features/notice/editλ‘ μμ
βββ settings/page.tsx # β admin/features/settingsλ‘ μμ
π App Router κ·μΉ:
- μ€μ§ λΌμ°ν λ§ λ΄λΉ - λΉμ¦λμ€ λ‘μ§ κΈμ§
- λͺ¨λ μ»΄ν¬λνΈλ ν΄λΉ μ€μ½νμ featuresλ‘ μμ
- Route Groupsλ‘ μ€μ½ν λΆλ¦¬ (support, auth, super-admin)
src/support/features/
βββ qa/ # Q&A κΈ°λ₯ (κ³ κ°μ© - μμ±/μ‘°ν)
β βββ api/
β β βββ createQA.ts # κ³ κ° μ§λ¬Έ μμ± APIλ§
β βββ hooks/
β β βββ useQAList.ts # λ΄ Q&A λͺ©λ‘ μ‘°ν ν
β β βββ useQAForm.ts # Q&A μμ± νΌ ν
β βββ ui/
β β βββ QAPage.tsx # ν νν λ©μΈ νμ΄μ§
β β βββ QAForm.tsx # μ§λ¬Έ μμ± νΌ
β β βββ QAAuthForm.tsx # ν΄λν°+λΉλ°λ²νΈ μΈμ¦
β β βββ QAList.tsx # λ΄ μ§λ¬Έ λͺ©λ‘
β β βββ QAItem.tsx # κ°λ³ Q&A μμ΄ν
β βββ index.ts
β
βββ faq/ # FAQ κΈ°λ₯ (κ³ κ°μ© - μ½κΈ° μ μ©)
β βββ api/
β β βββ fetchFAQs.ts # 곡κ°λ FAQλ§ μ‘°ν
β βββ hooks/
β β βββ useFAQList.ts # FAQ λͺ©λ‘ μ‘°ν ν
β βββ ui/
β β βββ FAQPage.tsx # μμ½λμΈ νν λ©μΈ νμ΄μ§
β β βββ FAQAccordion.tsx # FAQ μμ½λμΈ μ»΄ν¬λνΈ
β β βββ FAQItem.tsx # κ°λ³ FAQ μμ΄ν
β β βββ FAQSearch.tsx # FAQ κ²μ κΈ°λ₯
β βββ index.ts
β
βββ notice/ # 곡μ§μ¬ν μ‘°ν (κ³ κ°μ© - μ½κΈ° μ μ©)
βββ list/
β βββ api/
β β βββ fetchPublicNotices.ts # κ³΅κ° κ³΅μ§μ¬νλ§ μ‘°ν
β βββ hooks/
β β βββ useNoticeList.ts # supportμ© κ³΅μ§μ¬ν λͺ©λ‘ ν
β βββ ui/
β β βββ NoticeListPage.tsx # supportμ© κ³΅μ§μ¬ν λͺ©λ‘
β β βββ NoticeCard.tsx # supportμ© κ³΅μ§μ¬ν μΉ΄λ
β βββ index.ts
βββ detail/
βββ ui/
β βββ NoticeDetailPage.tsx # supportμ© κ³΅μ§μ¬ν μμΈ
βββ index.ts
src/support/shared/
βββ ui/
β βββ SupportLayout.tsx # Support μ μ© λ μ΄μμ
β βββ SupportHeader.tsx # Support μ μ© ν€λ
β βββ SupportBreadcrumb.tsx # Support μ μ© breadcrumb
β βββ SupportSidebar.tsx # Support λμλ§ μ¬μ΄λλ°
βββ constants/
β βββ supportRoutes.ts # Support λΌμ°νΈ μμ
βββ index.ts
π Support μ€μ½ν κ·μΉ:
- κ³ κ°μ© κΈ°λ₯λ§ - μ½κΈ° μ€μ¬, μ νλ μ°κΈ° (Q&A μμ±λ§)
- μΈμ¦ λΆνμ - ν΄λν°+λΉλ°λ²νΈλ‘ κ°λ¨ μΈμ¦
- κ³΅κ° λ°μ΄ν°λ§ - λΉκ³΅κ°/κ΄λ¦¬μ λ°μ΄ν° μ κ·Ό κΈμ§
src/admin/features/
βββ auth/ # κ΄λ¦¬μ μΈμ¦ κΈ°λ₯
β βββ login/
β βββ api/
β β βββ adminLogin.ts # κ΄λ¦¬μ λ‘κ·ΈμΈ API
β β βββ loginSchema.ts # λ‘κ·ΈμΈ νΌ μ ν¨μ± κ²μ¬
β βββ hooks/
β β βββ useAdminLogin.ts # κ΄λ¦¬μ λ‘κ·ΈμΈ ν
β βββ ui/
β β βββ AdminLoginPage.tsx # κ΄λ¦¬μ λ‘κ·ΈμΈ νμ΄μ§
β β βββ LoginForm.tsx # λ‘κ·ΈμΈ νΌ μ»΄ν¬λνΈ
β βββ index.ts
β
βββ user/ # μ¬μ©μ κ΄λ¦¬ κΈ°λ₯
β βββ list/
β β βββ api/
β β β βββ fetchAllUsers.ts # λͺ¨λ μ¬μ©μ μ‘°ν API
β β βββ hooks/
β β β βββ useUserManagement.ts # μ¬μ©μ κ΄λ¦¬ ν
β β βββ ui/
β β β βββ UserListPage.tsx # μ¬μ©μ λͺ©λ‘ νμ΄μ§
β β β βββ UserTable.tsx # μ¬μ©μ ν
μ΄λΈ
β β β βββ UserFilter.tsx # μ¬μ©μ νν°
β β βββ index.ts
β βββ detail/
β β βββ ui/
β β β βββ UserDetailPage.tsx # μ¬μ©μ μμΈ νμ΄μ§
β β βββ index.ts
β βββ shared/
β βββ ui/
β β βββ UserForm.tsx # μ¬μ©μ μμ±/μμ κ³΅ν΅ νΌ
β β βββ UserActions.tsx # μ¬μ©μ μ‘μ
λ²νΌλ€
β βββ index.ts
β
βββ qa/ # Q&A κ΄λ¦¬ κΈ°λ₯
β βββ list/
β β βββ api/
β β β βββ fetchAllQAs.ts # λͺ¨λ Q&A μ‘°ν API
β β βββ hooks/
β β β βββ useQAManagement.ts # Q&A κ΄λ¦¬ ν
β β βββ ui/
β β β βββ QAManagePage.tsx # Q&A κ΄λ¦¬ λ©μΈ νμ΄μ§
β β β βββ QAManageTable.tsx # Q&A κ΄λ¦¬ ν
μ΄λΈ
β β β βββ QAStatusFilter.tsx # Q&A μν νν°
β β βββ index.ts
β βββ detail/
β β βββ api/
β β β βββ answerQA.ts # Q&A λ΅λ³ API
β β β βββ assignQA.ts # Q&A λ΄λΉμ λ°°μ API
β β βββ hooks/
β β β βββ useQAAnswer.ts # Q&A λ΅λ³ ν
β β βββ ui/
β β β βββ QADetailPage.tsx # Q&A μμΈ κ΄λ¦¬ νμ΄μ§
β β β βββ QAAnswerForm.tsx # λ΅λ³ μμ± νΌ
β β β βββ QAHistory.tsx # Q&A νμ€ν 리
β β βββ index.ts
β βββ shared/
β βββ ui/
β β βββ QAAdminItem.tsx # κ΄λ¦¬μμ© Q&A μμ΄ν
β β βββ QAAssignModal.tsx # λ΄λΉμ λ°°μ λͺ¨λ¬
β βββ index.ts
β
βββ faq/ # FAQ κ΄λ¦¬ κΈ°λ₯
β βββ list/
β β βββ api/
β β β βββ fetchAllFAQs.ts # λͺ¨λ FAQ μ‘°ν (κ΄λ¦¬μμ©)
β β βββ hooks/
β β β βββ useFAQManagement.ts # FAQ κ΄λ¦¬ ν
β β βββ ui/
β β β βββ FAQManagePage.tsx # FAQ κ΄λ¦¬ λ©μΈ νμ΄μ§
β β β βββ FAQManageTable.tsx # FAQ κ΄λ¦¬ ν
μ΄λΈ
β β β βββ FAQStatusFilter.tsx # FAQ μν νν°
β β βββ index.ts
β βββ create/
β β βββ api/
β β β βββ createFAQ.ts # FAQ μμ± API
β β βββ hooks/
β β β βββ useFAQCreate.ts # FAQ μμ± ν
β β βββ ui/
β β β βββ FAQCreatePage.tsx # FAQ μμ± νμ΄μ§
β β βββ index.ts
β βββ edit/
β β βββ api/
β β β βββ updateFAQ.ts # FAQ μμ API
β β βββ hooks/
β β β βββ useFAQEdit.ts # FAQ μμ ν
β β βββ ui/
β β β βββ FAQEditPage.tsx # FAQ μμ νμ΄μ§
β β βββ index.ts
β βββ detail/
β β βββ ui/
β β β βββ FAQDetailPage.tsx # FAQ μμΈ κ΄λ¦¬ νμ΄μ§
β β βββ index.ts
β βββ shared/
β βββ ui/
β β βββ FAQForm.tsx # FAQ μμ±/μμ κ³΅ν΅ νΌ
β β βββ FAQEditor.tsx # FAQ μλν° (λ§ν¬λ€μ΄)
β β βββ FAQPreview.tsx # FAQ 미리보기
β βββ index.ts
β
βββ notice/ # 곡μ§μ¬ν κ΄λ¦¬ κΈ°λ₯
β βββ list/
β β βββ ui/
β β β βββ AdminNoticeListPage.tsx # κ΄λ¦¬μμ© κ³΅μ§μ¬ν λͺ©λ‘
β β β βββ NoticeManageTable.tsx # 곡μ§μ¬ν κ΄λ¦¬ ν
μ΄λΈ
β β βββ index.ts
β βββ create/
β β βββ ui/
β β β βββ NoticeCreatePage.tsx # 곡μ§μ¬ν μμ± νμ΄μ§
β β βββ index.ts
β βββ edit/
β β βββ ui/
β β β βββ NoticeEditPage.tsx # 곡μ§μ¬ν μμ νμ΄μ§
β β βββ index.ts
β βββ detail/
β β βββ ui/
β β β βββ AdminNoticeDetailPage.tsx # κ΄λ¦¬μμ© κ³΅μ§μ¬ν μμΈ
β β βββ index.ts
β βββ shared/
β βββ ui/
β β βββ NoticeForm.tsx # 곡μ§μ¬ν μμ±/μμ κ³΅ν΅ νΌ
β β βββ NoticeEditor.tsx # κ΄λ¦¬μμ© μλν°
β βββ index.ts
β
βββ settings/ # μμ€ν
μ€μ κΈ°λ₯
βββ api/
β βββ updateSettings.ts # μμ€ν
μ€μ API
βββ hooks/
β βββ useSettings.ts # μ€μ κ΄λ¦¬ ν
βββ ui/
β βββ SettingsPage.tsx # μ€μ νμ΄μ§
β βββ GeneralSettings.tsx # μΌλ° μ€μ
β βββ SecuritySettings.tsx # 보μ μ€μ
βββ index.ts
src/admin/entities/
βββ user/ # μ¬μ©μ λλ©μΈ (admin μ μ©)
βββ types/
β βββ User.ts # κ΄λ¦¬μμ© μ¬μ©μ νμ
(κΆν μ 보 ν¬ν¨)
β βββ AdminUser.ts # κ΄λ¦¬μ νμ
βββ api/
β βββ fetchUsers.ts # μ¬μ©μ μ‘°ν API
β βββ createUser.ts # μ¬μ©μ μμ± API
β βββ userApi.ts # μ¬μ©μ κ΄λ ¨ API λͺ¨μ
βββ ui/
β βββ UserRoleBadge.tsx # μ¬μ©μ μν λ±μ§
β βββ UserStatusBadge.tsx # μ¬μ©μ μν λ±μ§
βββ index.ts
src/admin/shared/
βββ ui/
β βββ AdminLayout.tsx # Admin λ μ΄μμ μ»΄ν¬λνΈ
β βββ AdminSidebar.tsx # Admin μ¬μ΄λλ°
β βββ AdminHeader.tsx # Admin ν€λ
β βββ AdminBreadcrumb.tsx # Admin breadcrumb
βββ constants/
β βββ adminRoutes.ts # Admin λΌμ°νΈ μμ
β βββ permissions.ts # κΆν μμ
βββ hooks/
β βββ useAdminAuth.ts # κ΄λ¦¬μ μΈμ¦ μν (μ μ)
β βββ usePermissions.ts # κΆν μ²΄ν¬ ν
βββ guards/
β βββ AuthGuard.tsx # μΈμ¦ κ°λ μ»΄ν¬λνΈ
βββ index.ts
π Admin μ€μ½ν κ·μΉ:
- κ΄λ¦¬μ μ μ© κΈ°λ₯ - λͺ¨λ λ°μ΄ν° CRUD κ°λ₯
- μΈμ¦ νμ - JWT ν ν° κΈ°λ° μΈμ¦
- κΆν μ²΄ν¬ - λͺ¨λ νμ΄μ§μμ κ΄λ¦¬μ κΆν νμΈ
src/shared/ui/
βββ Button/
β βββ Button.tsx # λͺ¨λ κ³³μμ μ¬μ©νλ κΈ°λ³Έ λ²νΌ
β βββ Button.stories.tsx # Storybook μ€ν 리
β βββ index.ts
βββ Modal/
β βββ Modal.tsx # λͺ¨λ κ³³μμ μ¬μ©νλ λͺ¨λ¬
β βββ ConfirmModal.tsx # νμΈ λͺ¨λ¬
β βββ index.ts
βββ Form/
β βββ Input.tsx # κΈ°λ³Έ μ
λ ₯ νλ
β βββ Textarea.tsx # ν
μ€νΈ μμ
β βββ Select.tsx # μ
λ νΈ λ°μ€
β βββ index.ts
βββ Pagination/
β βββ Pagination.tsx # λͺ¨λ λͺ©λ‘μμ μ¬μ©νλ νμ΄μ§λ€μ΄μ
β βββ index.ts
βββ DataList/
β βββ DataList.tsx # λ²μ© λͺ©λ‘ μ»΄ν¬λνΈ
β βββ index.ts
βββ BoardFilter/
β βββ BoardFilter.tsx # μΉ΄ν
κ³ λ¦¬ νν° (곡ν΅)
β βββ index.ts
βββ LoadingSpinner/
β βββ LoadingSpinner.tsx # λ‘λ© μ€νΌλ (μ μ)
βββ Toast/
β βββ Toast.tsx # ν μ€νΈ μλ¦Ό
β βββ index.ts
βββ ImageUpload/
β βββ ImageUpload.tsx # μ΄λ―Έμ§ μ
λ‘λ (Q&A, 곡μ§μ¬ν 곡ν΅)
β βββ index.ts
βββ index.ts # λͺ¨λ UI μ»΄ν¬λνΈ export
src/shared/layout/
βββ Header/
β βββ Header.tsx # μ μ ν€λ (λ‘κ³ , λ€λΉκ²μ΄μ
)
β βββ Navigation.tsx # λ©μΈ λ€λΉκ²μ΄μ
βββ Footer/
β βββ Footer.tsx # μ μ νΈν° (νμ¬ μ 보, μ°λ½μ²)
βββ index.ts
src/shared/features/
βββ home/ # λ©μΈνμ΄μ§ μ μ© κΈ°λ₯
βββ ui/
β βββ HeroSection.tsx # λ©μΈνμ΄μ§ νμ΄λ‘ μΉμ
β βββ FeatureSection.tsx # κΈ°λ₯ μκ° μΉμ
β βββ CTASection.tsx # Call-to-Action μΉμ
β βββ TestimonialSection.tsx # κ³ κ° νκΈ° μΉμ
β βββ RecentNotices.tsx # μ΅κ·Ό 곡μ§μ¬ν 3κ° νμ
βββ index.ts
src/shared/entities/
βββ qa/ # Q&A λλ©μΈ (Support + Admin 곡ν΅)
β βββ types/
β β βββ QA.ts # Q&A νμ
μ μ
β βββ api/
β β βββ fetchQAs.ts # Q&A μ‘°ν API (곡ν΅)
β β βββ qaApi.ts # Q&A κ΄λ ¨ API λͺ¨μ
β βββ ui/
β β βββ QAStatusBadge.tsx # Q&A μν λ±μ§ (곡ν΅)
β β βββ QAPriorityBadge.tsx # Q&A μ°μ μμ λ±μ§ (곡ν΅)
β βββ index.ts
β
βββ faq/ # FAQ λλ©μΈ (Support + Admin 곡ν΅)
β βββ types/
β β βββ FAQ.ts # FAQ νμ
μ μ
β βββ api/
β β βββ fetchFAQs.ts # FAQ μ‘°ν API (곡ν΅)
β β βββ faqApi.ts # FAQ κ΄λ ¨ API λͺ¨μ
β βββ ui/
β β βββ FAQStatusBadge.tsx # FAQ μν λ±μ§ (곡ν΅)
β β βββ FAQCategoryBadge.tsx # FAQ μΉ΄ν
κ³ λ¦¬ λ±μ§ (곡ν΅)
β βββ index.ts
β
βββ notice/ # 곡μ§μ¬ν λλ©μΈ (Support + Admin 곡ν΅)
βββ types/
β βββ Notice.ts # 곡μ§μ¬ν νμ
μ μ
βββ api/
β βββ fetchNotices.ts # 곡μ§μ¬ν μ‘°ν API (곡ν΅)
β βββ noticeApi.ts # 곡μ§μ¬ν κ΄λ ¨ API λͺ¨μ
βββ ui/
β βββ NoticeItem.tsx # 곡μ§μ¬ν μμ΄ν
κΈ°λ³Έ μ»΄ν¬λνΈ
β βββ NoticeStatusBadge.tsx # 곡μ§μ¬ν μν λ±μ§
βββ index.ts
src/shared/
βββ api/ # μ μ API μ€μ
β βββ client.ts # Axios ν΄λΌμ΄μΈνΈ μ€μ
β βββ types.ts # API κ³΅ν΅ νμ
β βββ interceptors.ts # API μΈν°μ
ν° (μΈμ¦ ν ν° λ±)
β
βββ utils/ # μ μ μ νΈλ¦¬ν°
β βββ formatDate.ts # λ μ§ ν¬λ§·ν
β βββ validation.ts # κ³΅ν΅ μ ν¨μ± κ²μ¬
β βββ storage.ts # λ‘컬 μ€ν λ¦¬μ§ μ νΈ
β
βββ constants/ # μ μ μμ
β βββ routes.ts # λΌμ°νΈ μμ
β βββ apiEndpoints.ts # API μλν¬μΈνΈ
β βββ config.ts # μ± μ€μ
β
βββ types/ # μ μ νμ
β βββ api.ts # API μλ΅ νμ
β βββ common.ts # κ³΅ν΅ νμ
β
βββ hooks/ # μ μ ν
β βββ useLocalStorage.ts # λ‘컬 μ€ν λ¦¬μ§ ν
β βββ useDebounce.ts # λλ°μ΄μ€ ν
β
βββ providers/ # μ μ Provider
β βββ QueryProvider.tsx # React Query Provider
β βββ ThemeProvider.tsx # ν
λ§ Provider
β βββ index.ts
β
βββ assets/ # μ μ μμ
βββ icons/ # μμ΄μ½
βββ images/ # μ΄λ―Έμ§
- β λ£λ κ²: λΌμ°ν μ€μ , λ μ΄μμ μ€μ , νμ΄μ§ μ»΄ν¬λνΈ (μμλ§)
- β λ£μ§ μλ κ²: λΉμ¦λμ€ λ‘μ§, μν κ΄λ¦¬, API νΈμΆ
- β λ£λ κ²: κ³ κ°μ© κΈ°λ₯, μ½κΈ° μ€μ¬ κΈ°λ₯, μ νλ μ°κΈ° κΈ°λ₯
- β λ£μ§ μλ κ²: κ΄λ¦¬μ κΈ°λ₯, λ―Όκ°ν λ°μ΄ν° μ²λ¦¬, κΆν κ΄λ¦¬
- β λ£λ κ²: κ΄λ¦¬μ μ μ© κΈ°λ₯, λͺ¨λ CRUD κΈ°λ₯, κΆν κ΄λ¦¬
- β λ£μ§ μλ κ²: κ³ κ°μ© κΈ°λ₯, κ³΅κ° λ°μ΄ν°λ§ λ€λ£¨λ κΈ°λ₯
- β
λ£λ κ²:
- UI: λͺ¨λ μ€μ½νμμ μ¬μ©νλ μ»΄ν¬λνΈ
- Entities: Support + Admin λͺ¨λ μ¬μ©νλ λλ©μΈ
- Utils: μ μ μ νΈλ¦¬ν° ν¨μ
- Types: μ μ κ³΅ν΅ νμ
- β λ£μ§ μλ κ²: νΉμ μ€μ½νμμλ§ μ¬μ©νλ κΈ°λ₯
shared/entities/qa/types/QA.ts- Q&A νμ (Support + Admin 곡ν΅)shared/entities/qa/ui/QAStatusBadge.tsx- μν λ±μ§ (Support + Admin 곡ν΅)support/features/qa/ui/QAForm.tsx- κ³ κ°μ© μ§λ¬Έ μμ± νΌadmin/features/qa/ui/QAAnswerForm.tsx- κ΄λ¦¬μμ© λ΅λ³ μμ± νΌ
shared/ui/Button/Button.tsx- κΈ°λ³Έ λ²νΌ (λͺ¨λ κ³³μμ μ¬μ©)support/shared/ui/SupportButton.tsx- Support μ μ© λ²νΌadmin/shared/ui/AdminButton.tsx- Admin μ μ© λ²νΌ
shared/entities/qa/api/qaApi.ts- κ³΅ν΅ Q&A APIsupport/features/qa/api/createQA.ts- κ³ κ°μ© μ§λ¬Έ μμ± APIadmin/features/qa/api/answerQA.ts- κ΄λ¦¬μμ© λ΅λ³ μμ± API
μ΄ κ°μ΄λλ₯Ό μ°Έκ³ νμ¬ μλ‘μ΄ νμΌμ λ§λ€ λ μ μ ν μμΉλ₯Ό μ ννμλ©΄ λ©λλ€!