전체 글(71)
-
메모리와 주소공간이란?
1. 메모리(Memory)란?기억장치라는 뜻을 가진 메모리는 상황에 따라 여러가지를 의미하지만, 가장 좁은 의미로는 주기억장치(main memory)를 말한다. 이 주기억장치, 메모리는 컴퓨터에서 특정 작업을 처리할 때, 처리 대상의 내용이나 처리 결과 등을 잠시 기억해야 할 때, 전기적인 신호로 일시적으로 저장하게 된다. 전기 신호를 사용하는 만큼 하드디스크를 이용하는 것보다 훨씬 속도가 빠른 특징을 가진다. 우리가 흔히 아는 RAM(Random Access Memory)가 바로 주기억장치이다. 사무직 직원이 업무 진행을 위해 조사한 자료들을 책상에 펼쳐놓고, 필요한 자료들을 하나씩 확인하여 일을 하게 된다고 할 때, 자료들을 펼쳐놓은 책상이 바로 메모리라고 할 수 있다. 물론 실제 컴퓨터에는 가장 좁..
2024.10.17 -
[CH 4 타워 디펜스 게임 프로젝트] 트러블슈팅 1016
⛓️ 클라이언트와 서버 간의 연결고리 만들기서버에서 검증된 데이터를 기반으로 클라이언트에서 타워를 그려내야 했지만, 앞선 트러블슈팅에서 언급했듯 웹소켓에 대한 이해도가 많이 부족한 상황이었다. 클라이언트와 게임 서버의 역할 그 자체에 대한 이해도가 많이 부족했다고도 할 수 있을 것 같다. 그래서 클라이언트에서 우선 구현한 기능들을 서버와 어떻게 주고받아야 할지 연결고리를 이해하고 만드는 것까지 도전의 연속이었다. 주말 내내 github에 'tower defense'를 검색해서 비슷한 프로젝트들의 코드를 뜯어보고, 팀원분들이 먼저 구현한 몬스터나 스테이지 관련 코드들을 뜯어보고 나서야 기본적인 구조가 이해되기 시작했다. 이전 개인 프로젝트를 진행할 당시, 스켈레톤 코드에서 이미 거의 완성되어 있어 건드릴 ..
2024.10.16 -
[CH 4 타워 디펜스 게임 프로젝트] 트러블슈팅 1014
🖥️ 일단, 클라이언트에서 시작해보기개인 프로젝트에서 웹소켓을 다뤄보기는 했지만, 이해도가 낮은 상태였기 때문에 클라이언트와 서버 간에 데이터를 주고 받는 로직을 처음부터 짜보려고 하니, 오류 메세지가 터미널에 도배되기 일쑤였다. 어떻게 데이터를 보내고, 받아야 하는지도 헷갈릴 정도로 내실이 부족한 상태임을 인정해야만 했다. 그래도 타워 디펜스 게임에서 '타워'를 담당하게 된 만큼, 클라이언트에서라도 기능이 돌아갈 수 있도록 코드를 짜보기로 했다. function placeNewTower() { if (towers.length >= 10) { alert('타워는 10개까지만 건설할 수 있습니다.'); } else if (userGold = towerCost) { const { x, y ..
2024.10.15 -
CPU란? - 기본 개념부터 세부 장치까지
컴퓨터 부품은 보통 크게 5가지로 나뉜다. CPU, 주기억장치(RAM), 보조기억장치(HDD/SSD), I/O디바이스(모니터, 마우스 등), 메인보드. 코어 역할 어쩌고 1. CPU란?컴퓨터의 부품은 보통 CPU, 주기억장치(RAM), 보조기억장치(HDD/SSD), I/O디바이스(모니터, 마우스 등), 메인보드 5가지로 크게 나뉜다. 이때 CPU(Central Processing Unit)는 중앙 처리 장치를 의미한다. 프로그램의 명령어를 해석하고 실행하는 역할을 하는 컴퓨터 시스템의 중심이 되는 핵심 요소이다. CPU는 제어장치, 누산기, ALU, 레지스터로 구성되어 있다. ALU는 연산을 해주는 장치, 제어장치는 명령을 해석해주는 장치, 레지스터는 데이터를 저장하는 장치, 누산기는 중간에서 데이..
2024.10.14 -
[CH 4 리얼 타임 과제] 트러블슈팅 - 1007
⛔ 애타게 JSON 파일을 불러보다과제 초반에 주어진 스테이지 관련 코드를 보고 하드코딩을 진행한 뒤, 유지보수 및 기능 확장이 가능하도록 수정하는 작업을 반복했다. 각 스테이지 별로 아이템이 해금되고, 생성된 아이템에 따라 다른 점수를 획득하는 것이 기본 조건이기 때문에 스테이지에 대한 정보를 받아오는 것이 1차 과제였다. 문제는 아이템, 스테이지, 아이템 해금 정보가 담긴 json 파일들을 import 하는 과정이 쉽지 않았다. import items from '../assets/item.json' with {type: "json"} 위와 같은 형태로 Score.js 파일에 import를 시도했으나, 게임이 먹통이 되거나 undefined 오류가 발생하기 일쑤였다. init 폴더의assets.js처..
2024.10.07 -
[CH 4 리얼 타임 과제] 트러블슈팅 - 1002
🗺️ 아이템에 맞는 점수 부여하기item.json 파일에 정의한 데이터를 사용하기 위해, 에셋 정보를 불러오는 코드를 활용하고자 했다.export const loadGameAssets = async () => { try { const [stages, items, itemUnlocks] = await Promise.all([ readFileAsync('stage.json'), readFileAsync('item.json'), readFileAsync('item_unlock.json'), ]); gameAssets = { stages, items, itemUnlocks }; return gameAssets; } catch (error) { throw..
2024.10.02