절차지향 프로그래밍(Procedure Oriented Programming)
- 빠르지만 디버깅, 유지보수, 업그레이드가 어렵다.
- 순서가 바뀌면 결과가 달라질 수 있다.
- 프로그램의 크기가 커지기 힘들다.
i.e. C, Basic, Pascal, Cobol etc...
객체지향 프로그래밍(Object Oriented Programming)
- 디버깅, 유지보수, 업그레이드가 쉽지만 느리다.
- 순서에서 다소 자유롭다. (순서가 중요하지 않다는 이야기는 아님)
- 프로그램의 크기를 키울 수 있다.
- 객체가 많으면 용량이 커질 수 있다.
- 코드의 재활용이 가능하다.
- 설계에 많은 시간이 소요된다.
i.e. C++, C#, Visual Basic, Object Pascal, Java etc...
- 객체란 무엇일까? 현실 세계를 컴퓨터 상에 구현한 것으로
(판매자 / 물건 판매) → 하나의 객체
(구매자 / 물건 구매) → 하나의 객체
(자판기 / 돈 받음 / 주문 받음 / 물건 뱉음) → 하나의 객체
( 사 람 / 돈 넣음 / 버튼 누름 / 물건 집음) → 하나의 객체
즉, ( 데이터 / 명령) 의 구조가 각각 하나의 객체다. - 클래스란 무엇일까? 자동차 설계도 → 클래스 자동차 → 객체
객체지향 언어와 절차지향 언어의 가장 뚜렷한 차이점은 1) 클래스와 객체가 있는가? 2) 데이터와 명령이 분리되지 않는가? 이다. 객체지향 언어의 5대 특징
- 캡슐화 : 데이터화 명령(함수)을 하나로 캡슐화. 데이터가 은닉된 채 Method를 통해 정보 교환. 정보가 은닉되고 재사용이 용이함.
- 정보 은닉 : 캡슐화의 하위 특징으로 데이터는 공개하지 않으며 결과만을 허용함. 외부 객체가 데이터에 직접 접근하지 못 하기 때문에 유지보수와 업그레이드가 용이함.
- 상속성 : 부모 클래스에 이미 정의된 코드를 자식 클래스가 그대로 이어 받아 사용할 수 있다. i.e. 자동차(부모 클래스), 승용차/승합차/트럭/버스(자식 클래스)
- 다형성 : 객체가 취하는 동작이 상황에 따라 달라진다. i.e. 같은 speak()라는 함수를 호출해도 '개' 객체가 호출하면 '멍멍', '고양이' 객체가 호출하면 '야옹'
- 추상화 : 피카소 그림 처럼 객체의 속성 중 불필요 한 것은 버리고 필요한 것 일부만 취해 개략할 수 있다.
'개발자 > 용어... 그 외의 것들...' 카테고리의 다른 글
포트포워딩 (0) | 2020.03.25 |
---|---|
기본 포트 (0) | 2020.03.25 |
핀테크(FinTech) & 블록체인(BlockChain) (0) | 2020.03.25 |
약어 정리 (0) | 2020.03.25 |
Copyright 보호 (0) | 2020.03.25 |