VScode_디버깅설정

VScode_디버깅설정

개요

문제의 본질은 하나의 IDE에서 BACK, FRONT를 동시에 DEBUGGING해야 편하다는 점이다. 물로 NEXTJS 의 경우 크롬창에서 디버깅이 가능하지만 BACK단 로직은 직접적으로 VSCODE에서 디버깅하기가 편하다는 장점이 있다.

어떤 문제를 해결했나?

1. 복수의 시스템(FRONT, BACK)을 하나의 IDE로 제어

배경지식

  1. Vscode 관련해서 디버깅 모드의 관리는 root dir의 .vscode/launch.json 파일에서 관리한다.
  1. 해당폴더 내 configuration 에서는 각각 실행환경을 정의한다.

lanch.json 파일 수정

// .vscode/launch.json
{
  "version": "0.2.0",
  "configurations": [
    // backend debugging 설정(Spring boot)
    {
      "type": "java",
      "name": "SpringBackApplication",
      "request": "launch",
      "mainClass": "com.backproject.springback.SpringBackApplication",
      "projectName": "spring-back",
      "cwd":"${workspaceFolder}/spring-back"     // 백엔드 위치선언
    },
    // frontend debugging 설정(Next.js)
   {
      "name": "Next.js: debug full stack",
      "type": "node-terminal",
      "request": "launch",
      "command": "npm run dev",
      "cwd": "${workspaceFolder}/front",          // 전체 root위치 선언(node.js)
      "serverReadyAction": {
        "pattern": "- Local:.+(https?://.+)",
        "uriFormat": "%s",
        "action": "debugWithChrome",
        "webRoot": "${workspaceFolder}/front"     // 클라이언트 위치선언(웹 리소스)
      }
    }
  ]
}

개인의견

독학을 하는 입장에서 비빌 곳은 디버깅이다. 물론 CS적 지식을 알아야하는 부분도 있지만 에러 발생 시 가장 먼저 필요한 행동은 "어디서 발생했는지" 를 찾는 것이다. 그리고 이런 부분에 대한 노동도 시간이 많이든다. 결국 클린코드라는 것도 이런 고장난 부분을 빠르게 찾기 위한 네이밍, SOLID원칙 등이 생겨난 것이라고 생각이 든다.

디버깅설정