11월 19일 (수)
- node js, ws 을 활용하여 데이터 송수신 개념 익히기
- 데이터 송수신 개념 익히기
- 채팅(에코) 서버 제작
11월 20일 (목)
- C# TCP Socket 을 활용하여 데이터 송수신 구현하기
- 데이터 송수신 구현
- 채팅(에코) 서버 제작
11월 26일 (수)
- C# 콘솔, C# TCP Socket, Unity를 활용하여 술래잡기 게임 구현하기
- 월드 구현
- 충돌 구현
- 이동 구현
11월 27일 (목)
- C# 콘솔, C# TCP Socket, Unity를 활용하여 술래잡기 게임 구현하기
- 서버 연결 구현
- 위치 동기회 구현
12월 3일 (수)
- C# 콘솔, C# TCP Socket, Unity를 활용하여 술래잡기 게임 구현하기
- 술래잡기 규칙 구현 - 술래 선정
- 술래잡기 규칙 구현 - 탈락 & 탈락 후 술래 지정
12월 4일(목)
- C# 콘솔, C# TCP Socket, Unity를 활용하여 술래잡기 게임 고도화 하기
- 각자 추가하고 싶은 기능 기획
- 각자 추가하고 싶은 기능 구현
12월 11일 (목)
- C# 콘솔, C# TCP Socket, Unity를 활용하여 술래잡기 게임 고도화 하기
- 각자 추가하고 싶은 기능 기획
- 각자 추가하고 싶은 기능 구현
- node 설치
- vscode 설치
- vscode 확장 ESLint 설치
- 서버 프로젝트로 사용할 디렉토리 생성 & 터미널 열기
- 터미널에
npm init --yes입력- npm(node package manager)를 사용하기 위해서 npm을 초기화해줍니다.
package.json에"type": "module"추가- node.js에는 크게 CommonJS와 ESModule로 나뉘는데, 본 문서에서는 ESMoudle 환경에서의 node.js를 사용하기 때문에 이를 package.json에 명시해줍니다.
- 터미널에
npm install ws입력- 본 문서에서는 node.js ws를 사용하여 실시간 통신을 구현하기 때문에 npm에서 ws 모듈을 다운로드 해줍니다.
index.js파일 생성- 스크립트를 작성할 index.js 파일을 생성합니다.
js-ws-chat-server 참고
- 클라이언트 프로젝트로 사용할 디렉토리 생성 & 터미널 열기
- 터미널에
npm init --yes입력- npm(node package manager)를 사용하기 위해서 npm을 초기화해줍니다.
package.json에"type": "module"추가- node.js에는 크게 CommonJS와 ESModule로 나뉘는데, 본 문서에서는 ESMoudle 환경에서의 node.js를 사용하기 때문에 이를 package.json에 명시해줍니다.
- 터미널에
npm install ws입력- 본 문서에서는 node.js ws를 사용하여 실시간 통신을 구현하기 때문에 npm에서 ws 모듈을 다운로드 해줍니다.
index.js파일 생성- 스크립트를 작성할 index.js 파일을 생성합니다.
js-ws-chat-client 참고
- 서버 프로젝트 디렉토리에서 새 터미널 열기
- 터미널에
node index.js입력- 위 명령어를 통해
<서버 디렉토리>/index.js에 적힌 코드를 node 런타임으로 실행합니다.
- 위 명령어를 통해
- 클라이언트 디렉토리에서 두개의 새 터미널 열기
- 각 터미널에
node index.js입력- 위 명령어를 통해
<클라이언트 디렉토리>/index.js에 적힌 코드를 node 런타임으로 실행합니다.
- 위 명령어를 통해
- 각 클라이언트 코드를 node로 실행한 터미널에 메세지 입력
- 각 클라이언트 콘솔에 메세지를 입력하여 A콘솔에서 보낸 메세지가 B콘솔로 전달 되었는지, B콘솔에서 보낸 메세지가 A콘솔로 전달 되었는지 확인합니다.
- dotnet sdk 9.0 설치
- vscode 확장 C# Dev Kit 설치
- 필요시 dotnet 환경변수 설정
- 유니티 설치 (2023+)
- 서버 프로젝트로 사용할 디렉토리 생성 & 터미널 열기
- 터미널에
dotnet new console --use-program-main입력dotnet new console명령어를 통해 콘솔 앱 프로젝트를 생성하되,--use-program-main옵션을 부여하여 public static void Main(string[] args) 의 템플릿을 사용하도록 명시합니다.
- 터미널에
code -r .입력- 사용중인 vscode 창에서 현재 터미널이 열려있는 경로의 폴더를 오픈합니다. 이를 통해 솔루션 파일을 생성하고, C# 프로젝트를 로드합니다.
.csproj파일을 열어 다음 옵션을 제거합니다.<ImplicitUsings>enable</ImplicitUsings>using 문을 명시적으로 추가하지 않아도 되게 하는 옵션입니다. 코드의 가독성을 해칠 가능성이 있는 옵션이기에 제거합니다.<Nullable>enable</Nullable>Nullable 참조 유형을 명시하도록 강제하는 옵션입니다. 코드의 가독성을 해칠 가능성이 있는 옵션이기에 제거합니다.
Program.cs의 내용을 다음과 같이 수정합니다.using System; namespace <ProjectName> { internal class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } } }
.vscode/task.json에 dotnet 기본 빌드 task 구성을 추가합니다.{ "version": "2.0.0", "tasks": [ { "type": "dotnet", "task": "build", "group": "build", "problemMatcher": [], "label": "dotnet: build" } ] }.vscode/launch.jsondotnet 콘솔 앱 luanch 구성을 추가합니다.{ "version": "0.2.0", "configurations": [ { "name": ".NET Core Launch (console)", "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", "program": "${workspaceFolder}/bin/Debug/net9.0/<ProjectName>.dll", "args": [], "cwd": "${workspaceFolder}", "stopAtEntry": false, "console": "internalConsole" } ] }- 방금 생성한
.NET Core Launch (console)launch를 디버거로 설정합니다. - F5를 눌러 앱을 실행하여 콘솔에
Hello, World!가 출력되는지 확인합니다.
CSChatServer 참고
- 유니티 프로젝트를 생성합니다. (템플릿 무관)
CSChatClient 참고
- vscode로 서버 프로젝트를 연 뒤 F5를 눌러 실행합니다.
- 클라이언트 프로젝트를 백그라운드에서도 동작하도록 빌드하여 두개 이상의 클라이언트를 실행합니다.
- 각 클라이언트에서 메세지를 전송하여 다른 클라이언트에서 잘 표시되는지 확인합니다.