life is egg
22.12.12 [DDD+AOP 찍먹..] 본문
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 연습했다.!
지금까지 왜 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 |