본문 바로가기

반응형

OOP

(3)
IoC와 DI IoC (Inversion of Control) 제어의 역전이라는 의미로, 메서드나 객체의 호출이 개발자가 아닌 외부에서 결정되는 것을 의미한다. IoC 장점 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있도록 한다. 따라서 가독성이 높고, 코드 중복은 적으며 유지보수 시 편리하다. IoC 컨테이너 객체에 대한 생성 및 생명주기를 관리할 수 있는 기능을 제공한다. 예로는 Spring 프레임워크의 Spring 컨테이너가 있다. 기존에는 다음과 같이 객체가 생성되고 실행되었다. 1. 객체 생성 2. 의존성 객체 생성 (클래스 내부에서 new 연산자를 통해 생성) 3. 의존성 객체 메서드 호출 Spring의 경우 다음과 같다. 1. 객체 생성 2. 의존성 객체 주입 (제어권을 ..
DI 방법과 장단점 DI 방법 의존성 주입 방법에는 다양한 방법이 존재한다. 필드 주입 수정자(setter) 주입 생성자 주입 각 방법의 장단점과, 생성자 주입을 사용해야하는 이유를 알아보자. 필드 주입 필드에 @Autowired 어노테이션만 붙여주면 자동으로 의존성 주입이 된다. @Controller public class Controller{ @Autowired private Service service; } 코드가 간결한 것이 장점이지만, 반대로 그렇기 때문에 의존관계를 파악하기 힘들다. 또한 외부에서 접근이 불가하며, 필드가 final 변수일 경우 @Autowired 어노테이션을 쓸 수 없다. 수정자(setter) 주입 Setter 메소드에 @Autowired 어노테이션을 붙이는 방법이다. @Controller pu..
OOP 란? OOP Object Oriented Programming으로 객체 지향 프로그래밍을 뜻한다. 정확히 OOP가 무엇인지 왜 사용해야하는지 알아보자 예시 : 키보드로 입력을 받아 프린터로 출력하는 PJT 위의 프로젝트를 개발 요청받았다고 생각해보자 단일 입력, 단일 출력 키보드 하나와 프린터 하나를 처리하는 소스는 아래와 같다. public void copy() { int c; while ((c = readKeyboard()) ≠ EOF) { writePrinter(c); } } 다중 입력, 단일 출력 키보드, 프린터에 추가로 종이 테이프 리더기 입력이 추가되었다. 위의 소스를 수정해 플래그를 두어 입력을 구분한다. private boolean GptFlag = false; public void copy()..

반응형