예전에 Quartz를 이용해서 작업할 때 보다는 @Scheduled annotation을 사용하면 배치 작업을 무척 쉽게 만들 수 있습니다.


spring boot Scheduler @Scheduled batch


얼마나 간단하고 쉬운지 한번 만들어 보겠습니다.


spring boot Scheduler @Scheduled batch


먼저 프로젝트를 하나 생성 합니다.


spring boot Scheduler @Scheduled batch


프로젝트 이름을 대충 적어주고


spring boot Scheduler @Scheduled batch


 

화면을 만들건 아니지만 일단 Web을 추가해서 생성 합니다.

 

이제 설정을 해줍니다.


Application 메인 파일을 열고

package com.copycoding.batch;

 

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.scheduling.annotation.EnableScheduling;

 

@SpringBootApplication

@EnableScheduling

public class BatchApplication {

 

        public static void main(String[] args) {

               SpringApplication.run(BatchApplication.class, args);

        }

}

 

@EnableScheduling 어노테이션을 추가해 줍니다.

 

그리고 실제 스케쥴 작업할 class 파일을 만듭니다.

 

package com.copycoding.batch;

 

import java.time.LocalDateTime;

 

import org.springframework.scheduling.annotation.Scheduled;

import org.springframework.stereotype.Component;

 

@Component

public class ScheduleTask {

 

@Scheduled(fixedDelay = 2000)

public void task1() {

        System.out.println("The current date (1) : " + LocalDateTime.now());

}

       

@Scheduled(fixedDelayString = "${spring.task.fixedDelay}")

public void task2() {

        System.out.println("The current date (2) : " + LocalDateTime.now());

}}

 

중요한건 class 파일에 @Component를 설정해야 합니다이렇게 두개의 어노테이션을 적어주기만 하면 설정은 끝입니다.

이제 메소드를 만들고 @Scheduled를 이용해서 메소드의 작동 시간을 입력하고 코딩을 해줍니다위에 있는 프로그램을 실행하면


spring boot Scheduler @Scheduled batch


 

이런식으로 결과를 얻을 수 있습니다.  annotation만으로 쉽게 배치 작업이 완료 됩니다.

 

@Scheduled() 어노테이션에 들어가는 설정들을 정리해 보았습니다.

 

fixedDelay

@Scheduled(fixedDelay = 1000)

이전 작업이 종료된 후 설정시간(밀리터리세컨드) 이후에 다시 시작

fixedDelayString

@Scheduled(fixedDelay = “1000”)

fixedDelay와 동일 하고 지연시간(the delay in milliseconds)을 문자로 입력

fixedRate

@Scheduled(fixedRate = 1000)

설정된 시간마다 시작을 한다. 즉 이전 작업이 종료되지 않아도 시작.

fixedRateString

@Scheduled(fixedRateString = “1000”)

fixedRate와 동일 하고 지연시간(the delay in milliseconds)을 문자로 입력

initialDelay

@Scheduled(fixedRate = 5000, initialDelay = 3000)

프로그램이 시작하자마자 작업하는게 아닌 시작을 설정된 시간만큼 지연하여 작동을 시작 한다.(예제는 3초 후 부터 5초 간격으로 작업)

initialDelayString

@Scheduled(fixedRate = 5000, initialDelay = “3000”)

initialDelay와 동일 하고 지연시간(the delay in milliseconds)을 문자로 입력

cron

@Scheduled(cron = "* * * * * *")

첫번째 부터 위치별 설정 값은

(0-59)

(0-59)

시간(0-23)

(1-31)

(1-12)

요일(0-7)

zone

@Scheduled(cron = "0 0 14 * * *" , zone = "Asia/Seoul")

미설정시 local 시간대를 사용한다.

oracle에서 제공하는 문서를 참조하여 입력 한다.

https://docs.oracle.com/cd/B13866_04/webconf.904/b10877/timezone.htm

 

- copy coding -


현재 나와있는 스프링 부트는 4버전이지만 좀 안정적인 사용을 위해서는 3버전을 설치하기로 하고 다운로드 페이지로 이동을 합니다.

https://github.com/spring-projects/toolsuite-distribution/wiki/Spring-Tool-Suite-3


Spring 사이트는 텍스트 위주로 되어 있어서 정보를 많이 얻을 수는 있지만 뭐가 찾으려면 직관적으로 찾기는 좀 어려운 사이트인것 같습니다.


spring boot download install


링크된 페이지에 가면 Spring tools 최신 4버전 부터 아래로 버전별로 리스트 되어 있고 사용하려는 버전을 선택 하면 됩니다.


spring boot download install


최신 버전은 4이지만 3버전의 마지막 배포본을 다운 받았습니다.

설치는 압축을 풀기만 하면 되기 때문에 가능하면 사용하려는 위치로 압축파일을 이동해서 풀어줍니다. 압축을 풀어줄 때 알집이 아닌 7zip을 이용하길 권장합니다.


spring boot download install


알집으로 압축을 풀면 저만 그런가 오류가 발생해서 실행은 되지만 찜찜한 기분이 들어 7zip을 이용 합니다.


spring boot download install


압축이 풀리면 3개의 폴더가 생기는데 이중 sts라고 되어 있는 폴더에 들어가 보면 


spring boot download install


사용하려는 STS를 볼 수 있습니다.

STS.exe를 실행 합니다.


spring boot download install


java를 설치하지 않았다면 JDK를 찾을 수 없다는 안내 창이 나타나고 기존에 java가 설치 되어 있다면 


spring boot download install


다음과 같은 창이 나오고 작업 폴더를 선택하고 Launch 버튼을 클릭 합니다.


spring boot download install


Spring boot 설치가 완료 되었습니다. 이제부터 좋은 프로그램을 만들기만 하면 됩니다.


