일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pm2
- 백준 32028번
- html5
- ucpc 2023 예선 i번
- JavaScript
- ucpc 2024 예선 e번
- HTTP
- 그리디
- localstorage
- PROJECT
- 백준 32029번
- ucpc 2023 예선 d번
- MongoDB
- ccw 알고리즘
- ERD
- 더 흔한 색칠 타일 문제
- 자바스크립트
- MySQL
- Express.js
- map
- 게임 서버 아키텍처
- string
- insomnia
- branch
- Next
- 백준 28303번
- Github
- router
- 지금 자면 꿈을 꾸지만
- Prisma
- Today
- Total
목록전체 글 (98)
dh_0e
CORS (교차 출처 리소스 공유)개인 과제로 웹소켓 게임을 만들어 EC2로 배포하였다. 'local에선 잘 돌아갔으니 당연히 잘 되겠지' 라는 생각을 비웃기라도 하는 듯, 다음과 같은 에러가 콘솔창을 채웠다. chatGPT에게 물어 해결해보려고도 했지만,,CORS 뭐시기 에러는 계속 그대로였다.. CORS(Croos-Origin Resource Sharing)이란 교차 출처 리소스 공유라는 뜻으로 이 출처가 단지 URL의 도메인만을 뜻하는 것이 아니라 프로토콜과 포트까지 포함하는 개념이다. 때문에 출처를 구성하는 세 요소인 프로토콜, 도메인, 포트 중 하나라도 다르면 CORS 에러를 만나게 되는 것이다.도메인(Hostname): myshop.com출처(Origin): https://www.myshop...
1. 데이터 테이블 로드파일 시스템을 사용하여 서버에서 필요한 데이터 테이블을 메모리에 로드할 수 있음파일 시스템(file system) - Node.js의 fs 모듈은 파일 시스템에 접근하고, 파일을 읽고 쓰는 기능을 제공함동기적 및 비동기적 방식 모두로 파일 I/O 작업을 수행하며 CRUD 작업을 할 수 있음다양한 형태의 파일 기반 작업을 가능하게 해줌DB(DataBase), CDN(Cloud Delivery Network), File 등으로 테이블을 관리하며 file이 가장 간편함 2. 유저 접속 관리유저가 서버에 웹소켓 프로토콜을 통해 접속을 하면 소켓 아이디가 발급됨현재 유저가 서버에 접속해있다는 상태를 저장하기 위해서 웹소켓에서 데이터를 주고받기 위해 존재함소켓 id는 임시적이어서 접속이 끊기..
게임 기획 순서1. 시나리오, 장르, 방향성 설정게임의 스토리, 장르, 방향성을 설정한다.시나리오 ex) 산에서 좀비때를 만났는데 하필 보이는 자동차가 수동 화물 트럭밖에 없어서 도망가기 위해 탑승하여 운전하여 안전한 곳 까지 운전을 하는 스토리Stage에 따라 체력 감소, 휴게소에 들려서 체력을 회복할 수 있음 등의 게임의 방향성 설정데이터 테이블 생성노션, 미로 등 툴을 사용하여 데이터 테이블을 만든 뒤 Json 형식으로 변환하여 가시화'#'으로 시작하는 것은 기획 관리용 이름으로 실제 데이터가 아닌 참고용임 API 명세서 작성 ≒ 패킷 구조 설계 요청 사항, 아이템 획득 및 스테이지 이동 등 게임 로직에서 전달받을 사항 설계
HTTP의 특징Request Response 구조요청이 있어야만 응답이 있다.비연결성 - 연결을 유지하지 않음 >> 리소스가 적다 >> 트래픽이 적으므로 처리가 빠르다Stateless(무상태)유저의 경험을 저장하지 않는다좋은 유저 경험을 위해 세션, 쿠키, DB에 저장하여 임의로 처리하긴 한다. HTTP 메시지 구조HTTP 헤더 - Genereal Header, Req/Res Header, Entity Header많은 양의 데이터가 key-value 형태로 헤더에 포함됨 TCPOSI 4 계층(transport layer)에 존재하며 HTTP로만 할 수 없는 통신을 할 수 있게 해 줌HTTP는 비연결성이지만 TCP는 TCP는 데이터를 교환하기 위해서 무조건 연결을 해야 하는 연결지향성임 TCP 3-wa..
CCU가 엄청나게 늘어나면 Pool에는 커넥션이 메마르고, 데이터베이스가 부족해진다. 이 떄 샤딩이란 기술을 활용하여 이 문제를 해결해보자. 샤딩(Sharding)데이터를 조각내 분산 저장하는 데이터 처리 기법으로 일괄적 관리가 힘든 거대 데이터베이스나 네트워크를 물리적으로 쪼개는 기술이다.즉, 하나의 게임 서버 데이터를 하나의 데이터베이스에서 관리하는 것이 아닌 여러 데이터베이스에서 나눠서 관리를 한다는 것장점더 많은 커넥션을 준비시킬 수 있어 CCU가 늘어나도 크게 지장을 받지 않음샤드는 독립적으로 작동하기 때문에 요청을 병렬적으로 처리할 수 있음 > 전반적인 성능 향상특정 샤드가 문제가 생겨도 일부 유저들을 제외하고는 전체 게임 자체의 가용성은 계속 유지할 수 있음방법로직으로 샤드를 나눌 수 있다...