[토비의 스프링] 스프링의 IoC - 오브젝트 팩토리를 이용한 스프링 IoC
·
Server/Spring&Spring Boot
스프링의 IoC 오브젝트 팩토리를 이용한 스프링 IoC 애플리케이션 컨텍스트와 설정정보 빈 스프링이 제어권을 가지고 직접 만들고 관계를 주여하는 오브젝트 오브젝트 단위의 애플리케이션 컴포넌트 스프링 컨테이너가 생성과 관계설정, 사용 등을 제어해주는 제어의 역전이 적용된 오브젝트 빈의 생성과 관계설정 같은 제어를 담당하는 IoC 오브젝트를 빈 팩토리라고 부른다. 보통 빈 팩토리보다는 이를 좀 더 확장한 애플리케이션 컨텍스트를 주로 사용 DaoFactory를 사용하는 애플리케이션 컨텍스트 @Configuration 어노테이션 추가 스프링이 빈 팩토리를 위한 오브젝트 설정을 담당하는 클래스라고 인식. 오브젝트를 만들어주는 메소드에 @Bean 어노테이션 추가. UserDao()메소드는 UserDao 타입 오브젝..
[토비의 스프링] 제어의 역전 - 오브젝트 팩토리 활용, 제어권의 이전을 통한 제어관계 역전
·
Server/Spring&Spring Boot
제어의 역전 오브젝트 팩토리 활용 어떤 ConnectionMaker 구현 클래스를 사용할지 결정하는 기능이 중복돼서 나타나고 있다. public class DaoFactory { public UserDao userDao(){ return new UserDao(new likelionConnectionMaker()); // ConnectionMaker 구현 클래스를 서언하고 생성하는 코드의 중복 } public AccountDao account(){ return new AccountDao(new likelionConnecionMaker()); // ConnectionMaker 구현 클래스를 서언하고 생성하는 코드의 중복 } } 중복 문제 해결을 위해 분리하는 것이 가장 좋은 방법이다. ```java publ..
[토비의 스프링] 제어의 역전 - 오브젝트 팩토리
·
Server/Spring&Spring Boot
IoC 제어의 역전(Inversion of Control) 오브젝트 팩토리 UserDaoTest는 UserDao의 기능이 잘 동작하는지를 테스트하려고 만든 것인데, 다른 책임까지 떠맡고 있으므로 문제가 있다. 이걸 분리하는 작업을 진행한다. 팩토리 객체의 생성 방법을 결정하고, 만들어진 오브젝트를 돌려준다. 이런 일을 하는 오브젝트를 팩토리(factory)라고 부른다. 단지 오브젝트를 생성하는 쪽과 생성된 오브젝트를 사용하는 쪽의 역할과 책임을 깔끔하게 분리하는 목적으로 사용. public class DaoFactory { public UserDao userDao(){ // 팩토리의 메소드는 UserDao 타입의 오브젝트를 어떻게 만들고, 어떻게 준비시킬지 결정. ConnectionMaker connec..
[토비의 스프링] 오브젝트와 의존관계 - DAO의 분리
·
Server/Spring&Spring Boot
2.DAO의 분리 2-1. 관심사의 분리 개발자가 객체를 설계할 때 가장 염두에 둬야 할 사항은 바로 미래의 변화를 어떻게 대비할 것인가이다. 객체지향 기술이 만들어내는 가상의 추상세계 자체를 효과적으로 구성할 수 있고, 이를 자유롭고 편리하게 변경, 발전, 확장시킬 수 있다는데 의미가 있다. 분리와 확장을 고려한 설계 변경이 일어날 때 필요한 작업을 최소화하고, 변경으로 인한 문제를 일으키지 않을 수 있다. 모든 변경과 발전은 한 번에 한 가지 관심사항에 집중해서 일어난다. 프로그래밍의 기초 개념중 관심사의 분리를 객체 지향에 적용해보면, 관심이 같은 것끼리는 하나의 객체 안으로 또는 친한 객체로 모이게 하고, 관심이 다른 것은 가능한 한 따로 떠렁져서 서로 영향을 주지 않도록 분리하는 것. 2-2. ..
[토비의 스프링] 오브젝트와 의존관계 - 초난감 DAO
·
Server/Spring&Spring Boot
1. 초난감 DAO DAO(Data Access Object) DB를 사용하여 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트 1-1. User package tobi01.conangam.user.domain; public class User { String id; String name; String password; public String getId() { return id; } public String getName() { return name; } public String getPassword() { return password; } public void setId(String id) { this.id = id; } public void setName(String name) { thi..
[토비의 스프링] 스프링이란?
·
Server/Spring&Spring Boot
스프링이란? 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크 Java Virtual Machine에서 작동하며, 아파치 라이선스를 따르는 오픈 소스 프레임워크 스프링 컨테이너 설정 정보를 참고하여 애플리케이션을 구성하는 오브젝트를 생성하고 관리 독립적으로 동작할 수도 있지만 보통 웹 모듈에서 동작하는 서비스나 서블릿으로 등록하여 사용 Ioc/DI, 서비스 추상화, AOP IoC/DI 오브젝트의 생명 주기와 의존관계에 대한 프로그래밍 모델 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있다. 스프링이 직접 제공하는 모든 기술과 API, 컨테이너도 IoC/DI방식으로 작성됨 서비스 추상화 환경이나 서버, 특정 기술에 종속되지 않고 이식성이 뛰어난 애플리케이션을 만들 수 있도록 지..
코드플리
'tobi' 태그의 글 목록