OOP 3

[OVERVIEW] IOC(Inversion of Control)

기술면접때 의존성 역전(IoC)에 대해 설명해달라는 질문을 받았는데 대답을 못했었다. 근데 대답을 못하는 내가 좀 당황스러웠음. 이런 기초적인 것도 설명을 못한다고...? 스스로 너무 어이가 없었음. 암튼 그래서 정리.IoC란?Inversion of Control (IoC)는 객체의 생성과 제어를 개발자가 직접 하지 않고, 객체의 생성과 의존성 관리 책임을 외부로 넘겨, 코드의 결합도를 낮추고 유연성을 높이는 소프트웨어 설계 원칙이다. 객체지향 프로그래밍을 지향하는 프로그램에서 객체는 다른 객체와 협력하여 동작한다. 가령, 클래스A가 클래스B의 기능을 필요로 하면, A는 B를 생성하여 사용한다. 그러나 이 과정에서 A가 B에 의존을 하게되어 결합도가 높아진다. Spring 같은 많은 프레임워크는 A가 직..

카테고리 없음 2024.10.25

[COMPARISON] State / Behavior in Object

Technical Interview 에서 받았던 질문 中 1Object에서의 State / Behavior 를 비교해 설명해주세요. 객체(Object)란?객체는 현실 세계의 사물과 유사하게, 데이터와 기능을 하나로 묶어놓은 프로그래밍 요소이다. 자바 같은 객체지향 언어에서 모든 객체는 특정 클래스(Class)의 인스턴스로, 해당 클래스는 객체의 특성(속성)과 할 수 있는 행동을 정의한다. 상태(State)란?객체의 상태는 객체가 갖는 데이터나 속성을 의미한다. 객체의 상태는 시간이 지남에 따라 변할 수 있으며, 이 상태는 객체의 변수에 저장된다. 상태는 객체가 특정 시점에서 가지고 있는 모든 정보를 포함한다. 예를 들어, Car 객체가 있다면, 그 객체의 상태는 "현재 속도", "연료량", "차 색상" ..

JAVA/JAVACORE 2024.10.03

[COMPARISON] Object / Class

Technical Interview 에서 받았던 질문 中 1Object와 Class 를 비교해 설명해주세요.1. 정의Class (클래스): 클래스는 객체의 설계도 또는 템플릿이다. 클래스는 객체가 가질 속성(data)과 행동(method)을 정의한다. 즉, 객체가 어떻게 생기고 어떤 동작을 할 수 있는지를 규정하는 청사진이다. 예를 들어, "Car" 클래스는 모든 자동차가 가져야 할 공통 속성(예: 색상, 모델)과 행동(예: 가속, 정지)을 정의한다.Object (객체): 객체는 클래스의 인스턴스이다. 클래스라는 설계도를 바탕으로 만들어진 실제 사용 가능한 실체다. 객체는 클래스에서 정의된 속성과 행동을 실제 값으로 채운 존재로, 예를 들어, "Car" 클래스에서 만든 "myCar" 객체는 빨간색이고 현..

JAVA/JAVACORE 2024.10.03