객체지향 프로그래밍 vs 절차지향 프로그래밍
요약
정보처리기사 실기에 출제되는 객체지향 프로그래밍과 절차지향 프로그래밍의 차이를 비교합니다. 객체지향의 4대 특징(캡슐화, 상속, 다형성, 추상화)과 각 언어(Java, C)의 특성을 정리합니다.
| 용어 | 키워드 |
|---|---|
| 절차지향 프로그래밍 | 순차적 실행, 함수 중심, C언어 |
| 객체지향 프로그래밍 | 객체, 클래스, 캡슐화, 상속, 다형성, 추상화 |
| 캡슐화 | 데이터 은닉, 정보 은닉, 접근 제어 |
| 상속 | 코드 재사용, 부모-자식, extends |
| 다형성 | 오버라이딩, 오버로딩, 하나의 인터페이스 |
| 추상화 | 공통 속성 추출, 불필요한 세부사항 제거 |
프로그래밍 패러다임이란?
프로그래밍 패러다임은 프로그래밍의 방식이나 관점을 말합니다. 대표적으로 절차지향과 객체지향이 있으며, 정보처리기사 시험에서는 이 두 가지의 차이를 묻는 문제가 출제됩니다.
| 패러다임 | 핵심 개념 | 대표 언어 |
|---|---|---|
| 절차지향 | 함수(프로시저) 중심으로 순차 실행 | C |
| 객체지향 | 객체(데이터 + 메서드) 중심으로 상호작용 | Java, Python, C++ |
절차지향 프로그래밍
절차지향 프로그래밍은 프로그램을 함수(프로시저) 단위로 나누고, 이 함수들을 순차적으로 실행하는 방식입니다. C언어가 대표적인 절차지향 언어입니다.
절차지향의 특징:
객체지향 프로그래밍
객체지향 프로그래밍(OOP) 은 프로그램을 객체 단위로 구성하고, 객체들이 서로 상호작용하는 방식입니다. Java가 대표적인 객체지향 언어입니다.
객체지향의 특징:
절차지향 vs 객체지향 비교
| 구분 | 절차지향 | 객체지향 |
|---|---|---|
| 중심 단위 | 함수(프로시저) | 객체(클래스) |
| 데이터와 기능 | 분리 | 하나의 객체로 결합 |
| 코드 재사용 | 함수 호출 | 상속, 다형성 |
| 대표 언어 | C | Java, Python, C++ |
| 클래스 | 없음 | 있음 |
| 상속 | 불가능 | 가능 |
| 다형성 | 불가능 | 가능 (오버라이딩, 오버로딩) |
| 캡슐화 | 불가능 | 가능 (접근 제어자) |
객체지향의 4대 특징
객체지향의 핵심 특징 4가지입니다.
1. 캡슐화 (Encapsulation)
데이터(속성)와 데이터를 처리하는 메서드를 하나로 묶고, 외부에서 직접 접근하지 못하도록 정보를 은닉하는 것입니다.
핵심 키워드: 데이터 은닉, 정보 은닉, 접근 제어자(private, public)
2. 상속 (Inheritance)
부모 클래스의 속성과 메서드를 자식 클래스가 물려받아 재사용하는 것입니다.
핵심 키워드: 코드 재사용, 부모-자식 관계, extends
상속에 대해 더 자세히 알아보기
3. 다형성 (Polymorphism)
하나의 이름으로 여러 가지 형태의 동작을 할 수 있는 것입니다. 오버라이딩과 오버로딩이 대표적입니다.
핵심 키워드: 오버라이딩, 오버로딩, 하나의 인터페이스로 여러 구현
4. 추상화 (Abstraction)
불필요한 세부 사항을 제거하고, 공통적인 속성과 기능을 추출하여 정의하는 것입니다. 추상 클래스와 인터페이스가 추상화를 구현하는 방법입니다.
핵심 키워드: 공통 속성 추출, 불필요한 세부사항 제거, 추상 클래스, 인터페이스