인메모리 데이터베이스
- 변수, 배열, 구조체, 클래스 등에 저장되는 데이터를 다루는 기술
- 프로그램을 실행하고 메모리에 저장된 데이터는 프로그램이 종료되면 자동으로 소멸
- 메모리에 임시로 저장된 데이터들은 파일 또는 데이터베이스에 저장하여 영구적으로 보관 가능
CRUD 작업하기
- Create (입력)
- Read (출력) 또는 Retrieve (검색)
- Update (수정)
- Delete (삭제)
리포지토리 패턴
프로그래밍을 할 때 자주 사용하는 유형을 패턴이라고 함
데이터베이스 프로그래밍에서는 일반적으로 리포지토리 패턴이 가장 많이 사용
- 모델 클래스 (model class)는 데이터 구조를 나타냄
- 리포지토리 클래스(repository class)는 데이터에 대한 입력, 출력, 수정, 삭제 등을 담당하는 클래스를 의미
- 컨텍스트 클래스(context class)는 모델과 리포지토리를 사용하여 업무 하나를 묶어 관리하는 역할
모델, 리포지토리, 컨텍스트 클래스를 만들고 사용하기
모델 클래스를 만들고, 이 클래스를 사용하여 데이터를 채워 넘겨주는 리포지토리 클래스를 만듦
그리고 이를 호출하는 컨텍스트 클래스를 만들고, 마지막으로 Main() 메서드에서 테스트하는 단계로 모델, 리포지토리, 컨텍스트, 메인 클래스의 단계를 사용함
using System;
using System.Collections.Generic;
/// <summary>
/// 모델 클래스
/// </summary>
public class SignBase
{
public int SignId { get; set; }
public string Email { get; set; }
public string Password { get; set; }
}
/// <summary>
/// 리포지토리 클래스
/// </summary>
public class SignRepository
{
public List<SignBase> GetAll()
{
var signs = new List<SignBase>()
{
new SignBase() { SignId = 1, Email = "a@a.com", Password = "1234"},
new SignBase() { SignId = 2, Email = "b@b.com", Password = "2345"},
new SignBase() { SignId = 3, Email = "c@c.com", Password = "3456"},
};
return signs;
}
}
/// <summary>
/// 컨텍스트 클래스
/// </summary>
public class SignContext
{
public List<SignBase> Signs
{
get
{
return (new SignRepository()).GetAll();
}
}
}
/// <summary>
/// 테스트 클래스
/// </summary>
class SignBaseSignRepository
{
static void Main()
{
var signs = (new SignContext()).Signs;
foreach (var sign in signs)
{
Console.WriteLine($"{sign.SignId}, {sign.Email}, {sign.Password}");
}
}
}
'C# > C# 교과서' 카테고리의 다른 글
[C# 교과서] 59. XML과 JSON 맛보기 (0) | 2023.02.11 |
---|---|
[C# 교과서] 58. 스트림과 파일 입출력 맛보기 (0) | 2023.02.10 |
[C# 교과서] 56. 비동기 프로그래밍 (0) | 2023.02.09 |
[C# 교과서] 55. 스레드 (0) | 2023.02.08 |
[C# 교과서] 54. NuGet 패키지 (0) | 2023.02.08 |