절차지향언어
- 절차지향언어는 프로그래밍 페러다임의 일종으로 프로시저 호출의 개념을 바탕으로 하고 있는 프로그래밍 패러다임이다.
- 수행되어야 할 연속적인 계산 과정을 순차적으로 진행하는 방식이다(top-down)
- 컴퓨터의 작업 처리 방식과 유사하기 떄문에 비교적 빠른 실행이 가능하다.'
- 대표적 언어로는 c언어가 있다,
장점
- 컴퓨터의 처리구조와 유사하여 실행 속도가 빠르다,
단점
- 유지보수가 어렵다
- 실행 순서가 정해져 있어 비효율 적이다
- 디버깅이 어렵다
객체지향언어
탄생 배경
- 절차지향 언어의 단점을 보안 하기 위해 나온 패러다임으로 복잡한 알고리즘을 순서도로 나타냄으로 스파게티 코드를 양산하게 되었다. 큰문제를 쪼개어서(top-down) 나누는게 아니라 객체라는 작은 개념을 만든 후 이 문제를 해결하는 (Bottom-up)방식을 도입하는 것이다
- 객체란 현실세계의 사물,개념의 행동,상태를 소프트웨어 세계의 새로운 객체로 나타내는 것으로 능동적으로 행동하는여 의인화 하는개념이다.
객체지향 언어란
- 프로그래밍 패러다임 중 하나로 프로그램을 데이터와 기능으로 보는 시각에서 벗어나 행동,상태로 묶은 객체들의 모임으로 파악해 객체끼리 상호 작용할 수 있게 하는 프로그래밍 패러다임이다.
- 기존에 top-down방식과 작은 문제들을 해결할 수 있는 객체를 만든 뒤 이 객체를 조합해서 만든 (bottom-up) 방식 페러다임이다.
객체지향 언어의 특징
1.추상화
- 객체의 공통적인 속성과 기능을 추출히야 정의하는 것
2.상속
- 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 것
3.다형성
- 어떤 객체의 속성이나 기능이 상황에 따라 여러가지 형태를 가질 수 있는 성질
4.캡슐화
- 데이터와 코드의 형태를 외부로부터 알 수 없게 하고는것(정보 은닉)
장점
- 유지보수가 용이함
- 재사용성이 증가한다
- 생산성 향상
- 지연정인 모델링
단점
- 실행속도가 느리다
- 프로그램 용량이 크다
절차지향 언어와 객체지향 언어의 차이
절차지형 언어와 객치지향 언어의 차이를 너무 모호 하다고 생각해왔다. 절차지향 언어도 구조체를 사용하여 객체처럼 나타 내면 객체 지향 언어와 같이 사용할수 있는거 아닐까 라는 생각이 강했는데 객제는 행동을 기준으로 행동과 데이터를 묶어서 표현한거라면 구조체는 단순히 데이터를 표현하기 쉽게하기 위해 묶어둔거란 점을 알게 되었다. 또한 객체 지향언어의 특징인 다형성,캡슐화,상속,추상화와 같은 특징을 이용하여 재사용성이 쉽고 유지보수가 용이하도록 나타낼 수 있다는 것을 알게 되었다.