저는 주력으로 웹 개발을 하는 사람도 아니고 디자인도 엉망입니다.
웹에 대해 아주 얕은 지식만 있습니다.
만들고 싶은 것도 있고 개인 소개용 웹사이트나 프로젝트에서 API 서버를 개발해야 될 일이 있었습니다.
여러 가지 찾다가 Django, Node.js, ASP.net(core) 세 가지였습니다.
ASP.Net Core를 선택한 이유
매우 간단한 이유인데, 파이썬이나 자바스크립트보단 C#을 더 잘 알고 있었습니다.
파이썬은 거의 모르는 수준이고 자바스크립트는 어려운 문법까진 모르지만 간단한 것과 코드 수정 정도는 가능했습니다.
그에 반해 C#은 제가 만들고 싶은 것을 만들만한 수준은 되었습니다.
거기서도 ASP.Net을 택하느냐 ASP.Net Core를 택하느냐에 갈렸지만 크로스 플랫폼을 지원하는 ASP.Net Core를 택했습니다.
(심지어 도커까지 가능)
ASP.Net Core의 장점
HTML에서 C#코드를 사용 가능(Razor)
@{
//C#코드
int signCount = 0;
foreach (var pair in Model.signCountInGame)
{
signCount += pair.Value;
}
double progressValue = (double)signCount / (double)Model.targetCount * 100.0;
}
<div class="container">
<section>
<div class="row">
<div class="col-12 text-center">
<span class="d-inline-block display-4 mb-3">
목표치: @Html.Raw(Model.targetCount)명
</span>
<div class="container">
<div class="row">
<div class="col-6 offset-3">
<div class=" text-center">
<div class="d-block w-100">
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="@Html.Raw((int)@progressValue)" aria-valuemin="0" aria-valuemax="100" style="width: @progressValue%; background-color: rgb(52, 125, 241);">@progressValue%</div>
</div>
</div>
</div>
</div>
실제 개발에 쓰인 일부분만 떼왔습니다.
'@'를 사용해 C#코드를 사용할 수 있습니다.
컨트롤러에서 뷰로 보내기 전에 다 처리해서 보내던가 뷰로 뷰모델을 보내서 직접 처리하는 방법도 있습니다.
(위 코드는 변수를 하나 더 만들어서 사용하기보다는 원래 있던 변수로 재사용하는 게 더 낫다고 생각했습니다.)
SQL를 작성할 줄 몰라도 된다(Entity Framework Core)
인강 보다가 이 부분에서 박수를 쳤는데 LINQ만 알고 있어도 자유롭게 사용 가능합니다.
_context.SignatureModel.Add(model);
_context.SaveChanges();
어떤 모델을 Insert 할 때 2줄이면 됩니다.
코드 자동 생성(스캐폴딩)
몇 번 클릭하면 자기가 알아서 코드, 파일을 생성해줍니다.
비주얼 스튜디오
무겁지만 값어치는 그 이상입니다.
아예 SQL 서버 뷰어가 있고 DB를 만들거나 테이블을 만들거나 삽입 또는 수정 또한 가능합니다.
ASP.net Core 하면서 특별한 기능은 못 봐서 이 정도로만 설명하겠습니다.
Nuget 사용 가능
이건 안 되는 줄 알았는데 되더군요.
몇 번 클릭하면 라이브러리 설치하기가 쉬우니 정말 좋습니다.
(당연히 라이브러리가 지원하는 플랫폼은 따져야 합니다.)
마지막으로 제가 ASP.Net Core를 사용해서 만든 웹사이트입니다.
수익을 낼 목적이나 많은 관심보다는 연습용으로 만든 취지가 더 강합니다.
조언이나 웹사이트의 문제점을 지적해준 내 친구들에게 고맙다고 말씀드리고 싶습니다.
댓글