
Spring 입문

Lombok은 Java에서 매우 많이 쓰이는 라이브러리이다. 특히 DTO를 사용한다면 용이하게 사용할 수 있는 라이브러리이다. Lombok의 기능을 하나씩 알아보자.계층간 데이터 전달을 위해 DTO를 사용하다보면 DTO 안에 변수가 많아질수록 getter와 setter

책 [자바 ORM 표준 JPA 프로그래밍]을 참고하여 작성하였습니다. 5장 연관관계 매핑 기초 객체 연관관계 VS 테이블 연관관계 객체는 참조(주소)로 연관관계를 맺는다. 객체 A,B가 있다면 a.getB().getC() 이런 식으로 연관 데이터를 조회 따라서

6장 다양한 연관관계 매핑 다대일 단방향[N:1] 회원 엔티티 팀 엔티티 다대일 양방향[N:1, 1:N] 회원 엔티티 팀 엔티티 일대다 단방향[1:N] 예시: 하나의 팀은 회원들을 참조하지만, 회원은 팀은 참조하지 않음 일대다 단방향 매핑보다는 다대일 양방향 매

QueryDSL 사용하기 JPAQuery 객체를 생성하여 사용한다. 먼저, 엔티티매니저를 생성자에 넘겨준다. 사용할 쿼리 타입(Q)을 생성하는데 생선자에는 별칠을 준다. 기본 Q 생성 쿼리타입(Q)는 기본적으로 기본 인스턴스를 가지나 같은 엔티티를 조인하거나

책 [자바 ORM 표준 JPA 프로그래밍]을 참고하여 작성하였습니다. 3.1 엔티티 매니저 팩토리와 엔티티 매니저 애플리케이션 하나당 하나의 엔티티 매니저 팩토리 엔티티 매니저 팩토리에서 엔티티 매니저를 생성 엔티티 매니저 팩토리는 여러 스레드에서 접근해도 되지만

앞부분에 나오는 환경세팅 부분은 생략합니다.javax.persistence.jdbc.driver : JDBC 드라이버javax.persistence.jdbc.user : javax.persistence.jdbc.password : javax.persistence.jdb

@Entity @Entity가 붙은 클래스는 JPA가 관리 기본 생성자는 필수! final 클래스, enum, interface, inner 클래스에는 사용할 수 없다. @Table 엔티티와 매핑할 테이블을 지정한다.

책 [자바 ORM 표준 JPA 프로그래밍]을 참고하여 작성하였습니다. 7장 고급 매핑 7.1 상속 관계 매핑 테이블로 구현할 때는 3가지 전략을 사용할 수 있다. 조인 전략 : 각각을 모두 테이블로 만들고 조회할 때는 조인을 사용 통합 테이블로 변환 : 테이블을 하

책 자바 ORM 표준 JPA 프로그래밍을 참고하여 작성하였습니다. Spring 프레임워크에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트이다.CRUD를 처리하기 위한 공통 인터페이스를 제공한다.repository를 개발할 때 인터페이스만 작성하면 실행 시점에

책 [자바 ORM 표준 JPA 프로그래밍]을 참고하여 작성하였습니다. 8장 프록시와 연관관계 관리 즉시 로딩과 지연 로딩 즉시 로딩: 엔티티를 조회할 때 연관된 엔티티도 함께 조회 @ManyToOne(fetch = FetchType.EAGER) 지연 로딩: 연관된

: 새로운 값 타입을 직접 정의해서 사용하는 것@Embeddable : 값 타입을 정의하는 곳에 표시@Embedded : 값 타입을 사용하는 곳에 표시🔻근무기간, 주소를 값 타입으로 가지는 Member 엔티티🔻기간 임베디드 타입임베디드 타입에 정의한 매핑정보를 재정

책 자바 ORM 표준 JPA 프로그래밍을 참고하여 작성하였습니다.테이블이 아닌 객체를 대상으로 검색하는 객체지향 쿼리SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다.JPQL을 사용하면 JPA는 JPQL을 분석하여 적절한 SQL을 만들어 DB를 조회한다.C

1. 트랜잭션 범위의 영속성 컨텍스트 1) 스프링 컨테이너의 기본 전략 스프링 컨테이너는 트랜잭션 범위의 영속성 컨테이너 전략을 기본으로 사용한다. (=트랜잭션 범위와 영속성 컨텍스트의 생존 범위가 같다) 비즈니스 로직을 시작하는 서비스 계층에 @Transaction

엔티티 매니저는 엔티티 CRUD와 관련된 모든 일을 처리한다.엔티티 매니저 팩토리에서 엔티티 매니저를 생성한다.엔티티매니저는 데이터베이스 연결이 필요할 때(예: 트랜잭션 시작)마다 커넥션풀에서 커넥션을 획득한다.영속성 컨텍스트 : 엔티티를 영구 저장하는 환경엔티티 매니

아무 객체나 프록시가 될 수 있을까?

리플렉션이란? : 구체적인 클래스 타입을 알지 못하더라도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API 런타임 시점에 동적으로 정보를 추출한다. 리플렉션을 통해 얻은 클래스나 메서드의 메타정보를 사용해서 동적

어드바이스(즉 AOP)가 적용될 수 있는 위치프로그램이 실행될 때 지나는 지점은 조인포인트가 될 수 있다.메서드 실행시생성자 호출시필드값 접근시static 메서드 접근시다만 스프링 AOP는 프록시 방식을 사용하기 때문에 조인 포인트는 메서드 실행 지점으로 제한되니 유의

몇 달 전 한 웹 애플리케이션을 개발하였는데, 최근 해당 서비스를 안드로이드 스튜디오를 통해 웹뷰로 구현하면서 FCM 알림을 도입하게 되었다.

보통 컨트롤러만 테스트하고 싶을 때 사용한다.Web Layer 관련 빈들만 등록한다.⇒ Security, Filter, Interceptor, request/response Handling, Controller를 스캔 대상으로 한다.@Repository와 @Servic
문제 상황 Spring의 @Scheduled는 단일 인스턴스 환경에서는 아무런 문제가 없다. 하지만 ECS Fargate처럼 여러 인스턴스가 동시에 뜰 수 있는 환경에서는 모든 인스턴스가 같은 시각에 스케줄러를 실행한다. 예를 들어 매일 자정에 목표 상태를 업데이트