-
C#으로 Web 개발 방법IT/C# 2024. 12. 1. 06:27728x90반응형
C#으로 Web App을 개발하는 과정을 단계별로 더 자세히 설명드리겠습니다. 여기서는 ASP.NET Core를 사용한 개발을 기준으로 설명합니다.
1. 개발 환경 설정
- Visual Studio 설치
- Visual Studio Community 버전은 무료로 사용할 수 있습니다.
- 설치할 때 ASP.NET 및 웹 개발 워크로드를 선택합니다.
- .NET SDK 설치
- .NET SDK 다운로드 페이지에서 최신 SDK를 설치합니다.
- 설치 후 명령어 확인:
dotnet --version
- SQL Server 설치 (선택 사항)
- 데이터베이스가 필요하면 SQL Server나 SQLite, MySQL 등을 설치합니다.
2. 프로젝트 생성
- Visual Studio에서 새 프로젝트 생성
- "파일 > 새로 만들기 > 프로젝트"를 선택.
- "ASP.NET Core Web App (Model-View-Controller)" 또는 "ASP.NET Core Web API" 템플릿 선택.
- 프로젝트 이름 및 저장 경로 설정.
- 템플릿 구성
- .NET 6 이상을 사용하는 경우, Program.cs와 Startup.cs 파일이 통합되어 있습니다.
- 추가 구성 없이 기본 템플릿으로 실행 가능.
3. 프로젝트 구조 이해
- Program.cs
- ASP.NET Core 앱의 진입점.
- 서비스 등록 및 미들웨어 구성을 설정.
var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllersWithViews(); var app = builder.Build(); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run();
- Controllers
- 비즈니스 로직을 처리하고 데이터를 View에 전달.
- 예제: HomeController.cs
public class HomeController : Controller { public IActionResult Index() { return View(); } }
- Views
- 사용자 인터페이스를 구성하는 파일.
- Razor 문법을 사용해 C# 코드를 HTML에 삽입.
- 예제: Views/Home/Index.cshtml
<h1>Welcome to ASP.NET Core!</h1>
- Models
- 데이터 구조 및 비즈니스 로직을 정의.
- 예제:
public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } }
4. 데이터베이스 연동
- Entity Framework Core 설치
- NuGet Package Manager를 사용해 EF Core 패키지 설치:
Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.Tools
- NuGet Package Manager를 사용해 EF Core 패키지 설치:
- DbContext 생성
- public class AppDbContext : DbContext { public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } public DbSet<Product> Products { get; set; } }
- 서비스에 DbContext 등록
- builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
- 마이그레이션 및 데이터베이스 생성
- dotnet ef migrations add InitialCreate dotnet ef database update
5. 미들웨어 구성
- 미들웨어 파이프라인 설정
- 요청/응답 파이프라인에 미들웨어 추가.
- 예: UseAuthentication(), UseAuthorization().
- Static Files
- wwwroot 폴더에 정적 파일 추가 (CSS, JS, 이미지 등).
6. 기능 개발
- 라우팅 설정
- MapControllerRoute 또는 MapGet으로 라우팅 설정.
- 예제:
app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
- CRUD API 개발
- Web API 템플릿을 사용해 RESTful API를 개발.
- 예제:
[ApiController] [Route("api/[controller]")] public class ProductsController : ControllerBase { private readonly AppDbContext _context; public ProductsController(AppDbContext context) { _context = context; } [HttpGet] public async Task<ActionResult<IEnumerable<Product>>> GetProducts() { return await _context.Products.ToListAsync(); } [HttpPost] public async Task<ActionResult<Product>> PostProduct(Product product) { _context.Products.Add(product); await _context.SaveChangesAsync(); return CreatedAtAction(nameof(GetProducts), new { id = product.Id }, product); } }
7. 테스트 및 디버깅
- Visual Studio의 디버깅 도구를 활용해 로컬에서 테스트 (F5).
- 브라우저로 URL 접속해 결과 확인.
8. 배포
- 로컬 서버 배포
- Windows: IIS 사용.
- Linux: Nginx 또는 Apache 사용.
- 클라우드 배포
- Azure App Service:
- Visual Studio에서 "게시"를 클릭하고 Azure에 바로 배포 가능.
- AWS Elastic Beanstalk, Google App Engine도 지원.
- Azure App Service:
추가 학습 자료
더 구체적인 내용이나 코드 예제가 필요하면 말씀해주세요!
728x90'IT > C#' 카테고리의 다른 글
C#으로 GUI 애플리케이션을 개발할 때 사용 가능한 스프레드시트 (1) 2024.12.03 C#으로 간단한 소켓 통신 프로그램 만들기 (0) 2024.12.02 C#으로 Windows GUI 프로그램 쉽게 작성하기 (50) 2024.11.30 C#으로 Unity 제어 방법 (51) 2024.11.29 VS Code에서 C# 개발 방법(사용법)은?! (49) 2024.11.27 - Visual Studio 설치