[Unity gRPC 서버 개발(2/4)] MySQL 게임 DB 구축
·
유니티(Unity)/툴 개발
📌 개요 gRPC 서버를 본격적으로 개발하기 전에 MySQL로 DB를 구축해보도록 하겠습니다. 왜냐하면 gRPC 통신을 활용하여 로그인/회원가입 기능을 만들기 위해선 유저 데이터를 관리할 DB가 필요하기 때문입니다. 저는 오라클 클라우드 컴퓨팅을 활용한 가상머신에 MySQL DB를 구축할 계획입니다. ※ 이번 포스터는 MySQL에 집중된 포스터입니다. gRPC 통신만 보고 싶은 분은 다음 포스터로 넘어가주세요. 📌 Linux 환경으로 MySQL 설치하기 1단계: MySQL 설치 및 서비스 시작 먼저 MySQL을 설치합니다. 터미널을 키고 다음 명령어를 입력합니다. sudo apt update : Ubuntu 환경에서 사용 가능한 패키지 목록 최신화 sudo apt install mys..
[Unity gRPC 서버 개발(1/4)] REST API & PRC 개념 정리
·
유니티(Unity)/툴 개발
📌 개요 [ Unity TCP Socket 서버 개발 ] [Unity TCP Socket 서버 개발(2/2)] 서버와 클라이언트 분리📌 개요 이전 포스터에서 C# TCP Socket 통신을 통해 채팅을 구현해봤습니다. 하지만 현업에서는 주로 서버와 클라이언트를 분리해서 사용합니다.Client: Unity 프로젝트 루트 폴더 (클라이언트)Server:gus6615.tistory.com 최근에 C# 서버 엔진을 오라클 클라우드에서 실행하고, Unity 클라이언트가 C# 서버 기반으로 통신하는 프로젝트를 개발한 적이 있습니다. 이때, TCP Socket 방식을 사용하여 실시간으로 클라이언트와 서버가 통신을 수행하는 프로그램을 개발하였습니다. 이번에는 TCP Socket 방식이 아닌, gRPC을 통한 응..
[Unity TCP Socket 서버 개발(2/2)] 서버와 클라이언트 분리
·
유니티(Unity)/툴 개발
📌 개요 이전 포스터에서 C# TCP Socket 통신을 통해 채팅을 구현해봤습니다. 하지만 현업에서는 주로 서버와 클라이언트를 분리해서 사용합니다.Client: Unity 프로젝트 루트 폴더 (클라이언트)Server: 서버 빌드 및 실행 코드Shared: 서버와 클라가 공유하는 코드 (프로토콜, 모델 등)채팅을 구현하면서 서버와 클라가 통신하기 위해 사용한 클래스(ClientInfo)가 있었죠? 하지만 이제는 서버와 클라가 분리됨에 따라 ClientInfo을 공유할 필요가 있습니다. 그래서 먼저 공유하는 코드(Shared)을 만들고 구조를 구축해보도록 하겠습니다. 그리고 가상머신에 서버를 올리고, Unity는 클라이언트만 존재하도록 만들어보겠습니다. ※ 이번 학습의 결과물입니다. (좌측- ..
[Unity TCP Socket 서버 개발(1/2)] TcpListener & TcpClient로 채팅 구현하기
·
유니티(Unity)/툴 개발
📌 개요 최근 회사에서 서버 개발자 분들과 이야기 하다보니 서버 쪽에 관심이 생겼습니다. 그래서 이번 기회에 서버를 배워보려고 합니다. 먼저 아래 2가지 방식에 대해 살펴보려고 합니다.Socket 방식API 방식Socket 방식은 지속적 연결이며, 실시간 양방향 통신이 가능하여 멀티 플레이에 주로 사용합니다.API 방식은 요청-응답의 단발성 연결이며, 주로 로그인 또는 결제, 랭킹 조회 등에 사용합니다. Unity 프로젝트로 간단한 콘텐츠를 구현해가면서 학습해볼 예정입니다. 이번 포스팅에서는 Socket 방식으로 Unity 프로젝트 내에 서버와 클라가 함께 존재하는 구조로 구현하겠습니다. ※ 보통 서버와 클라는 분리되어 있지만, 학습을 위해 통합하여 구현하고 이후 분리할 예정입니다. ※ 이번 ..
[Private UPM 개발(4/4)] UPM 빌드 파이프라인 자동화 (CI/CD)
·
유니티(Unity)/툴 개발
📌 개요 이전 포스터에서 Verdaccio 레지스트리 서버에 패키지를 등록하고 배포하는 방법에 대해 알아보았습니다. 또한 패키지 버전을 관리하고 업데이트하는 법까지 살펴봤는데요, 이전 포스터에서 보셨듯이 이 과정이 다소 귀찮고 휴먼 에러가 발생할 수 있답니다. 여러분이 제작한 최초의 패키지(v1.0.0)이 완벽하지 않을 것입니다. 프로젝트를 할 때마다 새로운 기능을 추가하거나, 버그를 수정하는 작업이 필요하죠. 그때마다 package.json 파일을 수정하고, Verdaccio 서버에 명령어로 배포한다고 상상해봅시다. 음, 아무래도 상당히 귀찮은 작업이 되지 않을까요? 그래서 저는 Github Actions을 활용해서 빌드 자동화 파이프라인을 구축했습니다. 패키지 변경사항(커밋)을 분석하여 ..
[Private UPM 개발(3/4)] Verdaccio 패키지 등록 및 배포
·
유니티(Unity)/툴 개발
📌 개요 저번 포스터에서 가상머신(VM)에 Verdaccio 서버를 24시간 가동하는 것까지 진행했습니다. 사실 지금까지 단순히 패키지를 등록하고 관리할 영역을 만들어줬을 뿐입니다. 그럼 지금부터 npm을 활용하여 Unity 패키지를 등록하고 배포하는 방법에 대해 살펴보겠습니다. 📌 Verdaccio 회원가입 및 로그인 Verdaccio 레지스트리 서버 회원가입 및 로그인npm adduser --registry http://{public IP}:4873 만약 이전에 이미 회원가입을 한 상태라면 아래 코드를 입력하여 로그인한다.npm login --registry http://{public IP}:4873 저는 이미 회원가입을 했기 때문에 로그인을 했습니다. 여러분은 아이디와 비밀번호, ..
[Private UPM 개발(2/4)] Verdaccio 레지스트리 서버 구축
·
유니티(Unity)/툴 개발
📌 개요 이전 포스터에서 오라클 클라우드 인스턴스를 제작하고 연결하는 작업까지 모두 마쳤습니다. 이제 본격적으로 인스턴스에 Verdaccio 레지스트리 서버를 구축하도록 하겠습니다. 📌 Verdaccio란 무엇인가? https://verdaccio.org/docs/what-is-verdaccio/ What is Verdaccio? | VerdaccioVerdaccio is a lightweight private npm proxy registry built in Node.jsverdaccio.org Verdaccio란 무엇인가? verdaccio는 Node.js로 구축된 private npm 레지스트리 서버입니다. 사내 또는 개인 프로젝트에서 npm 패키지를 비공개로 배포하거나, npm 캐시 ..
[Private UPM 개발(1/4)] 클라우드 컴퓨팅을 위한 가상머신 생성
·
유니티(Unity)/툴 개발
📌 개요 이전 포스트에서 OpenUPM 레지스트리 서버를 활용한 UPM 제작 방법을 알아봤습니다. 하지만 이 경우에는 모든 코드가 공개(Public)된다는 점에서 다소 아쉬움이 있었는데요! 그래서 이번에는 비공개(Private) UPM을 제작하는 방법에 대해 알아보겠습니다. 사실 openUPM을 사용하지 않는 대신, verdaccio라는 서버를 사용한다는 점에서 큰 차이가 없습니다. 하지만 이 verdaccio 서버를 열기 위해선 직접 서버를 구동시켜야 합니다..!(이런 면에서는 openUPM이 엄청 편하네요) 그래서 저희는 이제 verdaccio 서버를 24시간 내내 돌려줄 가상머신이 필요하답니다. 📌 클라우드 컴퓨팅을 위한 개인 서버 구축 1. 오라클 클라우드 계정 회원가입 및 로그인..
[Public UPM 개발(3/3)] OpenUPM 빌드 파이프라인 구축
·
유니티(Unity)/툴 개발
📌 개요 드디어 마지막 관문에 오신 것을 환영합니다! 이전 챕터에서 Git 메시지를 분석하여 자동으로 버전 관리를 할 수 있도록 했었죠? 이번에는 제작한 패키지를 OpenUPM에 등록하고 빌드 파이프라인을 세팅하는 작업을 할거예요. 그러면 마침내 여러분 만의 Unity Package Manager을 구축할 수 있답니다! 📌 Chapter 3. OpenUPM 빌드 파이프라인 구축 https://openupm.com/ Open Source Unity Package RegistryOpenUPM is a managed UPM registry with automatic build services for open-source Unity packages.openupm.com OpenUPM 이란? UP..