본문 바로가기

웹개발/플러그인 (Eclispse)

[이클립스 플러그인] anyEdit 와 Scheduler


1. AnyEdit


이클립스 플러그인 anyEdit 입니다.


[기능]
1) 카멜규칙 <-> 언더바형식
2) 대소문자 상호 전환

[단축키]

(1) 소문자 -> 대문자     : ctrl + alt + u

(2) 대문자 -> 소문자     : ctrl + alt + l

(3) camel <-> underbar  : ctrl + allt + k 



 먼저 anyEdit 플러그인을 마켓에서 설치합니다.





spring MVC 기본 프로젝트를 생성 후 camel 규칙으로 쓰여져 있는 dateFormat을 영역 지정 후에 ctrl + alt + k 를 해보겠습니다.





[결과]


dateFormat 이 date_format으로 변경 된 것을 확인할 수 있습니다.




또한 AnyEdit은 단어 하나만이 아닌 영역 내에서의 변환도 지원하고 있어

아래 사진과 같이 영역을 지정 후 변환시킬 수도 있습니다.





대소문자 변경 (ctrl + alt + u, l)은 

간혹가다 sql이 소문자로 되어있는 아래 사진 예시와 같은 경우에 영역 지정 후 고쳐 주며 주로 사용했습니다.






2. Scheduler
    
1) Annotation 방식
anyEdit을 하며 만들었던 spring mvc프로젝트의 root-context.xml 에서 다음을추가해 줍니다.

[root-context.xml]
         






 
그리고 scheduler와  executor를 선언 한 후 annotation-driver에 지정을 합니다.



이와같이 설정이 끝났으면 스케쥴링을 할 메서드에 어노테이션을 추가해 줍니다.

[Java] 


[Console]


1초간격으로 실행 되는 것을 알 수 있습니다.
 

fixedDelay란 무엇인가?     

Scheduled는 3가지 종류가 있습니다.

(1) fixedDelay : 이전에 실행된 스케쥴의 종료 시간부터 정의된 시간 후 스케쥴을 실행 (밀리세컨드)

(2) fixedRate  : 이전에 실행된 스케쥴의 시작 시간부터 정의된 시간 후 스케쥴을 실행 (밀리세컨드)

(3) cron : Linux 의 cronTab과 같은  cron="0/10 * * * * ?"  설정이 가능
(아래 xml 방식에서 자세히 설명하도록 하겠습니다.)


2) XML 방식


xml 방식은 아래 그림과 같이 xml에 스케쥴링 할 메서드가 속해있는 클래스를 먼저 지정해 줍니다.




그 이후 task:scheduler를 선언하고 스케쥴링 될 task들을 선언한 scheduler안에 넣어 줍니다.




sceduled-task 안에 들어있는 스케쥴들의 ref는 위에 스케쥴이 실행될 클래스를 지정하고, method는 그 클래스 안의 스케쥴 될 메서드명을 지정해 줍니다.

그리고 annotation 방식과 같이 fixedDelay, fixedRate,cron 을 사용하여 실행될 주기나 시간을 지정합니다.


예시에는 cron을 사용하여 각각 1초와, 2초마다 실행이 되도록 지정하였습니다.



각각 1초와 2초마다 실행되는 것을 알 수 있습니다.




[CRON]


cron은  * * * * * *(옵션) 으로 6가지의 설정이 가능합니다.



왼쪽부터  

초 / 분 / 시 / 일(1~31) / 월(1~12) / 요일(1~7 / 일~토) / 년(1970~2099)[옵션]

의 순서입니다.


다시 정리하면 

초   : (0~59)

분   : (0~59)

시   : (1~23)

일   : (1~31)

월   : (1~12)

요일 : (1~7) / (일~토)

년   : (1970~2099)  [옵션]



또한 사용 특수문자로는 *, ?, -, . ... 등등이 있습니다.


추가로 정리하면 

* : 모든 수를 의미 

    (ex) 시간에 *이 있으면 매시간 마다라는 뜻이 됩니다.


? : 요일과, 년에만 사용이 가능하며, 특별한 값이 없다는 뜻 입니다.


- : 기간을 지정할 때 사용합니다.

    (ex) 시간에 4-8 이라 사용하면, 4, 5, 6, 7, 8시에 동작하라는 뜻이 됩니다.


, : 특정한 시간을 설정 할 때 사용합니다.

    (ex) 분의 위치에 10, 20, 30 이라고 쓰면 10분, 20분, 30분에만 동작하라는 의미가 됩니다.


/ : 증가를 의미 합니다.(간격, 마다)

    (ex) 위의 예시와 같이 초에 0/2 라고 사용하면 0초에서 2초 간격으로 동작하게 됩니다.


L : 일에만 사용하며 마지막 날을 의미합니다. -> 즉 그 달의 마지막 날에 수행됩니다.


W : 일에만 사용하며 가장 가까운 평일을 뜻합니다.

    (ex) 25일이 토요일인 경우, 25W라 설정되어 있으면 가장 가까운 평일인 24일에 실행이 됩니다. 

         지정한 날이 평일일 경우 지정한 날에 실행이 됩니다.


LW : L과 W를 조합한 것으로, 그 달의 마지막 평일을 의미 합니다.


# : 요일에 사용되며, x번째 주를 의미합니다.

    (ex) 3#4 -> 4번째 주 화요일을 의미합니다.  ->       요일#몇주차