Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

heenam

절차지향? 객채지향? 본문

[Programming Language]/Project

절차지향? 객채지향?

znzltiq 2021. 12. 9. 12:40

절차지향언어

C언어가 대표적인 언어이다

개체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결되어야 한다.

절차지향언어의 구조는 컴퓨터의 처리구조와 유사하다.

절차지향언어의 장점

실행 속도가 빠르다.

절차지향언어의 단점

구성 요소가 유기적으로 연결되어 있어 하나가 고장났을 때 시스템 전체가 고장난다. 또한 문제를 해결하기 위해 일부분이 아닌 시스템 전체를 수리해야 한다.

절차지향언어는 이러한 유지 보수가 매우 까다로운 편이며, 디버깅(프로그램 문제를 찾아내어 고치는 과정)이 어렵다.

절차지향언어는 실행순서가 정해져 있기 떄문에 코드의 순서가 바뀌면 결과가 달라질 가능성이 높다.

즉, 언어의 융통성이 부족하여 생산 효율이 떨어진다.

 

객체지향언어

자바, C++파이썬이 대표적인 언어이다.

프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어이다.

컴퓨터의 모든 부품을 적절히 연결하고 조립해서 컴퓨터가 제대로 작동하도록 만드는 것이라고 볼 수 있다.

객체지향언어의 특징

1 캡슐화 - 데이터와 알고리즘을 하나로 묶어 하나의 캡슐처럼 만드는 것이다. 이 특징 때문에 데이터와 코드의 형태를 외부에서 알 수 없다. 당연히 캡슐화되어있지 않은 데이터와 코드는 사용하기 어렵다.

2 상속 - 부모가 자식에게 유전자를 물려주듯, 상위 클래스의 모든 것을 하위 클래스가 이어 받는것이다.

3 다형성 - 상속과 연관된 개념으로, 하나의 객체가 다른 여러 객체로 재구성되는 것이다.

부모가 쌍둥이 자식을 낳으면 부모의 유전자가 두 명의 자식으로 재구성되는 것과 같은 이치이다.

하지만, 그렇다고 해서 두 쌍둥이의 유전자가 부모의 유전자와 똑같다고 볼수는 없다.

자바의 오버로드, 혹은 오버라이드 다형성이 이 다형성을 드러내는 대표적인 예이다.

4 추상화 - 실존하는 객체의 여러 특성 중, 프로그램을 만드는데 필요한 부분만 파악해서 추출하고 필요하지 않은 것은 제거하는 것이다.

객체지향언어의 장점

1 재사용성 - '상속'이 가능하기 때문에 코드를 재사용할 수 있어 편리하다.

2 생산성 증가 - 컴퓨터가 고장났을 때, 문제가 되는 부품만 수리하면 다시 정상 가동된다.

마찬가지로 독립된 객체로 이루어져있기 때문에 생산적으로 작업할 수 있고, 유지 및 보숙 용이하다.

3 자연스로운 모델링 - 앞서 말했듯, 객체는 세상에 존재하는 모든것이다. 객체지향언어 자체가 우리가 사는 세상을 닮았기 때문에 개발자가 생각하는 대로 자연스럽게 구현할 수 있다.

객체지향언어의 단점

1 느린 개발 속도 - 모든 객체의 역할과 기능을 이해해야 하기 때문에 프로그래밍에 많은 시간이 소요된다.

2 느린실행 속도 - 객체지향언어의 처리 속도는 절차지향언어보다 느리다.

3 높은 난이도 - 객체지향언어는 대체로 난이도가 높다. 특히 다중 상속이 지원되는 C++는 악명이 높다.

 

객체지향과 절차지향의 차이점

객체지향과 절차지향은 서로 반대되는 것이 아닌 (객체지향은 객체간의 관계/조직, 절차지향은 순차적인 실행,) 서로 다른것에 초점이 맞춰져 있다.

'[Programming Language] > Project' 카테고리의 다른 글

자료구조란? 알고리즘이란?  (0) 2021.11.30
리눅스 명령어 정리  (0) 2021.11.26
C 언어 조건 연산자 '?'  (0) 2020.04.15
Computer Science Part4  (0) 2020.03.30
Computer Science Part3  (0) 2020.03.20