본문 바로가기
반응형

BackEnd/Spring50

[Spring Batch] 스프링 배치 사용법 간단한 예제 ❓ 스프링 배치란스프링 배치(Spring Batch)는 대용량 데이터를 처리하기 위한 프레임워크로, 스프링 프레임워크 기반에서 작동한다.일반적으로 배치 작업은 대량의 데이터를 처리하거나, 주기적이고 반복적인 작업을 실행하는 데 사용되며, 스프링 배치는 이러한 작업을 효율적이고 안정적으로 처리할 수 있는 프레임워크다.🔎 스프링 배치의 내부 구조도1. JobLauncherJob을 시작하는 부분2. 실제 작업하는 부분 (정의해야 할 부분)Job > Step > ItemReader > ItemProcessor > ItemWriter3. JobRepository메타데이터 테이블에 접근해서 해당 작업이 얼만큼 진행되는지 참조해준다.이제 스프링 배치를 구현할 준비를 해보자.🚩 1. 구현 준비1) 의존성 추가 .. 2025. 1. 24.
[Spring] REST API ❓ REST APIREST : Representation State Transfer의 약자자원을 이름(자원에 대한 표현)으로 구분하여 해당 자원의 상태(자원의 정보)를 주고 받는 방식의 소프트웨어 아키텍처* Representation : 자원의 표현, 요청 URI로 표현* State : 자원의 현재 상태HTTP URI를 통해 자원을 명시한다.* URL : 자원이 실제로 존재하는 위치* URI : 자원의 위치뿐만 아니라 자원에 대한 고유 식별자로서, URL을 포함하는 상위 개념HTTP Method (GET, POST, PUT, DELETE)을 통해 해당 자원에 대한 CRUD Operation을 명시한다.웹의 모든 자원에 대해서 고유한 ID(HTTP 요청 URI)를 부여한다.👥 등장배경단순하게 하나의 브라.. 2025. 1. 19.
[Spring JPA] 스프링 애플리케이션의 JPA open-in-view 설정 (Feat. 지연로딩) Spring 애플리케이션의 open-in-view 설정spring.jpa.open_in_view 설정 : 커넥션을 언제 반납할지를 결정하는 설정spring.jpa.open_in_view=true : 응답이 완료될 때 커넥션 반납spring.jpa.open_in_view=false : 서비스의 메소드가 종료될 때 커넥션 반납기본값 : true기본값이 true이기 때문에 응답이 완료될 때까지 커넥션이 반납되지 않는다.true로 설정하는 경우는 관리자 페이지와 같이 사용량이 많지 않은 경우, 지연로딩을 @Transactional 어노테이션이 부착된 곳을 벗어나 뷰 템플릿에서도 사용할 수 있다.단, 사용량이 많은 서비스인 경우에는 커넥션을 바로 반납하는 것이 좋기 때문에 false로 설정해야 한다.false로 .. 2025. 1. 19.
[Spring JPA] 연관관계(OneToMany, ...)의 즉시로딩과 지연로딩 지연로딩(FetchType.LAZY)실제 객체를 사용하는 시점에 데이터를 조회한다.예시)@Entitypublic class Member { @Id Long id; String name; @ManyToOne(fetch = FetchType.LAZY) Team team;}Member를 조회하면 id와 name에는 MEMBER 테이블을 조회해서 획득한 데이터가 저장되어 있다.team에는 프록시객체가 대입되어 있다. (Team객체가 대입되어 있지 않다.)getTeam() 메소드를 실행해서 Team을 조회하면 프록시 객체가 반환된다.getTeam().getXXX() 메소드를 실행하면 비로소 SQL을 실행해서 DB에서 데이터를 조회한다.위의 예시에서는 SQL이 2번 실행된다.se.. 2025. 1. 19.
[Spring JPA] Spring Data JPA의 쿼리 메소드 작성 규칙 ✔️ Spring Data JPA의 쿼리 메소드 작성 규칙* By의 B는 반드시 대문자로 작성1. 데이터 조회find...By... 형식으로 작성2. 데이터 개수 조회count...By... 형식으로 작성반환타입 : Long 값3. 데이터의 존재 여부 조회exists...By... 형식으로 작성반환타입 : boolean 값4. 데이터 삭제delete...By... 형식으로 작성5. 데이터 조회 제한findFirst...By...findFirst3...By...findTop...By...findTop3...By... 형식으로 작성➖ Spring Data JPA가 지원하는 키워드1. Distinct중복행 제거findDistinctByLastnameAndFirstname(String lastname, Stri.. 2025. 1. 19.
[Spirng JPA] 단방향/양방향 연관관계 💡 연관관계의 주인외래키를 만들어서 값을 갖고 있는 테이블이 주인1. 단방향 연관관계실제로 연관관계의 주인인 테이블에만 연관관계를 설정(@ManyToOne)2. 양방향 연관관계 매핑두 객체가 서로 참조해야 하는 상황에서 정의하는 연관관계 매핑 방식데이터베이스에서 테이블 간의 관계는 단방향 매핑이 존재한다.양방향 연관관계 매핑을 할 때는 반드시 한쪽의 객체에 mappedBy 옵션을 설정해야 한다.객체입장에서는 참조 관계가 양방향이 되었으나, 데이터베이스 입장에서는 자식 테이블의 외래키만으로 관계설정이 충분하기 때문에, 추가적인 설정이 필요하다.mappedBy 옵션은 자신이 이 연관관계의 주인이 아님을 설정하는 것이다.mappedBy 옵션에서는 반대쪽에 자신이 매핑되어 있는 필드명을 적으면 된다.연관관계의.. 2025. 1. 19.