객체지향(이제부터 OO) 소프트웨어 개발은 160년대경부터 시작.
상당히 오래전부터 시작되었음에도 퍼지지않은 이유는 업계에서는 기존의 시스템에도 잘돌아가는데 굳이 교체할 설득력이 없었으며, 위험과 비용을 감수하고 싶지않았다.
지난 15년간에서야 OO가 꾸준히 발전한것이다.
절차지향과 OO의 차이는 뭘까? 그 차이는 뭐 검색하면 많이나오지...
그렇다면 OO란 뭘까? 대게 OO를 설명할때 객체라는 단어를 이용하여 설명한다. 근데 객체는 뭔데??
객체란 속성과 행위를 두가지 용어로 정의된다. 뭐 책에서 일반적으로 자동차와 돌덩이를 설명하는데..
다시 리마인드한다치고 사람으로 치면..
속성 : 키, 색, 나이, 성별.
행위 : 걷기, 말하기, 숨쉬기
속성(에트리부트), 행위(메서드) ....(영어쓰기 귀찮다.)
이 기초정의에 있어서 객체(object)는 데이터와 행위를 모두 가지고 있는 실체(Entity)이다.
여기서 모두 가지고 있다는점이 중요하다.
그렇다면 절차지향과 차이를 설명하기가 수월해진다.
절차지향적 프로그래밍 코드는 완전히 구분된 함수나 프로시저에 배치된다고 볼 수 있다.
함수도 뭐든 상관없어 그냥 입력받고 출력을 내보내는 펑션 그거면 충분히 이상적이다라고 보는거다. 이것또한
나쁠건없다.
OO는 속성과 행위는 단일 객체에 포함.
절차지향 이건 그냥 따로 국밥같은거다.
절차지향의 복잡하게 글로벌 데이터와 수많은 펑션의 나열은 논리적으로 이해가 힘들 수도 있다.
객체는 그 위의 사람의 예처럼 성격을 잘 맞춘다면 논리적으로 한단계 발전된 반응으로 쉽게 코딩할 수있지않을까?
오늘은 여기까지
대표적인 OO의 특징이라는 은닉화 캡슐화 이건 뭐 책을 읽다보면 나오겠지. (클래스 설계 지침)
'프로그래밍 > 공부관련' 카테고리의 다른 글
QT] 라벨 및 각 컨트롤에 대한 스타일시트적용 예 (0) | 2013.04.24 |
---|---|
1월2주차 - DB공부 (1) (0) | 2013.01.08 |
벡터와 벡터간의 각도구하기 (0) | 2011.04.11 |
벡터 min, max... (0) | 2011.04.05 |
GetMessage와 PeekMessage (1) | 2011.03.23 |