TIL

[TIL.03] 게임 서버 트랙에서 자바스크립트를 학습하는 이유

explosion149 2024. 10. 4.

 

[주제]

Node.js 란 무엇인가요?

Node.js는 비동기 이벤트 기반 JavaScript 런타임으로, 서버 측 애플리케이션 개발에 사용되며, 높은 성능과 크로스 플랫폼 호환성을 제공합니다.

 

Node.js의 장점

Node.js는 비동기 I/O 모델과 자바스크립트 기반으로 높은 성능, 확장성, 그리고 풍부한 패키지 생태계를 제공하여 서버 사이드 애플리케이션 개발에 적합한 플랫폼입니다.

 

Node.js의 단점

Node.js의 단점은 CPU 집약적인 작업에 비효율적이며, 이는 성능 저하를 초래할 수 있다는 점입니다.

Node.js 로 게임 서버를 만든다면 어떤류의 게임에 적합한가?

Node.js는 채팅 기반 게임이나 캐쥬얼한 2D 게임에 적합합니다.

 

[아티클 요약]

CPU 집약적 작업에는 부적합하고, 콜백 구조의 복잡성, API의 불안정성, 에러 처리의 어려움 등의 단점도 존재하지만 Node.js는 실시간 멀티플레이어 게임, 캐주얼 게임, 턴제 게임, 소셜 게임, 브라우저 기반 게임 등 다양한 유형의 게임 서버 개발에 적합합니다.

 

[인사이트]

Node.js의 특성상 빠른 개발과 테스트가 가능하여 신속한 프로토타입을 구현하여 검증할 수 있습니다.

이는 특히 스타트업이나 인디 게임 개발사에게 큰 이점이 될 수 있습니다.

비동기 I/O와 이벤트 기반 모델은 실시간 상호작용이 필요한 게임에 매우 적합하여, 멀티플레이어 게임이나 실시간 전략 게임 개발에 큰 강점을 가질것으로 보입니다.

CPU 집약적인 작업에는 부적합 하다는 점을 고려하여 복잡한 물리엔진 이나 대규모 계산이 필요한 게임 보다 하이퍼캐쥬얼 등의 퍼즐게임 턴제 형식의 2D 게임등을 권장합니다.

Node.js는 특정 유형의 게임 서버 개발에 매우 효과적인 도구가 될 수 있습니다.

그러나 게임의 특성과 요구사항을 신중히 고려하여 하지 않을경우 오히려 독이 될 수 있습니다.

 

*서버사이드 애플리케이션 개발은 서버에서 실행되는 애플리케이션을 개발하는 과정을 의미합니다. 이러한 애플리케이션은 클라이언트(예: 웹 브라우저, 모바일 앱)와 상호작용하며, 데이터를 처리하고 저장하는 등의 역할을 수행합니다.

 

*CPU집약

CPU 집약(CPU-bound)은 프로그램이나 작업이 주로 CPU 자원을 많이 사용하는 상태를 의미합니다.

복잡한 계산, 데이터 처리, 암호화 등의 연산이 많아 CPU 성능에 의해 처리 속도가 결정됩니다.

 

*I/O

Input/Output의 약자로, 컴퓨터에서 데이터를 입력받거나 출력하는 과정을 의미합니다.

입력은 키보드, 마우스, 센서 등의 데이터를 받는 것이고, 출력은 화면 표시, 파일 저장, 네트워크 전송 등을 포함합니다.

 

*동기와 비동기

동기는 작업을 순차적으로 처리하며, 이전 작업이 완료될 때까지 다음 작업이 대기합니다.

비동기는 작업이 병렬로 처리되어 다른 작업이 진행되는 동안 결과를 기다리지 않고 즉시 다음 작업을 수행합니다.

댓글

💲 추천 글