OOP가 뭘까요?

hunjuly의 이미지

OOP의 무용론에 대한 게시물을 읽다가.. 문득 그런 생각이 들었습니다.

'OOP가 뭐지??'

네.. 객체 지향 프로그래밍.. 이라는 것은 누구나 아는 사실이고..
캡슐화.. 은닉성.. 이런 것들이 OOP의 특징이라는 것도 널리 알려진 사실입니다만..
너무 추상적이라는 생각이 들었습니다.

프로젝트를 진행하면서.. 클래스를 만들고 인터페이스를 상속 받고..
좋은 구조/패턴을 가져가려고 신경을 많이 쓰는 편인데..
과연 이런 것들이 OOP인가.. 라는 생각도 듭니다.

몇 년 전에도.. 클래스를 만들고 메소드 붙이면서 가끔은 virtual=0;으로 인터페이스 상속도 하면서..
그렇게 코딩을 했었습니다. 그런데 그 땐 제가 코딩하는 것이 OOP라는 생각이 전혀 들지 않았거든요..

그러다가 어느 순간 패턴을 깨닫게 되고..
디자인 패턴이나.. 기타 좋은 코드에 대해서 언급하는 책들이 무엇을 얘기하는 것인지 알게 된 다음에..
이것이 OOP구나! 라고 생각하고 있습니다.
그런데.. 그게 정말 OOP일까요?

여러분들이 생각하시는 OOP는 무엇인지.. 궁금합니다.

semmal의 이미지

OOP는 누구도 그 실체를 모릅니다.

Theory of Object에서 그 성질을 언급하기는 하지만, 명확한 정의는 없습니다.

하지만 한가지는 확실합니다.

Data를 Abstraction하다보면 Object까지 자연스럽게 갑니다.

OOP가 뭔지를 고민하는 것보다는, Data를 어떻게 Abstraction할지를 고민하는게 맞을 것 같군요.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

sloth_의 이미지

추상적으로 이해하시는것이 어쩔수 없는거같습니다.
개인적으로.. classical한 OOP는 별로 안좋아 합니다.

ds5pnz의 이미지

OOP든 뭐든 갑은 빨리 에러 없이 그리고 마감일에 요구사항이 바로 변경 가능하면 장땡 입니다.

rgbi3307의 이미지

되도록이면 쉽고 간단하게 개념을 잡아 나가는 것이 좋을듯합니다.
OOP를 한마디로,
"코드의 재사용성을 높여 나간다." 라고 표현하고 싶습니다.

From:
*알지비 (메일: rgbi3307(at)nate.com)
*학창시절 마이크로마우스를 만들었고, 10년동안 IT관련 개발자로 일하고 있음.
*틈틈히 커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))