객체지향 프로그래밍과 절차지향 프로그래밍의 차이를 알기위해 먼저 객체지향이 무엇인지, 절차지향이 무엇인지에 대해 알아봅시다.
🤔객체지향 프로그래밍(OOP, Object-Oriented Programming)이란?
- 소프트웨어 개발 패러다임 중 하나로, 객체(Object)와 그 객체들 간의 상호작용을 모델링하여 프로그램을 구성하는 방법론입니다.
- 코드 재사용성과 유지보수성을 향상시키는 등의 장점을 가지고 있어 현대적인 프로그래밍 언어들에 널리 사용되고 있습니다.
😀객체지향 프로그래밍의 특징
- 클래스와 객체
- 클래스는 객체를 만들기 위한 템플릿으로 객체를 정의하는 프로퍼티와 메서드의 집합입니다.
- 객체는 클래스로 만들어진 인스턴스로 실제 메모리에 할당된 데이터를 가지고 있습니다.
- 캡슐화
- 캡슐화는 클래스의 세부사항을 외부로 부터 감추어 특정 인터페이스를 통해서만 상호작용하도록 하는 것
- 코드의 보안성과 모듈성을 높혀줍니다.
- 상속
- 상속은 이미 존재하는 클래스의 특성을 다른 클래스에 확장, 재사용 하는 메커니즘입니다.
- 기존 클래스를 부모클래스 혹은 슈퍼클래스라고 하고, 상속 받는 새로운 클래스는 자식클래스 혹은 서브클래스라고 합니다.
- 상속을 통해 유사한 기능을 가진 클래스들을 일반화할 수 있습니다.
- 다형성
- 동일한 메서드 호출로 다양한 객체들이 다른 방식으로 응답하는 개념입니다.
- 같은 이름의 메서드를 여러 클래스에서 다른 방식으로 구현할 수 있도록 합니다.
- 이를 통해 가동성이 증가하며, 각 객체의 타입을 알 필요가 없어져 공통된 인터페이스를 통해 객체를 다룰 수 있습니다.
🤔절차지향 프로그래밍(PP, Procedural Programming)이란?- 소프트웨어 프로그래밍 패러다임 중 하나로, 프로그램을 데이터와 프로시저(Procedure, 함수 또는 서브루틴)로 구성하여 문제를 해결하는 방법론 입니다.
- 프로시저는 단계적으로 실행되는 명령문들의 모음이며, 이를 통해 문제를 단계적으로 처리하며 해결합니다.
- 주로 초창기 사용된 프로그래밍 스타일입니다.
- 데이터 중심
- 절차지향 프로그래밍은 데이터와 데이터 처리를 중심으로 프로그램을 구성합니다.
- 데이터 흐름에 따라 프로그램이 순차적으로 실행되며, 데이터 상태 변화에 따라 프로시저들이 수행됩니다.
- 코드의 순차적 실행
- 순차적인 실행을 강조합니다. 코드는 위에서 아래로 순차적으로 진행되며, 명령문들이 실행되는 순서가 중요합니다.
- 프로시저의 재사용
- 프로시저는 여러 번 호출될 수 있으며, 재사용 될 수 있습니다.
- 이를 통해 코드의 중복을 줄이고 유지보수를 편리하게 할 수 있습니다.
- 데이터와 프로시저의 분리
- 데이터는 전역 변수로 선언되거나 프로시저의 매개변수로 전달됩니다.
😎결론!
절차 지향은 초창기 사용된 프로그래밍 패러다임으로 단순한 문제에서는 효과적일 수 있으나, 규모가 커지고 복잡해지며 유지보수가 어려워 지면서 현대에서는 객체지향 프로그래밍이 널리 사용되고 있습니다.
'개발 상식' 카테고리의 다른 글
[개발 상식] 선언적 프로그래밍과 명령적 프로그래밍, React.js와 선언적 프로그래밍 (0) | 2023.07.27 |
---|---|
[개발 상식] 클린코드란? (0) | 2023.07.25 |
[개발 상식] API, REST, RESTful API의 의미와 설계규칙 (0) | 2023.07.22 |
[개발 상식] TDD란 무엇인가? (0) | 2023.07.21 |
[개발 상식] 함수형 프로그래밍이란? (0) | 2023.07.21 |