C#으로 만드는 메모리 기반 제네릭 저장소
이 레슨에서는 타입 안전성을 유지하면서 어떤 데이터 타입이든 저장할 수 있는 제네릭 저장소(repository) 클래스를 만듭니다.
소개
저장소(repository)는 데이터를 저장하고 꺼내는 일을 맡는 중간 계층입니다. 제네릭으로 작성하면 구현 하나로 사용자, 상품, 주문 같은 여러 데이터 타입을 타입 변환 없이 다룰 수 있습니다.
Repository<T> 클래스는 데이터를 private List<T>에 저장합니다. new Repository<string>()을 만들면 저장소는 문자열만 받고, 다른 타입을 추가하려 하면 컴파일러가 알려 줍니다. All 속성은 IReadOnlyList<T>를 돌려주므로 리스트를 읽을 수는 있지만 바깥에서 바꿀 수는 없습니다.
실행 가능한 C# 예제
C#
Program.cs
using System;
using System.Collections.Generic;
class Repository<T>
{
private readonly List<T> _items = new();
public void Add(T item) => _items.Add(item);
public IReadOnlyList<T> All => _items;
}
class Program
{
static void Main() { var repo = new Repository<string>(); repo.Add("C#"); Console.WriteLine(repo.All[0]); }
}
C#디버거로 연습하기
중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.
챌린지로 연습하기
이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.
모든 챌린지