얼마 전까지 SpringSource.org 에서 제공하는 STS 를 이용해서 개발해왔다.


그러다가 아는 분이 저렴하게 구매하신 인텔리제이intelliJ 라이센스를 넘겨받아 사용하기 시작하고 있다. 처음에는 인텔리제이의 강력한 리팩토링 기능이 마음에 들어서 STS에서 작성한 코드들에 대해서 리팩토링을 할 때에만 주로 사용해왔었는데, STS(현재 우분투 13.04에서 openjdk-7-sdk 를 사용하고, STS 3.2.0 에서 3.3.0으로 업그레이드하여 사용)에서 Interface 에 정의되어 있는 메소드를 자동완성시켜주지 않는 버그가 발생하면서 인텔리제이로 마음이 확 기울어져버렸다.


인텔리제이를 사용하면서 가장 아쉬웠던 것이 하나 있었는데, 이클립스에서 별다른 설정없이 사용했던 'Auto publicsing'이었다. 웹 프로젝트를 열어놓은 상태로 로컬 웹서버에 배포하여 테스트하면서 개발할 때, 클래스 파일이나 JSP 파일 등을 수정했을 때, 자동으로 컴파일되고 서버에 배포되는 기능이 인텔리제이에서 제공하지 않는다고 아쉬워했었다(다 방법이 있었다!).

위에서 보는 것처럼, 모듈의 Run/Debug Configurations 에서  'On frame deactivation' 항목을 'Update classess and resources'를 설정해 놓으면, 애플리케이션이 잠시 대기하고 있는 동안에 변경사항을 확인하여 변경된 클래스와 리소스를 갱신시켜준다. 

그리고 실행할 때는 디버그Debug 모드로 실행시킨다.

혹은


왼쪽 하단에 있는 서버 항목 중에서 'Update Resources On Frame Deaction'을 클릭해서 활성화시켜도 된다. 이렇게 설정해두면, 애플리케이션이 대기상태에 들어가면 주기적으로 변동사항들을 확인하는 작업을 하면서 자동 배포가 된다.

  1. 초로기 2021.04.18 06:41

    "애플리케이션이 대기상태" 라는 의미가 그냥 앱만 구동되있고 아무런 처리등을 수행하지 않는 경우를 의미하나요?

    예컨데 웹앱이라면 아무런 요청처리 등을 하지 않고 멍때리고 있는 순간을 말하나요?

  2. 초로기 2021.04.18 06:48

    Running Application Update Policies // 실행중인 앱의 업데이트 정책

    - On 'Update' action: Update classes and resources // 업데이트가 있으면 : 해당 클래스와 리소스를 업데이트 해라.

    이건 뭔지 알고 활용할 수 있는데요.
    본문의 내용에 보면 On frame deactivations 도 같이 맞춰놓으셨는데 이건 뭘 의미하는지 아시나요?

    - On frame deactivations : 프레임이 비활성화 상태일때라는 사전적인 번역은 알겠으나

    실행 중인 앱의 "프레임 비활성화"라는 말이 어떤 의미하는지 궁금합니다.


    그리고 왜 이렇게 2개의 옵션을 줬을까요.
    보통 앱을 작동시켜놓고 (Running Application) 코드 치면서 변경사항이 시시각각 반영되기 원하는 거면
    On 'Update' action 이 정책에서 다 걸리지 않을까요

    그래서 On frame deactivations 이 말이 더 궁금합니다.

+ Recent posts