[Server] Docker 명령어
·
IT/Server
Docker 명령어를 알아보자 ● Docker Desktop을 설치했다는 전제 하에 설명  - Docker Desktop을 설치하면 자동으로 윈도우에     WSL(Windows Subsystem for Linux)이 자동으로 설치 된다. ● Docker 명령어 모음# docker 서비스 시작sudo service docker start# 동작중인 컨테이너 확인docker ps# 정지된 컨테이너 확인docker ps -a# 컨테이너 삭제docker rm [container id]# 복수의 컨테이너 삭제docker rm [container id], [container id], ...# Docker 이미지 확인docker images# 이미지 삭제docker rmi [image id]# 이미지 강제 삭제do..
[Server] 서버를 배포할 때 AWS, Ubuntu 설정
·
IT/Server
AWS 인스턴스(Instance) 생성● 우선 서버 위치를 가장 가까운 곳으로 설정해야 한다 - 게임에서 다른 나라에 있는 사람과 게임하면 Ping의 수치가 높아져서 게임이 원할하게 못하듯  서버가 가까우면 Latency 걱정할 필요가 없다.  (다른 나라로 선택했다가 Latency 문제가 발생했었다..,) ● 'ec2' 를 검색하면 EC2 서비스가 나타난다. ● 대시보드가 등장하면? ● '인스턴스 시작' 눌렀을 때 나오는 설정 페이지    - '프리 티어' 붙은 것들 위주로 해야한다.     (프리 티어라고는 하지만 일정 시간을 사용하면 '프리 티어' 기간이 지나면 금액을 지불해야한다.) ● keypair는 고유 암호키이기 때문에 한 번 삭제하면 되돌릴 수 없다. 보안 그룹 설정● 인스턴스를 생성했으면..
[Server] 게임 서버 아키텍처 종류
·
IT/Server
Host, Client, Server● Host : 네트워크 내에서 다른 장치나 사용자에게 자원(Resource)이나 서비스를             제공하는 컴퓨터 시스템이나 장치             예) 스팀 멀티 게임할 때, '내가 방 팔게!' = Host ● Client : 서비스를 이용하는 사용자 혹은 사용자의 단말기               → Server에 요청(Request)를 하는 것             예) 게임 방 좀 만들어줘, 참가할게! ● Server : 네트워크를 통해 Client로부터 요청받은 데이터를 찾아서 넘겨주는 시스템 or 장치              → Client가 요청한 데이터를 보내주는(Response) 것             예) Server야 Host가 방..
[Server] 게임 서버 설계
·
IT/Server
멀티플레이 온라인 게임 - 표준 아키텍처출처 : megazone 각 번호별 AWS 설명1) Elastic Compute Cloud (EC2)  - CPU, Memory, IO 등 높은 성능을 요구하는 멀티플레이어 게임을 위해 다양한 유형과 크기의 EC2를 사용  - 배치 그룹을 활용하여  서버간 네트워크 지연시간을 최소화할 수 있다. 2) ElastiCache for Redis  - 고가용성 확장 가능한 Redis 클러스터에 대한 완전 관리형 AWS 서비스  - 자동 복구 및 읽기 복제본을 통해 확장 가능한 Redis 클러스터를 제공  - Redis의 기능으로 Memory DB만이 아닌 pub/sub 기능을 활요하여 서버 간 통신으로 사용할 수 있다. 3) RDS  - 완전관리형 데이터베이스 서비스  -..
[Server] TCP Server - Buffer
·
IT/Server
JavaScript에서 Buffer란?● Node.js에서 이진 데이터를 다루기 위한 특별한 객체 ● JavaScript 문자열 = UTF-16 형식으로 인코딩 되어 있어 이진 데이터를 효율적 처리가 어렵다.더보기UTF-16?- 유니코드 문자를 16bit(2byte) 단위로 인코딩하는 방식- 대부분의 일반적인 문자는 하나의 16bit 단위로 표현되지만, 일부 문자(보조 평면의 문자 등)는  두 개의 16비트 단위(서로게이트 페어)로 표현된다.● Buffer 객체(object)는 원시적인 이진 데이터를 저장하고 조작하는데 최적화되어 있다.  그래서 Buffer 객체를 쓰면 좋은 점?● 이진 데이터를 다루기 위해 고안된 객체이기에 UTF-16의 비효율성을 해결  ○ 고정 길이 : 고정된 크기의 바이트 배열이..
[Server] HTTP Status Code
·
IT/Server
HTTP 상태 코드가 무엇인가?● 특정 HTTP 요청이 성공적으로 완료되었는지 코드로 알림● 5개의 분류로 나누어짐  - 정보를 제공하는 응답  - 성공적인 응답  - 리다이렉트  - 클라이언트 에러  - 서버 에러 정보 응답 (100)● 대표적 코드 : 100 Continue  - 지금까지의 상태가 괜찮고, 클라이언트가 계속해서 요청하거나 이미 요청을 완료한 경우    무시해도 되는 것을 알림 성공 응답 (200)● 대표적 코드 : 200 OK  - 요청이 성공적으로 완료되었을 때  - HTTP 메서드에 따라 성공의 의미가 달라짐  - GET : 리소스를 불러와서 메시지 바디에 전송 완료  - HEAD : 개체 헤더가 메세지 바디에 전송 완료  - POST : 수행 결과에 대한 리소스가 메시지 바디에 ..
[Server] 서버, 클라이언트 / 웹 어플리케이션 서버, 게임 서버
·
IT/Server
서버 (Server)● 네트워크에서 서비스를 제공하는 컴퓨터 or 프로그램  - 24시간 가동, 클라이언트 요청을 처리  - 일반적으로 고성능 컴퓨터 사용, 많은 요청을 동시 처리  - 다양한 서버가 존재 ex) 웹 server, 파일 server, 메일 server 등클라이언트(Client)● Server에 서비스를 요청하고 받는 컴퓨터 or 프로그램  - 사용자의 입력을 처리, 서버에 요청  - 대표적인 예로 웹 브라우저, 이메일 클라이언트 등  - 일반적으로 집에서 사용하는 PC, 모바일 기기가 클라이언트에 해당 서버(Server) - 클라이언트(Client) 구조● 역할 분리 : 서버는 서비스 제공, 클라이언트는 서비스 요청 및 사용을 담당● 중앙 집중 데이터 관리 : 서버에서 데이터를 중앙 집중..
[Nods.js] 4. Middleware
·
IT/Server
미들웨어(Middleware)● 서버의 요청(Request) - 응답(Response) 과정에서 중간에 위치하여   특정 기능을 수행하는 함수● 모든 요청에 대해서 로그(Logging) 남기거나,   특정 사용자만 API(=Authentication & Authorization)를 접근 가능하게 할 때 사용● 사용자가 웹 페이지에서 Form을 통해 전송한 데이터를 서버에서 쉽게   파싱(Body Parser)하여 사용하게 하는 미들웨어도 존재 Express.js의 Middlewareapp.use(express.urlencoded({ extended: false }));app.use(express.json());- 위와 같은 형식의 미들웨어- Body Parser : 클라이언트이 요청(Request) 본문..
[Node.js] 3. Request, Response
·
IT/Server
Request● 클라이언트가 서버에게 전달하려는 정보나 메세지를 담는 객체  - URL, HTTP method, 헤더(header), 쿼리 파라미터(query parameter), 바디 데이터(body data) Response● 서버에서 클라이언트로 응답 메시지를 전송시켜주는 객체  - 상태 코드(status code), 응답 데이터(response data), 응답 헤더(response header) Express.js 흐름예시 코드로 설명해보면 아래의 코드는 'app.js'라는 메인 node에 작성주제 : 뉴스 목록 불러오기 ● Express.js 흐름 분석1. 서버 시작 - Express.js는 지정된 포트 번호(Port)를 사용하여 서버를 시작// 1. Express.js의 서버를 엽니다.app..
[Node.js] 2. Express.js, API, REST API
·
IT/Server
웹 프레임워크(Web Framework)- 웹 서비스를 빠르게 구현할 수 있게 도와주는 도구- 프로그래밍의 특정 부분을 추상화해서 개발자가 더 높은 수준에서   프로그램을 작성할 수 있게 도와주는 도구- Framework : 틀 Express.js란 무엇인가● Node.is로 서버를 빠르고 간편하게 만들 수 있게 도와주는 도구   = 즉, Web Framework ● 미들웨어(Middleware)를 지원 :  사용자의 요청과 응답 사이에 위치하여 특정 기능을 수행하는 함수.   ex) 인증(Authentication), 로깅(Logging), 에러 처리 핸들러(Exception Handler) API(Application Programming Interface)● 서로 다른 소프트웨어나 어플리케이션을 연..