본문 바로가기
Programming

절차지향, 객체지향 프로그래밍

by Dev_카페인 2022. 8. 11.
반응형

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

절차지향 프로그래밍(Procedural Programming)이란 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다. 대표적인 절차지향 언어에는 C언어가 있다. 절차지향 프로그램은 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 처리 시간이 짧지만 유지보수가 어렵고 디버깅이 어려우며 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어렵다.

 

[장점]

1. 설계 없이 순서대로 작성하면 되기 때문에 설계 시간이 짧다.

2. 컴퓨터의 작업 처리 방식과 유사하기 때문에 실행 속도가 빠르다.

3. 프로그램의 흐름을 쉽게 추적할 수 있다.

[단점]

1. 각 코드가 매우 유기성이 높기 때문에 유지보수가 어렵다.

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

3. 프로그램 전체에서 코드를 재사용 할 수가 없어 프로젝트 개발 비용과 시간이 늘어날 수 있다.

4. 디버깅(오류 검사)이 어렵다.

 

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

객체지향 프로그래밍(Object Oriented Programming, OOP)은 실제 세계를 모델링하여 소프트웨어를 개발하는 방법이다. 모든 데이터를 객체로 취급하는 프로그램 설계 방법인데, 프로그램을 수많은 객체(Object)라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다. 절차지향 프로그래밍 방식에 비해 유지보수 및 재활용성이 좋아지고 요구사항에 쉽게 대처할 수 있는 반면 초기 개발 시 많은 시간을 필요로 하며 소프트웨어의 성능이 다소 저하된다.

 

 

[장점]

1. 모듈화, 캡슐화로 인해 유지보수 및 재활용성이 좋아진다.

2. 현실 세계의 논리가 자연스럽게 프로그램에 표현될 수 있다.

3. 요구사항 변경에 쉽게 대처할 수 있다.

[단점]

1. 대부분의 객체 지향 프로그램은 속도가 상대적으로 느려지고 많은 양의 메모리를 사용하는 경향이 있다.

2. 코드를 이해하기 쉽게 만드는 만큼 설계 과정에 시간이 많이 투자된다.

 

객체지향 프로그래밍의 특징

1. 캡슐화

  - 정보를 단순히 패키징 하는 기술이다. 필요한 것들을 한 덩어리로 묶어 프로그램을 더욱 효율적으로 관리할 수 있다.

  - 관련된 데이터와 알고리즘이 하나의 묶음으로 정리된 것

2. 다형성

  - 여러 가지 형태로 변한다는 의미를 가지고 있다.

  - 개념적으로 동일한 작업을 하는 함수들에게 똑같은 이름을 부여할 수 있으므로 코드가 더 간단해지는 효과가 있다.

3. 상속

  - 이미 작성해둔 속성들을 물려받아 사용할 수 있다.

  - 이미 작성된 클래스를 이어 받아서 새로운 클래스를 생성하는 기법.

 

 

 

 

반응형

'Programming' 카테고리의 다른 글

VisualStudio 단축키 정리  (0) 2023.11.02