본문 바로가기

전체 글

(164)
ioc(inversion of control) ioc : 제어의 역전 인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해준다 컨테이너 역할을 해주는 프레임워크에게 제어하는 권한을 넘겨서 개발자의 코드가 신경 써야 할 것을 줄인다. 기존에 객체를 개발자가 관리하는 방식이 아니라 스프링이 객체를 관리한다. 메타데이터(xml설정)을 통해 beans를 관리하고 어플리케이션의 중요부분을 형성한다.
디자인 패턴과 프레임워크 디자인 패턴 사용이유 1 요구사항은 수시로 변하는데 그 때 소스코드 변경을 최소화 할 수 있다. 2 팀 프로젝트 시 사람마다 다르게 코딩하는 게 아니라 규칙을 정해서 서로 이해 할 수 있게 한다. 3 보기 편한 직관적인 코드를 통해서 다른 사람이 이해하기 쉽다. 프레임워크 사용이유 1 비기능적인 요소를 매번 구현하는 일을 극복해준다. 2 기능적인 요구사항에 집중할 수 있도록 한다. 3 디자인 패턴과 마찬가지로 반복적으로 발견되는 문제를 해결하기 위한 특화된 솔루션을 제공한다.
Software재사용 방안 1.copy&paste(복사,붙여넣기) 2.method(메소드) 자주 사용되고,유사한 기능들을 모아 메서드로 정의하여 재사용합니다. 단점: 메서드의 이름,리턴타입,매개변수의 개수,타입을 변경하면 그 메소드를 사용하던 부분에 오류가 생길 수 있다. 3.class 재사용(상속) 상위 클래스가 가진 모든 기능을 하위 클래스에게 반드시 사용하도록 강제합니다. 4.aspect oriented programming(관점 지향 프로그래밍) 관심의 분리 스프링에서는 비즈니스 로직의 어떤 행동을 할 때 메소드를 직접 호출하는 것이 아니라 위빙을 통해서 기능을 가져올 수 있다.객체 지향 프로그래밍을 더욱 객체지향스럽게 만들어주는 개념이라고 볼 수 있다.
dependency object(의존 객체) 객체 생성 시에 필요한 객체를 의존 객체라고 한다. //UML 클래스 및 시퀀스 다이어그램(위키백과) DAO dao() = new DAO(); //의존 객체 Dependency Injection(의존성 주입) 의존성 주입은 프로그램 디자인이 결합도를 느슨하게 되도록 하고 의존관계 역전 원칙과 단일책임원칙을 따르도록 클라이언트의 생성에 대한 의존성을 클라이언트의 행위로부터 분리하는 것이다. 내 생각: 의존성 주입의 이점은 의존성 주입 개념 이전에 쓰던 방법처럼 객체를 필요로 하는 클래스에서 매번 객체를 생성하는 것은 낭비이고 유지보수와 가독성을 떨어 뜨리기 때문에 스프링을 이용해서 객체를 생성해놓고 어디서든 사용할 수 있게 준비해두는 것이 의존성 주입이다. 가독성과 재사용성이 높아진다.