diff --git a/src/TaxBaik.Web.Client/Components/Admin/_Imports.razor b/src/TaxBaik.Web.Client/Components/Admin/_Imports.razor
deleted file mode 100644
index db93f38..0000000
--- a/src/TaxBaik.Web.Client/Components/Admin/_Imports.razor
+++ /dev/null
@@ -1,18 +0,0 @@
-@using System.Net.Http
-@using System.Net.Http.Json
-@using Microsoft.AspNetCore.Components.Forms
-@using Microsoft.AspNetCore.Components.Routing
-@using Microsoft.AspNetCore.Components.Web
-@using Microsoft.AspNetCore.Components.Web.Virtualization
-@using Microsoft.AspNetCore.Components.Authorization
-@using Microsoft.AspNetCore.Authorization
-@using Microsoft.JSInterop
-@using MudBlazor
-@using TaxBaik.Application.DTOs
-@using TaxBaik.Application.Services
-@using TaxBaik.Application.Utils
-@using TaxBaik.Domain.Entities
-@using TaxBaik.Web.Services
-@using TaxBaik.Web.Services.AdminClients
-@using TaxBaik.WasmClient.Components.Admin.Shared
-@using TaxBaik.WasmClient.Components.Admin.Layout
diff --git a/src/TaxBaik.Web.Client/GlobalUsings.cs b/src/TaxBaik.Web.Client/GlobalUsings.cs
deleted file mode 100644
index 9a55fd3..0000000
--- a/src/TaxBaik.Web.Client/GlobalUsings.cs
+++ /dev/null
@@ -1,2 +0,0 @@
-global using System.Net.Http;
-global using System.Net.Http.Json;
diff --git a/src/TaxBaik.Web.Client/Pages/WasmPing.razor b/src/TaxBaik.Web.Client/Pages/WasmPing.razor
deleted file mode 100644
index aeafb41..0000000
--- a/src/TaxBaik.Web.Client/Pages/WasmPing.razor
+++ /dev/null
@@ -1,13 +0,0 @@
-@* WASM 기반(M3) 검증용 컴포넌트. 라우팅/렌더모드 전면 적용은 M4에서 처리한다. *@
-@rendermode InteractiveWebAssembly
-
-
- WebAssembly 렌더 모드 점검
- 이 컴포넌트가 클릭에 반응하면 Interactive WebAssembly 기반이 정상 동작하는 것입니다.
- 카운트: @count
-
-
-@code {
- private int count;
- private void Increment() => count++;
-}
diff --git a/src/TaxBaik.Web.Client/Program.cs b/src/TaxBaik.Web.Client/Program.cs
deleted file mode 100644
index 99a3e52..0000000
--- a/src/TaxBaik.Web.Client/Program.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-using Microsoft.AspNetCore.Components.Authorization;
-using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
-using MudBlazor.Services;
-using TaxBaik.Application.Services;
-using TaxBaik.Web.Services;
-using TaxBaik.Web.Services.AdminClients;
-
-var builder = WebAssemblyHostBuilder.CreateDefault(args);
-
-// MudBlazor (WASM 측 인터랙티브 컴포넌트용)
-builder.Services.AddMudServices(config =>
-{
- config.SnackbarConfiguration.HideTransitionDuration = 400;
- config.SnackbarConfiguration.ShowTransitionDuration = 300;
- config.PopoverOptions.ThrowOnDuplicateProvider = false;
-});
-
-// API Base Url 동적 구성 (호스트 기준 /taxbaik/api/)
-var apiBaseUrl = builder.HostEnvironment.BaseAddress.TrimEnd('/') + "/taxbaik/api/";
-
-// HTTP Client for API (with automatic token refresh)
-builder.Services.AddScoped();
-builder.Services.AddScoped();
-
-builder.Services.AddHttpClient(client =>
-{
- client.BaseAddress = new Uri(apiBaseUrl);
-}).AddHttpMessageHandler();
-
-// 각 Browser API Client 등록
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl));
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-builder.Services.AddHttpClient(client => client.BaseAddress = new Uri(apiBaseUrl)).AddHttpMessageHandler();
-
-// Blazor 인증 (WASM 측 클라이언트)
-builder.Services.AddScoped();
-builder.Services.AddScoped(sp => sp.GetRequiredService());
-builder.Services.AddScoped();
-builder.Services.AddCascadingAuthenticationState();
-builder.Services.AddAuthorizationCore();
-
-await builder.Build().RunAsync();
diff --git a/src/TaxBaik.Web.Client/TaxBaik.Web.Client.csproj b/src/TaxBaik.Web.Client/TaxBaik.Web.Client.csproj
deleted file mode 100644
index 66509f4..0000000
--- a/src/TaxBaik.Web.Client/TaxBaik.Web.Client.csproj
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- net10.0
- enable
- enable
- TaxBaik.WasmClient
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/TaxBaik.Web.Client/Components/Admin/App.razor b/src/TaxBaik.Web/Components/Admin/App.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/App.razor
rename to src/TaxBaik.Web/Components/Admin/App.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/ConfirmDialog.razor b/src/TaxBaik.Web/Components/Admin/ConfirmDialog.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/ConfirmDialog.razor
rename to src/TaxBaik.Web/Components/Admin/ConfirmDialog.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Forms/CompanyForm.razor b/src/TaxBaik.Web/Components/Admin/Forms/CompanyForm.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Forms/CompanyForm.razor
rename to src/TaxBaik.Web/Components/Admin/Forms/CompanyForm.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Forms/InquiryForm.razor b/src/TaxBaik.Web/Components/Admin/Forms/InquiryForm.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Forms/InquiryForm.razor
rename to src/TaxBaik.Web/Components/Admin/Forms/InquiryForm.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/InquiryTable.razor b/src/TaxBaik.Web/Components/Admin/InquiryTable.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/InquiryTable.razor
rename to src/TaxBaik.Web/Components/Admin/InquiryTable.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Layout/BlankLayout.razor b/src/TaxBaik.Web/Components/Admin/Layout/BlankLayout.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Layout/BlankLayout.razor
rename to src/TaxBaik.Web/Components/Admin/Layout/BlankLayout.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Layout/MainLayout.razor b/src/TaxBaik.Web/Components/Admin/Layout/MainLayout.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Layout/MainLayout.razor
rename to src/TaxBaik.Web/Components/Admin/Layout/MainLayout.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/AdminIndex.razor b/src/TaxBaik.Web/Components/Admin/Pages/AdminIndex.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/AdminIndex.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/AdminIndex.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Announcements/AnnouncementEdit.razor b/src/TaxBaik.Web/Components/Admin/Pages/Announcements/AnnouncementEdit.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Announcements/AnnouncementEdit.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Announcements/AnnouncementEdit.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Announcements/AnnouncementList.razor b/src/TaxBaik.Web/Components/Admin/Pages/Announcements/AnnouncementList.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Announcements/AnnouncementList.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Announcements/AnnouncementList.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Blog/BlogCreate.razor b/src/TaxBaik.Web/Components/Admin/Pages/Blog/BlogCreate.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Blog/BlogCreate.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Blog/BlogCreate.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Blog/BlogEdit.razor b/src/TaxBaik.Web/Components/Admin/Pages/Blog/BlogEdit.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Blog/BlogEdit.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Blog/BlogEdit.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Blog/BlogForm.razor b/src/TaxBaik.Web/Components/Admin/Pages/Blog/BlogForm.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Blog/BlogForm.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Blog/BlogForm.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Blog/BlogList.razor b/src/TaxBaik.Web/Components/Admin/Pages/Blog/BlogList.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Blog/BlogList.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Blog/BlogList.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Clients/ClientDetail.razor b/src/TaxBaik.Web/Components/Admin/Pages/Clients/ClientDetail.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Clients/ClientDetail.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Clients/ClientDetail.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Clients/ClientEdit.razor b/src/TaxBaik.Web/Components/Admin/Pages/Clients/ClientEdit.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Clients/ClientEdit.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Clients/ClientEdit.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Clients/ClientList.razor b/src/TaxBaik.Web/Components/Admin/Pages/Clients/ClientList.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Clients/ClientList.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Clients/ClientList.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/CommonCodes.razor b/src/TaxBaik.Web/Components/Admin/Pages/CommonCodes.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/CommonCodes.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/CommonCodes.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Companies/CompanyCreate.razor b/src/TaxBaik.Web/Components/Admin/Pages/Companies/CompanyCreate.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Companies/CompanyCreate.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Companies/CompanyCreate.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Companies/CompanyEdit.razor b/src/TaxBaik.Web/Components/Admin/Pages/Companies/CompanyEdit.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Companies/CompanyEdit.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Companies/CompanyEdit.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Companies/CompanyList.razor b/src/TaxBaik.Web/Components/Admin/Pages/Companies/CompanyList.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Companies/CompanyList.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Companies/CompanyList.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/ConsultingActivities.razor b/src/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/ConsultingActivities.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Contracts.razor b/src/TaxBaik.Web/Components/Admin/Pages/Contracts.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Contracts.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Contracts.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Dashboard.razor b/src/TaxBaik.Web/Components/Admin/Pages/Dashboard.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Dashboard.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Dashboard.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Faqs/FaqEdit.razor b/src/TaxBaik.Web/Components/Admin/Pages/Faqs/FaqEdit.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Faqs/FaqEdit.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Faqs/FaqEdit.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Faqs/FaqList.razor b/src/TaxBaik.Web/Components/Admin/Pages/Faqs/FaqList.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Faqs/FaqList.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Faqs/FaqList.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryCreate.razor b/src/TaxBaik.Web/Components/Admin/Pages/Inquiries/InquiryCreate.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryCreate.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Inquiries/InquiryCreate.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryDetail.razor b/src/TaxBaik.Web/Components/Admin/Pages/Inquiries/InquiryDetail.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryDetail.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Inquiries/InquiryDetail.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryEdit.razor b/src/TaxBaik.Web/Components/Admin/Pages/Inquiries/InquiryEdit.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryEdit.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Inquiries/InquiryEdit.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryList.razor b/src/TaxBaik.Web/Components/Admin/Pages/Inquiries/InquiryList.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Inquiries/InquiryList.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Inquiries/InquiryList.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Login.razor b/src/TaxBaik.Web/Components/Admin/Pages/Login.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Login.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Login.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Logout.razor b/src/TaxBaik.Web/Components/Admin/Pages/Logout.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Logout.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Logout.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/RevenueTrackings.razor b/src/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/RevenueTrackings.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/SeasonSimulator.razor b/src/TaxBaik.Web/Components/Admin/Pages/SeasonSimulator.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/SeasonSimulator.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/SeasonSimulator.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/Settings/SiteSettings.razor b/src/TaxBaik.Web/Components/Admin/Pages/Settings/SiteSettings.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/Settings/SiteSettings.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/Settings/SiteSettings.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/TaxFilingSchedules.razor b/src/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/TaxFilingSchedules.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/TaxFilings/FilingTable.razor b/src/TaxBaik.Web/Components/Admin/Pages/TaxFilings/FilingTable.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/TaxFilings/FilingTable.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/TaxFilings/FilingTable.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/TaxFilings/TaxFilingList.razor b/src/TaxBaik.Web/Components/Admin/Pages/TaxFilings/TaxFilingList.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/TaxFilings/TaxFilingList.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/TaxFilings/TaxFilingList.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/TaxProfiles.razor b/src/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Pages/TaxProfiles.razor
rename to src/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/RedirectToLogin.razor b/src/TaxBaik.Web/Components/Admin/RedirectToLogin.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/RedirectToLogin.razor
rename to src/TaxBaik.Web/Components/Admin/RedirectToLogin.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Routes.razor b/src/TaxBaik.Web/Components/Admin/Routes.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Routes.razor
rename to src/TaxBaik.Web/Components/Admin/Routes.razor
diff --git a/src/TaxBaik.Web.Client/Services/AdminClients/ICommonCodeBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/AdminClients/ICommonCodeBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/AdminClients/ICommonCodeBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/AdminClients/ICommonCodeBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/AdminClients/IConsultingActivityBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/AdminClients/IConsultingActivityBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/AdminClients/IConsultingActivityBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/AdminClients/IConsultingActivityBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/AdminClients/IContractBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/AdminClients/IContractBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/AdminClients/IContractBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/AdminClients/IContractBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/AdminClients/IRevenueTrackingBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/AdminClients/IRevenueTrackingBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/AdminClients/IRevenueTrackingBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/AdminClients/IRevenueTrackingBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/AdminClients/ITaxFilingScheduleBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/AdminClients/ITaxFilingScheduleBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/AdminClients/ITaxFilingScheduleBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/AdminClients/ITaxFilingScheduleBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/AdminClients/ITaxProfileBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/AdminClients/ITaxProfileBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/AdminClients/ITaxProfileBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/AdminClients/ITaxProfileBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/AdminDashboardClient.cs b/src/TaxBaik.Web/Components/Admin/Services/AdminDashboardClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/AdminDashboardClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/AdminDashboardClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/AnnouncementBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/AnnouncementBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/AnnouncementBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/AnnouncementBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/ApiClient.cs b/src/TaxBaik.Web/Components/Admin/Services/ApiClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/ApiClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/ApiClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/BlogBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/BlogBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/BlogBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/BlogBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/CategoryBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/CategoryBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/CategoryBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/CategoryBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/ClientBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/ClientBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/ClientBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/ClientBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/CustomAuthenticationStateProvider.cs b/src/TaxBaik.Web/Components/Admin/Services/CustomAuthenticationStateProvider.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/CustomAuthenticationStateProvider.cs
rename to src/TaxBaik.Web/Components/Admin/Services/CustomAuthenticationStateProvider.cs
diff --git a/src/TaxBaik.Web.Client/Services/FaqBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/FaqBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/FaqBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/FaqBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/ILocalStorageService.cs b/src/TaxBaik.Web/Components/Admin/Services/ILocalStorageService.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/ILocalStorageService.cs
rename to src/TaxBaik.Web/Components/Admin/Services/ILocalStorageService.cs
diff --git a/src/TaxBaik.Web.Client/Services/ITokenStore.cs b/src/TaxBaik.Web/Components/Admin/Services/ITokenStore.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/ITokenStore.cs
rename to src/TaxBaik.Web/Components/Admin/Services/ITokenStore.cs
diff --git a/src/TaxBaik.Web.Client/Services/InquiryBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/InquiryBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/InquiryBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/InquiryBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/LocalStorageService.cs b/src/TaxBaik.Web/Components/Admin/Services/LocalStorageService.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/LocalStorageService.cs
rename to src/TaxBaik.Web/Components/Admin/Services/LocalStorageService.cs
diff --git a/src/TaxBaik.Web.Client/Services/TaxFilingBrowserClient.cs b/src/TaxBaik.Web/Components/Admin/Services/TaxFilingBrowserClient.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/TaxFilingBrowserClient.cs
rename to src/TaxBaik.Web/Components/Admin/Services/TaxFilingBrowserClient.cs
diff --git a/src/TaxBaik.Web.Client/Services/TokenRefreshHandler.cs b/src/TaxBaik.Web/Components/Admin/Services/TokenRefreshHandler.cs
similarity index 100%
rename from src/TaxBaik.Web.Client/Services/TokenRefreshHandler.cs
rename to src/TaxBaik.Web/Components/Admin/Services/TokenRefreshHandler.cs
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminCrudPageShell.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminCrudPageShell.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminCrudPageShell.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminCrudPageShell.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminDataPanel.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminDataPanel.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminDataPanel.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminDataPanel.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminDetailSection.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminDetailSection.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminDetailSection.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminDetailSection.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminEditorPanel.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminEditorPanel.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminEditorPanel.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminEditorPanel.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminEmptyState.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminEmptyState.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminEmptyState.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminEmptyState.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminFormActions.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminFormActions.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminFormActions.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminFormActions.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminFormSection.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminFormSection.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminFormSection.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminFormSection.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminLoginForm.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminLoginForm.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminLoginForm.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminLoginForm.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminMetricCard.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminMetricCard.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminMetricCard.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminMetricCard.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminPageHeader.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminPageHeader.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminPageHeader.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminPageHeader.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminShell.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminShell.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminShell.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminShell.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminSkeletonRows.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminSkeletonRows.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminSkeletonRows.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminSkeletonRows.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/AdminTelemetryContext.razor b/src/TaxBaik.Web/Components/Admin/Shared/AdminTelemetryContext.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/AdminTelemetryContext.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/AdminTelemetryContext.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/CommonCodeGroupPanel.razor b/src/TaxBaik.Web/Components/Admin/Shared/CommonCodeGroupPanel.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/CommonCodeGroupPanel.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/CommonCodeGroupPanel.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/CommonCodeListPanel.razor b/src/TaxBaik.Web/Components/Admin/Shared/CommonCodeListPanel.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/CommonCodeListPanel.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/CommonCodeListPanel.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/CommonCodeSelect.razor b/src/TaxBaik.Web/Components/Admin/Shared/CommonCodeSelect.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/CommonCodeSelect.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/CommonCodeSelect.razor
diff --git a/src/TaxBaik.Web.Client/Components/Admin/Shared/ConfirmDialog.razor b/src/TaxBaik.Web/Components/Admin/Shared/ConfirmDialog.razor
similarity index 100%
rename from src/TaxBaik.Web.Client/Components/Admin/Shared/ConfirmDialog.razor
rename to src/TaxBaik.Web/Components/Admin/Shared/ConfirmDialog.razor
diff --git a/src/TaxBaik.Web.Client/_Imports.razor b/src/TaxBaik.Web/Components/Admin/_Imports.razor
similarity index 71%
rename from src/TaxBaik.Web.Client/_Imports.razor
rename to src/TaxBaik.Web/Components/Admin/_Imports.razor
index aa7052b..c43ac24 100644
--- a/src/TaxBaik.Web.Client/_Imports.razor
+++ b/src/TaxBaik.Web/Components/Admin/_Imports.razor
@@ -9,5 +9,9 @@
@using Microsoft.AspNetCore.Components.WebAssembly.Http
@using Microsoft.JSInterop
@using MudBlazor
-@using TaxBaik.WasmClient
+@using TaxBaik.Web.Components.Admin
+@using TaxBaik.Web.Components.Admin.Services
+@using TaxBaik.Web.Components.Admin.Services.AdminClients
+@using TaxBaik.Application.DTOs
+@using TaxBaik.Domain.Entities
@using static Microsoft.AspNetCore.Components.Web.RenderMode
diff --git a/src/TaxBaik.Web/Program.cs b/src/TaxBaik.Web/Program.cs
index 609e866..cca8c94 100644
--- a/src/TaxBaik.Web/Program.cs
+++ b/src/TaxBaik.Web/Program.cs
@@ -402,12 +402,11 @@ app.MapStaticAssets();
// AllowAnonymous: JWT 미들웨어가 Blazor 셸 요청을 401로 차단하지 않도록 한다.
// 인증은 Blazor AuthorizeRouteView → RedirectToLogin 에서 처리한다.
// Phase 8: WebAssembly 렌더 모드 완전 마이그레이션
-// - App.razor: TaxBaik.WasmClient (호스트, WebAssembly)
-// - Routes + Pages + Shared + Layout + Forms: TaxBaik.WasmClient (WebAssembly)
-// MapRazorComponents는 자동으로 root 컴포넌트의 어셈블리 로드
-// 동일 어셈블리의 Page/Shared 컴포넌트는 자동 발견되므로 AddAdditionalAssemblies 불필요
-// (같은 어셈블리를 2번 등록하면 "Assembly already defined" 에러 발생)
-app.MapRazorComponents()
+// - App.razor: TaxBaik.Web (메인 웹 서버)
+// - Routes + Pages + Shared + Layout + Forms: TaxBaik.Web (메인 웹 서버)
+// 모든 Blazor 컴포넌트가 웹 서버에서 통합 서비스됨
+// API는 웹 서버에서만 제공 (클라이언트 프로젝트 분리 불필요)
+app.MapRazorComponents()
.AddInteractiveWebAssemblyRenderMode()
.AllowAnonymous();
diff --git a/src/TaxBaik.Web/TaxBaik.Web.csproj b/src/TaxBaik.Web/TaxBaik.Web.csproj
index 0e29d42..7f592c2 100644
--- a/src/TaxBaik.Web/TaxBaik.Web.csproj
+++ b/src/TaxBaik.Web/TaxBaik.Web.csproj
@@ -3,7 +3,6 @@
-
diff --git a/src/TaxBaik.Web.Client/wwwroot/index.html b/src/TaxBaik.Web/wwwroot/index.html
similarity index 100%
rename from src/TaxBaik.Web.Client/wwwroot/index.html
rename to src/TaxBaik.Web/wwwroot/index.html
diff --git a/src/TaxBaik.sln b/src/TaxBaik.sln
index 5631854..f6ce3a6 100644
--- a/src/TaxBaik.sln
+++ b/src/TaxBaik.sln
@@ -13,7 +13,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TaxBaik.Web", "TaxBaik.Web\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TaxBaik.Application.Tests", "TaxBaik.Application.Tests\TaxBaik.Application.Tests.csproj", "{47D1F07D-F11B-4343-A3C3-1872F0C46AE3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TaxBaik.Web.Client", "TaxBaik.Web.Client\TaxBaik.Web.Client.csproj", "{C46C51D4-9E87-47DF-AB76-2E794F64FD5F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/tmp/home.jpg b/tmp/home.jpg
new file mode 100644
index 0000000..985b11d
Binary files /dev/null and b/tmp/home.jpg differ