언어 기초 인터뷰
객체지향·함수형 기본기 인터뷰 질문
캡슐화, 다형성, 상속과 합성, 불변성, 순수 함수의 선택 기준을 실제 코드 설계 관점에서 정리했습니다.
첫 30초 답변
“패턴 이름보다 변경이 자주 일어나는 곳과 의존성 방향을 보겠습니다. 데이터와 규칙을 함께 숨겨야 하는지부터 판단합니다.”라고 설명합니다.
자주 묻는 질문과 답변의 뼈대
상속보다 합성을 권하는 이유는?
상속은 구현 결합이 강해지고 부모의 변경이 자식에 영향을 줄 수 있습니다. 필요한 행동을 인터페이스와 협력 객체로 조합하면 교체와 테스트가 쉬워집니다.
캡슐화는 getter/setter인가요?
핵심은 내부 상태의 임의 변경을 막고 유효한 행위만 노출하는 것입니다. 예를 들어 금액을 직접 바꾸는 대신 충전·결제 메서드에 규칙을 둡니다.
불변성의 이점은?
함수 호출 전후의 상태 추적이 쉬워지고 동시성·캐시·테스트가 단순해집니다. 큰 객체 복사 비용은 영속 자료구조나 필요한 범위의 가변성으로 조절합니다.
면접 전 체크리스트
- 도메인 규칙을 데이터 가까이에 둔다
- 상속·합성의 교환 조건을 설명할 수 있다
- 인터페이스가 구현 세부사항을 새지 않게 한다
- 테스트 가능한 의존성 경계를 만든다
관련 언어 학습으로 복습하기
연습 방법
질문 하나를 골라 2분 안에 말로 답한 뒤, 빠진 가정·트레이드오프·검증 방법을 메모하세요. 다음 날에는 예시를 바꿔 같은 구조로 다시 답해 보세요.