- copy coding -


java 설치는 기본적인거고 방법도 어렵지 않아 기록을 하지 않았는데 오랜만에 오라클 홈페이지에 들어가 보니 화면이 변경되어 급할 때 쉽게 찾아보려고 몇자 적어 놓습니다.


Java 다운로드


일단 ORACLE 홈페이지에 들어가면

https://www.oracle.com/index.html

심플한 안내화면을 뒤로하고 아래쪽으로 이동하고


windows java download install



Resources for의  Developers를 선택 합니다.


windows java download install


이번에도 조금 아래쪽으로 내려와 Java를 클릭 하고 


windows java download install


Java SE Download를 선택 합니다.

windows java download install


많이 보던 화면이 나타납니다.


여기에서 자신에게 필요한 Java SE 8, 11, 14 버전 중 하나를 선택해 Download를 클릭 합니다.

! oracle 홈페이지 말고 여기로 바로 오려면

https://www.oracle.com/technetwork/java/javase/overview/index.html

요기로 오면 됩니다.


어째든 Download를 클릭하면 페이지가 전환되면서


windows java download install


8버전과 관련된 다양한 자료를 다운받을 수 있지만 JDK만 필요하니 클릭


windows java download install


운영체제별로 파일이 있는데 윈도우즈용은 맨 아래 부분에 있습니다. 각자 자신의 컴퓨터에 적합한 버전을 선택 합니다.


windows java download install


License Agreement를 체크하고 다운로드를 하면 됩니다.

물론 오라클에 계정이 있어야 다운로드가 가능 합니다.

 

 

Java 설치

 

설치는 간단하니 간단하게 화면만 나열해 봅니다.

모두 기본으로 설치 합니다필요하다면 설치 폴더만 수정합니다.. 저는 나중에 설치 위치 찾기가 귀찮아 디폴트로 설치 합니다.


windows java download install


windows java download install


windows java download install


windows java download install


windows java download install


windows java download install


windows java download install


설치가 완료 되었습니다.

 

명령 프롬프트 창을 열고 확인해봅니다.

java -version


windows java download install


잘 설치가 되었습니다.


- copy coding -


postgresql을 설치하고 pgAdmin III를 이용하여 데이터베이스와 테이블을 생성하는 작업을 해봅니다.


pgAdmin III postgresql


먼저 설치된 프로그램에서 pgAdmin III을 찾아 실행 합니다.

 

1. postgreSQL 접속


pgAdmin III postgresql


접속을 하기 전에는 빨간색으로 X 표시가 되는데 postgreSQL에 마우스를 놓고 우측 버튼을 클릭하고 Connect을 선택 합니다.


pgAdmin III postgresql


접속을 위한 비밀번호를 물어보는데 설치 할때 입력한 비밀번호를 사용하면 됩니다.

비밀번호 저장을 클릭하고 OK 버튼을 클릭하면


pgAdmin III postgresql


비밀번호를 저장할거냐고 한번더 물어보는데 OK 버튼 클릭


pgAdmin III postgresql


connect가 성공하면 빨간색 X 표시가 사라지고 구성 요소를 볼 수 있습니다.

 

2. User 생성

 

먼저 새로운 사용자를 하나 생성 합니다.


pgAdmin III postgresql


Login Roles에 마우스를 놓고 우측 버튼을 클릭하여 New Login Role 메뉴를 선택 합니다.


pgAdmin III postgresql


Properties 탭에서 Role name에 이름을 입력하고 


pgAdmin III postgresql


Definition 탭에서 비밀번호도 적어주고


pgAdmin III postgresql


Role privileges에서 권한은 잘 보고 선택하면 되는데 귀찮으면 Superuser를 선택 해주고 OK 버튼 클릭 합니다.


pgAdmin III postgresql


그러면 copycoding이라는 사용자가 한명 생성되었습니다.

 

3. Database 생성

 

이제 새로운 데이터베이스를 만들어 볼까요?


pgAdmin III postgresql


Databases 항목에 마우스를 놓고 오른쪽 버튼을 클릭하고 New Database 메뉴를 선택 합니다.


pgAdmin III postgresql


Properties 탭에서 NameDB명을 입력하고

Owner에 위에서 생성한 copycoding 사용자를 선택해 줍니다.


pgAdmin III postgresql


Privileges 탭에서 DB 권한도 용도에 따라 선택을 해줍니다그리고 OK 버튼을 클릭 하면


pgAdmin III postgresql


새로운 DB도 생성이 되었습니다.

 

4. Table 생성

 

이제 DB에 테이블을 만들어 봅니다.


pgAdmin III postgresql


생성된 copycodingdb를 확장하여 Tables를 찾아 마우스를 놓고 우측버튼을 클릭하여 New Table을 선택 합니다.


pgAdmin III postgresql


properties 탭에서 Name에 만들려는 테이블 이름을 입력 하고 Owner에 사용자를 선택 해줍니다.


pgAdmin III postgresql


Columns 탭에서 Add 버튼을 클릭하고


pgAdmin III postgresql


이렇게 column을 하나씩 입력하여


pgAdmin III postgresql


필요한 column을 다 입력하고 


pgAdmin III postgresql


필요하다면 Privileges 탭에서 권한도 설정을 하고 OK 버튼을 클릭 합니다.


pgAdmin III postgresql


테이블이 하나 생성이 되었습니다필요한 수만큼 Table을 생성하여 사용하면 됩니다.


pgAdmin III postgresql


새로 생성한 테이블을 조회해 보았습니다아직 insert한 데이터가 없군요윈도우에서 작업하면 눈으로 확인이 가능해서 참 편한것 같습니다.


- copy coding -


1···11121314151617···61

+ Recent posts