본문 바로가기

책 읽기/스프링 책 읽기

(19)
스프링 책 읽기(Spring in action) - 스프링 인 액션 후기 약 2달?.. 간 스프링-인-액션 4판을 다 읽었다.. 사실 장점보단 단점이 더 큰 책인것 같다. 장점 web.xml 설정보다는, 자바 설정에 초점을 두었음, web.xml은 쓰기도 어렵고 보기도 힘들다고 생각하기 때문에 이런 점이 좋았음 각 챕터의 도입부에, 다양한 스프링에 대한 세부 설정등이 적혀 있어 좋음 스프링의 시작부터, 서비스 적용까지의 내용이 담겨있음 단점 번역과 검수가 제대로 안되어 있음... *라고 고쳐주세요* 라는 멘트가 그대로 책에 남아있을 정도이고, 그림은 원서와 때때로 다름 챕터의 도입부는 좋지만, 챕터의 뒤로 갈수록 '아 이것도 말해줘야지?!' 라는 느낌이 강할만큼 필요 없는 정보가 많음 자바설정을 잘 알려주다가, 갑자기 후반부에는 xml설정만 알려줌 (귀찮았나?..) 좋은 후기..
스프링 책 읽기(Spring in action) - 21. 스프링 부트를 사용한 스프링 개발 간소화 스프링 부트 : 스프링 애플리케이션을 개발하는데, 가장 지루한 부분들을 제거, 스프링을 간소화 해준다 1. 스프링 부트 소개 스프링 부트의 획기적인 네 가지 기능 스프링 부트 스타터 - 프로젝트의 메이븐이나 그래들 빌드에 추가 가능한, 일반적인 그룹화된 의존을 단일 의존으로 모음 자동 설정 - 합리적으로 어플리케이션이 필요한 빈을 추측하고, 자동으로 설정하기 위한, 조건부 설정 기능 제공 커맨드라인 인터페이스 - 스프링 어플리케이션 개발을 더 간단하게 해주기 위해, 자동 설정에서 그루비 프로그래밍 언어의 장점 활용 액추에이터 - 스프링 부트 어플리케이션에 특정 관리 기능 추가 1.1 스타터 의존 추가 * 그래들과, 메이븐으로 간결하게 의존성을 표현할 수 있다. dependencies { compile("..
스프링 책 읽기(Spring in action) - 20. JMX를 이용한 스프링 빈 관리 스프링의 DI는 빈 프로퍼티를 설정하는 방법중 하나이다. 그러나 일단 배포가 돼서 실행중이면, DI만으로는 설정을 변경할 수 없다. * 이 때 실행중인 앱의 설정을 바꾸기 위해, JMX(Java Management Extenstison)을 사용할 수 있다. 관리빈(Management Bean, 이하 MBean) : JMX를 이용한 관리 목적에 특화되어 있는 구성요소. 관리 인터페이스를 정의하는 메소드를 노출하는 자바 빈 => 네가지 타입의 MBean이 정의 표준 MBean : 고정된 자바 인터페이스의 리플렉션에 의해 관리 인터페이스가, 결정되는 MBean 동적 MBean : 실행시에 DynamicMBean 인터페이스의 메소드 호출에 의해 관리 인터페이스가 결정, 실행시마다 달라질 수 있음 오픈 MBean..
스프링 책 읽기(Spring in action) - 19. 스프링을 사용하여 이메일 전송하기 1. 이메일 전송을 위해 스프링 설정하기 MailSender 인터페이스 : 스프링의 이메일 추상화 핵심. 해당 인터페이스의 구현체는 이메일 서버에 연결하여 이메일을 전송한다 JavaMailSenderImpl : MailSender의 구현체, JavaMail API를 사용한다 1.1 메일 전송자 설정하기 // JavaMailSenderImpl은 @Bean 메소드의 몇개 라인만으로 설정됨 @Bean public MailSender mailSender(Environment env) { JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); mailSender.setHost(env.getProperty("mailserver.host")); mailSender.se..
스프링 책 읽기(Spring in action) - 17. 스프링 메시징 * 이전 장에서 알아본, RMI. Hessian, Burlap, HTTP invoker등은, 애플리케이션 간의 동기식(synchoronous) 통신. * 하지만 애플리케이션에는 동기식만 존재하지는 않음. 비동기식(asynchronous) 메시징 이용 => JMS(Java Message Service), AMQP(Adavanced Message Queuing Protocol)등을 사용할 수 있다 1. 비동기식 메시징에 대한 간단한 소개 * 동기식의 경우에는, 원격 메소드를 호출하면 클라이언트는 메소드의 완료까지 기다린다. 심지어 원격메소드가 아무것도 반환하지 않아도 서비스가 끝나지 않으면 클라이언트는 무한 대기 상태 * 비동기식의 경우, 클라이언트는 서비스가 메시지를 처리하는 것을 기다리지 않아도 된다. ..
스프링 책 읽기(Spring in action) - 15. 원격 서비스 사용하기 * 스프링에서는, 다른 서비스에 원격으로 액세스하기 위해 통신을 해야한다. 이러한 과정에서 몇 가지의 리모팅 기술을 사용한다 1. 스프링 리모팅 개요 리모팅 : 클라이언트 애플리케이션과 서비스 간의 대화. 클라이언트 측에서 기능이 필요하면, 애플리케이션이 그 기능을 제공 가능한 다른 시스템에 접촉을 시도 다른 애플리케이션과 서비스의 통신은, 클라이언트에서 호출하는 원격 프로시저 호출(RPC, Remote Procedure Call)로 시작 됨. 표면적으로 메소드 호출과 유사함. 로컬메소드 호출과는, 인접성에서 차이점을 보임 -> 근거리(대화) vs 원거리(전화통화) 스프링은 여러 RPC 모델에 대해, 리모팅을 지원해줌 * 해당 RPC모델에 관계 없이, 모든 모델에 대해 지원 기능에 한 가지 공통된 테마가..
스프링 책 읽기(Spring in action) - 14. 시큐리티 메소드 어노테이션을 활용하는 시큐리티 메소드 스프링에서 가장 일반적으로 사용되는 보안방식은, 어노테이션을 이용하여 보안을 적용하는 방식 스프링 시큐리티 - @Secured JSR-250 - @RolesAllowed Expression-driven 어노테이션 - @PreAuthorize, @PostAuthorize, @PreFilter, @PostFilter -> @Secured, @RolesAllowed는 간단한 어노테이션, 이 외의 @PreAuthorize, @PostAuthorize, @PreFilter, @PostFilter는 보안 규칙에 더 많은 유연성을 보장함 @Secured 어노테이션을 통한 메소드 보안 @EnableGlobalMethodSecurity : 스프링 시큐리티의 메소드 어노테이션 기반 시..
스프링 책 읽기(Spring in action) - 13. 데이터 캐싱하기 캐싱(caching) - 자주 필요한 정보를 저장하는 방법으로 해당 정보가 필요할 때 사용될 수 있게 함, 스프링은 캐시솔루션을 구현하지 않지만, 다양한 캐싱 구현체와 통합된 캐싱을 위한 선언적 지원을 제공 캐시 지원하기 스프링의 캐시 추상화 지원 -> 애너테이션 주도 캐싱 or XML 선언 캐싱(생략) @Caheable, @CacheEvict : 해당 애너테이션을 사용하여, 메소드를 애너테이션하는 것이 가장 일반적인 방법 * 빈의 캐싱 애너테이션 적용 전에는, 스프링의 애너테이션 주도 캐싱 지원을 사용해야함 @Configuration @EnableCaching // 캐싱 활성화 public class CachingConfig { @Bean public CacheManager cacheManager() ..