제가 공부한 내용을 정리하는 블로그입니다.
아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
접은 글을 통해 먼저 답변을 해보시고 제가 정리한 답을 확인해보시기 바라겠습니다!!

면접 리스트

객체지향이란 무엇인가요?

더보기

역할과 책임을 갖는 객체들의 결합을 통해 프로그래밍하는 것을 의미합니다. 객체지향의 특징으로는 추상화, 캡슐화, 상속, 다형성이 있습니다. 이를 통해서 변경에 유연한 코드를 작성할 수 있습니다.

객체지향적인 프로그래밍을 개발하기 위해 가장 중요한 것은 무엇이라 생각하나요?

더보기

객체의 분석하여 상태화 행동을 적절히 추상화 및 캡슐화 하는 것이 중요하다고 생각합니다.

 

추상화는 복잡한 시스템을 간단하게 표현하기 위해 불필요한 세부 사항을 제거하고 핵심적인 특성만을 강조하는 과정으로, 이를 통해 개발자는 현실 세계의 개념을 모델링할 때 필요한 요소만을 선택하여 클래스를 설계할 수 있습니다.

 

소프트웨어의 복잡성을 줄이고 시스템을 더욱 직관적으로 이해할 수 있도록 도와주며, 유지보수성과 확장성을 향상시키는 데 필수적인 역할을 합니다.

추상화란 무엇인가요?

더보기

추상화는 각 도메인에 대해 불필요한 정보를 제거하고, 문제 해결에 필수적인 정보만 남기는 작업이라고 생각합니다.

다형성이란 무엇인가요?

더보기

다형성이란 동일한 메서드나 연산자가 다양한 객체에서 다른 방식으로 동작할 수 있도록 하는 객체지향 프로그래밍의 특성이라고 생각합니다. 

하나의 인터페이스를 구현하는 클래스들에 따라 각 메소드를 다른 방식으로 구현할 수 있습니다.

예를 들어 각 애플리케이션의 특성에 맞게 사용되는 데이터베이스가 있을 때 어떠한 이유로 데이터베이스 엔진이 교체될 때에 JDBC API를 의존하는 클라이언트는 소스코드를 수정하지 않는 것을 의미합니다.

캡슐화란 무엇인가요?

더보기

캡슐화객체의 상태화 행동을 객체 내부로 숨기는 것입니다. 이로 인해 결합도는 낮춰지고 응집도는 높아집니다.

결합도와 응집도가 무엇이며 좋은 코드를 위한 개발방법은 무엇인가요?

더보기

결합도모듈 간의 상호 의존성을 나타내며, 낮은 결합도가 좋은 설계로 여겨지는 반면, 응집도하나의 모듈이 얼마나 관련된 기능을 수행하는지를 나타내며 높은 응집도가 바람직하다고 생각합니다.

 

좋은 코드를 위한 개발 방법으로는 모듈 간의 결합도를 최소화하고, 각 모듈이 독립적으로 기능을 수행할 수 있도록 설계하며, 동시에 각 모듈이 명확한 목적과 관련성을 갖도록 하는 것이 중요합니다.

상속이란 무엇인가요? 장점과 단점도 설명해 주세요

더보기

상속객체지향 프로그래밍에서 기존 클래스(부모 클래스)의 속성과 메서드를 새로운 클래스(자식 클래스)가 물려받아 재사용할 수 있게 하는 것입니다.

상속의 장점은 코드의 재사용성을 높이고, 공통적인 기능을 부모 클래스에 정의함으로써 중복 코드를 줄일 수 있다는 점이며, 이를 통해 유지보수와 확장성을 향상시킬 수 있습니다.

반면에 단점으로는 잘못된 상속 관계가 복잡한 계층 구조를 초래할 수 있으며, 부모 클래스의 변경이 자식 클래스에 영향을 미칠 수 있어 시스템의 유연성을 저하시킬 수 있다는 점이 있습니다.

 

 

+ Recent posts