본문 바로가기

분류 전체보기239

공부해야 할 강의 목록 (대학 공개 강의) 보호되어 있는 글 입니다. 2024. 9. 18.
[Unity] UGUI 성능 최적화 [영상]https://www.youtube.com/watch?v=1e2mSCS7o1A&lc=UgwtRZ7Kxx1CZQRd9lV4AaABAg [공부를 위해 정리한 것 기록]1. 캔버스 하나에 여러 UI를 한 번에 묶는 것보다, 자식 캔버스(Nested Canvas)를 두는 것을 권장. 이유는, 부모 Canvas에 수정 사항이 발생하지 않는 이상, 자식 Canvas의 UI가 Dirty 될 때 해당 Canvas만 갱신시킨다. 만약 한 캔버스 안에 모두 담아둔다면 자식 중 하나만 변경되어도 모든 자식들을 갱신하는 비용이 있다. 그렇다고 모든 자식들이 캔버스를 갖고있는 것은 비추천. 무거울수 있기 때문. UI 최적화는 케바케가 심하므로 완벽한 정답이 없으니 상황에 맞게 사용하길 권장 (etc: 동적인 객체, 정적.. 2024. 9. 17.
[컴퓨터 구조] 레지스터 (Register) ■ 레지스터레지스터는 CPU 내부의 작은 임시저장장치이다.프로그램 속 명령어 & 데이터는 실행 전후로 반드시 관련 값들이 레지스터에 저장됨. 그렇기에 레지스터 값만 잘 관찰해도 프로그램의 실행 흐름을 잘 파악할 수 있다.(보통, 깊숙한 곳까지 봐야하는, 로우레벨 개발자분들이 많이 관찰하신다고 함)* 레지스터에는 다양한 종류가 있으며, 각각의 역할이 다르다. [반드시 알아야할 레지스터 종류] 1. 프로그램 카운터 (PC) 2. 명령어 레지스터 3. 메모리 주소 레지스터 4. 메모리 버퍼 레지스터 5. 플래그 레지스터 6. 범용 레지스터 7. 스택 포인터 8. 베이스 레지스터  * CPU 종류마다 레지스터 종류 및 네이밍이 다를 수 있음  ■ 프로그램 카운터 (PC; Program Counter)· 메모리에.. 2024. 9. 17.
[컴퓨터 구조] 명령어, 주소 지정 방식 ■ 명령어 구조명령어는 '무엇을 대상'으로 '어떤 작동'을 해야하는 지에 관한 데이터들이 내포되어 있다.이를 아래와 같이 표현할 수 있다.위 예시에서 노란색 배경은 '더해라'의 동작을 담고 있다. 이러한 동작을 담고있는 영역을 '연산 코드 (Operation Code)'라고 칭하고 하얀색 배경에는 피연산자의 데이터가 들어가있다. 이와 같이 연산에 사용되어지는 데이터 혹은 데이터가 존재하는 주소값을 저장하고 있는 영역을 '오퍼랜드 (Operand)'라고 한다. ※ 즉, 명령어는 아래와 같이 '연산 코드'와 '오퍼랜드 필드'로 구성 되어진다. 오퍼랜드 필드는 '연산에 사용될 데이터' 혹은 '그 데이터가 저장된 위치'를 의미한다고 했다. 다만, 오퍼랜드 필드에는 데이터가 직접적으로 명시되기 보다는 데이터가 저.. 2024. 9. 17.
[컴퓨터 구조] ALU, 제어 장치 ■ 간단한 정의(1) ALU는 계산하는 장치 (2) 제어장치는 제어 신호를 발생시키고 명령어를 해석하는 장치 * 이전에 정보처리 기능사를 공부하면서 정리했었던 '명령어 처리 과정' 글에 덧붙이는 포스팅임.https://yjhdevelopdiary.tistory.com/123  [컴퓨터] 명령어 처리 과정■ 명령어 처리 [명령어실행 순서] 1. 프로그램 카운터(PC)에 저장된 주소(값)를 메모리 주소 레지스터(MAR, 번지 레지스터)에 옮긴다. 2. 명령어를 주기억장치로부터 인출(Fetch) 한다. 3. 프로그램 카yjhdevelopdiary.tistory.com■ ALU  계산을 하기 위해서는 (1) 피연산자와 (2) 수행할 연산이 필요함 (1)는 레지스터로부터 불러오고 (2)는 제어장치로부터 제어 신호.. 2024. 9. 17.
[컴퓨터 구조] 고급언어와 저급언어 ■ 고급 언어와 저급 언어· 고급 언어 : 개발자가 읽기 쓰기 편하게 만들어진 언어 (ex: C, C++, C#, Java, etc..) · 저급 언어 : 컴퓨터가 이해하고 실행하기 위해 만들어진 언어 (ex. 기계어, 어셈블리어) ■ 저급언어· 기계어: 이진수(0과 1)로 표현됨. · 어셈블리어: 사람이 그나마 이해할 수 있게 기계어를 변환한 저급 언어. (예시) 작성한 C#의 NET 프레임워크 내 JIT 컴파일러가 생성하는 어셈블리 코드를 까보면 아래와 같이 보이는 ret, mov, imul 등이 어셈블리어의 명령어이다.[레지스터]· eax: 32비트 레지스터· rbp: 스택 복귀 주소· rsp: 현재 스택 주소· edi: 목적지에 대한 주소· esi: 시작지에 대한 주소 ■ 고급언어 고급언어에서 컴.. 2024. 8. 25.
[컴퓨터 구조] 0과 1로 표현하는 문자 ■ 기존 블로그 글https://yjhdevelopdiary.tistory.com/200 [Modern C++] Unicode, MBCS, WBCS■ ASCII char는 C++에서 1바이트를 차지한다. unsinged 라면 0~255 사이의 숫자만 표현할 수 있다. 컴퓨터 출시 초기에 작업을 할 때는 미국에서 군사용 목적으로 사용되었고 이때 ASCII코드를 사용했었yjhdevelopdiary.tistory.com이전에 C++ 관련 글을 올리면서 Unicode, MBCS, WBCS, ASCII, ANSI에 대해서 간략하게 글을 작성하였었다. https://yjhdevelopdiary.tistory.com/119 [전자계산] 자료 표현 방식■ 외부적 표현 방식 code로 표시하여 사람이 이해할 수 있도록 .. 2024. 8. 25.
[컴퓨터 구조] 0과 1로 표현하는 숫자 ■ 정보 단위(1) 비트 (Bit)0(False)과 1(True)을 표현하는 가장 작은 정보 단위 * 2Bit로 표현할 수 있는 정보는 2^2 = 4로 총 네 가지 (00, 01, 10, 11) 가 있다. * 즉, n Bit로 표현할 수 있는 정보는 2^n이다.[확장된 표현]단위크기1 Byte8 Bit1 KB1,000 Bytes1 MB1,000 KB1 GB1,000 MB1 TB1,000 GB* 과거에는 메모리가 크지 않아, 실질적으로 1,024개씩 데이터를 나누더라도, 표현을 1,000개씩 묶은 단위로 MB, KB 등을 사용 했으나, 요즘과 같은 빅데이터 시대에선 24개의 차이가 물리적으로 커지다보니 Kib, GiB와 같이 1,024개로 정확히 구분지어 사용하는 추세이다.단위크기1 Byte8 Bit1 K.. 2024. 8. 25.
[컴퓨터 구조] 핵심 부품, 시스템 버스 ■ 컴퓨터의 큰 구조* 네 가지 핵심 부품: CPU, 메모리, 보조기억장치, 입출력장치 ■ 메모리 · 현재 실행되는 프로그램[프로세스]의 명령어와 데이터를 저장하는 부품 · 프로그램이 실행되기 위해선 메모리에 적재되어야 한다. · 내가 필요로 하고 있는 명령어와 데이터가 어느 위치에 있는 지를 가리키는 '주소(Address)'의 정보 또한 갖고 있다. · 이러한 명령어와 데이터들은 모두 컴퓨터가 읽을 수 있는 '0'과 '1'로 기록되어 있다. ■ CPU · CPU는 메모리에 저장된 값을 읽어 들이고, 해석하고, 실행하는 장치이다 · CPU 내부에는 ALU, 레지스터, 제어 장치가 있다. · ALU는 계산하는 장치 · 레지스터는 임시 저장 장치 · 제어장치는 제어 신호를 발생시키고 명령어를 해석하는 장치■.. 2024. 8. 25.