Park, Geon (re-st)

1. 문제: 원격 서버 빌드 모니터링

원격 서버에서 도커 빌드를 실행할 때, 터미널 화면을 계속 쳐다보지 않고도 빌드 성공/실패 여부를 알고 싶습니다. Slack 알림, 이메일, 또는 VSCode가 켜져 있는 윈도우 PC에서의 알림 등을 원합니다.

2. 해결 방안 1: CI/CD 도구 활용 (Jenkins / GitHub Actions)

일반적으로 Jenkins나 GitHub Actions 같은 CI/CD 도구를 사용하면 빌드 파이프라인의 ‘Post-build Action’을 통해 Slack이나 이메일 알림을 쉽게 설정할 수 있습니다.

3. 해결 방안 2: VS Code Task와 Webhook 활용 (Jenkins 불필요) (채택)

Jenkins 같은 별도 도구 설치가 번거롭다면, VS Code의 Task 기능을 사용하여 빌드 완료 시 원하는 스크립트를 실행(예: Slack 알림)하도록 설정할 수 있습니다.

3.1. Slack Webhook 설정 단계

먼저 알림을 받을 Slack 채널의 Webhook URL이 필요합니다.

  1. Slack API 페이지로 이동하여 “Create New App"을 클릭합니다.

  2. “From scratch” 옵션을 선택하고, 앱 이름과 워크스페이스를 지정하여 앱을 생성합니다.

  3. 좌측 메뉴에서 “Incoming Webhooks"를 선택하고 “Activate Incoming Webhooks"를 켭니다.

  4. 하단의 “Add New Webhook to Workspace” 버튼을 클릭합니다.

  5. 메시지를 보낼 채널을 선택하고 “Allow"를 클릭합니다.

  6. 생성된 Webhook URL (예: https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK)을 복사합니다.

3.2. VS Code tasks.json 설정

VS Code에서 열어둔 프로젝트 폴더 내에 .vscode/tasks.json 파일을 생성하고, 빌드 작업(Build Project)과 알림 작업(Notify Slack)을 연동합니다.

JSON

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Build Project", // 1. 실제 빌드 작업
      "type": "shell",
      "command": "docker build -t my-image .", // 실행할 빌드 명령어
      "group": "build",
      "problemMatcher": []
    },
    {
      "label": "Notify Slack on Success", // 2. 빌드 성공 시 알림 작업
      "type": "shell",
      // curl을 사용해 Slack Webhook으로 JSON 메시지 전송
      "command": "curl -X POST -H 'Content-type: application/json' --data '{\"text\":\"Build completed!\"}' https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK",
      "problemMatcher": [],
      "dependsOn": "Build Project" // "Build Project" 작업이 끝나면 실행
    }
    // (참고) 'runOn': 'failure' 옵션과 dependsOn을 조합하면
    // 실패 시 알림도 별도로 구성할 수 있습니다.
  ]
}

4. 문제 해결 (Debugging): “tasks.json"이 VS Code에 뜨지 않을 때

tasks.json 파일을 분명히 만들었는데도 F1 > “Tasks: Run Task” 목록에 작업이 나타나지 않는 경우가 있습니다.

4.1. 파일 내용 확인

먼저 tasks.json 파일의 JSON 구문이 올바른지 확인합니다. 특히, 기본 빌드 작업을 지정하는 "isDefault": true 속성이 올바르게 설정되었는지 확인해 볼 수 있습니다.

JSON

      "group": {
        "kind": "build",
        "isDefault": true // 이 작업을 Ctrl+Shift+B의 기본 빌드로 설정
      },

4.2. [중요] 파일 위치 확인

Task가 보이지 않는 가장 결정적인 원인은 .vscode 폴더의 위치일 수 있습니다.

tasks.json 파일은 사용자 홈 디렉토리(~)가 아닌, 현재 VSCode에서 열어둔 프로젝트 폴더의 최상위 루트(Workspace Root)에 위치해야 합니다.

5. 결론

프로젝트 폴더 위치에 .vscode/tasks.json 파일을 올바르게 배치한 후, VS Code에서 “Tasks: Run Task"를 실행하면 “Build Project"와 “Notify Slack on Success"가 목록에 정상적으로 나타나는 것을 확인할 수 있습니다.

#How-To