분류 전체보기
[Spring Batch] Job, JobInstance, JobParameter, JobExecution 에 대하여
[Spring Batch] Job, JobInstance, JobParameter, JobExecution 에 대하여
2022.10.09Job이란 배치 계층 구조의 가장 상위에 있는 개념으로 하나의 배치 작업 자체를 의미합니다. Job Configuration을 통해 생성되는 객체 단위로서 배치 작업을 어떻게 구성하고 실행할 것인지 전체적으로 설정하고 명세해놓은 객체입니다. 배치 Job을 구성하기 위한 최상위 인터페이스이며 스프링 배치가 기본 구현체인 SimpleJob과 FlowJob 등 구현체를 제공해줍니다. 여러 Step를 포함하고 있는 컨테이너로 반드시 하나 이상의 Step으로 구성해야 합니다. 스프링 배치가 기본적으로 제공해주는 구현체 SimpleJob Job내에 구성되어있는 Step을 순차적으로 실행시킵니다. FlowJob SimpleJob과 달리 특정 조건과 흐름에 따라 Step을 실행시킵니다. Flow 객체를 실행시켜서 작업..
[Spring Batch] @EnableBatchProcessing을 이용하여 스프링 배치 사용하기
[Spring Batch] @EnableBatchProcessing을 이용하여 스프링 배치 사용하기
2022.10.051. 스프링 배치를 사용하기 위한 의존성 추가 스프링 배치를 사용하기 위해서는 build.gradle 또는 pom.xml에 스프링 배치에 대한 의존성을 추가해줘야 합니다. build.gradle implementation 'org.springframework.boot:spring-boot-starter-batch' pom.xml org.springframework.boot spring-boot-starter-batch 2. @EnableBatchProcessing @EnableBatchProcessing를 선언을 하면 스프링 배치를 작동시켜줍니다. 스프링 배치의 모든 초기화 및 실행을 이루고 총 4개의 설정 클래스를 실행합니다. 스프링 부트 배치의 자동 설정 클래스가 실행됨으로 빈으로 등록된 Job을 조..
[AWS] EC2 Ubuntu환경에서 Spring Boot 배포
[AWS] EC2 Ubuntu환경에서 Spring Boot 배포
2022.07.16들어가기 전 EC2 Ubuntu환경에서 Spring Boot를 배포를 하려면 EC2 인스턴스를 생성해야 됩니다. EC2 인스턴스 생성에 대해 궁금하신 분은 아래에서 확인해주시기 바랍니다. [AWS] AWS EC2 인스턴스 생성 [AWS] AWS EC2 인스턴스 생성 들어가기 전 AWS EC2 인스턴스를 생성하는 과정에 대해 알아보겠습니다. ◎ 순서 1. 인스턴스 생성 2. 탄력적 IP 주소 할당 3. 보안 그룹 생성 EC2 인스턴스 생성 인스턴스를 클릭을 해줍니다. 인스 hoestory.tistory.com EC2 Ubuntu환경에서 Spring Boot 배포 1. EC2 인스턴스를 생성하는 과정에서 키 페어를 만들어 로컬에 키 페어가 다운로드되었을 겁니다. 터미널을 켜서 다운로드된 경로로 가서 키 페어..
[AWS] AWS EC2 인스턴스 생성
[AWS] AWS EC2 인스턴스 생성
2022.07.16들어가기 전 AWS EC2 인스턴스를 생성하는 과정에 대해 알아보겠습니다. ◎ 순서 1. 인스턴스 생성 2. 탄력적 IP 주소 할당 3. 보안 그룹 생성 EC2 인스턴스 생성 인스턴스를 클릭을 해줍니다. 인스턴스 클릭하면 아래와 같이 인스턴스 시작이 보입니다. 인스턴스 시작을 클릭해줍니다. 인스턴스 시작을 클릭하면 아래 사진과 같은 화면이 나옵니다. 이름에는 자신의 서버 이름을 적어주면 됩니다. 그리고 애플리케이션 및 OS 이미지는 필자 같은 경우는 Ubuntu를 선택했습니다 필자의 경우 위에서 말했듯이 Ubuntu를 선택하여 아래와 같은 사진처럼 나옵니다. 인스턴스 유형은 아래와 같습니다. 프리티어 사용 가능이라는 것은 무료로 사용이 가능하다는 뜻입니다. 무료는 평생 무료가 아니고 1년 무료인 것을 인..
[Querydsl] 스프링 부트에서 Querydsl 설정
[Querydsl] 스프링 부트에서 Querydsl 설정
2022.06.14들어가기 전 스프링 부트 2.6 이상 버전에서는 2.6 이하 버전에서 설정한 부분에 조금 추가를 하셔야 정상적으로 동작합니다. 필자는 스프링 부트 버전 2.7 Gradle 버전 7.4.1을 기준으로 설정을 하였습니다. 스프링 부트 2.6 이하 버전 먼저 스프링 부트 2.6이하 버전에서 querydsl 설정을 알아보겠습니다. build.gradle plugins { // querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } dependencies { implementation 'com.querydsl:querydsl-jpa' } //querydsl 추가 def querydslDir = "$buildDir/generated/queryds..
[Git Action]Spring boot + GitHub Action 적용 시 빌드 실패와 관련된 에러 해결 방법
[Git Action]Spring boot + GitHub Action 적용 시 빌드 실패와 관련된 에러 해결 방법
2022.06.02들어가기 전 들어가기 전에 GitHub Action이 무엇인지에 대해 간략히 알아보겠습니다. GitHub Action을 자세히 대해서는 다루지 않고 개념만 간단히 설명하고 해결방법에 대해서 설명하겠습니다. GitHub Action이란? GitHub Action은 빌드, 테스트, 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼입니다. 단순한 DevOps를 넘어 repository에서 다른 이벤트가 발생할 때 workflow를 실행할 수 있도록 합니다. GitHub Action의 컴포넌트에는 workflows, events, jobs, steps, actions, runners가 있습니다. 빌드 실패 관련 에러 메시지 에러 메시지 1 ApplicationTests > contextLoads() FAIL..
[Java] this란?
[Java] this란?
2022.05.01this란? this는 Java에서만 사용하는 것이 아니라 C, C++ 등 여러 곳에서 많이 사용됩니다. 여기서 this의 영어를 뜻은 "(가까이 있는 것을 가리켜)이것"이라는 것처럼 this는 객체 자기 자신을 가리킵니다. this가 많이 사용되는 곳은 매개변수가 있는 생성자, setter 등에서 많이 사용됩니다. 예를 들어서 Person이라는 객체가 존재한다고 해보겠습니다. public class Person { String name; Integer age; public Person() { } public Person(String name) { this.name = name; } public Person(String name, int age) { this.name = name; this.age = a..
[Spring Boot] JUnit5에서 @RequiredArgsConstructor
[Spring Boot] JUnit5에서 @RequiredArgsConstructor
2022.04.22들어가기 전 필자는 테스트 코드가 아닌 곳에서 @Autowired가 아닌 @RequiredArgsConstructor를 이용해서 의존성 주입을 편하게 하였습니다. 그런데 필자가 테스트 코드에서도 @RequiredArgsConstructor를 사용하의존성 주입을 하려고 하는 데 사용을 할 수 없다고 나옵니다. // 의존성 주입이 하나일 경우 Autowired를 생략 가능합니다. // Autowired를 사용할 경우 @Controller public class AutowiredController { @Autowired private TestService service; @AutoWired private TestRepository repository; } // RequiredArgsConstructor를 사용..
[OAuth] Spring Boot + React + OAuth2.0 이용한 네이버, 카카오 로그인
[OAuth] Spring Boot + React + OAuth2.0 이용한 네이버, 카카오 로그인
2022.04.09들어가기 전 토이 프로젝트를 진행하면서 OAuth를 이용한 소셜 로그인을 구현해보았습니다. 프론트는 React를 이용하였고 백엔드는 Spring Boot를 이용하였습니다. 네이버, 카카오 로그인에 대한 코드가 프론트, 백 두 개 다 있는데 프론트에 대한 설명보다 백엔드 위주로 설명하겠습니다. 1. OAuth란? 인터넷 사용자들이 비밀번호를 제공하지 않고 구글, 카카오, 네이버, 페이스북 등에 저장되어있는 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로써 사용되는 접근 위임을 위한 개방형 표준 프로토콜입니다. ※ 참고 개방형 표준 프로토콜 : 스택이 표준화되었거나 공개적으로 사용이 가능한 통신 규약 2. OAuth 로그인을 위한 준비 과정 OAuth 로그인 과정..
[Java] 함수와 메서드의 개념 및 차이, 스택 메모리
[Java] 함수와 메서드의 개념 및 차이, 스택 메모리
2022.02.21함수란? 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합입니다. 함수로 구현된 기능은 여러 곳에서 호출되어 사용이 가능합니다. 메서드란? 객체의 기능을 구현하기 위한 클래스 내부에 구현되는 함수입니다. 멤버 함수라고도 합니다. 메서드를 구현하면 객체의 기능을 구현하는 것입니다. 함수와 메서드의 차이점 프로그래밍 언어마다 함수로 부르는 언어도 있고 메서드라고 부르는 언어도 있습니다. 그런데 함수와 메서드는 비슷하면서도 다른 점이 있습니다. 함수는 어디에 속해있지 않고 단독 모듈이라 함수를 그냥 호출하여 사용이 가능합니다. 메서드는 함수의 일종이긴 하지만 클래스 안에 속해 있고 클래스의 멤버 변수들을 이용해서 구현된 것을 메서드라고 합니다. 스택 메모리 영역 함수가 호출될 때 지역 ..
[Spring Security] 스프링 시큐리티 로그인, 회원가입 예제
[Spring Security] 스프링 시큐리티 로그인, 회원가입 예제
2022.02.11스프링 시큐리티로 로그인과 회원가입을 하는 방법에 대해 알아보겠습니다. 먼저 시큐리티 의존성을 추가해줘야 됩니다. ※ bulid.gradle implementation 'org.springframework.boot:spring-boot-starter-security' 의존성을 추가해준 뒤 실행시켜보면 이런 화면이 나옵니다. 이거는 시큐리티에서 제공하는 로그인 페이지입니다. ※ 회원가입과 로그인을 하기 위한 User 엔티티 import lombok.Data; import org.hibernate.annotations.CreationTimestamp; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.p..
[JPA] 프록시, 즉시 로딩, 지연 로딩
[JPA] 프록시, 즉시 로딩, 지연 로딩
2022.01.30프록시 연관된 객체를 자유롭게 탐색하기 위해 사용하는 기술입니다. 엔티티를 조회할 때 연관된 엔티티들이 항상 같이 조회되는 것은 아닙니다. 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연하는 방법을 지연 로딩이라고 하는데 지연 로딩 기능을 사용하려면 실제 엔티티 객체 대신에 데이터베이스 조회를 지연할 수 있는 가짜 객체가 필요한데 그것을 프록시 객체라고 합니다. 프록시를 사용하면 연관된 객체를 처음부터 데이터베이스에서 조회하는 것이 아니라 실제 사용하는 시점에서 데이터 베이스를 조회할 수 있습니다. ※ 공통 예제 코드 ※ @Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; private String na..