객체지향은 소프트웨어를 재사용 가능한 객체라는 단위로 쪼개서 생산하는 기법이다.
즉, 재사용 가능한 것이 아니면 객체지향 소프트웨어 개발 방식이 아니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
객체지향 프로그래밍 (OOP)의 핵심은 재사용 + 유지보수의 편의성에 있다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
어떤 사람은 C++ 을 배우면 cin,cout 함수를 사용해야 한다고 생각 한다. 그것은 멍청한 생각이다.
printf, sprintf 는 보다 직관적으로 원하는 기능을 수행한다.
또한 우리는 c++ 또는 java의 모든 문법을 배우는것이 목적이아니다.
c++ 또는 c#, java 등이 제공하는 기능을 이용해서 객체지향적인 소프트 개발에 익숙해지는 것이 목적이어야 한다.
그럼 객체지향 소프트 개발에 일정한 형식(왕도)이 있는가?
그런건 없다. 몇몇 보편적인 패턴을 디자인 패턴으로 참고 할 수 있지만 그것이 반드시 너의 업무에 필요하거나
꼭 쓰일꺼라고 생각할수 없다.
객체지향의 대부이자 레셔널 로즈의 창시자가 오래전에 포스코에 왔었다.
포스코에선 계속되는 시스템 교체와 그에 따른 운영소프트 개발 비용의 상승을 줄이기 위해 객체지향과 CBD를 공장 제어에 도입했다.
하지만 공장 공정은 OOP나 CBD 를 도입하기엔 변수가 너무 많고 그것은 어쩌면 윈도우즈OS가 객체지향으로
설계되지 못한것처럼 당연한 것이었다.
" 어떻게 하면 CBD와 OOP를 적용해서 보다 재사용 가능하고 유지보수가 편한 소프트를 만들수 있습니까? " 하고 포스코 직원이 물었다.
"... 스마트 하게 하십시오 " 그것이 물음에 대한 답이었다.
객체지향의 대부는 공장 프로세스가 OOP나 CBD를 적용하기엔 변수가 많고 개발 시간과 비용 측면에서 항상 유리하지 않음을 알고 있었다.
심지어 우리는 GOTO 문의 폐단을 배웠지만 다른 문법이 주지 못하는 GOTO문이 주는 간결한 해결책 또한 있음을 알아야 한다.
3가지만 명심해라
첫째, 유지보수가 편리하고 재사용 가능하지 않으면 객체지향 개발이 아니다.
둘째, goto 문이든 cout이든 printf든 대부분의 경우 중요하지 않다 그건 엄밀히 따지면 객체지향과 전혀 상관없다.
셋째, 스마트하게 해라. 그것은 형식에 얽매이지 말고 원하는 OOP를 구현 하라는 의미가 있다.
ㅇ
그럼 개체랑객체 차이를 설명해주세요
둘다 object 이니라
개념적으론 그렇긴 하지만 의미론 적으로 분리를 할 수 있을텐데요? 구분지어서 당신의 논리력을 보여주세요
어느 it업체 인사담당관의 질문이었어요 ㅎㅎ
보통의 it업체 인사담당관이 OOP를 이해하고 있다고 생각할수 없어.. 말장난은 그만 하시요 가 정답일듯.
아.. ㅈㅅ 기술면접 실무자의 질문이네요ㅎㅎ
말장난은 맞는거 같은데 나름대로 답변한분들이 몇몇 계심
개체가 class고 객체가 object냐? 프로그래밍을 한글로 배워본적이 없어서 잘 모르겠네
기내요
개체는 entity, 객체는 object 혹은 class다. 개체는 현실 세계의 대상이고 객체는 그것이 클래스라는 형태로 범주화된 후 해당 클래스에 따라서 메모리에 생성된 개별적인 instance이다.
내가 인사 담당자고 ㄴㄴ 가 응시자라면 나는 ㄴㄴ에게 공부를 좀하지만 실무 개발 능력은 의문이라고 표시 할것임, 도데체 그런 의미적 구분이 실무에 OOP나 심지어 그냥 프로그램 짜는데 무슨 도움이 있는지 스스로 생각 해보라고 할것임, 내 저는요 불합격 드립니다.
지는 아예 대답도 못한 주제에 열폭 보소ㅋㅋㅋ