컴퓨터 '과학'이 뭘까용
저는 미국 컴퓨터 ‘과학’ 박사과정 학생이고, 컴퓨터 시스템 연구를 하고 있습니다.
이 시스템 분야도 대충 학계가 컴퓨터 ‘과학’이라고 인정해주긴 하는데 저는 왜 이게 ‘과학’인가 싶습니다.
왜냐면 컴퓨터 시스템 분야는 과학에 거의 기여하지 않기 때문입니다.
좀 더 자세히 설명하기위해 개쩌는 컴퓨터 시스템 학회(OSDI)의 개쩌는 논문(REPT[1], Best Paper Award 받음)의 예를 들어봅시다.
REPT는 프로그램에 버그가 났을 때, 버그가 난 시점으로부터 명령어를 거꾸로 실행시켜서 버그의 원인을 최대한 알아내는 방법에 대한 논문입니다..
이게 개쩌는 이유는 (1) 모든 명령어를 거꾸로 실행시킬 수는 없고 (e.g., xor eax eax) (2) 동적인 변수 (메모리 주소)는 명령어만 봐서는 값을 모르고 (3) 실제 프로그램은 병렬 처리되었을지도 모른다는 제약조건들을 잘 해결했기 때문입니다.
REPT는 저 3가지 문제를 컴퓨터 명령어들을 정/역 방향으로 반복실행하는 것으로 일부 해결합니다.
저는 이게 오지고 지리는 공학적 아이디어인 점은 인정하지만 과학에 기여한 것은 상당히 적다고 봅니다.
그래프 이론, 오토마타, 암호학 등 이론 컴퓨터 과학에서 풀고있는 문제와는 거의 접점이 없고, 저자들 스스로도 ‘개발자’들에게 이 아이디어가 도움 될 것이라고 논문을 마무리 짓고 있기 때문입니다[2].
즌문분야의 즌문용어가 나오니 어려워보이는데, 좀 쉬운 예시로 삼각형 모양의 커피우유 디자인을 들겠습니다.

1980년경 당시 종이곽이 상용화 되기 전에, 유리병의 단가와 회수 문제로 도입된 일명 ‘포리’팩입니다.
포리 팩은 개쩌는 공학적 디자인입니다. 유리병 대비 적층시 단위 부피당 음료량이 많고, 쉽게 깨지지도 않고, 가격도 쌉니다.
하지만 이런 디자인 고안 자체가 1980년 당시 과학에 뭔가 기여했다고 보기는 어려운 것 같습니다.
컴퓨터 시스템 연구들도 대부분 포리팩처럼 번득이는 직관으로 매우 좋은 공학적 아이디어들을 낸 것들입니다.
다시 말해서, 매우 좋은 공학적 아이디어들일 뿐, 컴퓨터 과학에 기여한 점은 상당히 적습니다.
님들 의견은 어떠신가욤? 동의하시놔욤?
[1] https://www.usenix.org/conference/osdi18/presentation/weidong
[2] we hope one day developers will refuse to debug failures without reverse debugging
