개발일지

2024.03.06 TIL

과일바구니♡ 2024. 3. 8. 18:34

1. 기술면접 질문공부

 1) DI, IoC에 대해 설명해주세요

DI(Dependency Injection)와 IoC(Inversion of Control)는 소프트웨어 개발에서 중요한 개념입니다. 먼저, DI는 의존성 주입이라고도 불리며, 객체 간의 의존 관계를 외부에서 주입하는 방식입니다. 일반적으로 객체가 다른 객체를 사용하는 경우, 이를 의존성이라고 합니다. 예를 들어, A 객체가 B 객체를 사용한다면 A는 B에 의존성을 가지고 있습니다. 이때, DI는 A 객체가 B 객체를 직접 생성하거나 관리하지 않고, 외부에서 B 객체를 주입받아 사용하는 방식입니다. 이를 통해 객체 간의 결합도를 낮추고, 유연하고 확장 가능한 코드를 작성할 수 있습니다. 다음으로, IoC는 제어의 역전이라고도 불리며, 객체의 생성과 생명주기 관리를 개발자가 아닌 프레임워크나 컨테이너에게 위임하는 개념입니다. 일반적으로 개발자가 객체를 생성하고 관리하는 전통적인 방식에서는 개발자가 모든 제어를 담당합니다. 하지만 IoC에서는 개발자는 객체의 생성과 관리를 프레임워크에게 위임하고, 필요한 경우 프레임워크가 적절한 시점에 필요한 객체를 생성하고 제공합니다. 이를 통해 개발자는 핵심 비즈니스 로직에 집중할 수 있으며, 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. 요약하자면, DI는 객체 간의 의존 관계를 외부에서 주입하는 방식이고, IoC는 객체의 생성과 생명주기 관리를 프레임워크에게 위임하는 개념입니다. 이 두 가지 개념은 소프트웨어 개발에서 유연하고 확장 가능한 코드를 작성하기 위해 중요한 역할을 합니다.

 

4줄요약

DI(Dependency Injection)는 객체 간의 의존 관계를 외부에서 주입하는 방식이며, 코드의 결합도를 낮추고 유연한 코드를 작성할 수 있게 해줍니다. IoC(Inversion of Control)는 객체의 생성과 생명주기 관리를 프레임워크에게 위임하는 개념으로, 개발자는 핵심 비즈니스 로직에 집중할 수 있고 코드의 가독성과 유지보수성을 향상시킵니다. 이 두 개념은 소프트웨어 개발에서 중요한 역할을 합니다.

 

2)객체지향 프로그래밍이란 무엇이고 어떻게 활용할 수 있나요?

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어 개발 패러다임 중 하나로, 현실 세계의 개념을 추상화하여 객체라는 단위로 표현하고, 객체들 간의 상호작용을 통해 프로그램을 구성하는 방식입니다.

객체지향 프로그래밍은 다음과 같은 장점을 가지고 있습니다:

모듈화와 재사용성: 객체는 독립적인 모듈로 설계되며, 재사용 가능한 구성 요소로 활용할 수 있습니다.캡슐화와 정보은닉: 객체는 데이터와 그를 조작하는 메서드를 하나의 단위로 묶어 캡슐화하고, 외부에서 직접 접근할 수 없도록 정보를 은닉합니다.상속과 다형성: 상속을 통해 기존 클래스의 속성과 기능을 재사용하고, 다형성을 통해 유연하고 확장 가능한 코드를 작성할 수 있습니다.유지보수와 확장성: 코드의 수정과 확장이 간편하며, 변경이 필요한 부분에 대해서만 수정하면 되므로 유지보수가 용이합니다.

객체지향 프로그래밍은 실제 세계의 복잡한 문제를 객체 단위로 분해하고 해결하는 방식이기 때문에 현실 세계의 개념을 프로그램에 반영하기에 적합합니다. 이를 통해 코드의 가독성과 유지보수성을 높일 수 있으며, 대규모 프로젝트에서도 효과적으로 협업이 가능합니다.

 

4줄요약

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 현실 세계의 개념을 추상화하여 객체로 표현하고, 객체 간의 상호작용으로 프로그램을 구성하는 개발 패러다임입니다. OOP는 모듈화와 재사용성을 높여 유지보수가 용이하며, 캡슐화와 정보은닉으로 코드의 안정성을 높이고, 상속과 다형성을 통해 유연하고 확장 가능한 코드를 작성할 수 있습니다. 이를 통해 복잡한 문제를 단순하고 구조화된 방식으로 해결할 수 있습니다.

'개발일지' 카테고리의 다른 글

2024.03.08 TIL  (0) 2024.03.08
2024.03.07 TIL  (0) 2024.03.08
2024.03.05 TIL  (0) 2024.03.05
2024.03.04 TIL  (0) 2024.03.04
2024.02.29 TIL  (3) 2024.02.29