목록Dev. Study Note (179)
Priv's Blog
1. RAM RAM은 대표적인 주기억장치에 해당하는 메모리이다. DRAM, SRAM, SDRAM, DDR SDRAM 등이 있다. 1.1) RAM의 특징 RAM은 휘발성 저장 장치에 해당하기 때문에 전원이 꺼지면 저장된 데이터들이 모두 지워진다. 이 단점 때문에 비휘발성 저장 장치에 해당하는 HDD, SSD 등의 보조기억장치를 별도로 사용하는 것이다. RAM은 주기억장치이기 때문에 CPU가 직접 접근할 수 있다. 그래서 일반적으로는 RAM에 실행할 대상을, HDD/SSD에는 보관할 대상을 저장한다. CPU가 실행할 대상이 보조기억장치에 있다면, 보조기억장치의 데이터를 복사해 RAM으로 가져와 실행한다. 1.2) RAM의 용량 및 성능 RAM의 성능을 결정하는 가장 기본적인 정보가 용량이다. RAM의 용량이..
1. ALU와 제어장치 ALU는 CPU 내부에서 계산을 담당하고, 제어장치는 명령어를 읽고 해석하는 역할을 담당한다. 1.1) ALU ALU는 피연산자와 수행할 연산을 가지고 계산을 수행한다. ALU는 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받아들인다. 이렇게 받아들인 피연산자, 제어 신호를 가지고 ALU는 산술 연산, 논리 연산 등을 수행한다. ALU가 수행한 연산의 결과는 특정 숫자, 문자, 메모리 주소가 될 수도 있다. 이 값들은 일시적으로 레지스터에 저장된다. 이는 CPU가 메모리에 접근하는 속도보다 레지스터에 접근하는 속도가 압도적으로 빠르기 때문이다. ALU는 연산 결괏값과 함께 플래그를 내보낸다. 플래그는 연산 결과에 대한 추가적인 정보를 내..
1. 소스 코드, 명령어 컴퓨터는 명령어를 읽어 동작한다. 우리는 C++, C#과 같은 프로그래밍 언어를 사용해 컴퓨터에게 내릴 명령들을 작성한다. 우리가 작성한 명령들은 '소스 코드'라고 부르며, 컴퓨터는 이 소스 코드를 컴파일러를 통해 명령어(기계어)로 변환하여 명령을 수행한다. 1.1) 고급 언어, 저급 언어 고급 언어: 사람이 이해하기 쉽게 작성된 프로그래밍 언어를 칭한다. 저급 언어: 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어를 칭한다. 저급 언어보다 가독성이 높고 다루기가 쉽지만 저급 언어보다 상대적으로 속도가 느리다. 일반적으로 저급 언어는 기계어, 어셈블리어까지를 일컫는다. (C언어는 고급 언어에 해당) 저급 언어는 실행 속도가 고급 언어보다 상대적으로 빠르지만, 가독성이 낮고 다루기가..
1. 0과 1로 숫자를 표현하는 방법 컴퓨터는 0과 1로만 이루어진 데이터만 이해할 수 있다. 그렇다면 어떻게 컴퓨터는 3 + 10을 계산할 수 있을까? 1.1) 정보 단위 컴퓨터가 이해하는 가장 작은 정보의 단위를 비트(bit)라고 부른다. 유효한 값이 있으면 1, 유효한 값이 없으면 0이라고 생각하면 된다. 즉, 전구처럼 불이 꺼진 것과 켜진 것만 표현할 수 있으며, 이 표현의 최소 단위가 비트이다. 이때 2비트는 총 4가지의 상태를 표현할 수 있다. 즉, n개의 비트로 표현할 수 있는 상태 값은 2^n가지이다. 바이트, 킬로바이트, 메가바이트, 기가바이트, 테라바이트 등 다양한 정보 단위가 더 존재하며, 바이트를 제외한 나머지 단위들은 이전 단위를 1000개씩 묶어서 표현한 단위들이다. 워드(wor..
1. 컴퓨터 구조가 필요한 이유 프로그래머는 코드를 작성하는 일을 한다고 생각하기 쉽지만, 문제 상황을 빠르게 진단하고 해결책을 고민하기 위해서는 '컴퓨터 구조'에 대한 이해도 요구된다. 본인이 개발에 사용하는 컴퓨터에 이해가 뒷받침된다면 적합한 성능과 비용을 책정할 수도 있다. 물론, 클라우드 서버를 사용한다고 해도 예외는 아니다. 자신에게 필요한 개발 환경을 적합하게 구축하고, 이에 필요한 예산을 측정하고, 필요한 자원을 확보하는 능력은 프로그래머의 기본 소양이라 여기는 것이 좋다. 2. 컴퓨터 구조의 큰 그림 컴퓨터 구조의 지식은 '컴퓨터가 이해하는 정보'와 '컴퓨터의 4가지 핵심 부품'으로 나눠진다. 2.1) 컴퓨터가 이해하는 정보 모두가 알다시피 컴퓨터는 0, 1로 이루어진 정보만 이해할 수 있..
1. IEnumerator 메서드는 실행할 때마다 참조값이 바뀐다. public void StartWeaponAction(int type = 0) { if (type == 0) { // 좌측 마우스 버튼 클릭; 사격 if (this.weaponSetting.isAuto == true) { StartCoroutine(OnAttackLoop()); } else { OnAttack(); } } } public void StopWeaponAction(int type = 0) { if (type == 0) { StopCoroutine(OnAttackLoop()); } } private void OnAttack() { if (Time.time - this.lastAttackTime > this.weaponSetti..
1. 개요 유독 VSC는 골치를 썩이는 일이 많은 것 같다. Unity에서 VSC를 연동할 때, 자동 완성이 작동하지 않을 경우가 잦은데, 해결법을 알아본다. 2. Could not locate MSBuild instance to register with OmniSharp. 2022년 5월 이후부터는 Visual Studio Build Tools 2022를 통해 .net 데스크톱 빌드 도구를 설치해주어야 한다. 아래 주소를 타고 가서 빌드 도구를 설치하자. Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치 Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional..
1. C++ 빌드 도구 설치 먼저 위 파일을 설치한다. 비주얼 스튜디오 인스톨러가 설치/실행되면 개별 구성 요소를 클릭한다. 최신 버전의 C++ 빌드 도구 항목을 찾아 체크한 뒤 설치한다. 재부팅한 뒤, 터미널 창에서 패키지 설치를 다시 시도한다. 에러가 여전히 발생한다면 계속 진행한다. 2. cl.exe 파일 실행 불가 에러 아마 1번까지 진행했음에도 에러가 계속된다면 cl.exe 파일 실행 불가 관련 에러일 가능성이 크다. 이 경우 빌드 도구를 재설치하는 방법과 비주얼 스튜디오를 부분 설치하는 방법이 있다. 경험상 빌드 도구를 재설치하는 방법은 소용이 없었으므로 생략한다. 다시 PC에 설치된 비주얼 스튜디오 인스톨러를 실행한다. 맨 아래에 있는 커뮤니티 버전을 설치해야 한다. 아까와 마찬가지로 개별 ..