일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- MySQL
- css framework
- mongoDB
- nodejs
- express
- server
- Google Developer API
- Camera Zoom
- linux
- react
- unity
- OverTheWire
- --watch
- Camera Movement
- Packet Network
- spread 연산자
- java
- docker
- Digital Ocean
- critical rendering path
- Google Refund
- springboot
- Git
- draganddrop
- rpg server
- SDK upgrade
- Unity Editor
- screencapture
- Spring Boot
- Unity IAP
- Today
- Total
목록Server (33)
우당탕탕 개발일지
서버대여하기.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 { ..
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 중심 설계클라이언트가 현재 상태를 서버에 보내고,서버는 그 ..

오늘의 목표게스트 가입과 게스트 로그인을 구현한다.게스트 가입/로그인 시 성공한 유저의id, 백업된 데이터(로그인 유저일 경우) , 엑세스토큰을 반환한다. 가장 외부부터 보자. AuthController.js에서는 guest로 가입하는 함수, uid를 이용해 로그인하는 함수 2개를 만들었다. 실제 가입/로그인 로직은 UserService.java에서 이루어지고있다.//AuthController.java @PostMapping("/register/guest") public ResponseEntity registerGuest() { User newGuest = userService.registerGuest(); 유저가입 //가입정보를 바탕으로 로그인 진행 Opti..

서버는 springboot 와 mysql로 진행할 예정이다. 필요한 기능은 유저 로그인, 백업, 뽑기, 랭킹, 메일 등등 방치형 RPG에 필요한 기본 기능들을 위주로 만들려 한다. 클라이언트는 유니티로 제작할 예정이다. 첫 시도라 매우 두근두근! 오늘의 목표springboot 프로젝트 생성하기test api 만들기유니티 프로젝트 생성하기backendmanager, apiManager를 만들어서 서버와 통신하기1. 프로젝트 생성하기https://start.spring.io/ 버전은 snapshot이 붙지 않은 버전 중 가장 최신버전으로 선택했다.gradle-groovy , java로 선택한다.추가할 dependencies는 다음과 같다.Spring Web (Rest API개발용)Spring Boot De..