1.스프링)기술면접질문
1) 객체지향이란 무엇인지 설명해주세요.
-객체지향 프로그래밍(Object-Oriented Programming, OOP)은 데이터를 추상화하여 객체를 만들고, 이러한 객체들이 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다. 객체는 데이터와 그 데이터와 관련된 메소드를 포함하며, 프로그램은 이러한 객체들의 집합으로 구성됩니다. OOP는 코드의 재사용성과 유지보수성을 높이는 것을 목표로 합니다
- (꼬리질문) 객체지향의 특징은 무엇이 있나요?
- 추상화(Abstraction): 복잡한 실세계 문제를 단순화하여 객체의 핵심적인 특성만을 모델링합니다.
- 캡슐화(Encapsulation): 객체의 데이터(상태)와 그 데이터를 조작하는 메소드를 하나로 묶어, 객체의 세부 구현 내용을 외부에 숨기고, 외부의 불필요한 접근을 제한합니다.
- 상속(Inheritance): 한 클래스의 특성을 다른 클래스가 물려받을 수 있게 해, 코드의 재사용성을 높이고, 중복을 줄입니다.
- 다형성(Polymorphism): 같은 이름의 메소드가 다른 기능을 수행할 수 있게 하여, 코드의 유연성을 높입니다.
- (꼬리질문) OOP란?
OOP는 위에서 설명한 객체지향 프로그래밍의 약자로, 코드를 객체 단위로 구성하여 프로그래밍하는 패러다임을 의미합니다.
OOP는 프로그램을 보다 유연하고, 확장 가능하며, 유지보수하기 쉽게 만드는 데 도움을 줍니다.
- (꼬리질문) SOLID 원칙은 무엇인가요?
SOLID 원칙은 객체지향 설계에서 좋은 설계의 기준을 제공하는 5가지 원칙의 약자입니다:
- S: 단일 책임 원칙(Single Responsibility Principle): 한 클래스는 하나의 책임만 가져야 합니다.
- O: 개방-폐쇄 원칙(Open/Closed Principle): 소프트웨어 구성요소는 확장에는 열려 있어야 하지만, 변경에는 닫혀 있어야 합니다.
- L: 리스코프 치환 원칙(Liskov Substitution Principle): 서브타입은 언제나 그것의 베이스 타입으로 교체할 수 있어야 합니다.
- I: 인터페이스 분리 원칙(Interface Segregation Principle): 클라이언트는 자신이 사용하지 않는 인터페이스에 의존하면 안 됩니다.
- D: 의존성 역전 원칙(Dependency Inversion Principle): 고수준 모듈은 저수준 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존해야 합니다.
2)상속이란 무엇인지 프로젝트 내에 적용해 본 부분과 함께 예를 들어 설명해주세요.
상속은 객체지향 프로그래밍에서 중요한 개념 중 하나로, 한 클래스(부모 클래스)의 속성과 메소드를 다른 클래스(자식 클래스)가 물려받아 사용할 수 있게 하는 기능입니다. 이를 통해 코드의 재사용성을 높이고, 중복을 줄이며, 유지보수를 용이하게 합니다. 상속은 extends 키워드를 사용하여 구현됩니다.
프로젝트 내 상속 적용 예시
예시: 게임 개발 프로젝트
게임 개발 프로젝트에서 여러 종류의 캐릭터(예: 전사, 마법사, 궁수)를 구현할 때, 모든 캐릭터가 공통적으로 가지는 속성(예: 체력, 마력, 경험치)과 메소드(예: 이동하기, 공격하기)를 Character라는 부모 클래스에 정의합니다. 그리고 각 캐릭터 종류별로 특화된 속성이나 메소드(예: 전사의 방어하기, 마법사의 마법 사용하기)를 자식 클래스에서 추가로 구현합니다.
'개발일지' 카테고리의 다른 글
| 2024.04.05 TIL (0) | 2024.04.05 |
|---|---|
| 2024.04.04 TIL (0) | 2024.04.04 |
| 2024.04.02 TIL (0) | 2024.04.02 |
| 2024.04.01 TIL (0) | 2024.04.01 |
| 2024.03.29 TIL (0) | 2024.03.29 |