프로젝트 기간 : 2024/ 07 /28 ~ 2024 / 08/ 23프로젝트 목표 : 실제 멀티 게임을 직접 Unity 엔진을 이용하여서 제작하기게임 이름 : 관청이 불타 토지문서가 사라졌다.게임 장르 : 멀티 대전 게임참여 인원 : 7인기획 노드 : https://miro.com/app/board/uXjVKwpSVi8=/ 관청이 불타 토지문서가 사라졌다 miro.com 서버 Github : https://github.com/tmdwnsasa/Final_Project GitHub - tmdwnsasa/Final_ProjectContribute to tmdwnsasa/Final_Project development by creating an account on GitHub.github.com 클라이언트 Gi..
분류 전체보기
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbX4HLZ%2FbtsIHH5j8Bd%2FoSWkspcVie41OzGMU31mD1%2Fimg.png)
JWT에 대해서우리는 지금까지 로그인등 회원의 대한 정보를 요구할 때 JWT 토큰을 사용하였다.JWT란 사용자(클라이언트)가 서버로 로그인을 할 때 서버로 요청을 보내면 서버에서 DB정보를 기반으로 확인을 하고 확인이 되었다면 token을 사용자에게 발급해주고, 사용자는 다음부터 서버에 정보요청을 할 때 마다 앞서 검증을 받은 JWT토큰으로 데이터를 주고 받을 수 있게 된다. 이러한 JWT토큰 클레임 토큰 기반의 인증 방식이다.일반 토큰 기반 vs 클레임 토큰 기반JWT를 사용하는 가장 큰 이유는 클레임(Claim) 토큰 기반 인증이 주는 편리함이 가장 크다고 할 수 있다. 과연 일반 토큰 기반과 클레임 토큰 기반 인증의 차이는 무엇일까?기존에 주로 사용하던 일반 토큰 기반 인증은 토큰을 검증할 때 필요..
-오늘의 코딩테스트추후 추가 예정- 오늘 한일- socket.io 의 join 과 to의 개념 이해join 과 to를 이해하기 위해선 우선 socket.io의 room의 개념에 대해서 이해하고있어야한다.room은 멀티플레이어 socket에 유저A와 유저B가 접속할 때 어디로 접속하는지에 대한 방의 정보를 나타낸 것으로 이해하면 된다.룸에 입장하는 것은 io.socket.get(socket.id).join(RoomName)으로 입장한다.그리고 이러면 룸에 입장하는 이유등을 이해하여야 하는데socket에서 멀티플레이어 환경에 유저A의 정보를 B에게 넘겨서 두 화면이 같게 유지하여야한다.우리는 이것을 위해서 해당 room의 유저의 정보를 뿌리는 코드를 짰다.export const spawnMonster = (..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjzkgX%2FbtsIwyfrIkb%2F6vD58YEtM1Pz37JNMbAUZ1%2Fimg.png)
[기반 발제 문서]https://teamsparta.notion.site/Chapter-5-060313f2b3da4ec39e729621a6d81d8a Chapter 5 게임서버 주특기 플러스 개인과제 | NotionIntro: “지금까지는 튜토리얼”teamsparta.notion.site [개발기간]2024/06/28 ~ 2024/07/10[개발인원]1인[설명]Intro: 2D 멀티플레이어 게임서버 구현목표 : TCP 기반의 유니티 멀티 플레이어 서버 만들기구현 사항[v] 프로젝트 구성[v] 게임 인스턴스 생성[v] 유저 접속[v] 유저 인스턴스 생성[v] 위치 패킷 교환 위 사진과 같이 게임을 실행하면 게임 세션을 추가하고유저들이 게임에 참여가 가능하게 설계되어있습니다.처음 게임을 만들고 유저가 들어왔..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWamCQ%2FbtsItgzbegk%2F50L4Yfd1Fns6lG5SltukoK%2Fimg.png)
컴퓨터에는 여러가지 부품이 있다.메인보드, 하드디스크, 그래픽카드, 메모리카드, 그리고 CPU..컴퓨터를 사람 몸으로 표현하면 다음과 같이 다양한 부품을 몸으로 표현할 수 있다.우리는 이중 뇌에 해당하는 CPU에 대해서 알아보려고 한다.CPU의 가장 기본적인 역할은 다음과 같이 나타낼 수 있다.CPU의 가장 기본적인 역할이다.CPU 이전에 컴퓨터는 유저의 요청을 먼저 받는다. 유저의 요청은 보통 입력장치(키보드,마우스)등으로 받게된다.CPU는 이러한 요청을 받으면 요청을 처리하는 담당을 한다. 그리고 이 요청의 결과 값은 출력장치( 모니터) 등을 통해서 출력된다.그럼 이 CPU의 요소에 대해서 알아보자CPU는 제어장치, 연상장치, 레지스터로 불리는 대표적인 3요소로 구성되어있다.(이것말고도 여러가지 요소..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcovmNy%2FbtsIpv5mT41%2F0CIUG6up3J5RJILwKyKwp1%2Fimg.png)
[오늘의 코딩테스트]추가 예정[오늘 한일]- 강의 마무리강의를 다듣고 한번 더 들었다.잘 이해가 안가는 부분이 있어서 그 부분을 추가로 학습하였던 것 같다.그래도 어떤 방식으로 TCP서버를 만들어야 하는지 감이 좀 잡히는 것 같다. - 유니티와 코드 연동유니티와 소스코드를 연동하였다.패킷 구조가 바뀌었다는 것을 이해하지 못하고 작업을 진행하다가 계속 연동이 되지않아 어려움이 있었는데다음과 같이 정리되어있는 부분이 있어서 이 부분을 기존의 CS코드와 연동하여서 해결하는 부분이였다. 이것을 몰라서 계속 어려워했다는 것이 너무 속상하다... -CPU에 대한 이해게임서버반의 과제로 CPU에 대하여 학습하여 미니 강의를 진행하는 역할을 맡게 되어서 CPU에 대한 학습을 진행하였다.확실히 심화과정으로 가면 CPU도..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZ4LpC%2FbtsInVBXjSZ%2FBTkc2ukipDJsGtMGbmtPy0%2Fimg.png)
[문제][풀이코드]function solution(survey, choices) { var answer = ''; const mbti = {'R': 0, 'T': 0, 'C': 0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0}; for(let i = 0; i 4){ mbti[survey[i][1]] += choices[i] - 4; } else if(choices[i] = mbti['T'] ? answer += 'R' : answer += 'T'; mbti['C'] >= mbti['F'] ? answer += 'C' : answer += 'F'; mbti['J'] >= mbti['M'] ? answer +=..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWMiJW%2FbtsIkMyDWB7%2F97KIi7nw0X507veN5ULF2K%2Fimg.png)
[문제][풀이코드]function solution(s, skip, index) { let ans = ""; s = s.split(""); s.map((item) => { let a = item.charCodeAt(); for (let i = 0; i 122) { a = 97; } if(skip.includes(String.fromCodePoint(a))){ i--; } } ans += String.fromCodePoint(a); }); return ans;}[해설]문제를 아스키 코드로 바꿔서 해석했다. 아스키 코드로 바꿨을 때 s를 맵으로 돌면서 각각의 구간을 더해준다. 하지만 해당 문자 a가 122 즉 z를 넘을 경..