AOP란 Aspect Oriented Programming의 약자로 보통 관점 지향 프로그래밍으로 번역되며 관점과 함께 기능이나 관심으로 번역될 수 있다. 여러 객체의 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적용할 수 있도록 하고, 재사용성을 높여준다. 스프링은 런타임에 프록시 객체를 생성해 공통 기능을 삽입하는 방식으로 AOP를 구현한다. 이러한 구현 방식 이외에 핵심 기능에 공통 기능을 삽입하는 방법에는 두 가지가 더 있다. 이는 스프링 AOP에서는 지원하지 않으며 AspectJ와 같은 AOP 전용 도구를 사용해서 적용할 수 있다. 컴파일 시점에 코드에 공통 기능을 삽입하는 방법 클래스 로딩 시점에 바이트 코드에 공통 기능을 삽입하는 방법 주요 ..
스프링을 시작하기 위해 고른 책이다. (인사이트에서 나온 책이라면 어느새 장바구니에 담고 있는 나를 자주 발견하게 된다.) 이론서로 시작하기에는 부담도 되고, 공부를 하더라도 결과물을 낼 수 있는 것을 우선적으로 하기로 했기 때문에 실습할 수 있는 책을 선택했다. (결과적으로 목적에 부합하는 좋은 선택이었다!) 플러그인 설치부터 개발 환경 설정, 프로젝트 생성, gradle, myBatis, mapper, lombok, 로그, 인터셉터, AOP, 트랜잭션, 예외처리, 파일 업로드와 다운로드, REST 구현, JPA, 프로파일, Tomcat, GCP VM, Swagger를 이용한 API 문서화, BitBucket, Cloud Config, YAML, Jenkins를 이용한 빌드, 배포 자동화 환경 구성....