본문 바로가기
Backend/C# .NET

C#의 recode 레코드 왜 쓰나요? 샘플 코드 예제 / 명명 규칙

by SOLYI 2023. 12. 4.

record

record타입이란 객체 내의 멤버가 변하지 않는 불변 참조 타입(Immutable Reference Type) 생성을 목적으로 한다.
기존엔 class 키워드를 사용해서 클래스를 정의 했지만 record라는 키워드를 통해 불변 타입을 정의하게 된다.

C# 9 이상 버전에서 사용할 수 있다.

코드 예제

  • class로 작성한 Response
      public class ScoreResponse
      {
          public long Id { get; init; }
          public string Name { get; init; }
          public decimal AverageScore { get; init; }
      }
    • record로 작성한 response
      public record ScoreResponse(
          long Id, 
          string Name, 
          decimal AverageScore);

record를 사용하는 이유

DTO를 생성할 때 record를 사용하는 두가지 주요 이유는 다음과 같다.

  1. 불변성
  2. 기본 생성자 (Primary constructur)

불변성은 DTO가 변경되지 않도록 도와주고 기본 생성자는 간결한 구문을 작성하는데에 도움이 된다.

record 명명 규칙

레코드 명명 규칙에 자주 사용되는 형식은 다음과 같다.

  • [TypeName]Dto
  • [TypeName]Model
  • [TypeName]Response

작성자는 주로 마지막의 [TypeName]Response 를 사용한다고 한다.

Positional record

record 형식으로 작성하면 다음과 같이 순서만 맞춘다면 Constructor,Deconstructor를 간단하게 사용할 수 있다.

// record
public record Person(string Name, int Age);

// Constructor 
Person tom = new Person("Tom", 30);

// Deconstructor 
var (name, age) = tom;

출처 Milan Jovanović / 예제로 배우는 C# 프로그래밍
반응형