타입스크립트 Record란?: 타입스크립트 Record 이해와 활용
들어가며
코딩의 세계는 변화무쌍합니다. 무언가를 '정확하게' 알고 있다고 생각했을 때, 새로운 정보나 관점이 등장하기 마련이죠. 오늘은 타입스크립트의 Record에 대해서 얘기해볼 예정입니다. Record를 어떻게 활용해야 할지, 그리고 어떻게 함부로 쓰지 않아야 할지에 대한 통찰을 공유하겠습니다.
타입스크립트에서의 Record 이해하기
타입스크립트의 Record는 매우 유용한 유틸리티 타입 중 하나입니다. 아래는 Record의 기본적인 형태입니다:
type Record<K extends keyof any, T> = {
[P in K]: T;
};
- K는 키의 타입을 나타내며
- T는 값의 타입을 나타냅니다.
이렇게 보면 간단해 보이지만, Record를 잘못 사용하면 유지보수성이 떨어지거나 버그의 원인이 될 수 있습니다. 그래서 우리는 Record를 사용할 때 항상 주의해야 합니다.
Record의 흔한 오류와 함정
먼저, Record를 사용할 때 빈 값을 허용하지 않는다는 것을 알아야 합니다. 예를 들어, 다음과 같은 코드를 생각해봅시다.
type MyRecord = Record<string, number>;
const example: MyRecord = {
hello: 123,
world: undefined // Error!
};
여기서 world
의 값으로 undefined
를 주면 타입스크립트는 에러를 발생시킵니다. 왜냐하면 Record는 빈 값을 허용하지 않기 때문입니다.
Record 활용하는 올바른 방법
Record를 올바르게 활용하기 위해서는 먼저 명확한 목적을 가지고 사용해야 합니다.
- Key와 Value의 관계를 명확하게 : Record를 사용할 때는 항상 키와 값의 관계를 명확히 해야 합니다. 예를 들어, 사용자 이름과 연령을 매핑하는 경우 다음과 같이 사용할 수 있습니다.
type UserAge = Record<string, number>;
const users: UserAge = {
Alice: 25,
Bob: 30,
};
- 선택적 속성과 함께 사용하기 : 또한 Record와 선택적 속성(optional properties)을 함께 사용하여 일부 키에 대한 값만 설정할 수 있습니다.
type UserAgeOptional = Record<string, number | undefined>;
const usersOpt: UserAgeOptional = {
Alice: 25,
Bob: undefined,
};
마치며
타입스크립트의 Record는 매우 강력한 도구입니다. 하지만 그만큼 주의깊게 사용해야 합니다. Record의 성격과 함정을 이해하고, 실제 코딩에서 올바르게 활용하면, 훨씬 효율적이고 안전한 코드를 작성할 수 있습니다. 이 글을 통해 Record에 대한 깊은 이해와 올바른 활용 방법을 얻었기를 바랍니다.