'객체'에 해당되는 글 1건

  1. 2008.06.09 객체지향프로그래밍? 객체란?
Java/Based2008. 6. 9. 15:39
객체지향 프로그래밍이라는 말을 많이 들었을겁니다.
물론 컴퓨터언어쪽 관련 전공자가 아니면 좀 생소한 이야기일수도 있지만...
프로그래밍에 취미 혹은 밥벌어 먹을 생각이 있는 분들이라면 한번쯤은 들어봤을 이야기일 테죠

제가 처음 자바를 접했을 당시에는 이 객체지향이라는 말에 참 익숙치 못했고,
어떤 의미인지 파악도 하지 못한체 코딩을 하다보니..
자바라는것에 큰 흥미를 얻지못했고, C++ 또한 객체지향의 개념이 첨가되었기에
갑자기 프로그램쪽에 흥미를 확 잃었던적이 있습니다.

미리 준비된 상태에서 쓰는 글이 아니라 좀 두서가 없지만,
왜 갑자기 이런 이야기를 하는고 하니..

객체지향의 개념을 확실히 이해하고 깨닫기전에
섣부르게 클래스를 만들고 프로그램을 짜기 시작하면
뭐.. 처음에는 문제없이 프로그래밍을 하겠지만 점점 프로그램이 거대화 되어 갈 수록
객체지향이라는 부분을 이해하지 못하는것이 얼마나 큰 문제가 되는지 깨닫게됩니다.

객체지향, 객체 라는것을  설명하기 전에...
왜!  라는 의문을 가져봅니다.

왜 객체지향인 걸까요?
그냥 프로그래밍이 아니라 객체를 지향하는 프로그래밍이라는것이
왜 생겨나게 되었을까 하는 생각을 해봐야 할 거 같습니다.

제 생각을 말하자면 '좀 더 편하게 프로그래밍 하자' , '좀 더 구조적으로 프로그래밍 하자'
이런 생각에 나오게 된게 아닐까 싶습니다.
기존의 프로그램밍 방식에서는 구조적이라던가 코드를 재사용하는데 제약이 많았지만
객체지향이라는 개념이 나오면서 이러한 한덩어리의 프로그램의
조그마한 블럭과 같이 되었다고나 할까요? (블럭 같은거지.. 블럭은 아니죠 ^^)


그렇다면 이 객체라는것은 또 무엇인지 알아야 할 거 같습니다.
그렇다면 저는 한마디로 이렇게 말할겁니다. (대부분 아시겠지만 ^^)
'객체는 모든것 이다.'
그렇습니다. 객체란 모든것입니다. 이 세상의 모든것 들을 모두 다 객체로 보는것이죠.
너와 나도 객체요, 컴퓨터도 핸드폰도, 유리컵도 객체로 봅니다.
컴퓨터 객체라고 하면 컴퓨터라는 객체 하나 또한 여러개의 객체들이 모여서 만들어진
객체가 될 것입니다. (그렇지 않을수도 있습니다)

간단한예로 들자면 컴퓨터에는 마우스라는 객체가 붙어있죠.
마우스객체는 혼자서 동작하지는 못하지만 컴퓨터의 메인보드 객체와 연결되면 동작을 하게 됩니다.
그렇다면 마우스라는 객체는 단 하나의 메인보드 객체와만 연결되야 동작할까요?
대답은 '아니다' 일 겁니다.

회사에서 쓰던 마우스를 집에 가져가서 집에있는 컴퓨터와 연결하면 동작을 안할까요?
USB 포트이냐 PS/2 포트이냐 하는 차이로인해 컨버터가 필요할 지언정 큰 무리없이 사용 할 수 있는것이죠.

다른 예로 대기업에서 한꺼번에 판매하는 데스크탑 PC 와 용산에 가서 자신이 직접 골라 조립한 PC로
보자면 기존의 프로그래밍은 대기업에서 내놓은 서비스형 PC로 고장이 나거나 업그레이드를 하려면
그 회사의 제품과 교체하거나 업그레이드해야하는 반면에 용산에서 산 PC는 그와 상관없이
마음대로(실제로 마음대로는 아니겠지만) 교체, 업그레이드가 가능하다는것입니다.

좀 쉽게 이해하시라고 예를 들었는데 오히려 더 헷갈리시려나요?
하지만 이 개념은 어느 순간.. 확 깨닫는것 같습니다. 그리고 중요한것은 객체지향을 안다 모른다..
객체를 안다 모른다라기 보다는

왜 객체를 쓰는지.. 왜 객체지향적인 프로그래밍이 필요한지에 대해 항상 의문부호를 던져야 하는다는겁니다.
스스로 많이 생각해보시고, 다른사람과도 의논해보는것도 좋고, 토론도 좋을것 같습니다.
다시한번 말씀드리지만..  왜!   왜! 그런것인가?   항시 생각해보시길 바랍니다. ^^
Posted by 햇 님