life is egg

22.12.12 [DDD+AOP 찍먹..] 본문

TIL

22.12.12 [DDD+AOP 찍먹..]

삶은계란진재혁 2022. 12. 12. 20:47

DDD = 도메인 주도 설계 (Domain-Driven Design)

계층을 나눠서 설계

  • Application Layer : 클라이언트와 데이터 입출력을 제어하는 레이어 @Controller
  • Domain Layer : 애플리케이션의 중심이 되는 레이어로서 업무 처리를 수행하는 레이어  @Service
  • Infrastructure Layer : 데이터베이스에 대한 데이터 영속성등을 담당.. ! 데이터 영속성..!!!  @Repository

이건 주요처리이고 .. !

@Component 이거는 보조처리야... 위 용도 이외의 인스턴스 생성 대상 클래스에부여... 즉 DI와 관련됨...

 >> 하위로직 처리할 때 사용한뎅..

 

DI이가 뭐냐면 의존성 주입인데~ 인스턴스를 대신 생성해줘! 그리고 원하는 곳에 객체를 삽입해줘 

위에 어노테이션들이 붙어있는 클래스들의 인스턴스를 생성해줌!

 

>>이거 적용범위가 있었네...~ Application 있는곳 하위 패키지만 적용..!

 

 

 

AOP=관점지향 프로그래밍(Aspect Oriented Programming)

중심적관심사와... 횡단적관심사로 나눔  횡단적 관심사는 반복되고 비슷한 작업들..

>>예를들자면 예외처리..!

>> 또 예를 들자면 디버깅시에.. 일일히 메서드에.. println 찍어볼때 이런 상황을 생각해보래...

AOP고유용어..

더보기

AOP고유용어..

Advice : 횡단적 관심사의 구현...//로그 출력 및 트랜잭션 제어//  메서드..라면

Aspect : 어디바이스르 정리한것..  ///이건 클래스..느낌

JoinPoint : 실행 타이밍..

Pointcut : 삽입위치등.. 조건설정

Target : 어드바이스가 도입되는 대상..

Interceptor : 어디바이스를 중심 관심사에 추가한 것처럼 보이게 하는 프로그램...

 

Advice에 사용되는 @ 종류

@Before / @AfteReturning/@AfterThrowing/@After/@Around  느낌상 뭔지 때쳐맞춰 기준은 중심 관심사 

 

포인트컷식... 사용하기..

execute(반환값 패키지.클래스.메서드(인수))        *, .. , + 등 이용해서 유연하게 적용범위 지정가능.

 

AOP 연습했다.!

https://github.com/J-Jaeh/SpringframworkFirstStep/tree/main/demo/src/main/java/com/example/demo/chapter03/aop

 

지금까지 왜 AOP를 왜공부햇냐 ..! 스프링프레임 워크에서는 여러가지 공통기능을 AOP로 제공..

그 중 하나가 @Transactional임 ! 엄청 자주봤다 서비스패키지였나 ?

  >> 요거는 나중에 알려준데 11장까지 열심히 보라는 말 ...

   >>>대강... 데이터베이스 액세스 처리 메서드가 정상종료하면 트랜잭션을 커밋... 예외발생시 롤백

 

 

 

gradle도 코끼리 모양인데

pgAdmin4도 코끼리모양이다 

개발자는 코끼리를 좋아하는게 아닐까?

 

'TIL' 카테고리의 다른 글

22.12.14 [Junit5를 곁들인 메모..]  (0) 2022.12.14
22.12.13 [단위 테스트]  (0) 2022.12.14
22.12.09 [~.~]  (0) 2022.12.09
22.12.08 [갑분 HTML]  (0) 2022.12.09
22.12.07 [알수없는]  (0) 2022.12.07
Comments