상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 타입스크립트에서 제네릭을 사용하는 이유는 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/타입스크립트/ko'>타입스크립트</a>(TypeScript)는 <a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>스크립트의 <a href='https://sangseek.com/sangseeks/상위 집합/ko'>상위 집합</a>으로, <a href='https://sangseek.com/sangseeks/정적 타입/ko'>정적 타입</a>을 지원하여 코드의 안정성과 가독성을 높이는 데 기여합니다. 제네릭(<a href='https://sangseek.com/sangseeks/Generics/ko'>Generics</a>)은 타입스크립트에서 매우 중요한 개념 중 하나로, 코드의 <a href='https://sangseek.com/sangseeks/재사용성/ko'>재사용성</a>을 높이고, 타입 안전성을 강화하는 데 도움을 줍니다. 제네릭을 사용하는 이유는 여러 가지가 있으며, 아래에서 자세히 설명하겠습니다. 1. 코드 재사용성 제네릭을 사용하면 다양한 타입에 대해 동일한 로직을 적용할 수 있습니다. 예를 들어, 배열, 리스트, 맵 등의 데이터 구조를 구현할 때, 특정 타입에 국한되지 않고 여러 타입에 대해 동작할 수 있는 함수를 정의할 수 있습니다. 이를 통해 <a href='https://sangseek.com/sangseeks/중복 코드/ko'>중복 코드</a>를 줄이고, 다양한 타입에 대해 일관된 방식으로 코드를 작성할 수 있습니다. ```typescript function identity<T>(arg: T): T { return arg; } let num = identity<number>(5); // number 타입 let str = identity<string>("Hello"); // string 타입 ``` 위의 예제에서 `identity` 함수는 제네릭 타입 `T`를 사용하여, 어떤 타입의 인자도 받아들이고, 그 타입을 그대로 반환합니다. 이를 통해 다양한 타입에 대해 동일한 함수를 사용할 수 있습니다. 2. 타입 안전성 제네릭을 사용하면 컴파일 타임에 타입 검사를 수행할 수 있어, 런타임 오류를 줄일 수 있습니다. 타입스크립트는 제네릭을 통해 함수나 클래스가 어떤 타입을 사용할 것인지 명시적으로 지정할 수 있게 해줍니다. 이로 인해 잘못된 타입의 인자를 전달하는 실수를 사전에 방지할 수 있습니다. ```typescript function getLength<T>(arg: T[]): number { return arg.length; } getLength([1, 2, 3]); // 3 getLength("Hello"); // 오류 발생: 'string' 타입은 배열이 아닙니다. ``` 위의 예제에서 `getLength` 함수는 배열의 길이를 반환합니다. 만약 문자열을 전달하려고 하면, 타입스크립트는 컴파일 시점에 오류를 발생시킵니다. 3. 유연한 API 설계 제네릭을 사용하면 API를 설계할 때 더 유연하고 확장 가능한 구조를 만들 수 있습니다. 제네릭을 통해 다양한 타입을 지원하는 함수나 클래스를 만들 수 있으며, 이는 라이브러리나 프레임워크를 설계할 때 특히 유용합니다. 사용자는 자신이 원하는 타입을 지정하여 API를 사용할 수 있습니다. ```typescript interface Box<T> { contents: T; } let numberBox: Box<number> = { contents: 100 }; let stringBox: Box<string> = { contents: "Hello" }; ``` 위의 예제에서 `Box` 인터페이스는 제네릭을 사용하여 어떤 타입의 내용을 가질 수 있는 박스를 정의합니다. 이를 통해 다양한 타입의 박스를 생성할 수 있습니다. 4. 타입 추론 타입스크립트는 제네릭을 사용할 때 타입 추론 기능을 제공하여, 사용자가 명시적으로 타입을 지정하지 않아도 타입을 자동으로 추론할 수 있습니다. 이는 코드의 가독성을 높이고, 불필요한 타입 선언을 줄여줍니다. ```typescript function wrapInArray<T>(value: T) { return [value]; } let numberArray = wrapInArray(123); // number[]로 추론 let stringArray = wrapInArray("Hello"); // string[]로 추론 ``` 위의 예제에서 `wrapInArray` 함수는 인자를 배열로 감싸는 기능을 합니다. 타입스크립트는 인자의 타입을 자동으로 추론하여, 반환 타입을 결정합니다. 5. 제약 조건 제네릭을 사용할 때, 특정 타입에 대해 제약을 두어 더 안전한 코드를 작성할 수 있습니다. 제약 조건을 통해 특정 인터페이스나 타입을 만족하는 타입만 사용할 수 있도록 제한할 수 있습니다. ```typescript function logLength<T extends { length: number }>(arg: T): void { console.log(arg.length); } logLength([1, 2, 3]); // 3 logLength("Hello"); // 5 // logLength(123); // 오류 발생: 'number' 타입은 'length' 속성을 가지고 있지 않습니다. ``` 위의 예제에서 `logLength` 함수는 인자가 `length` 속성을 가지고 있는 타입만 받을 수 있도록 제약을 두었습니다. 이를 통해 함수의 사용을 더 안전하게 만들 수 있습니다. 결론 타입스크립트에서 제네릭을 사용하는 이유는 코드의 재사용성을 높이고, 타입 안전성을 강화하며, 유연한 API 설계를 가능하게 하고, 타입 추론을 통해 가독성을 높이며, 제약 조건을 통해 더 안전한 코드를 작성할 수 있도록 하기 위함입니다. 이러한 특성 덕분에 제네릭은 타입스크립트의 강력한 기능 중 하나로, 복잡한 애플리케이션을 개발할 때 매우 유용하게 사용됩니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기