일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Express.js
- 게임 서버 아키텍처
- branch
- pm2
- Next
- Github
- 그리디
- ERD
- html5
- 자바스크립트
- localstorage
- map
- router
- MySQL
- ccw 알고리즘
- insomnia
- 백준 32029번
- 백준 32028번
- 백준 28303번
- JavaScript
- HTTP
- PROJECT
- 지금 자면 꿈을 꾸지만
- ucpc 2023 예선 d번
- string
- ucpc 2023 예선 i번
- ucpc 2024 예선 e번
- MongoDB
- 더 흔한 색칠 타일 문제
- Prisma
- Today
- Total
목록내일배움캠프/특강 (18)
dh_0e
서버 아키텍처 종류일반적인 클라이언트 - 서버 아키텍처게임 서버의 모든 기능이 하나의 코드베이스와 배포 단위로 구성되는 방식배포를 단순하게 할 수 있고, 초기 개발 및 설정이 쉬움확장성과 유지보수에 어려움이 있음초기 스타트업이나 소규모 프로젝트에 적용하기에 좋음 데디케이트 서버 아키텍처게임 회사에서 관리하는 전용 서버를 이용하여 게임 세션을 호스팅하는 방식하나의 서버가 게임 한판 만을 전담높은 대역폭과 최적화된 네트워크 환경을 제공하여 지연 시간을 최소화함FPS게임에서 많이 사용되는 아키텍처로 일관성을 유지할 수 있음 분산 서버 아키텍처단일 서버 대신 여러 서버가 협력하여 하나의 시스템을 구성하는 방식대규모 사용자 기반 처리, 시스템의 가용성과 확장성을 극대화하기에 용이함대부분의 상용 게임들이 이 아키텍..
동기화가 고려되지 않은 멀티스레드 코드 예시 (JAVA)public class CounterTest { private static int counter = 0; public static void main(String[] args) throws InterruptedException { Thread[] threads = new Thread[10]; // 동기화 없이 실행 for (int i = 0; i { for (int j = 0; j 위 코드를 실행시키면 counter 값이 10000이 아니라 그에 못 미치는 99xx 값이 나온다.이는 데이터 경합 즉, Race condition이 발생한 결관데 동시에 counter 변수의 값을..
프로세스프로그램이 실행이 되어 메모리에 올라온 순간부터 프로세스라 불림작업 관리자에서 프로세스 목록을 볼 수 있음프로그램이 프로세스로 진화하는 순간 자체적인 메모리 공간과 시스템 자원을 할당받음기본적으로 1) 코드와 2) 데이터로 이루어져 있는 프로그램이 프로세스로 올라가면 다음 사진과 같이 구성됨 스택일반적으로 함수 스코프에 해당되는 데이터들을 담는 곳지역변수, 파라미터들을 담고 있음함수 스코프에 해당되는 내용이다 보니 함수에서 함수를 부르는 재귀 호출의 경우에는 종료 조건을 제대로 설정해놓지 않으면 stack overflow가 발생을 할 수 있음힙동적인 메모리를 할당하는 곳Javascript에서는 기본적으로 참조 타입(e.g. 객체)을 힙에 저장을 하고 있음Java에선 new 키워드를 사용하면 힙에..
CPU의 정의중앙처리장치는 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행 및 처리하는 가장 핵심적인 컴퓨터의 제어장치, 혹은 그 기능을 내장한 칩대표적으로 intel 코어 i 시리즈와 amd 라이젠 시리즈가 있음인간의 두뇌와 같은 역할을 하며 다른 부품보다 컴퓨터 속도에 가장 영향을 많이 줌 CPU vs 뇌CPU의 구성 CPU의 작동 순서제어장치가 메모리에서 명령어를 가져오고이 명령어를 또 제어장치가 해독하는 작업을 수행한 뒤산술 연산 장치에서 이를 실행이 외에도 연산결과가 다음 명령어에 바로 사용되지 않는다면 결과를 메모리에 저장하는 메모리 단계가 있음연산 결과가 다음 명령어에 데이터로 사용될 경우, 계산 결과를 레지스터에 다시 쓰는 라이트백 단계가 있음각각의 단계가 CPU의 특정 부분에서 수행되며..
CI/CD란?애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법CI(Continuous Integration): 지속적인 통합추가/변경된 코드를 자동으로 빌드한 후 테스트테스트에 통과한 경우에만 공유 저장소에 병합여러 명의 개발자가 동시에 코드 작업을 할 때 서로 충돌할 수 있는 문제를 해결 CD(Continuous Delivery or Deployment): 지속적인 제공 or 배포지속적인 제공, 배포개발자들이 적용한 변경 사항이 CI 과정을 거쳐 저장소에 자동으로 업로드되는 것운영팀은 이 저장소에서 애플리케이션을 실 서버 환경으로 배포할 수 있음개발자의 변경 사항을 저장소에게 고객이 사용 가능한 프로덕션 환경까지 자동으로 배포하는 것 Workflow: 미리 정의..