본문 바로가기

Framework

(4)
[JPA] Proxy 객체 / 지연 로딩(LAZY), 즉시 로딩(EAGER) Proxy 객체 - 실제 객체를 상속받아 만들어지는 객체 - 실제 객체를 참조(Target)를 보관 - Proxy 객체 메서드 호출 시 실제 객체의 메서드 호출 - 실제 사용시 초기화 (DB 조회) Member refMember = em.getReference(Member.class, 1L); // Proxy 객체 불러옴 refMember.getName(); // 초기화 -> em.find는 실제 객체를 불러옴 em.getReference() != em.find() 지연 로딩 (LAZY) - 조회 시 실제 객체가 아닌 Proxy 객체를 가져옴 - 실제 사용하는 시점에서 초기화 (DB 조회) @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "TEAM_ID")..
[JPA] 기본 키 자동 생성 - @Id, @GenarateValue 전략 Entity에서 기본키를 매핑 @Id 만 사용할 경우 직접 할당 @Id private Long id; 사용 시 Member member = new Member(); member.setId(1L); member.setUsername("memberA"); // 영속 em.persist(member); @GenerateValue를 사용하여 자동 할당 가능 Member member = new Member(); member.setUsername("memberA"); // 영속 em.persist(member); // id 자동 생성 4가지 전략이 존재한다. - IDENTITY DB에 위임하는 방식 ex) Mysql - AUTO_INCREMENT @Id @GeneratedValue(strategy = Generat..
[Spring] 의존성 주입(DI) 방법 및 종류 - 생성자 주입 생성자 메소드에 주입하는 방식 주로 변하지않거나 필수인 의존관계에 사용 생성자가 하나가 있으면 Autowired 어노테이션 생략가능 필드를 final로 선언가능 -> 필수 주입을 컴파일에러로 알수있음 스프링 빈 라이프 사이클 중 빈 생성 단계에서 의존성 주입이 일어남 - 수정자 주입 Setter(수정자) 메서드에 주입하는 방식 Autowired 어노테이션 필수 -> 주입할 대상이 없으면 오류가 난다 이때 required = false 옵션을 주면 주입이 없어도 동작됨 선택하고 변경가능한 의존관계에 사용 거의 사용하지않음.. 중간에 의존관계를 바꿀일은 잘 없음 스프링 빈 라이프 사이클 중 의존관계 주입 단계에서 의존성 주입이 일어남 - 필드 주입 필드에 직접 어노테이션을 붙혀 주입하는 방식..
[Spring Boot] CORS 설정 CORS(Cross-Origin Resource Sharing)이란? SOP -> 출처 즉 Scheme(Http/Https), Host, Port가 같은곳과 리소스를 공유하는 것을 말하는데 CORS는 출저가 다른 자원을 공유하는 것을 말한다. Spring Boot에서는 따로 CORS를 설정해줘야 호스트나 포트가 다른 프론트단 혹은 다른 서버단의 요청을 받을 수 있다. 1. 메소드/컨트롤 단위 설정(어노테이션) 이렇게 컨트롤러 클래스나 메소드 단위로 CrossOrigin 어노테이션을 붙여 설정할 수 있다. origins = "*" 로 설정시 모든 출처에서 호출가능 간단하게 다른 모듈이나 서버와 인터페이스하는 API만 설정하고 싶을때 유용할 것 같다. 2. Config 이용 WebConfig를 구현해 해당 ..