이번에 다뤄볼 포스팅은 절차지향에 대한 내용입니다.
1. 절차지향과 객체지향
- 절차지향(순차적인 처리)
- 프로시저 호출의 개념을 바탕으로 하고 있는 프로그래밍이라고 보면 된다.
- 즉 함수들의 집합으로 구성되어 연속적으로 처리하는 방법을 말한다.
- 이 방법은 실행속도가 빠르다는 장점이 존재했으나 현재는 객체지향을 주로 사용한다.
- 그 이유는 유지보수가 어렵다는 단점이 존재하기 때문이다.
- 객체지향
- 절차와 달리 객체들의 집합으로 구성되다.
- 객체들의 집합으로 프로그램이 유연하며 변경이 쉽게 가능하여 최근에도 많이 사용된다.
2. 객체지향 특징
-
상속
- 클래스들 사이에서 관계를 가진다고 볼 수 있다.
- 즉 새로 만든 클래스가 기존의 클래스의 자료와 연산을 이용할 수 있다는 것이다.
- 새로운 클래스는 자식(서브)클래스, 기존 클래스는 부모(수퍼)클래스라고 부르며 상속을 통해 기존의 클래스를 상속받아 객체를 조직화 가능하다.
-
다형성
- 객체의 유형에 따라서 동일한 명칭의 메소드를 다른 역할로 사용 가능하다는 의미이다.
- 이는 오버라이딩, 오버로딩을 말한다.
- 다형성을 통해 객체의 관계를 조직화 가능하다.
-
캡슐화
- 외부에서 객체 내부의 자료와 메소드에 대한 접근을 하지 못하도록 통제하는 것을 말한다.
- 이는 객체의 접근은 오직 공개된 자료와 공개된 메소드만 가능하다는 것을 말한다.
- 이에 따라 private, public으로 나눠 공개여부를 구분 가능하다.
3. 객체지향 장단점
- 장점
- 재사용성
- 상속을 통해 기존의 코드 사용하여 표현 가능하며 이는 새로운 프로그램 개발시에 재사용성을 높일 수 있다.
- 유지보수가 간편
- 수정 및 기능 추가 시 캡슐화 되어 있어서 주변에 미치는 영향은 적지만 상속을 통해서 기존 코드를 사용가능하기 때문에 유지보수적인 측면에서 효율적이다.
- 직관적인 코드 분석
- 객체로 구분되어 직관적으로 객체,매소드별 코드 분석이 쉬움
- 모델링이 좋음
- 단점