본문 바로가기

취준생대상

Java는 객체지향 언어인데, 객체지향이 무엇이라고 생각하나요? - 면접질문

반응형

취준생 대상 면접질문에 대한, 저같은 팀장 입장에서 어떤 대답을 원하는지 알려드립니다.

 

 

  • 이론을 알고 있다 → 핵심 4가지 특성을 언급함 ( 추상화, 캡슐화, 상속, 다형성 용어 )
  • 자기 경험에 녹였다 → 게시판 프로젝트 같은 경험 사례로 실전에서 어떻게 사용했는지 설명함.
  • 실무 관점이 있다 → 유지보수, 재사용성 같은 실무적 이점을 언급

 

저는 다음처럼 대답하는 지원자라면, 뽑습니다.

 

"객체지향은 비슷한 것들을 묶어서 처리하는 개념인데요.  데이터(속성)와 행동(메소드)을 묶어서 프로그래밍하는 방식이라고 생각합니다. 연락처라고 한다면, 사람의 이름,전화번호, 이메일과 같은 데이터와  전화걸기, 이메일 보내기 를 묶어서 처리하는 것입니다. 

크게 보면 추상화, 캡슐화, 상속, 다형성이라는 특징이 있는데, 저는 그중에서도 캡슐화와 다형성이 실무에서 중요하다고 느꼈습니다.

예를 들어, 제가 간단한 게시판 프로그램을 만들 때 User, Post 같은 객체를 만들고, 각 객체 안에 필요한 속성과 메소드를 묶으면서 캡슐화를 적용했습니다.

그리고 다형성을 활용해서 게시글을 수정하거나 삭제할 때도 PostService 같은 인터페이스를 두고 여러 구현체를 만들어 상황에 따라 다른 로직을 적용할 수 있도록 해봤어요.

즉, 객체지향은 코드 재사용성도 높이고, 유지보수도 쉬워지는 장점이 있어서, 실제 개발할 때도 이 원칙을 의식하려고 노력하고 있습니다."

 

 

감점되는 답변은?

  • "객체지향은 추상화, 캡슐화, 상속, 다형성이요." (그냥 나열하고 끝)
  • "객체로 프로그래밍 하는 겁니다." (너무 뭉뚱그림)
  • "객체지향은 잘 모르고, 그냥 코딩하면서 익히고 있습니다." (노력의 흔적 부족)

 

 

반응형