7JeY world

[면접질문] 객체지향 프로그래밍이란? 본문

Interview/개발

[면접질문] 객체지향 프로그래밍이란?

7JeY 2019. 1. 28. 19:58
반응형
면접(OOP)

객체지향기법이란 무엇인가

컴퓨터 프로그래밍 패러다임의 하나로 프로그래밍에 필요한 데이터를 추상화시켜 상태, 행위를 가진 객체를 만들고 그 객체들 간에 유기적 상호작용을 통해 조직을 구성하는 것을 말한다.

필요 데이터 추상화 > 상태, 행위 가진 객체 > 객체들 간 유기적 상호작용 > 조직 구성!

 

장점
  • 코드 재사용 용이 - 다른 클래스 이용가능, 상속을 통해 확장 가능
  • 유지보수가 쉬움 - class 내부 멤버변수, 메소드 해당 부분만 수정하면 됨
  • 대형 프로젝트에 적합 - class 단위로 module화 가능

 

단점
  • 처리속도가 상대적으로 느리다
  • 객체가 많아지면 용량이 커질 수 있다
  • 설계시 많은 시간과 노력이 필요하다

 

 

class

추상화를 거쳐 집단에 속하는 속성(attribute)과 행위(behavior)를 변수와 메소드로 정의한 것

 

Instance

클래스에서 정의한 것을 토대로 실제 메모리상에 할당된 것

 

추상화

OOP에서는 class정의 하는 것을 말한다. 불필요한 정보는 숨기고 중요한 정보만 표현함으로써 공통의 속성이나 기능을 묶어 이름을 붙이는 것

 

캡슐화

코드를 재수정 없이 재활용 하는 것이 목적이다. OOP에서 기능, 특성의 모음을 클래스라는 캡슐해 분류해 넣는 것

 

상속

부모클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게 하고 기능의 일부분을 변경(재정의)도 가능 - overriding

 

다형성

하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석 될 수 있는 것 - Overriding, Overloading

 

 

반응형
Comments