[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는 고유 암호키이기 때문에 한 번 삭제하면 되돌릴 수 없다. 보안 그룹 설정● 인스턴스를 생성했으면..
[OS] Operating System
·
IT/OS
Operating System, 운영체제● Operating : 운영중인 + System : 체계 =  운영체제 ● 컴퓨터의 기동과 함께 커널(Kernel)이 주기억 장치에 올려져 컴퓨터를 작동시키고 운영을 관리하여   응용 프로그램이 효율적으로 실행될 수 있는 환경을 제공하는 기본 소프트웨어 ● 운영체제는 왜 있어야 할까?  - 운영체제의 주 목적은 컴퓨터의 하드웨어를 관리하는 것.  - 컴퓨터를 효율적으로 사용하기 위해 필요하다.  - 운영체제의 성능 = 컴퓨터의 성능  - 사용자의 편의를 제공하기 위해 존재한다.     └ 만약, 운영체제가 없다면 지금 사용하는 컴퓨터가 있을 수 있었을까? 즉, 운영체제는 컴퓨터의 성능(Performance)를 높이고 사용자에게 편의성(Convenience)를 제공..
[Server] 게임 서버 아키텍처 종류
·
IT/Server
Host, Client, Server● Host : 네트워크 내에서 다른 장치나 사용자에게 자원(Resource)이나 서비스를             제공하는 컴퓨터 시스템이나 장치             예) 스팀 멀티 게임할 때, '내가 방 팔게!' = Host ● Client : 서비스를 이용하는 사용자 혹은 사용자의 단말기               → Server에 요청(Request)를 하는 것             예) 게임 방 좀 만들어줘, 참가할게! ● Server : 네트워크를 통해 Client로부터 요청받은 데이터를 찾아서 넘겨주는 시스템 or 장치              → Client가 요청한 데이터를 보내주는(Response) 것             예) Server야 Host가 방..
[OS] Virtual Memory
·
IT/Hardware
가상 메모리 (Virtual Memory)● 컴퓨터 시스템에서 물리적 메모리(RAM)의 크기보다 더 큰 메모리 공간을 사용할 수 있게 하는   메모리 관리 기법 ● 물리적으로 용량을 늘리면 되는데 왜 필요할까?  - 초기 컴퓨터 시스템에서는 프로그램이 RAM에 직접 적재되어야 했다.  - 최근에야 RAM에 용량이 높아졌고 비용적인 부분도 효율적으로 변했지만, 초기에는 그렇지 못함.  - 메모리 용량이 부족할 경우 프로그램 실행이 제한되거나, 여러 프로그램을 동시에 실행하지 못함.→ 물리적 메모리보다 큰 주소 공간을 제공하고, 여러 프로그램을 동시 실행할 수 있도록 만들어준다. ● 작동 원리  - 실제 물리적 메모리 주소 대신 가상 주소(Virtual Address)를 사용하여 데이터를 읽고 쓴다.  - ..
[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  - 완전관리형 데이터베이스 서비스  -..
[Hardware] Memory
·
IT/Hardware
Memory, 메모리● 컴퓨터에서 데이터를 저장하고 처리하는 데 필수적인 장치, 기억장치  ● 메모리가 왜 있어야 할까?  - 프로그램 실행 중 필요한 명령어와 데이터를 저장하고,      CPU가 이를 빠르게 접근해야 할 곳이 필요하기 때문에 ● 주소 공간 (Address Space)  - 실행 중인 프로그램이 사용할 수 있는 모든 메모리 상태  - Code, Data, Stack, Heap   ○ 물리 주소 (Physical Address) :     - 실제 메모리(RAM 등) 하드웨어 상의 주소    - MMU(Memory Management Unit)을 통해 물리 주소로 변환    - Base register : 프로그램의 가장 작은 물리 주소(프로그램의 첫 물리 주소)를 저장한다.    - 논..
[OS] Thread & Process - 3
·
IT/OS
Multi Processing● 한 컴퓨터 내 2개 이상의 프로세서(=CPU)들이 같은 작업 내 2개 이상의 서로 다른 부분을   동시(Parallel)에 처리할 수 있는 프로그램 ● 멀티 프로그래밍, 멀티 태스킹과는 다른건가?  ○ 멀티 프로그래밍(multi-programming) :      - 한 CPU는 한 시점에 하나의 프로그램 수행하는 것     - 메인 메모리에 여러 프로그램 유지     - 수행 중인 프로그램 입출력 작업을 수행하면 CPU는 입출력 종료될 때까지       기다리지 않고 다른 프로그램을 수행하는 것   ○ 멀티 태스킹(multi-tasking) :     - 작은 time quantum(시분할)을 사용하여 여러 메모리에 올라와 있는       여러 작업들을 번갈아가며 수행하..
[OS] Thread & Process - 2
·
IT/OS
프로세스 & 스레드의 생명 주기● 각각의 생명 주기를 가지고 있으며, 운영체제(OS)는 이러한 생명 주기를 관리하고, 프로세스와 스레드를   조정하여 시스템 자원을 효율적으로 사용 ● 프로세스 스케줄링 (Process Scheduling)  - 운영체제에서 CPU를 사용할 수 있는 프로세스를 선택하고, CPU를 할당하는 작업  - 프로세스의 우선순위, 작업량 등을 고려하여 효율적으로 배치   → 운영체제가 CPU를 효율적으로 사용하며 시스템 전반적인 성능을 향상    ○ 스케줄링(Scheduling)    - 운영채제의 특징과 시스템 요구사항에 따라 알고리즘이 다름    - 알고리즘 종류 :        FCFS(First-Come, First-Served)       SJF(Shortest-Job-Fi..
[OS] Thread & Process - 1
·
IT/OS
Thread (스레드)● 프로세스(process) 내에서 실행되는 실질적인 작업 단위● 모든 프로세스는 최소 하나의 스레드(메인 스레드)를 가지고 있다. ● 프로세스의 자원을 이용하여 실제 작업을 수행● 같은 프로세스 내의 다른 스레드들과 자원을 공유프로세스(process)란?- 프로그램을 실행 시켜 작동하지 않던 것을 작동하도록 변화시키는 것- ex) 바탕화면에 Chrome.exe를 더블 클릭 → process! - 컴퓨터가 작업 중인 프로그램 ● 프로그램(Program)과 프로세스(Process)의 차이프로그램프로세스- 어떤 작업을 하기 위해 실행할 수 있는 파일- 실행되어 작업중인 컴퓨터 프로그램- 파일이 저장 장치에 있지만 메모리에는 올라가 있지 않은정적인(Static) 상태- 메모리에 적재되고 ..