본문 바로가기

Spring개념

(2)
Spring AOP ( 관점지향 프로그래밍 ) [관점지향 프로그래밍] Aspect Oriented Programing 횡단관심(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임 코드 자체를 수정하지 않고, 기존의 코드에 추가동작을 추가함으로써 수행한다. 이를 통해 기능을 수행하는 코드의 핵심부를 복잡하게 채우지 않고도 비즈니스 로직에 핵심적이지 않은 동작들을 프로그램에 추가할 수 있도록 한다. 즉 , 기능을 비즈니스로직과 공통 모듈로 분리한 후, 필요 시점에 비즈니스 로직에 삽입하여 실행하도록 한다. 핵심관점(비즈니스로직) + 횡단관점(트랜잭션 , 로그, 권한체크, 인증 ,예외처리 등)으로 관심의 분리를 이룬다. 쉽게말해 DI가 의존성(객체를 new)의 주입이라면 , AOP는 기능(lo..
Spring 개념 IOT ( 제어의 역행 ) [제어의 역행] Inversion of Control 객체 생성문을 직접 작성해서 해당 객체를 사용할 수 있게 하는게 아니라 객체가 필요한 곳에 객체를 주입(Injection)함으로써 해당 객체를 사용할 수 있도록 해주는 것이다. ❓누가 주입해주나? = 스프링 컨테이너 ✅ 효과 : ➡ 객체의 생성과 객체 간 의존관계에 대한 코드가 클래스코드소스 상에서 사라지게 된다 ➡ 즉, 객체를 변경해줘야할 때 해당 객체를 사용 중인 모든 클래스에서 소스를 수정하지 않아도 된다 == 유지보수 용이 , 의존관계를 명시 ❓ 그렇다면 스프링 컨테이너란?? 스프링 애플레이션 내의 여러 클래스에서 각각의 객체들을 생성하고 의존관계를 설정하는 작업을 대신 수행해주는 곳이 스프링 컨테이너 ❗ 동작순서 애플리케이션이 실행되면, 스프..