MySQL 5

Dapper에서 Date 형태 사용 (DateOnly Type Parser)- 게임 웹서버 만들기 14

일일 기능을 만들다보면 Date형태가 필요합니다.DateTime 타입을 사용하면 시간,분,초 등의 정보도 함께 들어가니 버그가 생길 수 있어DateOnly 타입을 사용하게 됩니다. 그러나 Dapper에서는 기본적으로 DateOnly 타입을 지원하지 않기 때문에 파라미터 바인딩 시 런타임 에러가 발생합니다. 이를 해결하기 위해 TypeHandler기능을 사용하여 DateOnly 타입을 자동으로 DateTime으로 변환하는 Handler를 추가하였습니다. DB에서는 date 컬럼을 DateTime으로 읽어오고,C#에서는 DateOnly로 변환하여 사용합니다.1. Handler 생성public class DateOnlyTypeHandler : SqlMapper.TypeHandler{ public ove..

카테고리 없음 2026.01.14

일일 미션(데일리미션) - 게임 웹서버 만들기 13

데일리 미션을 만들어보겠습니다. 데일리 미션의 전체 흐름은 다음과 같습니다. 1. 기획자가 데일리 미션을 작성합니다. 2. 기획자가 작성한 미션을 서버에 등록합니다.(운영툴 관련 기능이므로 이번 글에서는 다루지 않습니다.) 3. 유저는 자신의 미션 상태를 확인하거나, 미션 성공에 대한 결과를 서버에 요청합니다. 4. 서버는 기획자가 정의한 미션 조건과 유저의 실제 진행 정보를 비교하여 미션 달성 여부를 판단한 뒤 그 결과를 응답합니다. [미션 작성]1. 데일리 미션 정보 작성우선 데일리 미션에 대한 기본 정보를 정의합니다.- mission_type : 미션 종류를 구분하기 위한 타입값 (1 : 아이템 n개 획득 / 2 : 몬스터 n마리 처리 / 3 : 로그인 횟수 )- success_value ..

유저 재화 - 게임 웹서버 만들기 12

전체 프로젝트에서 공통으로 사용되는 유저의 게임내 재화(Resource) 관리 서비스를 만들겠습니다. Table UserResource { uId bigint [pk] resource_id int [pk] amount int created_time datetime update_time datetime Indexes { (resource_id) }}Table UserResourceHistory { history_id bigint [PK, increment] uId bigint resource_id int [ref:> UserResource.resource_id] change_amount int before_amount int after_amount int reason_code..

게스트 로그인, Dapper, IDGen, 서비스팩토리 - 게임 웹서버 만들기 6

이후 구글로그인, 애플로그인 등으로 확장을 전제로 한 게스트 로그인을 만들어보겠습니다. [ERD 작성] https://dbdiagram.io/d dbdiagram.io - Database Relationship Diagrams Design Tool dbdiagram.io로그인 구현을 위해 사용자 기본 테이블을 먼저 정의합니다.dbdiagram.io에 가시면 무료로 편리하게 작성할 수 있습니다. [Users 테이블 정의]Table users { uid bigint [primary key] platformCode int platformUserId varchar status int createdTime timestamp updateTime timestamp indexes { (platfor..

MySql 연결하기 - 게임 웹서버 만들기 5

dotnet core로 Mysql을 연결해보겠습니다. [환경 설정 파일 생성(.env)] 프로젝트 루트 폴더에 .env 파일을 생성해줍니다. 아래와 같이 MySQL 설정 값을 작성합니다.MYSQL_HOST=[호스트명]MYSQL_PORT=[포트]MYSQL_USER=[유저명]MYSQL_PASSWORD=[비밀번호]MYSQL_DB=[사용DB명]※네트워크 호스트명은 직접 연결시에는 IP주소를, 도커 사용 시에는 도커 네트워크 이름을 넣으시면 됩니다.저의 경우는 Docker 환경이므로 도커 네트워크 이름인 pp-mysql로 작성하였습니다.[+ Mysql 유저 추가하는 방법]root 계정을 그대로 사용하는 것은 보안, 운영 측면에서 좋지 않습니다. root 계정으로 사용하면 안되는 이유 - root는 전체 권한을 갖..