절차지향(Procedural Programming)
절차지향 프로그래밍이란 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시되며 프로그램 전체가 유기적으로 연결되도록 만든느 프로그램이 기법.(C언어)
장점
단점
- 유지보수가 어려움
- 실행 순서가 정해져있어 코드의 순서가 바뀌면 동일한 결과를 보장하기 어려움
- 디버깅이 어려움
객체지향(Object Oriented Programming)
객체지향은 실제 세계를 모델링하여 소프트웨어를 개발하는 방법. 즉 절차에 따라 진행되는게 아니라 자판기라는 객체가 돈을받고 돈을 받게돠면 검사하고 잔돈이나 어떤 제품을 줄지 결정하는 식으로 객체들의 상호작용으로 프로그래밍이 진행되는 방식
객체지향의 특징
- 캡슐화
- 클래스의 내부 변수와 메소드를 하나로 패키징하는 특징
- 상속
- 객체가 다른 객체를 상속받아 상속받은 객체의 요소를 사용하는 것
- 다형성
- 하나의 객체가 여러 가지 타입을 가질 수 있는 것
장점
- 코드의 재활용성이 높음
- 코딩이 절차지향보다 간편함
- 디버깅이 쉬움
단점
- 처리속도가 절차지향보다 느림
- 설계에 많은 시간소요가 듦
