본문 바로가기

애플리케이션 개발/HRC(Home Remote Control)

3-5. Script Launcher를 이용해 서버 실행시키기

이전 포스팅(https://taeminator1.tistory.com/64)에서 설명했듯이, 계정에 로그인할 때마다, Terminal 앱을 열고, .js 파일(HRC 플랫폼에서는 app.js 파일)이 있는 곳으로 디렉터리를 변경하고, .js 파일을 실행하는 일은 여간 귀찮은 일이 아니다. 

 

  1. Terminal 앱 실행
  2. 디렉터리 변경하기
  3. .js 파일 실행

현재는 Script Launcher라는 macOS용 앱을 개발하여 계정에 로그인할 때마다 자동으로 위의 세 가지 작업이 실행된다. 이번 포스팅을 통해 이전에 시도했던 방법들과 Script Launcher에 대해 간략히 소개하고자 한다. 

 

[첫 번째 시도] app.js 파일을 기본 디렉터리로 옮기고, 로그인 시에 Terminal 앱 실행하기

앞에서 말한 세 단계 중에서 1번은 쉽게 해결 가능하다. Terminal 앱에서 오른쪽 마우스 버튼을 클릭하여 아래와 같이 로그인 시에 실행하도록 설정하는 기능을 자체적으로 제공하기 때문이다. 

이렇게 설정하면 계정에 로그인할 때마다 자동으로 Terminal 앱이 실행된다. 그리고 2번도 생각보다 쉽게 해결 가능하다. 디렉터리를 변경해야 한다면 디렉터리를 변경할 필요가 없게 만들면 된다. Terminal 앱을 열면, 기본적으로 경로가 /Users/username로 설정이 된다. 그래서 app.js 파일을 아래와 같이 해당 디렉터리에 옮겼다. 

이제 로그인하면, 자동으로 띄어진 Terminal 앱에 "app.js"만 입력하면 된다. 

 

하지만 프로젝트 폴더에서 벗어난 곳에 app.js가 있어, 프로젝트를 통합적으로 관리하기 불편하고, 해당 디렉터리에 /Users/username 내에 여러 파일(.js 파일과 .txt 파일)이 있는 것도 어색해 보인다. 그리고 앞의 1번과 2번의 동작은 하지 않아도 되지만, 3번 동작은 여전히 해야 한다. 

 

[두 번째 시도] .command 파일을 만들어 실행하기

다음으로 .command 파일을 만들어 Terminal 앱에서 명령어를 실행하였다. 해당 방법은 아래 포스팅을 참조하면 된다. 

https://taeminator1.tistory.com/63

 

이 방법을 통해, 명령어만 한 번 설정해 놓으면, 디렉터리를 옮길 필요도, .js 파일을 실행할 필요도 없어진다. 그저 .command 파일을 더블 클릭해주기만 하면 된다. 하지만 계정에 로그인할 때 자동으로 실행되지는 않는 문제가 있다. 해당 현상을 개선하기 위해 Automator 앱을 활용하려고 했는데, .command 파일을 실행하는 방법을 찾다가 그만두었다. 

 

그리고 실행하고자 하는 파일의 디렉터리가 달라지면 또, 수기로 명령어를 변경해줘야 하는 것도 큰 불편함이다. 

 

[세 번째 시도] Application 제작하여 실행하기

앞서 시도한 방법들도 사용하는 데에 큰 무리는 없다. 하지만 나는 프로그래머가 아닌가. app.js 파일의 이름이 변경될 수도 있고, 디렉터리가 변경될 수도 있다. 그래서 다양한 상황에 대응되는 앱을 개발하기로 하였다. 

 

먼저 두 번째로 시도한 방법에서 영감을 받아 로그인 시에 .command 파일을 자동으로 실행해주는 앱을 만들고자 하였다. 기능은 크게 세 가지다. 

  1. app.js 파일의 위치를 기반으로 한 .command 파일 생성
  2. 임의로 생성된 .command 파일 실행
  3. 로그인 시에 .command 파일 실행

기능이 간단하여 따로 View 없이 Menu로만 구성된 앱을 개발하였다. 완성된 앱은 다음과 같다. 메뉴바에 Script Launcher에 해당하는 아이콘이 보이며, 해당 아이콘을 누르면 메뉴가 나온다. 순서대로 다음 기능을 수행한다.

  • Select...: 실행하길 원하는 .js 파일을 선택하면 해당 경로에 .command 파일을 생성한다. 
  • Launch Script: Select...에서 .js 파일을 선택했다면 활성화된다. 활성화된 버튼을 클릭하면 저장된 경로에서 .command 파일을 실행한다. 
  • Open at Login: 로그인할 때 해당 앱의 실행 여부를 선택할 수 있다. 기존에 .js 파일이 선택되어 있다면(Launch Script 버튼이 활성화되어 있다면) .command 파일까지 자동 실행된다. 

 

해당 앱을 통해, 시스템을 부팅할 때마다 일일이 실행해주던 수고를 덜 수 있었다. 

 

이렇게, HRC 플랫폼을 사용하면서 불편한 점까지 해결해 보았다. HRC 플랫폼을 사용하기 전에는 해당 현상에 대한 문제는 전혀 생각도 못했었다. 시스템을 켤 때마다 서버를 동작시키는 것이 문제가 될 것이라고 어떻게 생각을 할 수 있겠는가. 이번에도 느끼지만 프로그램이란 사용을 통해서 더욱 발전하는 것 같다. 

 

아무리 생각해도 프로그래밍의 꽃은 유지보수인 것 같다.