개발/Spring
-
Spring Rest docs 적용개발/Spring 2020. 11. 19. 11:12
dependencies { testImplementation("org.springframework.restdocs:spring-restdocs-mockmvc") asciidoctor("org.springframework.restdocs:spring-restdocs-asciidoctor") // restdocs asciidoctor의 extension을 사용하기 위한 의존성 추가 }Rest docs를 사용하기 위해서는 위 의존성만 추가하면 된다. 하지만 .adoc 파일을 .html 파일로 바꾸어서 build된 파일의 특정 폴더(static)에 해당 파일 이동시키기 위해 plugin 설정이 필요한데 여기서 꽤 애를 먹었다. 우선 위와 같은 작업을 하기위해서는 asciidoctor.convert plugin이..
-
Spring PSA개발/Spring 2020. 2. 2. 15:35
PSA(Portable Service Abstraction) 한마디로 잘 만든 인터페이스 이점 : 다양한 기술스택을 사용or변경 하여도 개발자가 작성한 비즈니스로직은 그대로 유지할 수 있다. PlatformTransactionManager interface 예 : JPA를 사용거나 JDBC를 사용하거나 @Transactional 어노테이션만 작성되어 있으면 이미 작성된 코드의 변경없이 정상 작동한다. PlatformTransactionManager를 implement한 구현체 JpaTransactionManager, DatasourceTracnsactionManager, HibernateTransactionManager 등이 관리해줌 이외에도 CacheManager Spring MVC 등이 PSA이다.
-
Spring AOP개발/Spring 2020. 2. 2. 13:00
AOP(Aspect Oriented Programming) 란? - 업무 로직을 포함하는 기능을 핵심기능 - 핵심 기능을 도와주는 부가적인 기능(로깅, 보안 체크)을 부가기능 이라고 부른다. 이러한 핵심 기능과 부가기능을 나누는 프로그래밍을 AOP라 한다. OOP를 더욱 OOP 스럽게 만들어줌 class A { method a() { AAAA doSometing(); BBBB } } class B { method b() { AAAA doSomething(); BBBB } } 예를 들어 어떠한 핵심기능을 하는 doSomething()를 전후로 AAAA와 BBBB라는 기능이 필요할때의 코드는 위와 같을것이다. 하지만 위에서 중복되는 AAAA와 BBBB는 필요하지만 핵심기능과는 관련없는 기능이다. 이는 코드의..