본문 바로가기

자바

(10)
스프링 책 읽기(Spring in action) - 스프링 인 액션 후기 약 2달?.. 간 스프링-인-액션 4판을 다 읽었다.. 사실 장점보단 단점이 더 큰 책인것 같다. 장점 web.xml 설정보다는, 자바 설정에 초점을 두었음, web.xml은 쓰기도 어렵고 보기도 힘들다고 생각하기 때문에 이런 점이 좋았음 각 챕터의 도입부에, 다양한 스프링에 대한 세부 설정등이 적혀 있어 좋음 스프링의 시작부터, 서비스 적용까지의 내용이 담겨있음 단점 번역과 검수가 제대로 안되어 있음... *라고 고쳐주세요* 라는 멘트가 그대로 책에 남아있을 정도이고, 그림은 원서와 때때로 다름 챕터의 도입부는 좋지만, 챕터의 뒤로 갈수록 '아 이것도 말해줘야지?!' 라는 느낌이 강할만큼 필요 없는 정보가 많음 자바설정을 잘 알려주다가, 갑자기 후반부에는 xml설정만 알려줌 (귀찮았나?..) 좋은 후기..
스프링 책 읽기(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) - 11. ORM을 통한 데이터 퍼시스팅 애플리케이션이 복잡해짐에 따라, 퍼시스턴스와 관련된 요구사항도 복잡해짐 ==> 더 복잡하고 정교한 기능이 필요 * 지연 로딩(lazy loading) : 관련성 있는 객체 전체를 한번에 가져오고 싶지 않을 때, 필요로 하는 실제 데이터만 불러오는 기능. ex) 객체 안의 내부객체는 제외하고 불러오기 * 조기 인출(eager fetching) : 지연 로딩의 반대 개념. 한번의 쿼리로 전체 객체를 가져오는 기능 // ex) 불러오기 한번으로, 객체와 내부객체의 정보를 모두 가져옴 * 캐스케이딩(cascading) : 때때로 데이터베이스 테이블을 변경했을 때, 다른 테이블의 값도 변경해야 하는 기능 // ex) 객체A를 삭제할 때, 연관된 B객체도 같이 삭제 => 이러한 서비스를 제공하는 프레임 워크를 '객..
스프링 책 읽기(Spring in action) - 10. 스프링과 JDBC를 사용하여 데이터베이스 사용하기 스프링의 데이터 액세스 철학 스프링 - 인터페이스 대상 객체 지향 코딩 지향 -> 서비스 객체가 바로 저장소로 접근하지 않음 -> 인터페이스를 통함 서비스 객체(Service object)는 저장소 인터페이스(Repository interface)를 통해서 저장소에 액세스한다. 특정 데이터 액세스 구현에 밀착되어 있지 않으므로, 쉽게 테스트 할 수 이다. 연결하지 않고도 테스트가 나가능하며, 데이터에 의한 테스트 실패도 발생하지 않는다. 데이터 액세스 계층은 퍼시스턴스기술에 상관 없이 액세스, 오직 관련 데이터 액세스 메소드만 인터페이스로 노출 -> 유연한 설계 가능 스프링의 데이터 액세스 예외 계층 구조 SQLException을 발생시키는 흔한 문제 -> 데이터베이스 연결 불가 / 쿼리 문법 오류 / ..
스프링 책 읽기(Spring in action) - 9. 웹 애플리케이션 보안(스프링 시큐리티) 웹 보안의 3요소 Principal - 사용자 : 현재 서비스에 접근하기 위한 주체 Authentication - 인증 : 사용자를 확인하는 과정 Authorization - 인가 : 확인 된 사용자에 대한 권한 검사 및 부여 → Spring Security는 이 3가지를 쉽게 사용가능하며, 확장성 또한 매우 높음 https://bob-full.tistory.com/6 스프링 시큐리티 시작하기 모듈 웹요청 필터 * 스프링 시큐리티에는 다양한 보안의 관점을 제공하기 위한 서블릿 필터들을 제공 * DelegatingFilterProxy : 스플링 애플리케이션 컨텍스트의 위임된 필터 빈을 처리하기 위한 프록시 필터 public class SecurityWebInitializer extends AbstractS..
스프링 책 읽기(Spring in action) - 7. 고급 스프링 MVC 다양한 스프링 MVC 설정 기본적인 AbstratAnnotationConfigDispatcherServeleteInitializer의 설정이 요구사항을 만족하지 못할 때, 제공하는 방법 DispatcherServelet 설정 사용자 정의하기 추가설정을 위해, 오버라이드 할 수 있는 메소드들(getServletMappings(), getRootConfigClasses(), getServeletConfigClsses() 제외)이 존재함. * customizedRegistration() : AbstratAnnotationConfigDispatcherServeleteInitializer가 서블릿 컨테이너와 DispatcherServelet을 등록한 후, ServletRegistration안에 전달하면서, 호출...
스프링 책 읽기(Spring in action) - 5. 스프링 MVC 시작하기(1) 스프링 MVC 프레임워크. * 마치 '골드버그 게임' 처럼, 다양한 내리막, 시소 등의 자애물을 통과하는 것 처럼, 스프링은 '요청'을 '디스패치 서블릿', '핸들러 매핑', '컨트롤러, '뷰 리졸버' 등으로 이동시킴 스프링 MVC를 이용한 요청 추적 - 웹브라우저에서 링크 클릭 혹은 폼을 서브밋할 때, 요청을 처리하기 위한 작업이 수행됨. 1. 요청이 브라우저에서 떠나면서 사용자의 요구 내용 전달 -> DispatcherServelet 2. DispatcherServlet에서, 다음 요청이 가야할 곳을 찾기위해 핸들러 매핑에게 도움 요청 -> 컨트롤러 선택 3. 선택된 컨트롤러에, DispatcherServlet가 요청을 보냄 -> 요청은 페이로드로 떨굼 -> 이후 컨트롤러의 처리 시간동안 대기 -> ..
스프링 책 읽기(Spring in action) - 4. 애스펙트 지향 스프링 4. 애스펙트 지향 스프링 AOP 란? - 횡단 관심사의 모듈화, 한 애플리케이션의 여러 부분에 영향을 주는 기능 - 보안, 로깅, 트랜잭션 등 - 장점 : 전체 코드기반에 흩어져있는 것을 응집, 주요 관심사 이외의 것을 모듈화하여 코드가 깔끔해짐 용어 어드바이스 - 애스펙트가 해야할 작업 before - 호출 전**, after 실행 후, after-running - 성공 후, after-throwing - 실패 후**, around - 전후로 간단한 기능 조인 포인트 - 어드바이스 적용 가능한 지점(point) 포인트커트 - 조인 포인트의 영역을 좁히는 일을 함 - 어드바이스 = 무엇, 언제 // 포인트 커트 = 어디서 - 간단하게, 클래스 메소드명 지정부터, 정규표현식 정의 도 가능 애스펙트 - 어..