절차지향 프로그래밍(Procedure Oriented Programming)

  1. 빠르지만 디버깅, 유지보수, 업그레이드가 어렵다.
  2. 순서가 바뀌면 결과가 달라질 수 있다.
  3. 프로그램의 크기가 커지기 힘들다.
    i.e. C, Basic, Pascal, Cobol etc...

객체지향 프로그래밍(Object Oriented Programming)

  1. 디버깅, 유지보수, 업그레이드가 쉽지만 느리다.
  2. 순서에서 다소 자유롭다. (순서가 중요하지 않다는 이야기는 아님)
  3. 프로그램의 크기를 키울 수 있다.
  4. 객체가 많으면 용량이 커질 수 있다.
  5. 코드의 재활용이 가능하다.
  6. 설계에 많은 시간이 소요된다.
    i.e. C++, C#, Visual Basic, Object Pascal, Java etc...

 

  1. 객체란 무엇일까? 현실 세계를 컴퓨터 상에 구현한 것으로
    (판매자 / 물건 판매) → 하나의 객체
    (구매자 / 물건 구매) → 하나의 객체
    (자판기 / 돈 받음 / 주문 받음 / 물건 뱉음) → 하나의 객체
    ( 사  람 / 돈 넣음  / 버튼 누름 / 물건 집음) → 하나의 객체

    즉, ( 데이터 / 명령) 의 구조가 각각 하나의 객체다.
  2. 클래스란 무엇일까? 자동차 설계도 → 클래스 자동차 → 객체

객체지향 언어와 절차지향 언어의 가장 뚜렷한 차이점은 1) 클래스와 객체가 있는가? 2) 데이터와 명령이 분리되지 않는가? 이다. 객체지향 언어의 5대 특징

  1. 캡슐화 : 데이터화 명령(함수)을 하나로 캡슐화. 데이터가 은닉된 채 Method를 통해 정보 교환. 정보가 은닉되고 재사용이 용이함.
  2. 정보 은닉 : 캡슐화의 하위 특징으로 데이터는 공개하지 않으며 결과만을 허용함. 외부 객체가 데이터에 직접 접근하지 못 하기 때문에  유지보수와 업그레이드가 용이함.
  3. 상속성 : 부모 클래스에 이미 정의된 코드를 자식 클래스가 그대로 이어 받아 사용할 수 있다. i.e. 자동차(부모 클래스), 승용차/승합차/트럭/버스(자식 클래스)
  4. 다형성 : 객체가 취하는 동작이 상황에 따라 달라진다. i.e. 같은 speak()라는 함수를 호출해도 '개' 객체가 호출하면 '멍멍', '고양이' 객체가 호출하면 '야옹'
  5. 추상화 : 피카소 그림 처럼 객체의 속성 중 불필요 한 것은 버리고 필요한 것 일부만 취해 개략할 수 있다.

'개발자 > 용어... 그 외의 것들...' 카테고리의 다른 글

포트포워딩  (0) 2020.03.25
기본 포트  (0) 2020.03.25
핀테크(FinTech) & 블록체인(BlockChain)  (0) 2020.03.25
약어 정리  (0) 2020.03.25
Copyright 보호  (0) 2020.03.25

+ Recent posts