오늘 (정확하게는 어제이군요.) 자료구조 시간에 배운 개념 중 하나입니다.
정의
데이타 타입(data type)은 객체(object)와
그 객체 위에 작동하는 연산(operation)들의 집합이다.
- Horowitz 외 2명, 이석호 역, <C로 쓴 자료구조론>, SciTech, 1993, pp. 16
이 정의를 보자 문득 예전에 읽은 글과 일이 생각났습니다.
어디인지 기억이 나지 않지만, 인터넷 어디선가 적혀진 글이었습니다.
그는 컴퓨터 회사의 면접관으로서 취업을 희망한 관련 전공 대학졸업자들에게
얼마나 소질이 있는지 알아보고자 질문을 하였답니다.
(아니면 병역특혜업에 희망한 사람인 듯도 싶습니다.
여하튼 중요한 것은 컴퓨터 회사 취직을 희망한 전공자였습니다.)
그 중에 하나로 '데이터 타입(data type)에 대해 설명해라.'였다고 합니다.
대부분의 면접자들은
'데이터 타입으로 int, char, float, double 등이 있다.'고만 대답했다합니다.
하지만 이는 틀린 답변이라 얘기하였습니다.
그들은 object만 얘기했지 그 object에 따르는 연산을 얘기하지 않았다는겁니다.
그러면서 '전공 공부를 어떻게 하였기에 이런 기본적인 것도 모르느냐?'라고 하였습니다.
제가 그 글을 읽을 때 막 C++에 대해 공부했던 것으로 기억합니다.
따라서 'class에는 data와 연산이 들어가니 그와 같은 얘기인가?'라고 생각했습니다.
하지만 왜 그러한지는 이해하지 못했습니다.
그 후 자료구조론 책을 읽었는데,
데이타 타입이 무엇인지 얘기하는 위의 글이 첫 장에 나온다는 것을 알았습니다.
그제서야 기본적인 것이라 얘기한 그의 심정을 이해할 수 있었습니다.
정말 처음으로 나오는 정의라 하여도 과언이 아닌 그런 내용을 기억하지 못한다는겁니다.
아니, 이건 따로 외워서 기억하는 것이 아니라
당연히 이해해야 하는 것이 아닌가 하는 생각도 하였습니다.
왜냐하면 앞에서 쓰여진 정의의 경우 그 뒤에 너무나 자주 쓰이기에
그 정의가 올바로 인식되지 않으면 후에 고생하는 것을 잘 알고 있었기 때문입니다.
하지만 학생의 입장도 이해가 되는 것이
만약 뒷부분에 배우는 내용이 정의 중 일부만을 강조하는 것처럼 보인다면
다른 부분은 잊어버리게 되는 것도 당연할지도 모른다고 생각하였습니다.
따라서 후에 자료구조를 배울 때 이 점을 염두에 두고 공부를 진행하자고 생각했습니다.
제 기억으로 그 다짐을 한 후 3년이 지난 듯싶습니다.
왜냐하면 자료구조는 컴공 2학년이 듣는 과목이라 생각했기에
1학년을 마치고 휴학한 후 전공 과목에 잠시 맛을 보았던 기억이 있습니다.
그 때 저런 일을 겪은 것으로 추측하고 있습니다.
여하튼 3년이 지나 그 때의 다짐을 떠올리면서 자료구조 수업이 시작되었습니다.
과연 이 수업이 마치고 나서 제 질문에 제대로 답을 하는 제가 되어있을지 궁금합니다.^^
대학 졸업까지... 905일....
- 어떤 책을 먼저 읽을까요? (12)2008/09/08
- 이글루스 로그인이 안됩니다. -> 이글루스 로그인... (14)2008/09/07
- 잡다한 이야기 2008.09.07 (18)2008/09/07
- 데이터 타입(data type)이란 무엇인가? (4)2008/09/04
- 공지사항을 따라도 피해가 생기면 자기 몫 (14)2008/09/02
- 2008년 여름방학계획 (14)2008/08/31
- 2008년 여름방학이 끝났습니다. (10)2008/08/31
글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.







댓글을 달아 주세요
배열만 해도 흔히 "일련의 연속된 메모리 위치" 이런식으로 통념이 잡혀있는데, 정확한 의미는 "익덱스로 구별되는 같은 타입의 자료의 모임"이죠(몇몇 언어에서는 전혀 다른 개념이긴 하지만 ^^;)
전부 그쪽이 쓰기에 편하니까 혹은 당장 이해하기 용이해서 넘기다가 고착화되버린게 아닐까요. 저역시 편한식으로 이해하고 만족한 답이 꽤 남아있을것 같습니다만, 좀더 공부해서 제대로 된 정보를 채워나가야겠네요
오.. 인덱스로 구별되어있다는 것도 있군요.
전 동형의 자료모임이라고만 이해하고 있었습니다.
Struct는 이형의 자료모임으로...;;;;
네.. 어쩌면 그런 개념이 있다는 것이 당연하다고 생각하기에
그것을 표현하는 것을 잊고 있는 것이 아닌가 하는 추측도 해봅니다.
데이터 타입만 보더라도 연산은 자동으로 존재(?)한다는 느낌이라고 할까요?^^;;;;
int, char, float, double이든 가감승제는 다 제공하여 차이점이 드러나지 않으니까요.;;;
그러고보니 이번에 저 얘기를 들었을 때는 class가 아니라 group쪽을 생각했습니다.
컴공에서 수학과로 넘어온 느낌...;;;;;;^^
자료구조를 배워보지도 못해고, 전산 비전공자인 저에게는 뭔가 별나라 이야기 인것 같은데요. ^^
그러나 저러나 매우 신선한 내용이네요. 연산도 데이터의 타입이 된다는 것은 처음 알았습니다.
이 글을 읽기 전까지 연산은 인스턴스나 메쏘드라고 생각했거든요. ^^
헉.. 자료구조를 배우시지 않으셨다면서 그렇게 잘하시다니....ㄷㄷㄷ
저도 저 공부를 하기 전까지 연산에 대해 생각하지 않았습니다.
너무나 당연히 있어야 한다고 생각했기 때문일까요?OTL....