반응형
절차지향(Procedural Oriented Programming)
- 절차 지향(POP)을 대표하는 언어는 C가 있다.
- 프로그램이 시작하면 프로그래밍 된 순서대로 진행하며, 모든 순서가 종료되면 프로그램 또한 종료된다.
절차지향의 특징
- 기능을 우선시하여 프로그래밍하므로 객체 지향 언어에 비해 빠르게 프로그래밍이 가능하다.
- 대부분의 함수가 프로그램 내부에서 어디서든 사용 가능한 전역 데이터를 사용하기 때문에 데이터 접근이 용이하다. 하지만 데이터 접근이 유용하다는 뜻은 반대로 보안성이 낮다는 말과 같다.
- 절차 지향은 기능 단위로 분리하는 작업을 뜻하는 모듈화가 어렵다. 모듈화가 어렵기에 데이터 및 기능을 추가시 기존에 작성된 프로그램을 수정해야 하며 유지보수가 매우 어렵다.
객체지향(Object Oriented Programming)
- 객체 지향(OOP)을 대표하는 언어로는 JAVA, C++, C#, .NET 등이 있다.
- 객체 지향은 절차 지향의 단점을 보완하여 개발된 개념으로, 모든 데이터를 객체로 취급한다. 기능 위주의 절차 지향과는 달리 객체라는 개념을 통해 데이터 및 함수를 모듈화하여 프로그램의 유지 보수와 보안성을 강화하였다.
객체를 데이터(변수)와 기능(함수)의 묶음인 클래스로 생각하면 이해하기가 편하다.
객체지향의 특징
- 캡슐화(Encapsulation): 데이터와 기능을 하나의 캡슐 형태로 묶는 것으로, 자바에선는 public/private/protected와 같은 접근자를 통해 프로그램 외부에서 접근 가능한 데이터를 지정할 수 있다. 따라서 내부적으로 숨겨야하는 데이터의 접근을 막음으로써 데이터의 보안성이 좋아진다.
- 추상화(Abstarction): 객체들의 공통적인 변수와 메소드를 중심으로 묶어 표현하는 것으로, 객체의 기본적인 틀인 뼈대만 미리 만들어놓을 수 있는 기능이다. 추상화된 객체는 상속을 사용하여 구체적인 객체로 만들어 사용할 수 있다.
- 상속성(Inheritance): 이미 정의된 상위 클래스의 모든 데이터 및 함수들을 하위 클래스가 그대로 이어 받아 사용할 수 있는 기능이다. 복제한 형태 그대로를 가져오거나 함수들을 재정의하여 코드의 재사용성을 높일 수 있다.
- 다형성(Polymorphism): 객체가 다양한 형태로 표현될 수 있다는 개념으로, 추상화된 객체와 같이 틀을 가진 객체가 구체화된 객체로 표현가능하다 라는 뜻이다. 사람은 음식을 먹는다 라는 명제에서 음식은 치킨이나 라면이 될수도 있다. 이 때 여러가지 특징을 나타내는 음식의 특징을 다형성이라고 한다.
반응형
'Programming > Study' 카테고리의 다른 글
웹 프로그래밍 구조 - 웹서버와 WAS, 서버와 클라이언트, HTTP 프로토콜 (1) | 2023.10.28 |
---|---|
개발 버전 정보 표기법 - 유의적 버전 명세(Semantic Versioning) (0) | 2023.10.22 |
프로그래밍 분류, 저급/고급 언어 (feat. 컴파일러와 인터프리터의 차이) (0) | 2023.08.21 |
디렉터리 구분과 파일 경로 - 루트와 홈, 절대와 상대 (0) | 2023.08.21 |
데이터 기반 AARRR 분석 기법 (Growth hacking) (0) | 2023.08.21 |