본문 바로가기

개발

[C#으로 웹 개발] 0. 계기

완전 기초 수준의 C#과 컴공 지식만을 가지고
무작정 웹 개발을 시도하는 과정을 써내려가는 포스팅 입니다.
가급적 Microsoft Learn 자습서를 기준으로 포스팅이 진행됩니다.

왜 C# (.NET) 으로 웹 개발을 하는가

몇 년전에 단순히 웹 개발이라는 분야에 대한 호기심으로 React와 Spring을 배워 본 적이 있었습니다.

 

React의 경우에는 JS로 개발을 하게 되는데, Python, JS 등 스크립트 계열 언어에 대한 안 좋은 기억이 많아 처음부터 제 마음속에 패널티를 가지고 체험을 시작하였습니다.

그런데 체험을 하다보니 뭔가 세팅해야할게 굉장히 많았고 오류도 굉장히 많이 발생하였습니다.


Spring은 비교적 저에게 친숙한 Java로 개발을 할 수 있었는데, React와 마찬가지로 생각보다 세팅할 것이 많았고, 결정적으로 React에 대한 흥미 감소가 그대로 전염되어 "웹 개발은 내 타입이 아니야" 라는 마음으로 함께 접어버렸습니다.

 

그 사이에 저는 취미로 .NET Winforms라는 데스크톱 앱 프레임워크를 사용하여 프로그램을 개발하면서 C# 그리고 .NET 계열과 친해지고 있었습니다.

그러던 중 최근 웹개발을 해야 할 만한 계기가 생겨서 다시 알아보기 시작했는데, JS는 죽어도 다시 보기 싫어서 다른 방법이 없을까? 생각하던 중 Blazor라는 친구를 보게 되었습니다.

 

Blazor는 ASP.NET Core의 일부로 ASP.NET Core이라는 물건 하나면 프론트 및 백엔드 풀스택을 대부분 C#으로만 개발이 가능하다고 하니 시작하지 못할 이유는 없었습니다.

굳이 하나 걸리는 점은 한국에서만큼은 주류가 아닌 기술이란 점이었습니다.

하지만 결국 웹 개발하는 일이라는게 다 거기서 거기 일것같아서 (경솔한 판단일수도..) 이거라도 배우면 혹시나 만에하나 웹 개발쪽으로 진로를 정한다면 큰 도움이 되지 않을까 싶어서 무시하고 진행하기로 하였습니다.


ASP.NET Core & Blazor

출처 : https://www.youtube.com/watch?v=K6VCOFiVhmQ

ASP.NET Core를 매우 간략하게 표현해보자면 "웹 프레임워크" 라고 할 수 있겠네요.

MS Doc만 보더라도 속한 기술들이 꽤나 광범위해서 뭔가 콕 집어서 뭐다 라고 말하기는 힘들어 보였습니다.

어쨋든 인터넷 연결되는 앱 (사실상 웹 클라, 서버?) 제작을 위한 프레임워크라고 소개되어있으니까요.

 

출처 : CodeOpinion

ASP.NET Core에는 프론트&백엔드를 모두 개발 가능한 MVC 가 있습니다.

이 포스팅에서 백엔드단을 개발할 때는 이 MVC의 Web API라는 친구를 활용할 예정입니다.

 

지금까지 .NET 으로 하는 웹 개발은 대부분 ASP.NET Core MVC로 이루어지고 있었다고 합니다.

Angular, React, Vue와 연동이 지원되기 때문에 프론트단은 사실상 JS로 개발되고 있었다고 볼 수 있죠.

하지만, MVC로는 백엔드단만 개발하고 프론트단은 다른 방법을 쓸 예정입니다.

 

WASM이라는 기술의 등장으로 웹 프론트를 다른 언어로 작성할 수 있게 되었습니다.

기존에 ASP.NET Core에는 Blazor라는 기술이 있었는데, 이 기술에 WASM 기술을 접목시키면서

C#으로 프론트단을 개발할 수 있는 방법이 생기게 되었습니다.

 

이 포스팅에서 프론트단은 이 ASP.NET Core Blazor WebAssembly를 사용하여 진행할 예정입니다.

 

기본 샘플 코드 중 일부

Blazor는 Razor라는 HTTP와 C#이 독특하게 결합된 마크업 언어를 사용하는것이 특징입니다.

@ 문자만 있으면 HTML 태그 안에서도 C# 코드가 들어갈 수 있는것이 상당히 흥미롭습니다.

다른 샘플 코드를 보니 HTML 태그 안에 foreach 같은 제어문도 넣을 수 있어서

코드 양을 상당히 줄일 수 있지 않나 하는 생각이 들었습니다.

 

결론적으로 나는 JavaScript가 싫은데 프론트와 백엔드를 모두 C#으로 작성할 수 방법이 있어서 ASP.NET Core를 선택했다! 정도로 보시면 될 것 같습니다.

 

자세한 설명은 아직 배우지 않았기 때문에 천천히 배워가면서 포스팅에 녹여낼 예정입니다.

다음 포스팅에서는 개발 환경을 세팅해보도록 하겠습니다.


참고자료

ASP.NET Core 개요[웹사이트]. (2023.03.09). URL: https://learn.microsoft.com/ko-kr/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-7.0

 

ASP.NET Core Blazor[웹사이트]. (2023.03.09). URL: https://learn.microsoft.com/ko-kr/aspnet/core/blazor/?view=aspnetcore-7.0

 

.NET과 ASP.NET Core 소개[유튜브]. (2023.03.09). URL: https://www.youtube.com/watch?v=K6VCOFiVhmQ


의견을 댓글을 통해 자유롭게 남겨주시면 감사하겠습니다.