ASP.NET MVC의 현대화
개요
ASP.NET Web Form 기반 기술 스택의 문제점과 한계를 인식하고, ASP.NET MVC 출시 당시 유행하던 Ruby-on-Rails 기반의 간결하고 빠른 MVC 기반 웹 개발 기술 유행에 부응하여 Microsoft에서도 MVC 아키텍처를 전폭적으로 수용한 ASP.NET MVC 프레임워크를 출시했습니다.
명확한 구분을 위해, .NET Core 계통의 ASP.NET MVC는 ASP.NET MVC Core라는 전체 이름을 기재하는 것이 권장됩니다.
ASP.NET MVC의 특징
ASP.NET 웹 폼의 복잡한 내부 아키텍처를 전부 걷어내고, 비즈니스 로직을 .aspx, .ashx 같은 파일 단위가 아닌 컨트롤러 클래스로 묶을 수 있도록 변화를 주었습니다.
- 컨트롤러 안에는 여러 엔드포인트 주소에 대응되는 처리기 메서드를 정의할 수 있습니다.
- 처리기 메서드 안에는 백엔드 비즈니스 로직이 주로 담기게 되며, 모든 프론트엔드 렌더링은 Razor 기반의 경량화된 ASP.NET 페이지 렌더링 도구를 사용하거나, React, Vue 등의 프론트엔드 전용 프레임워크를 사용하게 됩니다.
- 일반적인 웹 요청 전반을 다루는 경우에는 ASP.NET MVC라고 부르며, 웹 API나 오픈 API에 특화된 요청을 다루는 경우에는 ASP.NET Web API라고 구분해서 부릅니다. 그러나 양쪽 모두 동일 아키텍처, 동일 기술을 사용합니다.
리눅스, 컨테이너 기반으로 모더나이제이션을 해야 할 경우 접근법
IIS와 Windows Server 플랫폼에 의존적인 부분이 없다면, ASP.NET MVC 코드 자체의 마이그레이션 난이도는 높지 않습니다. 다만, Windows Server에 특화된 기능을 이용하는 경우 대체 기술을 고려해야 할 수 있어 변수가 됩니다.