개발의 시작과 끝

2020.05.13 / Day - 31 자바 절차지향 언어와 객체 지향 언어의 차이 본문

풀스택/자바 공부, 복습

2020.05.13 / Day - 31 자바 절차지향 언어와 객체 지향 언어의 차이

개발지혜 2020. 5. 13. 13:11

31일차

 

절차지향(Procedural Programming)이란?

절차지향 프로그래밍 이란 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다. 대표적인 절차지향 언어에는 c언어가 있다. 이는 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리하다. 옛날에는 하드웨어와 소프트웨어의 개발 속도차이가 크지않았다. 하지만 소프트 웨어 언어의 발달과 컴파일러의 발달로 하드웨어가 소프트웨어 의 발달을 따라오지 못하는 상황이 발생하여 객체지향 언어가 등장하게 되었다. 객체지향 프로그래밍은 개발하려는 것을 기능별로 묶어 모듈화 함으로써 하드웨어가 같은 기능을 중복으로 연산하지 않도록하고, 모듈을 재활용 하기때문에 하드웨어의 처리양을 획기적으로 줄여주었다.

 

>절차지향언어의 장점

 - 컴퓨터의 처리구조와 유사해 실행속도가 빠름

> 절차지향언어의 단점

 - 유지보수가 어려움

 - 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어려움  

 - 디버깅이 어려움

 

객체지향(Object Oriented Programming) 이란?

<객체지향의 3대 특성>

1. 캡슐화

캡슐화란 관련된 데이터와 알고리즘(코드)이 하나의 묶음으로 정리된 것으로써 개발자가 만들었으며, 관련된 코드와 데이터가 묶여있고 오류가 없어 사용하기 편리하다. 데이터를 감추고 외부 세계와의 상호작용은 메소드를 통하는 방법인데, 라이브러리로 만들어 업그래이드하면 쉽게 바꿀 수 있다.

 

2. 상속

상속은 이미 작성된 클래스를 이어 받아서 새로운 클래스를 생성하는 기법으로 위에서 말한 기존 코드를 재활용해서 사용하는 것을 의미한다. 객체지향의 방법의 큰 장점중 하다이다.

 

3. 다형성

다형성이란 하나의 이름(방법)으로 많은 상황에 대처하는 기법이다. 개념적으로 동일한 작업을 하는 함수들에 똑같은 이름을 부여할 수 있으므로 코드가 더 간단해지는 효과가있다.

 

> 객체지향언어의 장점

 - 코드의 재활용성이 높음

 - 코딩이 절차지향보다 간편함

 - 디버깅이 쉬움

> 객체지향언어의 단점

 - 처리속도가 절차지향보다 느림

 - 설계에 많은 시간소요가 들어감

 

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

 - 절차지향은 데이터를 중심으로 함수를 구현한다. 이에 반헤 객체지향은 기능을 중심으로 메서드를 구현하게 된다