객체 지향 프로그래밍과 절차지향 프로그래밍
🔸 객체 지향 프로그래밍이란(Object-Oriented Programming, OOP) ?
추상화, 캡슐화, 상속, 다형성
인간 중심적 프로그래밍 패러다임이라고 할 수 있다.
즉, 현실 세계(실제세계 모델링) 를 프로그래밍으로 옮겨와 프로그래밍하는 것을 말한다. 현실 세계의 사물들을 객체라고 보고 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징들을 뽑아와 프로그래밍 하는 것이다. 이것을 추상화라한다.
객체란? “모든 실재(實在)하는 대상”을 객체 지향 프로그래밍 언어에서는 객체라고 부릅니다.
객체 지향 프로그래밍 장점
1. OOP(객체지향)로 코드를 작성하면 이미 작성한 코드에 대한 재사용성이 높다.
2. 자주 사용되는 로직을 라이브러리로 만들어두면 계속해서 사용할 수 있으며 그 신뢰성을 확보 할 수 있다.
3. 라이브러리를 각종 예외상황에 맞게 잘 만들어두면 개발자가 사소한 실수를 하더라도
그 에러를 컴파일 단계에서 잡아낼 수 있으므로 버그 발생이 줄어든다.
4. 내부적으로 어떻게 동작하는지 몰라도 개발자는 라이브러리가 제공하는 기능들을 사용할 수 있기 때문에 생산성이 높아지게 된다.
5. 객체 단위로 코드가 나눠져 작성되기 때문에 디버깅이 쉽고 유지보수에 용이하다.
6. 데이터 모델링을 할 때 객체와 매핑하는 것이 수월하기 때문에 요구사항을 보다 명확하게 파악하여 프로그래밍 할 수 있다.
객체 지향 프로그래밍 단점
1. 객체 간의 정보 교환이 모두 메시지 교환을 통해 일어나므로 실행 시스템에 많은 overhead가 발생하게 된다.
다행히 이러한 단점은 하드웨어의 발전으로 많은 부분 보완되었다.
2. 함수형 프로그래밍 패러다임의 등장 배경을 통해서 알 수 있다. 바로 객체가 상태를 갖는다는 것이다.
변수가 존재하고 이 변수를 통해 객체가 예측할 수 없는 상태를 갖게 되어 애플리케이션 내부에서 버그를 발생시킨다는 것이다.
이러한 이유로 요즘은 함수형 패러다임이 주목받고 있다.
객체 지향 프로그래밍 대표 언어
- 자바(Java)
- C++
- C#
- 오브젝티브-C(Objective-C)
- 파이썬(Python)
- 루비(Ruby)
🔸 절차 지향 프로그래밍 이란?
물이 위에서 아래로 흐르는것처럼 순차적인 처리,
프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다.
" 데이터 중심 "
컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 보다 처리 속도가 더 빠르다.
즉, 시간적으로 유리 하다.
한마디로, 컴퓨터가 사고하는대로 프로그래밍을 하는 것이다.
절차 지향 프로그래밍 대표 언어
- C 언어
절차 지향 프로그래밍의 단점
- 유지보수가 어렵다.
- 실행순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어렵다.
- 디버깅이 어렵다.
참고 사이트 ▼
# 객체 지향에 대한 이해 / 객체 지향적 설계
객체지향 프로그래밍 정의 객체 지향의 가장 기본은 객체이며, 객체의 핵심은 기능을 제공하는 것이다. 실제로 객체를 정의할 때 사용하는 것은 객체가 제공해야 할 기능이며, 객체가 내부적으
asfirstalways.tistory.com
절차지향 VS 객체지향
절차지향(Procedural Programming)이란? 절차지향 프로그래밍이란 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법
brownbears.tistory.com
'IT 지식 끄적 끄적' 카테고리의 다른 글
자바서버 VS DB서버 VS 네트워크서버 (0) | 2023.05.24 |
---|---|
자바(JAVA)와 객체 지향 (0) | 2021.11.30 |
동적(Dynamic) , 정적(Static) (0) | 2021.11.01 |
MVC 패턴 - 소프트웨어 디자인 패턴 (0) | 2021.03.31 |
CRUD란? Create, Read, Update, Delete (Feat.DBMS) (0) | 2021.03.31 |