2025-02-04 TIL
공통 작업 결과
MVP(제일 중요한 기능들)
- 기본적으로 멀티플레이 게임의 틀 “로그인/회원가입”, “방” 기능 구현
- 게임의 “낮(파밍)”에 해당하는 기능 구현
서버 기능
- 회원가입 & 로그인 - 한윤재
- 방 생성 & 참여 - 한윤재
- 게임루프(시뮬레이션) - 조용필
- 게임 준비 & 시작 - 이유민
- 플레이어 상태 동기화 - 이유민
- 필드 몬스터 - 김의중
- 전투 시스템 - 김의중
- 몬스터 상태 동기화 - 이준성
- 플레이어 리스폰 - 이준성
- 식량(배고픔) 시스템 - 오누리
- 세션 구조 총괄 - 김제훈
2차
- 밤(웨이브) 시스템 구현 + 시간 시스템
- 거점(코어) 생성
- 구조물(파밍/일반) 랜덤 생성
- 무기 시스템
- 구역별 몬스터 변화
- 몬스터 AI 추가
3차
- 서버 성능 측정 / 최적화 Node.js 싱글 스레드 특성상 CPU 집약적 작업은 클러스터링으로 해결 </span>
개인 의견
내가 맡은 작업은 원래 동기화까지 포함하는 것이었으나 다른 사람에 맡기게 되었고 나는 몬스터 클래스, 플레이어 클래스의 일부를 담당하게 되었다. 몬스터 클래스는 이전 프로젝트의 연장선상으로 볼 수 있으니 좀 더 수월하게 될 듯 하다.
면접 준비
- var, let, const에 대해 설명하시오
전부 다 javascript의 변수 종류이다. 그러나 각각의 특징이 존재한다.
var | let | const |
---|---|---|
중복과 재할당이 동시에 가능한 변수. 너무 자유롭게 선언할 수 있기 때문에 위험하다. | 중복 선언은 허용하지 않으나 재할당은 가능하다. 함수 내부에서 변경하거나 할 일이 있을 경우 이걸 사용한다. | 처음 선언되었을 때 이후로 재할당이 불가능한 변수, 단 이건 변수의 이야기고 배열이나 map과 같은 형태의 포인트를 사용할 경우 고정되는 건 값이 아닌 포인터의 참조값, 그러니까 주소값이 된다. |
- Promise가 무엇인지 설명하시오
자바 스크립트는 싱글 스레드이기 때문에 동기 작업으로 모든 걸 처리하면 비효율적이다. 그래서 비동기 작업이 필요한데, 기존에는 콜백 함수를 통해 처리했으나 콜백 지옥 등에 빠질 위험성이 있어 ES6에 새로 추가된 기능. 비동기를 연속적으로 처리할 수 있는 체이닝(chaining) 기능이 있고 기존 콜백에 비해 버그 캐치하기가 용하다.