1. 객체지향이란?
객체지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어를 객체들의 집합으로 간주하여 설계하는 방법이다. 객체는 데이터(속성)와 이 데이터를 조작하는 함수(메서드)를 포함하는 독립된 단위이다. OOP의 주요 특징은 다음과 같다:
- 캡슐화(Encapsulation): 객체는 데이터와 메서드를 하나의 단위로 묶어 외부로부터 보호한다.
- 상속(Inheritance): 클래스는 다른 클래스의 속성과 메서드를 상속받아 재사용할 수 있다.
- 다형성(Polymorphism): 같은 메서드가 다양한 객체에 의해 다른 방식으로 구현될 수 있다.
- 추상화(Abstraction): 복잡한 시스템을 단순화하여 필요한 부분만 드러낸다.
OOP의 대표적인 언어로는 Java, C++, Python, Ruby 등이 있다.
2. 절차지향이란?
절차지향 프로그래밍(Procedural Programming, PP)은 문제를 절차나 함수의 순서로 해결하는 방법이다. 프로그램은 함수나 절차의 집합으로 구성되며, 각 함수는 특정 작업을 수행한다. PP의 주요 특징은 다음과 같다:
- 순차적 실행: 프로그램은 상위에서 하위로, 왼쪽에서 오른쪽으로 순차적으로 실행된다.
- 함수 중심: 코드는 함수로 나뉘며, 각 함수는 명령어의 집합이다.
- 전역 변수 사용: 함수들은 전역 변수를 통해 데이터를 공유한다.
PP의 대표적인 언어로는 C, Pascal, Fortran 등이 있다.
3. 객체지향과 절차지향의 차이점
특징 객체지향 프로그래밍(OOP) 절차지향 프로그래밍(PP)
기본 단위 | 객체(Object) | 함수(Function) |
설계 방식 | 객체를 중심으로 시스템을 설계 | 순차적 절차를 중심으로 시스템을 설계 |
데이터 접근 방식 | 데이터는 객체 내부에 캡슐화되어 직접 접근 불가 | 데이터는 전역 변수로 관리되며 함수에서 직접 접근 가능 |
코드 재사용 | 상속과 다형성을 통해 코드 재사용 가능 | 함수 호출을 통해 코드 재사용 가능 |
유연성 및 유지보수성 | 높은 유연성과 유지보수성 제공 | 상대적으로 낮은 유연성과 유지보수성 제공 |
복잡도 관리 | 추상화를 통해 복잡도 관리 용이 | 큰 프로젝트에서 복잡도 관리가 어려울 수 있음 |
4. 객체지향과 절차지향의 장단점
객체지향과 절차지향은 각각의 장단점을 가지고 있다. 이를 잘 이해하면 상황에 맞게 적절한 패러다임을 선택할 수 있다.
특징 객체지향 프로그래밍(OOP) 절차지향 프로그래밍(PP)
장점 | - 코드 재사용이 용이하다 | - 이해하기 쉽고 구현이 간단하다 |
- 유지보수성이 뛰어나다 | - 성능이 뛰어나다 | |
- 대규모 프로젝트에 적합하다 | - 작은 프로젝트에 적합하다 | |
단점 | - 초기 설계가 복잡하다 | - 코드 재사용이 어렵다 |
- 성능이 절차지향에 비해 떨어질 수 있다 | - 유지보수성이 낮다 | |
- 복잡한 시스템에서는 비효율적일 수 있다 |
'Programming > etc ...' 카테고리의 다른 글
테스팅 관련(소프트웨어 공학) 용어 정리 (2) | 2024.11.19 |
---|---|
iterm, oh-my-zsh 설정 - 현재 (0) | 2023.02.13 |