그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Architecture
Architecture

객체 지향 프로그래밍이란 무엇이고 어떤 특징이 있나요?

실무4/5
설계5/5
인간4/5
기초4/5

면접관의 질문 의도

OOP 용어 암기에서 멈추는지, 아니면 4대 특성을 TDA·상속/조합 같은 실제 설계 판단으로 연결할 수 있는지를 가른다.

큐레이션 답변

학습 자료

객체 지향 프로그래밍은 데이터와 동작을 객체에 묶고, 객체 간 메시지 협력으로 문제를 푸는 패러다임이다. 캡슐화로 내부 구현을 가리고, 추상화로 핵심 개념만 노출하며, 다형성으로 같은 인터페이스에 여러 구현을 끼우고, 상속으로 공통 구조를 재사용한다. 여기에 TDA(Tell, Don't Ask)처럼 객체에게 동작을 위임하는 흐름이 더해지면 응집도가 올라가고 결합도가 떨어진다. 실무에서는 상속을 남용하지 않고 인터페이스·조합 중심으로 균형을 잡는 게 핵심이다.

좋은 답변 구조

  1. 01OOP의 목적과 객체 중심 사고를 정의한다
  2. 02캡슐화·추상화·다형성·상속 4가지를 간결히 설명한다
  3. 03TDA처럼 객체 협력 원칙을 연결한다
  4. 04상속 남용 회피, 조합 중심 균형 같은 실무 주의점으로 마무리한다

자주 실수하는 포인트

상속을 재사용의 기본 해법으로 깔고 트리를 깊게 쌓는다
getter/setter로 내부 상태를 다 열어 캡슐화를 무력화한다
다형성을 인터페이스 없이 if/switch 분기로 대체한다

실무 맥락

  • 결제·주문 같은 핵심 도메인을 새 객체 구조로 설계하는 환경
  • 한 클래스에 책임이 너무 많이 쌓인 레거시를 리팩터링하는 환경
  • 결제 수단·알림 채널처럼 공통 인터페이스로 여러 구현을 갈아끼워야 하는 확장 기능 환경

본인 경험에 녹이는 힌트

조건 분기로 가득했던 코드를 TDA로 객체에 위임해 정리한 경험이 있다면 응집도·결합도 이야기와 묶을 수 있다

상속 트리가 깊어져 변경이 어려워졌고 그래서 조합으로 바꿔본 경험이 있다면 상속 한계 사례로 풀 수 있다

책임을 재배치한 뒤 테스트 작성이 쉬워진 경험이 있다면 캡슐화와 테스트성을 연결해 답할 수 있다

커뮤니티 인기 답변

전체 1개전체 보기
정정준호

하리

;&:“(&:

0

관련 꼬리 질문

Q1상속보다 조합이 유리한 기준은 무엇인가요
Q2인터페이스와 추상 클래스는 어떤 상황에서 선택하나요
Q3다이아몬드 문제를 자바 인터페이스에서는 어떻게 다루나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변
  • 08관련 꼬리 질문