일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Immutable
- 빌드툴
- 컴퓨터시스템
- IOC
- JPA
- 클린코드
- springwebmvc
- FunctionalInterfaces
- gradle
- DispatcherServlet
- lambda
- Spring
- beanfactory
- DesignPattern
- 토비의스프링3.1
- ApplicationContext
- java
- springboot
- 프록시
- String
- 링커
- Kotlin for Java Developers
- 토비의스프링
- 자바
- 메이븐
- ORM
- hibernate
- AutoConfiguration
- exception
- 링킹
- Today
- Total
목록토비의스프링3.1 (5)
엔지니어로 가는 길
지난 글에서 프록시란 무엇인지 알아보았고, 간단한 프록시 예제를 하나 살펴보았다. 프록시(Proxy)란 무엇인지 자바 코드로 보자 프록시(Proxy)란 무엇인지 자바 코드로 보자 Proxy Proxy의 사전적 정의는 대리인이다. 자바에서 프록시는 타겟의 기능을 확장하거나 타깃에 대한 접근을 제어하기 위한 목적으로 사용하는 클래스를 말한다. 여기서는 기능을 확장하는 프록시 live-everyday.tistory.com 이번에는 지난 시간의 예제를 발전시켜 자바를 통해 다이나믹하게 프록시를 구현하는 방법을 살펴보도록 한다. '다이나믹하게'라는 뜻은 코드로 일일이 프록시를 만드는 것이 아니라 런타임에 프록시가 생성되는 것을 의미한다. 먼저 왜 다이나믹하게 프록시를 구현해야 하는지 살펴보자. 프록시 구현의 문제..
프록시 Proxy의 사전적 정의는 대리인이다. 자바에서 프록시는 타겟의 기능을 확장하거나 타깃에 대한 접근을 제어하기 위한 목적으로 사용하는 클래스를 말한다. 여기서는 기능을 확장하는 프록시의 예시를 보도록 한다. Hello라는 클래스의 메소드가 대문자로 변환된 문자열을 리턴하게 하고 싶다고 해보자. 이때 프록시를 이용하면 Hello의 메소드를 변경하지 않은 채로 ‘대문자로 변환’이라는 부가 기능을 추가할 수 있다. 여러 구현 방법이 있지만 지금은 프록시의 개념을 이해하는 것이 목적이므로 인터페이스를 통해 간단하게 구현하는 방법을 알아보자. 위와 같이 Hello라는 이름의 인터페이스를 만든다. HelloTarget이라는 클래스를 만들어 Hello를 구현한다. 다음으로 HelloUppercase라는 또 다..
스프링 애플리케이션의 동작 방식 스프링 IoC 컨테이너는 빈(Bean) 설정 메타정보를 이용하여 빈 객체(Object)를 만들고 DI(Dependency Injection) 작업을 수행한다. 하지만 이것만으로는 애플리케이션 동작하지 않는다. 자바 애플리케이션의 main() 메소드처럼 어디에선가 특정 빈 오브젝트의 메소드를 호출함으로써 애플리케이션을 동작시켜야 한다. 즉, 적어도 한 번은 위의 예와 같이 IoC 컨테이너에게 요청하여 빈 객체를 가져와야 하는데, 이때는 반드시 getBean()이라는 메소드를 사용해야 한다. 그러나 그 이후로는 다시 getBean()으로 빈 객체를 가져올 필요가 없다. 빈 객체들끼리 DI로 서로 연결되어 있으므로 의존관계를 타고 필요한 객체가 호출되면서 애플리케이션이 동작하기..
스프링의 가치를 제대로 누리며 사용하려면 스프링을 제대로 공부해야 한다. 스프링이 지향하는 가치와 프로그래밍 모델을 충분히 이해하지 못하고는 제대로 활용할 수 없다. 스프링을 성공적으로 학습했는지를 확인할 수 있는 좋은 방법이 있다. 스프링을 공부하고 적용한 이후에 자신이 좀 더 나은 개발자가 되었는가 확인해보는 것이다. ... 스프링을 공부하고 적용했지만 스프링의 사용법에 조금 익숙해진 것을 빼면 더 나아진 게 없다고 느낀다면 스프링을 잘못 공부한 것일지도 모른다. IoC와 IoC 컨테이너 스프링 애플리케이션에서는 객체 생성과 관계설정, 사용, 제거 등의 작업을 애플리케이션 코드 대신 독립된 컨테이너가 담당한다. 컨테이너가 코드 대신 객체에 대한 제어권을 갖고 있다고 해서 Inversion of Con..
스프링이란 스프링은 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크다. 애플리케이션 프레임워크는 애플리케이션 개발을 빠르고 효율적으로 할 수 있도록 애플리케이션의 바탕이 되는 틀과 공통 프로그래밍 모델, 기술 API 등을 제공해준다. 애플리케이션 기본 틀 – 스프링 컨테이너 스프링은 스프링 컨테이너 또는 애플리케이션 컨텍스트라고 불리는 스프링 런타임 엔진을 제공한다. 공통 프로그래밍 모델 – IoC/DI, 서비스 추상화, AOP 프레임워크는 애플리케이션 코드가 어떻게 작성돼야 하는지에 대한 기준도 제시해준다. 이런 틀을 프로그래밍 모델이라고 한다. 스프링은 세 가지 핵심 프로그래밍 모델을 지원한다. 1. IoC/DI IoC/DI는 객체의 생명주기와 의존관계에 대한 프로그래밍 모델이다..