본문 바로가기

TIL/Spring16

23.08.04 AOP 복습 AOP : 핵심 로직과 부가 기능을 분리하여 애플리케이션 전체에 걸쳐 사용되는 부가 기능을 모듈화하여 재사용할 수 있도록 지원하는 것 - 간단하게, 부가 기능(공통된 기능)의 모듈화를 통해 재사용 제대로 이해하고 있지 않다면 디버깅을 통해 어디서 문제가 생기는지 확인하기 어렵다는 단점이 있다. 적용 방식 컴파일 시점 AspectJ가 제공하는 특별한 컴파일러가 필요하고, 복잡하다는 단점이 있다. 모든 지점에 적용 가능 클래스 로딩 시점 모든 지점에 적용 가능 특별한 옵션과 클래스 로더 조작기를 지정해야 하므로 운영하기 어려움 런타임 시점 스프링이 사용하는 방식 프록시는 메서드 오버라이딩 개념으로 작동하기 때문에 메서드에만 적용 가능, 스프링 빈에만 적용 가능 특별한 컴파일러나 조작기 등이 필요.. 2023. 8. 4.
23.08.03 오늘은 강의도 다 듣고 과제도 어제 미리 마친 상태라 크게 적을 내용은 없다. 한 일이라곤 어제 마친 과제 코드리뷰를 위해 다시 한 번 짚어보고, JAVA의 정석 조금 읽은 정도...? 특강에서 말씀주신 IT직군은 당장은 신경쓰고 싶지 않은 주제라 건너뛰었고, 어제 튜터님이 잠깐 특강형식으로 설명해주신 내용에서 자료형식에 대해 잠깐 다루셔서 평소 부족하다고 느끼는 부분이라 보충하긴 했다. 하지만 각 자료형의 시간복잡도 등에 관한 내용들이라 따로 적을 정도는 아니라 느꼈다... 아마 내일까진 다음주 프로젝트를 위해 잠깐 쉬어가는 시간으로 쓸 듯 하다. 2023. 8. 3.
23.07.28 쿼리 최적화를 발생시키기 위해서는 아래 3가지를 확인해봐야 합니다. 먼저 해당 함수나 클래스가 Transaction 안에 포함되고 있는지 봐야합니다. @Transactional 으로 함께 감싸져 있어야만 쿼리 최적화가 동작합니다. Transaction 으로 포함되어있지 않으면 repository 메소드 내부에서만 Transcation 이 최적화됩니다. Transaction Propagation (전파) 전략 체크해봐야합니다. (심화) 두번째로, 해당 엔티티의 ID 식별자 생성전략을@GeneratedValue(strategy = GenerationType.IDENTITY)로 사용한건 아닌지 확인해봐야 합니다. GenerationType.IDENTITY 로 키필드가 설정되어 있으면 데이터베이스에 실제로 저장.. 2023. 7. 28.
23.07.27 엔티티의 이벤트를 감시하는 Auditing Auditing 을 사용하면 엔티티를 누가 언제 생성/마지막 수정 했는지 자동으로 기록되게 할 수 있다. Auditing 적용 방법 메인 애플리케이션 위에 @EnableJpaAuditing 추가 엔티티 클래스 위에 @EntityListeners(AuditingEntityListener.class) 추가 AuditorAware 구현체 만들기 createdAt, modifiedAt 은 구현체 없이 동작하지만 createdBy, modifiedBy 는 구현체가 필요하다. SpringSecurity 의 SecurityContextHolder 에서 인증정보안에 담긴 UserDetailsImpl 을 사용하여 user 객체를 가져와서 넣어준다. @EnableJpaAuditi.. 2023. 7. 27.