절차지향과 객체지향은 프로그래밍 패러다임의 두 가지 주요 접근 방식입니다. 이 두 패러다임은 코드를 구조화하고 문제를 해결하는 방법에서 큰 차이가 있습니다.
절차지향(Procedural Programming):
절차지향은 프로그램을 데이터와 해당 데이터를 처리하는 함수 또는 절차로 분리하는 방식입니다. 프로시저(Procedure)라고 불리는 함수들이 데이터를 조작하고, 이러한 함수들의 호출과 실행 순서에 따라 프로그램이 동작합니다. 주로 C, Pascal, Fortran 등의 언어에서 절차지향 스타일로 프로그래밍하는 것이 일반적입니다.
주요 특징:
프로시저(함수)를 중심으로 데이터와 기능을 구조화합니다.
데이터와 함수를 분리하고, 함수 호출을 통해 데이터를 조작합니다.
전역 변수를 사용하여 데이터를 공유합니다.
코드의 재사용성이 낮을 수 있습니다.
프로그램의 흐름을 순차적으로 처리합니다.
객체지향(Object-Oriented Programming, OOP):
객체지향은 프로그램을 독립적인 객체들의 집합으로 바라보는 방식입니다. 객체는 데이터와 해당 데이터를 처리하는 메서드(함수)를 하나로 묶어서 표현합니다. 클래스(Class)라고 불리는 객체의 설계도를 작성하고, 이를 기반으로 객체를 생성하여 프로그램을 구축합니다. 주로 Java, C++, Python 등의 언어에서 객체지향 스타일로 프로그래밍하는 것이 일반적입니다.
주요 특징:
클래스와 객체를 중심으로 데이터와 기능을 구조화합니다.
캡슐화(Encapsulation)를 통해 데이터와 메서드를 노출시키지 않고 숨깁니다.
상속(Inheritance)을 통해 기존 클래스를 확장하여 새로운 클래스를 생성합니다.
다형성(Polymorphism)을 통해 동일한 메서드 이름으로 다양한 객체를 다룰 수 있습니다.
코드의 재사용성과 유지보수성이 높습니다.
어떤 패러다임을 선택해야 하는지는 프로젝트의 복잡성과 요구 사항에 따라 다릅니다. 절차지향은 간단한 작업에 적합할 수 있으며, 객체지향은 대규모의 복잡한 시스템을 구축하고 유지보수하는 데 용이합니다. 현대적인 프로그래밍에서는 객체지향 패러다임이 더 널리 사용되며, 많은 프로그래밍 언어가 객체지향 지원을 포함하고 있습니다.
요즘은 거진 객체지향을 사용하기는 하지만
꼭 장점만 있는 것은 아닙니다.
오히려 속도가 좀 더 느리기도 하고.
그래도 협업에는 객체지향이 훨씬 유리하겠지요.
'■ Web개발 > 기초 지식' 카테고리의 다른 글
패키지 매니저 / 환경 변수 (0) | 2024.03.31 |
---|---|
CPU 코어 / 스레드 / 클럭 (0) | 2024.03.31 |
정규화, 관계형/비관계형 DB (0) | 2024.03.31 |
SQL (0) | 2024.03.31 |
IP 주소 (0) | 2024.03.31 |