본문 바로가기

분류 전체보기

(157)
[AWS]Docker 배포 연결 트러블슈팅 mysql 마이그레이션 할 경우 cpu 폭주하는 현상해결방안마이그레이션 명령어 yml파일에서 삭제docker exec -it ubuntu_mysql_1 sh 를 사용해 mysql컨테이너에 접속mysql -u root -p 를 사용해 패스워드 입력하여 mysql접속create database USER_DB, RECORD_DB 를 사용해 직접 db 생성use USER_DB , use RECORD_DB 를 사용하여 각각 db에 접근create table 을 사용하여 각 db에 맞는 쿼리를 사용해 직접 테이블 생성직접 데이터베이스와 테이블 생성하여 해결결과 docker-compose up 하자마자 멈추는 상황 ⇒ 타자를 칠때 버벅이는 수준의 상황으로 개선mysql 권한문제 발생mysql을 사용하는 game se..
docker , docker-compose , Reverse proxy Image란?도커에서 이미지는 간단하게 밀키트 라고 볼수있다.이미지는 우리가 만든 프로그램을 돌리기위한 os , 라이브러리 , 환경셋팅 , 소스코드 등등을 전부 합친 하나의 덩어리다.도커가 없을 경우의 배포과정웹서버 소스코드 ⇒ AWS등에서 빌린컴퓨터에 코드 옮기기 ⇒ 코드실행 환경셋팅 + 라이브러리 설치 + 코드실행도커로 할 경우이미지 생성 ⇒AWS등에 빌린 컴퓨터에 이미지 보내기 ⇒ 실행Containers란?결국 이미지는 컨테이너를 만들어주기 위한밀키트같은 존재라는거다.그렇다면 여기서 컨테이너는 뭐라고 할 수 있을까?컨테이너는 간단하게 이미지라는 밀키트를 사용하여 만든 요리 라고 볼수있다.정확히말하면 이미치 하나를 실행중인 가상 컴퓨터라고 할수있다.Docker 를 사용하여 이미지 실행하는 방법터미널 ..
ioredis 해시 ioredisioredis를 선택한 이유  nodejs환경에서 사용할 수 있는 redis라이브러리는 크게 2가지가 있다.1. node-redis2. ioredis 이전에는 node-redis와 ioredis의 성능차이가 있었으나 node-redis가 v4로 넘어오며 거의 차이가 없다고 봐도 무방하다고 한다. 그럼에도 ioredis를 선택한 이유는 클러스터를 지원하기 때문이다. ioredis는 redis 클러스터를 지원하여 여러개의 redis인스턴스에서 데이터를 분산 저장하고 관리 할 수 있기 때문에 분산서버가 중요한 게임서버 개발자가 되기 위해 익혀두면 좋다고 판단하여 ioredis 사용에 익숙해질겸 ioredis를 선택하였다. 기본적인 사용법은 아래 문서를 참조했다.ioredis 문서 ioredis/e..
redis 기본 명령어 /사용법 / 설정 / 전략 Redis 기본 명령어 @데이저저장set 키이름 : 벨류 “벨류값” = 데이터저장띄어쓰기 사용시 “” 사용@데이터 조회get 키 : 값 @모든 키값을 보는 방법keys * @데이터 삭제del key 키:값 @만료시간 설정set 키 : 값 “벨류” ex 30 @만료시간 조회ttl 키:값설정값이 있다면 -1 없다면 -2 @모든 데이터 삭제flushall @ ;콜론을 사용해 계층적 의미를 구분해서 사용내가:키우는:개홍길동이:오늘훔친:양말장점1.검색 필터링 용의2.확장성 @캐시원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소 @캐싱캐시에 접근해서 데이터를 빠르게 가져오는 방식임대형마트 가기 귀찮으니 앞에 편의접가서사옴 @캐싱전략 1. Cache Aside (= Look Aside , Lazy Loadi..
docker redis password 설정 docker desktop으로 redis container를 생성할시Environment variables 부분이 있는데 Variable 에 이름 , Value 에 패스워드를 적는듯하다. 하지만 위처럼 입력하고 redis를 실행하면 [WARN] This Redis server's `default` user does not require a password, but a password was supplied기본적으로 요구하는 패스워드가 없다는 에러가 뜬다.실제로 docker container에서 테스트시 비밀번호없이 잘 작동한다.결과적으로 커멘드없이 패스워드를 설정하는 방법은 찾지 못했고 container ⇒ redis-cli로 접속하여 직접 패스워드를 설정하는 방법으로 해결 재접속후 패스워드 없이 명령어..
게임 구상안 2 게임룰0. 게임시작이 플레이어는 랜덤한 방에 배정됩니다.1. 플레이어는 매 턴마다 카드를 1장씩 지급받는다.2.게임에는 여러가지 함정카드가 있으며 특정 오브젝트에 카드를 사용하거나 플레이어에게 직접 사용할수도 있다.3. 인원수 :4~74. 개인전5. 플레이어는 게임을 시작할때 랜덤하게 본인의 순서를 배정받으며 서로의 순서를 알 수 없다.6. 플레이어는 순서대로 자신의 턴마다 오브젝트룸으로 이동해 카드를 사용할 수 있다.7. 카드는 함정 , 행동 , 카운터 라는 종류의 카드가 있다.8. 게임에는 낮과 밤이 있고 카드를 사용한 결과는 밤에 결정된다.9. 낮이되면 모든 유저의 현재 상태가 공개되고 메인홀에 모여 대화를 나눌 수 있다.밤이되면 다시 가려진다. ( 여기서 상태 = 현재 보유 카드 개수)10. 낮 ..
1차 기획안 제목임시 제목장르3D 플랫포머 퍼즐 어드벤처목적Node.js와 TCP 통신을 이용하여 멀티플레이 게임 구현콘셉트캐릭터약간 우스꽝스럽고 모자란 느낌의 캐릭터들...마을중세시대 마을 던전숲이나 뭐 대충 야외...프롤로그동네 바보 5명이서 우연히 선술집에서 공주가 납치됬는데 구해다 주면 엄청난 보상이 있을거라는 소문을 듣고 공주구하러가는 그런 스토리....주요 기능캐릭터 선택 (외형만)위치 동기화캐릭터 애니메이션 연출상태 동기화기믹 구현채팅●  캐릭터 선택개요캐릭터 선택기능은 플레이어가 자신의 취향에 맞게 캐릭터를 선택하여 다양한 외형의 캐릭터로 게임을 플레이할 수 있습니다. 캐릭터를 마음껏 변경할 수 있습니다.상세 기능 설명캐릭터가 선택되는 순간 캐릭터의 기본 외형이 실시간으로 미리보기 화면에 표시됩니다.확..
게임 구상안 1 장르카드 + 강화 + 눈치게임  게임 룰 구상  1. 각각의 유저에게는 10장의 카드와 10의 체력이 주어진다. 2. 게임시작시 10분의 시간이 주어지고 이 시간동안 유저는 카드를 선택하여 강화할수있음 3. 10분뒤 특정한 장소? 혹은 좌표? 로 이동4. 총 10번의 턴 동안 각각의 유저는 카드를 뒤집어서 제출5. 카드의 강화수치가 높은 쪽이 승리하며 "패배유저 카드 공격력 - 승리유저 카드 공격력" 만큼 유저의 체력이 깎임6. 여기서 각각 유저는 "2번 카드의 공격력을 거짓으로 말할수있으며" "마찬가지로 2번 거짓간파를 사용할수있음"거짓을 간파하지 못했다면 그 거짓말한 공격력으로 턴을 진행 , 거짓임을 간파했다면 간파당한 유저는 "간파당한 유저카드의 공격력 - 거짓말한 공격력" 만큼의 피해를 받는다.7..