[JAVA] 절차 지향 / 객체 지향 프로그래밍의 의미, 장단점
1. 절차지향프로그래밍 (Procedural Programming)
1-1. 정의
순차적인 처리를 중요시되며, 프로그램 전체가 유기적으로 연결되도록 프로그래밍 하는 기법
1-1. 절차지향언어의 장점
1) 실행 속도가 빠르다.
-> 초기 프로그래밍 언어로, 컴퓨터의 처리구조와 비슷해 실행속도가 빠르다.
1-2. 절차지향언어의 단점
1) 유지보수가 어렵다.
2) 코드를 분석하기 어렵다.
3) 정해진 순서대로 코드를 작성해야 하므로 순서가 바뀌면 결과값을 도출하기 어렵다.
4) 디버깅이 어렵다.
5) 대형 프로젝트에 부적합하다.
2. 객체 지향 프로그래밍 Object-Oriented Programming (OOP)
2-1. 정의
현실 세계의 객체의 속성과 동작을 추려내어 SW객체의 필드와 메소드로 정의하여 객체를 모델링하고,
이 객체와 관계를 맺는 다른 객체들을 설계하고, 조립하는 방식으로 프로그램을 개발하는 기법
<참고> 객체 간 관계의 종류
1) 집합관계: 부품객체
2) 상호관계: 다른 객체의 메소드를 호출해 사용
3) 상속관계
2-2.객체지향언어의 장점
1) 코드의 재사용성이 높다.
-> 상속을 통해 불필요한 코드의 중복을 제거하고, 쉽고 빠르게 설계할 수 있다.
2) 신뢰성 높은 프로그래밍이 가능하다.
-> 제어자와 메서드를 이용해 데이터를 보호하고 바른 값을 유지할 수 있다.
-> 코드의 중복을 제거해 불일치로 인한 오동작을 방지한다
3) 유지보수가 용이하다.
-> 기존 기능 수정 시, 캡슐화에 의해 주변에 미치는 영향 최소화할 수 있다.
-> 새 기능 추가 시, 상속을 통해 기존의 기능을 활용할 수 있다.
4) 디버깅이 쉽다.
5) 직관적인 코드 분석이 가능하다.
6) 대형 프로젝트에 적합하다.
2-3. 객체지향언어의 단점
1) 절차지향언어에 비해 실행 속도가 느리다.
2) 설계에 많은 시간이 소요된다.