📝Spring WebFlux
Spring 5부터 도입된 리액티브 프로그래밍 기반 웹 프레임워크로 기본적으로 비동기에 탁월해 비동기가 많이 필요한 프로젝트에 사용됩니다. (대규모 요청 처리, 실시간 데이터 스트리밍, IoT, WebSocket 등...)
📝Netty
WebFlux는 톰캣 대신 Netty를 사용해 Non-blocking I/O 처리합니다.
📝.NET
.NET (개발 플랫폼)
├─ ASP.NET / ASP.NET Core (웹 애플리케이션 개발)
├─ WinForms / WPF (데스크톱 앱 개발)
├─ Xamarin / MAUI (모바일 앱 개발)
├─ Unity (게임 개발)
└─ 기타(클라우드, AI, IoT 등)
전체 개발 플랫폼(런타임 + 라이브러리 + 도구)으로 다양한 플랫폼에서 개발하기 위해 다양한 프레임워크들을 제공한다.
예를 들면 웹 개발자의 닷넷이면 ASP .NET을 의미한다.
📝ASP
.NET에서 제공하는 웹 애플리케이션을 만들기 위한 프레임워크입니다
Classic ASP (1996 ~ 2000)
<%
Response.Write("Hello World")
%>
<html>
<body>
<h1><%= "Hello from Classic ASP!" %></h1>
</body>
</html>
VBScript 기반으로 HTML에 스크립트가 섞인 구조
ASP.NET WebForms (2002~) [ .NET Framework]
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html>
<body>
<asp:Label ID="lblMessage" runat="server" />
<asp:Button ID="btnClick" runat="server" Text="Click Me" OnClick="btnClick_Click" />
</body>
</html>
aspx.cs로 로직과 UI를 분리한 형태
ASP.NET MVC (2009~) [ .NET Framework]
public class HomeController : Controller
{
public IActionResult Index()
{
ViewBag.Message = "Hello from ASP.NET MVC!";
return View();
}
}
Model-View-Controller 패턴 도입한 형태
ASP.NET Core (2016~)
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello from ASP.NET Core!");
app.Run();
다양한 플랫폼에 배포 가능 (원래 Window에만 가능했음)
경량 서버 및 다양한 라이브러리 지원
📝멀티모듈 (Multi-Module)
하나의 소프트웨어 프로젝트를 여러 개의 모듈로 분리하여 관리하는 아키텍처나 프로젝트 구조를 의미합니다
- 모듈별 독립성
- 각 모듈은 별도 빌드 가능하며, 특정 기능(도메인, 라이브러리, API)을 담당
- 공유 및 재사용성
- 공용 모듈(Core, Utils 등)을 여러 모듈에서 사용 가능
- 의존성 관리
- 모듈 간 참조 관계를 명확히 관리
- 빌드 효율화
- 변경된 모듈만 빌드 가능 → 빌드 속도 향상
Multi-Module 예제
root-project
├─ module-core
├─ module-service
└─ module-api
📝 Monorepo (모노레포)

Monorepo는 여러 개의 프로젝트를 하나의 저장소(Repository)에서 관리하는 방식을 의미합니다.
Monorepo 예제
/monorepo
├─ /frontend
├─ /backend
└─ /mobile
MultiModule + Monorepo 예제
/company-repo (Monorepo)
├─ /service-order (주문 서비스)
│ ├─ order-api (REST API 모듈)
│ ├─ order-core (도메인 로직 모듈)
│ ├─ order-database (DB 접근 모듈)
│ └─ build.gradle
│
├─ /service-payment (결제 서비스)
│ ├─ payment-api
│ ├─ payment-core
│ ├─ payment-integration (외부 결제 연동 모듈)
│ └─ build.gradle
│
├─ /shared-libraries (공유 라이브러리)
│ ├─ logging
│ ├─ utils
│ └─ messaging
│
├─ settings.gradle (전체 모듈 설정)
└─ build.gradle (루트 빌드 설정)
🔗 참고 및 출처