카테고리 이론(Category Theory)

카테고리 이론(Category Theory)은 컴퓨터공학과 학부 교과목에서 잘 가르치지 않지만 프로그래밍 언어를 비롯한 컴퓨터과학 여러 곳에서 이용되는 수학입니다. 학교 다닐 때 수학 공부 열심히 안 했기 때문에 최근에 Benjamin C. Pierce의 Basic Category Theory for Computer Scientists를 읽어보고 있는데 covariant/contravariant functor를 부분을 보다가 문득 익숙한 용어라는 생각이 들었습니다.

알고보니 객체지향 언어의 타입을 논할 때 서브클래스의 메서드가 상위 클래스 메서드의 리턴 타입이나 인자 타입을 변경하는 규칙을 말할 때 쓰는 covariant 혹은 contravariant 타입 시스템(type system)이 카테고리 이론에서 빌려온 말이더군요. 어원 이런 거 제대로 알려면 역시 사람은 공부를 해야하나 봅니다.