본문 바로가기

Spring

(3)
[Spring] 프록시와 AOP에 대한 공부 프록시대리자라는 의미로 간접적으로 대신하는 것을 의미한다.위 그림처럼 client가 server를 직접 호출할 수 있지만 client와 server사이에 대리자 즉 proxy를 두어 간접 호출할 수 있다. 아래처럼 간접 호출한 것을 대리자 proxy라고 한다. 위에 간접호출 부분에서 여러 프록시를 두어 호출이 가능하다. 이걸 프록시 체인이라고 한다. 프록시에서 중요한 점은 호출을 요청하는 객체가 서버를 호출한것인지, 프록시를 호출한것인지 몰라야한다. 어떤 것이 호출되는지 모르는것 즉 인터페이스를 사용해야한다. 또한 서버 객체를 프록시 객체로 변경해도 client의 코드를 변경해서는 안된다. 객체와 객체 사이에 프록시 객체가 중간에 있으면서 접근 제어와 부가 기능 추가를 수행 가능하다. 프록시는 2가지가 ..
[Spring] Bean에 대한 공부 Bean스프링 컨테이너에서 객체를 생성하고 관리되는 객체이다.  스프링 컨테이너Bean의 인스턴스화, 구성, 생명 주기, 제거 등 Bean을 관리하는 기능을 한다. 스프링 Bean은 DI와 IoC를 이용하여 외부에서 객체를 주입받는다. 이때 외부라는 게 스프링 컨테이너를 의미한다. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class)ApplicationContext를 스프링 컨테이너라 부른다. 스프링 컨테이너는 IoC 컨테이너, DI 컨테이너라고도 한다. ApplicationContext는 인터페이스이다. 위 코드는 스프링 컨테이너를 생성하고 구성 정보인 AppConfig.class를 넣..
[Spring] DI와 IoC에 대한 공부 Dependency (의존관계)A가 B를 의존하면 B가 변하면 A에도 영향을 미치는 관계를 말한다. public class Computer { private SamsungRam16g samsungRam16g; public Computer() { samsungRam16g=new SamsungRam16g(); }}위 코드처럼 Computer는 SamsungRam16g에 의존하게 된다. 필자는 간단한 예시로 하나의 클래스에서만 들었지만 실제로 이렇게 모든 코드를 짠다면 만약에 SamsungRam16g이 아니라 SamsungRam32g으로 변경하거나 다른 램으로 변경을 할 경우 쓰고 있는 모든 코드를 변경해야 한다.public class Computer { private Ram..