본문 바로가기

전체보기

(137)
유니티 인풋 시스템 복습 🎮 유니티 Input System (C# Generate 방식) 정리오늘은 로그인 UI 작업과 선택한 캐릭터 정보 + 닉네임이 DB에 저장되는 로직까지 마무리했습니다. 그리고 본격적으로 캐릭터 제작 작업에 들어갔는데, 캐릭터 조작 로직이 잘 기억나지 않아 다시 복습하게 되었습니다. ✅ Input System 개요유니티에서는 오래전부터 레거시 Input 방식을 제공했지만, 유니티6부터는 사실상 Input System을 표준으로 사용하도록 권장하고 있습니다. Input System은 여러 방식으로 쓸 수 있는데, 오늘은 제가 사용한 C# Generate 방식을 정리하겠습니다. 📌 Input System 설정 과정1. Input Action Asset프로젝트를 생성하면 Assets 폴더 아래에 Input..
DB 데이터 유니티로 내보내기 이전에 작성한 구글 스프레드시트 데이터를 JSON으로 변환해 DB에 저장하는 과정을 구현했는데, 이번에는 DB에 있는 데이터를 Unity로 내보내는 작업을 진행했습니다. 1. Unity에서 Socket.IO 설치Unity와 서버 간 실시간 통신을 위해 Socket.IO 라이브러리를 설치했습니다. 아래 GitHub 저장소에서 설치 방법을 확인할 수 있습니다. https://github.com/NetEase/UnitySocketIO GitHub - NetEase/UnitySocketIO: socket.io client for unity3d.socket.io client for unity3d. Contribute to NetEase/UnitySocketIO development by creating an a..
자바스크립트 데이터 외부 DB로 보내기 어제는 구글 스프레드시트 데이터를 JSON 파일로 변환하는 과정을 마쳤고, 오늘은 이 데이터를 DB에 업로드하는 로직을 작성했다. 1. JSON 데이터 로드스프레드시트에서 변환한 JSON 파일을 한 번에 읽어오기 위해 Promise.all을 사용했습니다. 읽어온 데이터는 gameAssets 객체에 담아 관리합니다.export const loadGameAssets = async () => { try { const [CharacterInfo, Item, LevelInfo, MonsterInfo, Stage, Monster, MonsterOnStage] = await Promise.all([ readFileAsync('CharacterInfo.json'), readFi..
구글 스프레드 시트 데이터 자바스크립트로 가져오기 과제에 필요한 ERD를 작성하고 이제 데이터를 JSON으로 만들려다가 이전에 유니티 과제 할 때 스프레드 시트에서 JSON으로 파일 변환해 데이터를 가져와 활용한 경험이 떠올랐습니다. 그래서 자바스크립트에서도 그게 가능할거라 생각이 되어 인터넷을 찾아보다가 그 방법을 알려주는 하나의 블로그를 찾았습니다. https://cryingsun.tistory.com/51 자바스크립트(JavaScript) 구글스프레드시트 데이터 가져오기Google Sheets 데이터 가져오기 ==========1. 구글 드라이브에서 시트를 하나 만들어줍니다.구글 드라이브 주소 // https://drive.google.com/drive/my-drive // 2. 빈 시트가 나타납니다. 3. 아래 데이터를 입력cryingsun.t..
네트워크 기본 개념 정리 TCP 3-Way Handshake란?TCP의 3-Way Handshake(3-웨이 핸드셰이크) 는 클라이언트와 서버가 안정적인 연결을 맺기 위해 수행하는 과정입니다.과거 네트워크 환경에서는 데이터가 손실되거나 순서가 뒤바뀌는 문제가 자주 발생했습니다. 이러한 문제를 방지하기 위해 TCP는 연결을 설정할 때 양측이 서로의 상태를 확인하고 동기화하는 절차를 거칩니다.과정SYN – 클라이언트가 서버에게 연결을 요청합니다.SYN + ACK – 서버는 요청을 받고, 연결 가능하다는 응답(ACK)과 동시에 자신도 연결을 시작하겠다는 신호(SYN)를 보냅니다.ACK – 클라이언트가 서버의 응답을 확인하고 다시 ACK를 보내 연결이 확립됩니다.요약👉 총 3번의 신호 교환을 통해 양측은 서로의 송수신 준비 상태를 확..
트러블슈팅 - AWS EC2에 서버 배포 🛠️ 트러블슈팅: AWS EC2에 Node.js + Prisma 서버 배포 이슈📌 배경EC2 인스턴스에 개인 프로젝트 서버(Node.js, Express, Prisma 기반)를 배포하고자 함.프로젝트는 GitHub 저장소에 업로드되었으며, Prisma를 이용한 MySQL DB 연동 구조를 사용..env 파일은 보안상 GitHub에 업로드되지 않았고, EC2 인스턴스에서 별도로 설정해야 함 🧨 이슈 1: @prisma/client did not initialize yet. Please run "prisma generate" 오류원인prisma generate 명령이 실행되지 않아 Prisma Client가 생성되지 않음.npx prisma generate npx를 반드시 붙여야 함. prisma가 글..
트랜잭션 Transaction 트랜잭션이란?트랜잭션은 작업의 완전성을 보장하기 위해 사용되는 개념으로, 데이터베이스에서 여러 작업을 하나의 논리적인 단위로 묶어 모두 성공하거나 모두 실패하도록 처리함으로써 데이터의 일관성과 무결성을 유지해줍니다. 쉽게 말해, A라는 큰 작업이 있다고 할 때, 이 작업을 완료하려면 B와 C라는 두 개의 세부 작업이 모두 성공해야 합니다.그런데 B는 정상적으로 끝났지만, C가 에러로 인해 중간에 멈췄다면 어떻게 될까요?B에서 변경된 내용이 그대로 저장된 채로 남아 있다면, 나중에 다시 A 작업을 수행할 때 잘못된 상태에서 작업이 진행되어 데이터 불일치가 발생할 수 있습니다. 이런 상황을 방지하기 위해 트랜잭션을 사용합니다. 트랜잭션 안에서는 모든 작업이 성공했을 때만 최종적으로 반영..
winston 라이브러리를 이용해 로그 미들웨어 구현 로그(log) 미들웨어로그미들웨어란?클라이언트의 모든 요청 사항을 기록하여 서버의 상태를 모니터링하기 위한 미들웨어입니다. 클라이언트의 요청을 기록하여 어플케이션을 모니터링하고 문제가 발새알 때 빠르게 진달 할 수 있습니다.사용자의 행동을 분석하는 등 데이터 분석 작업에도 활용할 수 있습니다.규모가 큰 프로젝트에서 모든 로그를 일일이 확인하는 것은 불가능 이런 경우를 대비해 로그 기능을 지원하는 morgan, winston과 같은 라이브러리를 사용하거나 AWS CloudWatch, Datadog와 같은 외부 모니터링 솔루션 서비스를 이용해 로그를 수집하거나 관리할 수 있습니다. winston 라이버러리로 로그 미들웨어 구현먼저 log.middleware.js을 파일을 만들고 winston을 import ..