일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Spring Boot
- OverTheWire
- springboot
- --watch
- nodejs
- Camera Zoom
- spread 연산자
- Unity IAP
- mongoDB
- linux
- Google Refund
- Unity Editor
- unity
- java
- rpg server
- critical rendering path
- react
- SDK upgrade
- server
- express
- Google Developer API
- Camera Movement
- screencapture
- Digital Ocean
- css framework
- draganddrop
- Git
- MySQL
- Packet Network
- docker
- Today
- Total
목록2025/04 (10)
우당탕탕 개발일지
서버대여하기.IP 주소 얻었으면 ssh 를 이용해 접속하기 ssh root@~.~.~.~sudo apt update -ysudo apt install docker.io -ysudo apt install docker-compose -ydocker --version docker-compose --versionsudo rebootsudo systemctl enable dockersudo systemctl start docker프로젝트 바로 아래에 docker-compose.yml, Dockerfile 2개 생성하기 DockerfileFROM openjdk:21-jdk-slimWORKDIR /danteRPGCOPY dante-server.jar app.jarEXPOSE 8080ENTRYPOINT ["java"..
액세스 토큰 관리하기(클라이언트)로그인은 액세스토큰이 없어도 되지만, 로그인 후에 수행하는 대부분의 api는 액세스 토큰이 필요하다. 이를 위해, 클라이언트에서 액세스토큰을 관리해야한다. 서버에서 헤더로 액세스토큰과 리프레시 토큰을 발급하기 때문에, 헤더에서 뽑아낸 후 LocalTokenStore에 저장한다. private IEnumerator SendGuestLogin(string deviceId, Action handler) { GuestLoginRequestDto payload = new GuestLoginRequestDto { deviceId = deviceId }; string json = JsonUtility.ToJson(payload); u..
클라에서 암호화 > 서버에서 복호화하기중요한 데이터는 암호화해서 전송해야한다. backup API에서 암호/복호화를 진행해보자 RSAUtils 작성하기 : 암호/복호화를 하기위한 util 클래스이다. 시작할때 키를 생성하고 암호화/복호화가 있다 ( 우선 여기서는 복호화만 사용할 예정이다). 그리고 클라이언트에게 전달할 publicKey를 리턴하는 함수도 있다. package com.esaAdventure.dante_server.common.utils;import java.security.*;import java.util.Base64;import javax.crypto.Cipher;public class RSAUtil { private static KeyPair keyPair; static { ..
핸드폰 전면에 있는 상단 카메라 , 그리고 아이폰의 경우 하단 막대기 부분 영역에 게임요소가 들어가지 않게 처리하는 방법에 대해 알아보자그리고, 노치영역이 이쁘게 나왔으면 좋겠으니까 데코이미지로 꾸미는 방법도 알아보자.참고로 , 이 노치 영역 처리는 메인 캔버스가 ScreenSpace - Camera일때 사용한다.. 왜냐하면 이 스크립트는 Camera의 영역을 조절하는 방법을 사용하기 때문이다노치영역 제외하기사용하는 메인 카메라에 다음 스크립트를 붙여넣는다.카메라가 노치영역을 아예 보여주지 않도록 설정하는 함수이다. using UnityEngine;[ExecuteAlways]public class SafeAreaCameraCrop : MonoBehaviour{ void Start() { ..
IOS 빌드하려는데 다음 에러가 발생했다. Building Library/Bee/artifacts/iOS/ManagedStripped failed with output:/Applications/Unity/Hub/Editor/2022.3.20f1/Unity.app/Contents/il2cpp/build/deploy/UnityLinker Unity Linker 에서뭔가 오류가 있는데, 상세한 로그는 찍어주지않는다.. 유니티 버전때문인지 SDK때문인지 이것저것 많이 해봤는데 해결되지 않았다. 해결방법유니티에서 콘솔창 오른쪽 클릭 > Editor.log 를 연 뒤 error 라는 키워드로 검색한 후 빌드를 해보면, 특정 스크립트에서 오류가 났다고 알려준다. 나의 경우 Player.cs 였다알고보니 Assert..
1. Jwt 인증을 위한 스크립트 3개 정리 (서버)1) JwtProviderJWT 토큰 생성, 검증, 사용자 정보 추출을 담당한다. createToken(userId) : accessToken 생성createRefreshToken(userId) : refreshToken 생성 (주의: subject에 userId 꼭 넣기!)isTokenValid(token) : 만료 여부 확인getUserIdFromToken(token) : 토큰에서 userId 추출package com.esaAdventure.dante_server.common.security;import io.jsonwebtoken.Claims;import io.jsonwebtoken.JwtException;import io.jsonwebtoken...

Spring Boot로 JWT 기반 방치형 게임 서버 만들기오늘은 방치형 RPG 게임 서버에서 "게스트 로그인"을 구현해보고, 로그인 시 JWT 토큰을 발급하고, 유저에게 기본 장비를 지급하는 구조를 만들어봤다. 1. JWT가 뭐고 왜 쓰는 걸까?JWT(Json Web Token)는 로그인한 유저를 식별할 수 있는 서버 인증 토큰이야. AccessToken 안에 userId 같은 정보를 암호화해서 담아두고, 이후 요청에선 DB 조회 없이 인증할 수 있게 해주지.2. application.yml 설정profile별로 jwt.secret을 다르게 설정해줘야 해.spring: profiles: active: dev---spring: config: activate: on-profile: ..
유저 데이터 관리 구조 정리이 게시글은 Unity와 Spring Boot 기반의 모바일 게임에서 게스트 로그인부터 유저 데이터 저장 및 검증까지 설계하는 방법을 다룬다.처음에는 간단한 로그인 시스템이었지만, 점차 확장되어 방치형 RPG 게임에서의 골드 획득, 저장 동기화, 리셋 처리까지 포함한 구조로 발전했다.🔑 State Sync + Plausibility Check(현실성 검증) 방치RPG 에서는 유저의 모든 액션을 통신하기 부담스럽다. 끊임없이 재화가 자동으로 수급되는 문제가 있다. 방치형 RPG 시스템에 맞게끔 유저데이터를 관리하기 위해서, State Sync + Plausibility Check 기법을 사용하려 한다. 1. State 중심 설계클라이언트가 현재 상태를 서버에 보내고,서버는 그 ..