면접 준비 25.02.19 : OOP

2025. 2. 19. 15:17

OOP

OOP(Object-Oriented Programming) 객체지향 프로그래밍

프로그램 설계 방법 중 하나로 객체 단위로 프로그램을 구성하는 것을 의미한다. 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법

 

상속이란?

부모 클래스의 속성과 기능을 그래도 이어받아 사용하거나 자식 클래스에 맞게 기능을 수정하여 사용할 수 있게 하는 것

추상화란?

공통의 속성이나 기능을 묶어 이름을 붙이는것

다형성이란?

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

캡슐화란?

기능과 특성의 모음을 클래스라는 캡슐에 묶어 외부에서 접근하지 못하도록 보호하는 것

 

객체지향 추가 질문

  • 장점, 단점
    • 장점 : 상속을 통해서 코드의 재사용이 용이하고, 수정해야하는 클래스의 내용만 수정하면 전체가 변경되기 때문에 유지보수가 쉽다.
    • 단점 : 절차적 프로그래밍에 비해서 속도가 느리다. 코드가 복잡해지면 메모리 사용량이 늘어나고, 관계가 복잡해지만 유지보수에 어려움이 발생할 수 있다.
  • (꼬리 질문) SOLID 원칙은 무엇인가요?
    • SRP(Single Responsibility Principle) : 단일 책임 원칙
      • 객체는 단 하나의 기능만 담당해야한다.
    • OCP(Open Closed Principle) : 개방 폐쇄 원칙
      • 클래스는 기능을 추가할 때는 열려있어야 하며, 수정할 때는 닫혀있어야 한다.
      • 추상화와 상속이 개방 폐쇄 원칙을 지키기 위한 역할을 한다.
    • LSP(Listov Substitution Principle) : 리스코프 치환 원칙
      • 서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있어야 한다.
    • ISP(Interface Segregation Principle) : 인터페이스 분리 원칙
      • 인터페이스를 각각 사용에 맞게 잘게 분리해야한다.
    • DIP (Dependency Inversion Principle) : 의존 역전 원칙
      • 고수준 모듈은 저수준 모듈에 의존 해서는 안되고 모두 추상화에 의존해야한다.
      • DIP를 지키기 위한 아키텍처 구조가 clean architecture이다.

'기초' 카테고리의 다른 글

면접 준비 25.02.19 -2  (0) 2025.02.19
면접 질문 CS 25.02.18  (0) 2025.02.18

BELATED ARTICLES

more