본문 바로가기

프로그래밍/취업준비(개인공부)

[객체지향vs절차지향] 객체지향과 절차지향의 개념과 차이점 비교

프로그래밍 하시는 분들은 한번쯤 들어보셨을겁니다 객체지향언어와 절차지향언어 이 두개는 무엇이며 두 언어의 차이점은 무엇인가에 대해서 정리하겠습니다.



객체지향 vs 절차지향

절차지향

정의

- 절차 지향 프로그래밍(Procedural Programming)

   - 루틴, 서브루틴, 매서드, 함수등(이를 통틀어 프로시저라고 한다.)을 이용한 프로그래밍 

     패러다임을 뜻한다.

- 위에서부터 순서대로 실행된다
컴퓨터의 작업처리방식과 유사하기 때문에 객체지향보다 빠른처리가 가능
- 계산 중심적인 언어
- 함수(or 프로시저)가 중심이되고 데이터는 보조기능을 하는 언어

지원언어

- C
등등


객체지향

객체란?

기존에 사용하던 함수와 변수를 하나로 묶어놓은 집합입니다.
Ex) 눈 코 입을 모아놓은 사람의 얼굴이라는 객체
     학생들이 모여있는 하나의 학급이라는 객체

정의

- 객체 지향 프로그래밍(Object-Oriented Programming, OOP)
- 객체를 모델링하여 객체들의 상호작용으로 서술

=>즉. 객체지향은 객체단위로 전부다 나눠서 객체들을 가지고 서로 연결해서 사용

지원언어

- Ruby
- Python
등등..

객체지향의 특징

절차지향에는 없지만 객체지향의 특징은 캡슐화, 상속, 다형성에 대해서 알고 넘어갑니다

추상화
- 불필요한 정보는 숨기고 중요한 정보만을 표현

캡슐화(Encapsulation)
- 코드를 재활용하기 위한 목적 (그렇기 때문에 코드를 재수정없이 해야함)
- 캡슐화를 지키지 않으면 상속과 다형성은 성립이 되지 않음

상속(Inheritance)
- 상위개념의 특징을 하위개념이 물려받는 특징입니다.
- 하나의 클래스가 가지고 있는 특징을 그대로 다른 클래스에게 돌려주고자 할때를 말합니다.
Ex) 아빠클래스의 눈 코 입을 아들클래스가 상속받았다.

다형성(Polymorphism)
- 하나의 변수에 여러종류 데이터를 대입 할 수 있는 성질