본문 바로가기
반응형

Web18

[Spring] AOP 1. AOP(aspect oriented programming) 관점 지향 프로그래밍 공통된 부가기능을 따로 떼어두고 사용 기능을 핵심 로직과 공통 부가로직으로 구분 코드 밖에서 설정 OOP의 기본단위는 Class 라면, AOP의 기본단위는 Aspect 예시 : 로그인 인증, 로깅, 트랜잭션 처리 2. AOP 구성요소 aspect 공통 기능(부가 기능)을 가지는 대상 advice와 pointcut 으로 구성 pointcut(어디에서) + advice(무엇을 할 것인가) advice 공통 기능(부가 기능)을 담은 구현체 aspect의 세부 내용 예시 : 로그인 체크 기능 (SessionCheck) pointcut advice가 적용될 타겟 지정 기능 타겟 : 어떤 클래스(컨트롤러)의 어느 joinPoint.. 2019. 6. 26.
[Spring] DI (Dependency Injection) DI(Dependency Injection) 1. 객체 의존성 A객체가 B객체를 참조하고 있다면, A객체는 B객체에 의존하고 있다 (의존성을 가진다). 다음 코드의 문제점은? public class Customer { private Food food; public Customer() { this.food = new Pizza("치즈 피자"); } public void eat() { System.out.println("냠냠"); food.showRemainder(); } }Customer 객체는 Food 객체(Pizza)에 의존한다. (new Pizza("치즈 피자")) 이럴 경우, Food 객체를 변경할 경우 의존한 Customer 객체도 변경해야한다. 즉, 하나의 클래스가 바뀌면 의존한 다른 클래스까지.. 2019. 6. 24.
[JPA] 지연 로딩/즉시 로딩 1. 프록시 객체 가짜 객체 지연로딩 기능을 사용하기 위해 쓰임 실제 객체에 대한 참조를 가짐 2. 지연로딩 연관된 엔티티를 실제 사용할 때 조회 answer.getQuestion().getName() 처럼 질문 엔티티를 실제 사용하는 시점에 JPA가 SQL을 호출하여 질문 엔티티를 조회한다. 설정 : @ManyToOne(fetch = FetchType.LAZY) 예제 (Test Code) 1) Answer Entity @ManyToOne의 fetch타입을 지연로딩(FetchType.LAZY)로 지정한다. 2) Answer 엔티티 조회 test코드에서 answerRepository.findById(1L)를 수행하여, 해당 answer 엔티티를 조회한다. 2_1) 지연로딩 실행 SQL sql문을 보면, 단.. 2019. 6. 20.
[Spring] Logback 사용법(gradle) 1) gradle dependency 추가 runtimeOnly 'net.rakugakibox.spring.boot:logback-access-spring-boot-starter:2.7.1' 2) application.properties logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE 3) resource 패키지 내 logback.xml 파일 생성 %d{HH:mm:ss.SSS} [%-5level] [%thread] [%logger{36}] - %m%n 4) resoure 패키지 logback-access.xml 파일 생성 %d{HH:mm:ss.SSS} [%-5level] [%thread] [%logger{36}] - %m%n 2019. 6. 18.
반응형