From: 알렉산더 스테파노프

[[/people/alexander-stepanov]]는 제네릭 프로그래밍에 대해 다음과 같이 정의한다.

제네릭 프로그래밍은 1980년대에 처음 만들어졌으며 1990년대에 C++ 표준 템플릿 라이브러리(Standard Template Library, STL)가 탄생하면서부터 점점 널리 알려지게 되었다.

정의 1.1 제네릭 프로그래밍이란 대부분의 일반적인 설정에서 효율 저하 없이 작동할 수 있도록 알고리즘과 자료구조를 설계하는 데 초점을 맞춘 프로그래밍에 대한 접근법이다. 1

'속'에 대한 언급도 흥미롭다.

아리스토텔레스가 남긴 문헌 가운데 가장 중요한 것으로 <오르가논(Organon)> 을 꼽을 수 있다. <오르가논>은 논리학의 여러 영역에 관한 여섯 권의 저작을 가리키는 명칭인데 2600년 동안 그 분야의 절대적인 교과서였다고 해도 과언이 아니다. <오르가논> 중 첫 번째 저작인 범주론에서는 추상화 개념이 제시되었다. 개체, 종, 속의 차이에 대한 설명도 들어가 있다. 요즘은 대부분 사람들이 종이나 속을 생물학에서 사용하는 구분법으로만 생각하고 있지만 아리스토텔레스는 이 방법을 모든 것에 적용했다. 종에는 어떤 유형의 사물의 "필수불가결한" 특성이 들어간다. 한 속에는 여러 종이 들어갈 수 있으며 각 종은 종차(differentia)(같은 속에 들어있는 다른 종과 구분할 수 있게 해 주는 것)로 구분할 수 있다.

제네릭 프로그래밍(종보다는 속 수준에 더 초점을 맞추는 프로그래밍 사고법)이라는 용어가 탄생하게 된 배경에도 아리스토텔레스의 속(genus) 개념이 숨어있다. 2

속도에 대해서도 잊지 않을 것을 강조한다.

제네릭 프로그래밍에서 추상화라는 개념은 추상대수에서 직접적으로 파생되는 것이지만, 프로그래머 입장에서는 효율도 챙겨야 한다. 특정 형에 대해서만 작동하더라도 더 빠른 알고리즘이 있다면 제네릭 알고리즘을 쓸 이유가 없다. 이런 이유 때문에 제네릭 알고리즘을 정의할 때 효율에 대한 부분도 포함시켜야만 한다. 3

함께 읽기

참고문헌

  • 알고리즘 산책 / 알렉산더 A. 스테파노프, 다니엘 E. 로즈 저/서환수 역 / 길벗 / 초판 발행: 2018년 05월 31일 / 원제: From Mathematics to Generic Programming

주석

  1. 알고리즘 산책. 18쪽. 

  2. 알고리즘 산책. 10.1장. 249쪽. 

  3. 알고리즘 산책. 14장. 348쪽.