• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

기존 프로그래밍 방식과 객체지향 프로그래밍의 차이

19.10.31 09:10 작성 조회수 136

1

예전부터 헷갈렸던 부분인데 객체지향과 절차지향을 비교해서 설명하는 부분에서,

1. 서로 반대되는 개념이 아닌 것 같은데 맞지 않나요?

2. 객체지향 프로그래밍이 무엇인가라고 물어보면 클래스 기반의 기능 중심 프로그래밍이라고 말하면 될까요?

답변 2

·

답변을 작성해보세요.

11

벌써 한달이나 지났지만 이 질문에 답을 제대로 못해드린 것 같아서 보충 합니다.

1.

초보때는 뭔가 비교를 하면 '반대'라고 생각하실 수 있습니다. 역사를 되짚어보자면 발전하는 과정에서 나온 것입니다. 검색해보니 아래 그림이 재밌게 표현해주고 있네요. (맨 뒤의 functional 부분은 동의하기가 애매한 면이 있지만, 순서로 보면 뒤에 나온 것이 맞습니다). 

https://blog.soshace.com/functional-vs-object-oriented-programming/

기존의 자동차와 전기 자동차가 서로 '반대'의 개념인지도 한 번 생각해보시면 도움이 될 것 같습니다.

2.

OOP의 정의는 시대에 따라 언어에 따라 관점에 따라 다르기도 하고 계속 변하기도 합니다. 가장 중요한 개념을 하나만 꼽으라고 하면 Encapsulation이며 상속이니 다형성이니 하는 특성들은 여기에서 파생되어 나온 문법입니다. 다시 말씀드리자면 언어마다 문법이 다릅니다. 예를 들면 자바에는 Interface가 개념으로만 존재하는 것이 아니라 키워드로 등장합니다. 대부분의 경우 객체지향은 별도 과목으로 공부하는 것이 일반적이며 나중에 디자인 패턴도 공부하시는 것이 좋습니다. 

아래 답 잘 받는 요령 참고해서 다음 번에는 조금 더 편하게 좋은 답을 얻으시길 바랍니다.

https://blog.naver.com/atelierjpro/221547580916

5

1번은 질문을 이해할 수가 없네요. 문장이 애매합니다. 2번도 좀 이상하네요. 기능이 영어로 function인데 함수도 영어로 function입니다. C언어 이전의 옛날 프로그래밍 언어에서는 함수를 procedure(절차)라고 부르기도 했습니다. 본 강의는 여러가지 다른 내용도 포함하고 있지만 기본적인 틀은 C++언어의 기본 문법강의입니다. 프로그래밍 언어나 일반적인 객체지향 방법론에 대해서 더 구체적으로 알고싶으시다면 다른 자료들도 추가적으로 보셔야할 것 같습니다. 일단 궁금하신 내용들은 인터넷 검색만 해보셔도 많은 부분 진전이 있을 것 같네요. 조금 더 공부해보시고 질문을 보다 명확하게 할 후 있게 되시면 다시 도와드리겠습니다.