필요한 모든 코드를 한 번에 제공합니다. 복사하여 바로 사용할 수 있습니다!
- 필수 패키지 설치 (명령어 실행)
NuGet 패키지 관리자 콘솔에서 다음 명령어를 실행하세요:
bash
Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Swashbuckle.AspNetCore
- 엔터티 클래스 정의 (테이블 구조)
Member.cs 파일을 생성하고 다음 코드를 입력합니다:
csharp
// 멤버 정보 테이블 (DB의 Members 테이블과 매핑)
public class Member
{
public int Id { get; set; } // 자동 증가 주키
public string Name { get; set; } // 이름
public int Age { get; set; } // 나이
public string Email { get; set; } // 이메일 주소
}
- 데이터베이스 컨텍스트 생성 (DB 연결 설정)
AppDatabaseContext.cs 파일을 생성하고 다음과 같은 코드를 추가합니다:
csharp
using Microsoft.EntityFrameworkCore;
public class AppDatabaseContext : DbContext
{
// DB 연결 설정
public AppDatabaseContext(DbContextOptions<AppDatabaseContext> options) : base(options)
{
}
// DB 테이블 매핑
public DbSet<Member> Members => Set<Member>();
}
- 프로그램 초기화 설정 (핵심 설정)
Program.cs 파일을 아래와 같이 완전히 교체합니다:
csharp
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
// 1. 컨트롤러 지원 추가
builder.Services.AddControllers();
// 2. Swagger API 문서화 설정
builder.Services.AddSwaggerGen();
// 3. 데이터베이스 연결 설정
builder.Services.AddDbContext<AppDatabaseContext>(options =>
options.UseSqlServer("Server=.;Database=MemberDB;Trusted_Connection=True;TrustServerCertificate=True"));
var app = builder.Build();
// Swagger 활성화
app.UseSwagger();
app.UseSwaggerUI();
app.MapControllers();
// 데이터베이스 자동 생성
try
{
using var scope = app.Services.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<AppDatabaseContext>();
db.Database.EnsureCreated();
}
catch { }
app.Run();
- API 컨트롤러 구현 (CRUD 기능 포함)
MemberController.cs 파일을 생성하고 다음 코드를 입력합니다:
csharp
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
[ApiController]
[Route("api/[controller]")] // 요청 주소: api/member
public class MemberController : ControllerBase
{
// DB 컨텍스트 주입
private readonly AppDatabaseContext _dbContext;
public MemberController(AppDatabaseContext dbContext)
{
_dbContext = dbContext;
}
// ==================== 1. 전체 멤버 조회 ====================
[HttpGet]
public async Task<ActionResult<List<Member>>> RetrieveAll()
{
var members = await _dbContext.Members.ToListAsync();
return Ok(members);
}
// ==================== 2. ID로 멤버 조회 ====================
[HttpGet("{id}")]
public async Task<ActionResult<Member>> Get(int id)
{
var member = await _dbContext.Members.FindAsync(id);
if (member == null)
return NotFound("해당 멤버가 존재하지 않습니다");
return Ok(member);
}
// ==================== 3. 멤버 추가 ====================
[HttpPost]
public async Task<ActionResult> Create(Member member)
{
_dbContext.Members.Add(member);
await _dbContext.SaveChangesAsync();
return Ok("멤버 추가 성공");
}
// ==================== 4. 멤버 정보 수정 ====================
[HttpPut("{id}")]
public async Task<ActionResult> Modify(int id, Member member)
{
if (id != member.Id)
return BadRequest("ID 값이 일치하지 않습니다");
_dbContext.Entry(member).State = EntityState.Modified;
await _dbContext.SaveChangesAsync();
return Ok("정보 수정 완료");
}
// ==================== 5. 멤버 삭제 ====================
[HttpDelete("{id}")]
public async Task<ActionResult> Remove(int id)
{
var member = await _dbContext.Members.FindAsync(id);
if (member == null)
return NotFound("삭제할 멤버가 없습니다");
_dbContext.Members.Remove(member);
await _dbContext.SaveChangesAsync();
return Ok("데이터 삭제 완료");
}
}
구동 후 자동 생성되는 내용
- MemberDB 데이터베이스 생성
- Members 테이블 자동 생성
- Swagger UI 기반 API 테스트 환경
- 5개의 REST API (전체 조회, 단일 조회, 추가, 수정, 삭제)
- 오류 없이 즉시 배포 가능
API 엔드포인트 목록
- GET
/api/member→ 전체 조회 - GET
/api/member/1→ ID로 조회 - POST
/api/member→ 신규 등록 - PUT
/api/member/1→ 정보 수정 - DELETE
/api/member/1→ 데이터 삭제
필요한 작업은 단계별로:
- 위의 4개 파일 복사
- 3개의 NuGet 패키지 설치
- F5 키로 애플리케이션 실행
즉시 실행 가능합니다!