본문 바로가기

스프링 책 읽기(Spring in action) - 4. 애스펙트 지향 스프링 4. 애스펙트 지향 스프링 AOP 란? - 횡단 관심사의 모듈화, 한 애플리케이션의 여러 부분에 영향을 주는 기능 - 보안, 로깅, 트랜잭션 등 - 장점 : 전체 코드기반에 흩어져있는 것을 응집, 주요 관심사 이외의 것을 모듈화하여 코드가 깔끔해짐 용어 어드바이스 - 애스펙트가 해야할 작업 before - 호출 전**, after 실행 후, after-running - 성공 후, after-throwing - 실패 후**, around - 전후로 간단한 기능 조인 포인트 - 어드바이스 적용 가능한 지점(point) 포인트커트 - 조인 포인트의 영역을 좁히는 일을 함 - 어드바이스 = 무엇, 언제 // 포인트 커트 = 어디서 - 간단하게, 클래스 메소드명 지정부터, 정규표현식 정의 도 가능 애스펙트 - 어..
스프링 책 읽기(Spring in action) - 3.고급 와이어링 3. 고급와이어링 환경과 프로파일 - 같은 dataSource를 지정하는 빈이어도, dev환경, cbr환경, 상용환경이 다를 수 있음 - 스프링은 이러한 환경에 맞는 프로파일을 지정 가능함 환경과 프로파일에 따른 빈설정 @Profile - 빈이 속한 프로파일을 지정하는 어노테이션 @Configuration @Profile("dev") public class DevConfig { @Bean public DataSource dataSource() { return new .... } } =====> dev 프로파일에서 사용하는 dataSource용 컨피그 파일 ===> dev프로파일이 활성화 되지 않을경우, 해당 @Bean 메소드는은 무시된다 @Configuration @Profile("prod") publi..
스프링 책 읽기 1&2 스프링 네가지 주요 전략 * POJO를 이용한, 가볍고 비침투적인 개발 * DI와 인터페이스 지향을 통한 느슨한 결합도 * 애스펙트와 공통 규약을 통한 선언적 프로그래밍 * 애스펙트와 탬플릿을 통한 반복적인 코드 제거 1. EJB 빈생성 package helloejb; import javax.ejb.Stateless; @Stateless(mappedName="helloejb.Hello") public class HelloBean implements Hello { public String sayHello() { return "Hello EJB!"; } } 2. DI를 통해 다양한 종속 객체를, 주입 가능 상호간의 종속관곈나 구체적인 구현방벙를 알 필요가 없이, 객체를 연결 종속객체가 필요로 하는 객체에 부..
젠킨스 파이프라인(Jenkins pipeline) - 빌드 파라미터 넣기 2019/05/08 - [SW개발] - 젠킨스 파이프라인 ( Jenkin pipeline ) - 병렬로 Job 실행하기 젠킨스 파이프라인 ( Jenkin pipeline ) - 병렬로 Job 실행하기 Jenkins Pipeline Jenkins Pipeline Flugin 연속적인 이벤트 혹은, Job의 그룹을 실행시킬 수 있는 젠킨스 플러그인 파이프 라인의 통합 및 구현을 지원 Pipeline 전용 DSL을 통해, '코드'로서 기능을 정의 및 생.. bob-full.tistory.com 해당 글에 이어서 작성합니다. 젠킨스의 Job을 실행 할 때에, 동일한 스크립트를 환경에 맞춰, 다른 변수를 줘서 실행해야할 일이 생기게 됩니다, (예를 들어, 회원 등급에 따른, 쿠폰 지급에서 -> A등급에는 3천원 ..
젠킨스 파이프라인 ( Jenkins pipeline ) - 병렬로 Job 실행하기 Jenkins Pipeline Jenkins Pipeline Flugin 연속적인 이벤트 혹은, Job의 그룹을 실행시킬 수 있는 젠킨스 플러그인 파이프 라인의 통합 및 구현을 지원 Pipeline 전용 DSL을 통해, '코드'로서 기능을 정의 및 생성 가능 Jenkinsfile을 통해 작업 생성 시각화 된, 빌드 화면으로 로그 실시간 로그 확인 가능 https://jenkins.io/doc/book/pipeline - 파이프라인 문서 작성 방법 Jenkinsfile 작성법 3가지 Job 구성에서, 직접 Jenkinsfile을 작성 SCM을 이용해서 Jenkinsfile 을 작성하는 법 - github에 관리 후 젠킨스에서 실행 Blueocean 플러그인으로 UI를 통해 Jenkinsfile 작성 - g..
Kotlin + Spring boot security + thymeleaf 로그인 구현(3) 2019/03/28 - [SW개발] - Kotlin + Spring boot security + thymeleaf 로그인 구현(1) 2019/04/01 - [SW개발] - Kotlin + Spring boot security + thymeleaf 로그인 구현(2) 이전 글까지, 따라왔다면 여기까지 만들어졌을겁니다. 이번 글에서는 Spring Security를 통해, 이전 글에서 만든 Provider를 빈으로 등록하고, 이를 통해 인증을 처리하는 config를 구현하겠습니다 1. WebSeurityConfigurerAdpater 구현 이 인터페이스는, 스프링 시큐리티에서 가장 핵심 적인 역할을 합니다. AuthenticationManagerBuilder : AuthenticationProvider 설정 W..
Kotlin + Spring boot security + thymeleaf 로그인 구현(2) 2019/03/28 - [SW개발] - Kotlin + Spring boot security + thymeleaf 로그인 구현(1) 프로젝트가 무사히 생성 됐다면, 위 화면처럼 됐을겁니다. 간단한 로그인 구현은 이렇게 만들어진 프로젝트에서 해보겠습니다. 1. UserDeatails 인터페이스 구현 Security에서 사용할 UserDetails객체를 구현합니다. 이는 사용자의 정보를 담아주는 역할을 합니다. class MyUserDetail(val id : String, val pw : String, val role : String) : UserDetails { override fun getAuthorities(): MutableCollection { val authorities = ArrayList()..
Kotlin + Spring boot security + thymeleaf 로그인 구현(1) IDE는 intellij를 사용하도록 하겠습니다 1. 프로젝트 생성 스프링 이니셜라이저를 이용하여, 부트 프로젝트를 생성합니다 - Comunity 버전은 start.spring.io에서 생성할 수 있습니다. 코틀린 프로젝트로 생성합니다. jdk버전은 8을 기준으로 하겠습니다. 필요한 디펜던시는 3가지입니다. Web을 통해, mvc세팅, thymeleaf 템플릿 엔진, 그리고 가장 중요한 Security를 추가해줍니다. -> thymeleaf란? org.thymeleaf.extras thymeleaf-extras-springsecurity5 마지막으로 이런식으로 생성된 프로젝트의 pom.xml 에, thymeleaf + security 관련 디펜던시를 추가해줍니다. * 모두 완료하셨다면, 프로젝트가 생성됐..