콘텐츠

올리브영 타입스크립트로 알아보는 제네릭과 매개변수 다형성

역량 개발 · 올리브영 테크 · 2025.12.31

이 글은 올리브영의 실무 사례를 통해 TypeScript의 핵심 개념인 Generics와 매개변수 다형성에 대해 깊이 있게 설명하고 있습니다. 먼저 Subtype Polymorphism만으로는 해결하기 어려운, 서로 다른 타입에 동일한 로직을 적용해야 하는 상황에서 Generics가 어떻게 타입을 추상화하여 코드 중복을 줄이고 타입 안전성을 유지하는지 다룹니다. 특히 any를 사용할 때 발생하는 타입 정보 손실 문제와 Generics의 차이점, 그리고 실무에서 API 응답 구조를 정의할 때 ApiResponse와 같이 Generics를 활용하는 유용한 패턴을 소개합니다. 또한, 특정 속성을 가진 타입만 허용하는 Generic Constraints와 더불어, 복잡한 개념인 Variance(Covariance, Contravariance, Invariance)가 TypeScript에서 어떻게 구현되어 실용성과 타입 안전성 사이의 균형을 맞추는지 상세히 설명합니다. 마지막으로 Partial, Pick, Omit과 같은 내장 Utility Types의 원리를 통해 Generics의 강력함을 다시 한번 확인할 수 있습니다.