본문 바로가기
소프트웨어 공학

[객체지향] 객체지향 프로그래밍 간단 개요

by 티옌.liy 2022. 11. 7.

여러 프로그래밍 방법론 중에

현재 가장 많이 사용되는 방법론으로

객제지향 프로그래밍이 있는데

 

신입 개발자 면접에서

기본기 확인용으로 자주 물어보므로

꼭 숙지하는게 좋다.

 

 

1. 객체지향 프로그램이란 무엇인가?

정식 명칭은 Object-Oriented Programming 줄여서 OOP 라고 한다.

처리할 데이터를 추상화 하여 값과 기능을 가진 객체로 구현하고. 객체간의 상호작용으로 시스템을 구성하는 방법론이다.

 

 

1.1 객체지향은 왜 나왔는가?

 

초기의 소프트웨어는 기능이 단순해서 프로시저 중심으로 코드를 작성해도 큰 문제가 없었는데

SW가 발전하면서 개발 규모가 커지자 변수나 구조체 문법으로는 감당이 힘들어져 새로운 대안이 필요했다.

 

절차지향이 기능을 중심으로 ' 어떤 기능을 어떤 절차로 진행할 것인가 ' 관점으로 코드를 작성한다면

객체지향은 객체를 중심으로 ' 어떤 객체가 어떤 기능을 할 것인가 ' 관점으로 코드를 작성한다.

 

 

1.2 객체지향 프로그래밍의 특징

 

대표적으로 4가지 특징을 가지는데, 캡슐화, 상속, 다형성, 추상화이다.

 

캡슐화는 Class로 변수와 함수를 하나의 객체로 구성하고 접근 권한을 제어한다.

상속은 부모 클래스의 변수와 함수를 자녀 클래스에게 복사 또는 접근 권한을 부여한다.

다형성은 객체를 다른 형태로 재구성하는 형태를 말하며 오버로딩과 오버라이딩이 대표적이다.

추상화는 객체의 공통 변수와 함수를 설계하고 Class를 정의하여 청사진을 만드는것이다.

 

 

1.3 객체지향 프로그래밍의 장단점

 

장점

핵심은 모듈화이다.

 

- 확장성 : 데이터와 기능이 Class 객체로 모듈화 되어있어, 기능 변경에 용이

- 재사용성 : 모듈화된 객체를 즉시 생성하여 사용하기 좋음

- 유지보수 : 코드가 모듈화 되어있어 개발 범위가 구체적이고 명확함

-  대규모 프로젝트 적합 : 위 장점으로 분업하여 작업하는 프로젝트에 적합

 

단점

핵심은 성능이다.

 

- 절차지향에 비해 절차가 많아 성능이 느리다.

- 객체가 매우 많을 시 용량 및 관리 문제

- 시스템 설계에 시간과 비용이 필요

댓글