갑자기 서버에 대해서 제대로 공부해보고싶어졌다.
그래서 몇일째 맨땅에 헤딩을 하고 알아낸 정보를 글로 남기려고 한다.
일단, 이번엔 ASP.NET Core를 활용해 웹 서버를 만들기 위한 개발환경을 구성하는 방법을 서술하려고 한다.
00. .NET SDK 설치
.NET 다운로드(Linux, macOS 및 Windows) | .NET
Linux, macOS 및 Windows에서 .NET 앱을 빌드하고 실행하기 위한 무료 다운로드. .NET Framework, .NET 및 ASP.NET용 런타임, SDK 및 개발자 팩.
dotnet.microsoft.com
링크로 들어가서, 필요한 .NET 버전을 다운받도록 하자.
나는 .NET 10.0 버전을 받았고, x64 버전으로 받았다.
참고로, 8버전 부터인가? 그때부터 .NET Framework와 .NET Core가 통합되어 그냥 .NET으로 불린다고 들었던것 같다.
당황하지말고 그냥 설치하자. 만약 원하는 버전이 있다면 .NET Core가 있는지 확인하고 있다면 그걸 설치하면 된다.
설치 후,
dotnet --version
명령어를 실행시키면, 설치된 dotnet 버전이 표시된다.

나는 Cursor를 사용하고 있다.
01. 확장프로그램 설치 (Extention)
필수 설치
- C# Extention

C#을 설치해주자.
- REST Client Extention

humao 라는 개발자가 만들어 둔, REST Client를 설치해주자.
이 툴은, VSCode 내에서 직접 HTTP 요청을 작성하고, 테스트 할 수 있도록 도와주는 툴이다.
선택
- Resharper (Jetbrains) - C#코드 분석기

C# 디버깅 및 코드 리팩토링을 편하게 하는 툴이다.
아직 테스트중이고, C#과 충돌이 나기 때문에 이걸 설치하려면 방금 설치했던 C#을 삭제해줘야한다.
그래서 난 선택사항은 다운로드 하지 않았다.
02. 프로젝트 생성
아무 디렉토리를 생성하고, 생성한 디렉토리를 VSCode에서 열어주자.
이후, ctrl + shift + ` (~ 버튼)을 눌러서 터미널을 실행시키자.
dotnet new webapi
[명령어] [생성] [템플릿]

03. 동작 테스트
이번엔 프로젝트가 제대로 설정 되었는지 간단히 확인해보자.
dotnet build

빌드가 잘 됐다.
이제 실행시켜보자.
dotnet run

이렇게 뜬다면 정상적으로 실행된것이다.
다만, 프로젝트에서 소스코드가 변경될 때 마다, 다시 start를 시켜줘야한다. 이 때, dotnet에서 제공하는 hot reload를 적용하면 편리하다.
dotnet watch
이걸로 실행하면, hot reload상태가 된다.

새로운 프롬프트를 열어서 위의 포트 번호를 확인 후, 정상적으로 실행되었는지 확인해보자.
curl http://localhost:[port]/weatherforecast

이런식으로 Json형태의 데이터를 받았다면 정상적으로 실행되는 중인것이다.
위에 뜬 Json데이터는 기본적으로 프로젝트를 초기화했을 때, 테스트 용도의 데이터가 생성되었기때문에 뜨는것이다.
04. 디버깅 설정
이제, 디버깅 설정을 해보자. VSCode에서는 f5를 누르면 디버깅 선택창이 뜨게 된다.

여기서, .NET core 를 선택해주자.

이후, 디버거 탭을 누르고 초록 화살표를 누르면 디버깅이 진행된다.

디버거 탭을 통해 변수를 추적하거나, Callstack, BreakPoints 확인, 현재 Local 변수를 확인할 수 있다.
나는 Cursor를 사용중이기 때문에 좀 애먹었는데
혹시 f5를 눌러서 실행이 안된다면, C# Extention을 업데이트 해주자.

저기서 Run and Debug를 고정으로 두자 (Ctrl + Shift + D를 눌러도 된다.)

그럼 커서에서도 쓸 수 있게된다.
디버거를 설정했다면,

.vscode라는 폴더가 생성된다.
이 폴더는 vs Code의 프로젝트별 설정을 저장하는 곳이다. 없다면 수동으로 생성할 수도 있다.
주요 항목에 대한 설명은 다음과 같으니 읽어보자.
launch.json 주요 설정 항목:
- version: 구성 파일의 버전을 지정 (현재 버전은 0.2.0)
- configurations: 디버깅 구성 목록을 정의하는 배열
- name: 디버그 구성의 이름 (VS Code UI에 표시됨)
- type: 사용할 디버거 타입 (coreclr은 .NET Core용 디버거)
- request: 디버깅 요청 유형 (launch는 새로 시작, attach는 실행 중인 프로세스에 연결)
- preLaunchTask: 디버깅 전에 실행할 작업 (tasks.json에 정의된 작업명, 보통 build)
- program: 실행할 프로그램의 경로 (빌드된 DLL 파일 위치)
- args: 프로그램 실행 시 전달할 명령줄 인수 배열
- cwd: 프로그램 실행의 작업 디렉토리 경로
- stopAtEntry: 프로그램 시작 지점에서 즉시 중단점 설정 여부 (true/false)
- serverReadyAction: 서버가 준비되었을 때 취할 동작
- action: 수행할 동작 (예: openExternally는 외부 브라우저 열기)
- pattern: 서버 준비 상태를 감지할 정규식 패턴
- env: 디버깅 세션에 적용할 환경 변수 (키-값 쌍)
- sourceFileMap: 소스 파일 경로 매핑 (원격 디버깅 시 유용)
tasks.json 주요 설정 항목:
- version: 작업 정의 파일의 버전 (현재 버전은 2.0.0)
- tasks: 정의된 작업 목록을 포함하는 배열
- label: 작업의 이름 (VS Code UI에 표시되고 launch.json에서 참조됨)
- command: 실행할 명령어 (예: dotnet)
- type: 작업 실행 방식 (process는 새 프로세스로 실행)
- args: 명령에 전달할 인수 배열
- build: 빌드 명령어
- ${workspaceFolder}/GameAPIServer.csproj: 대상 프로젝트 파일
05. REST Client를 사용한 테스트
.http 파일을 생성하여 API 엔드포인트를 테스트 할 수 있다.
프로젝트안에 .http확장자 파일을 찾고 (없다면 생성하자) 그 파일을 이렇게 수정해주자.
@host = http://localhost:5152
### 기본 API 테스트
GET {{host}}/weatherforecast
REST Client를 설치했다면 SendRequest버튼이 보일것이다. 이 버튼을 눌러서 요청을 실행하면 된다.


참고로, 실행이 안된다면 터미널을 열어
dotnet run
이걸 실행시켜, 로컬 서버를 열어주어야 한다.
'Study > GameServer' 카테고리의 다른 글
| [ASP.NET Core] 05. 의존성 주입 방법의 라이프 사이클 (0) | 2025.12.04 |
|---|---|
| [ASP.NET Core] 04. 미들웨어와 파이프라인 (0) | 2025.12.04 |
| [ASP.NET Core] 03. Respose 처리 (0) | 2025.12.04 |
| [ASP.NET Core] 02. Request 처리 (0) | 2025.12.03 |
| [ASP.NET Core] 01. 컨트롤러와 Route 규칙 (0) | 2025.12.03 |