본문 바로가기
공부/여러가지 공부들

공부한 것들 정리

by Excidus 2023. 3. 23.

다 배운건데 지나고 나면 다 까먹는다. 다시 정리하자!

 

유니티 이벤트 함수 실행순서: https://docs.unity3d.com/kr/current/Manual/ExecutionOrder.html

 

이벤트 함수의 실행 순서 - Unity 매뉴얼

Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다.

docs.unity3d.com

 

 

-----------------------------------------------------------------------------------------------------------------------------------

 

운영체제에서 메모리 공간은 크게 2가지로 분류된다. 

커널영역와 유저영역이 있는데 커널영역은 운영체제의 핵심이고, 커널이 시스템을 통제하며 유저모드일 때는 접근할수 없고 시스템콜을 통해 커널모드에서 접근 할 수있다.

 

유저영역은 스택영역, 힙영역, 데이터영역, 코드영역으로 나뉘고 프로그램이 동작하기 위해 사용되는 메모리 공간이다.

그중에서 힙영역은 동적으로 메모리를 할당하여 사용하는 공간이며 참조형의 데이터 값이 저장된다.

 

스택영역은 지역변수와 매개변수가 저장되는 영역이며 메모리의 낮은 주소 -> 높은 주소의 방향으로 할당된다.

 

데이터 영역은 프로그램의 전역 변수와 정적(static) 변수가 저장되고 프로그램 시작과 함께 할당되고, 프로그램이 종료되면 소멸된다.

 

코드영역은 실행할 프로그램의 코드가 저장되는 영역이고 프로그램이 시작되고 종료될 때까지 메모리에 계속 남아있는다.

-----------------------------------------------------------------------------------------------------------------------------------

 

캐시, 레지스터 차이:

캐시란?

  • 컴퓨터 시스템의 성능을 향상시키기 위해 주로 CPU 칩 안에 포함되는 빠르고 작고 매우 비싼 메모리 프로그램에서 직접적으로 읽거나 쓸 수 없고 하드웨어의 메모리 관리 시스템(MMU)이 내부적으로 제어한다.메인 메모리에 있는 데이터를 캐시 메모리에 불러와 두고, CPU가 필요한 데이터를 캐시에서 먼저 찾도록 하면 시스템 성능을 향상시킬 수 있다.

레지스터란?

  • 레지스터는 CPU에 존재하는 다목적 저장 공간레지스터는 데이터와 명령어를 저장하는 역할을 한다. Register는 Flip Flop의 집합이며, 이 Flip Flop이라는 것은 각각 1bit의 정보를 저장할 수 있는 것들을 의미.결국 n-bit Register라는 것은 n bit의 정보를 저장할 수 있는 -> 결국 n개의 Flip Flop으로 이루어진 -> Flip Flop의 Group을 말하는 것입니다.레지스터는 컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억 장소이다. 일반적으로 현재 계산을 수행중인 값을 저장하는 데 사용된다. 대부분의 현대 프로세서는 메인 메모리에서 레지스터로 데이터를 옮겨와 데이터를 처리한 후 그 내용을 다시 레지스터에서 메인 메모리로 저장하는 로드-스토어 설계를 사용하고 있다. 레지스터는 메모리 계층의 최상위에 위치하며, 가장 빠른 속도로 접근 가능한 메모리이다. 최신 프로세서에서 레지스터는 대개 레지스터 파일로 구현되지만, 과거에는 플립플롭, 마그네틱 코어, 박막 필름 메모리 등으로 구현되기도 했다.

캐시는

cpu와 별도로 있는 공간이며,

메인 메모리와 cpu 간의 속도 차이를 극복하기 위한 것이라는 것이고

 

레지스터는

cpu 안에서 연산을 처리하기 위하여 데이터를 저장하는 공간이다.

 

-----------------------------------------------------------------------------------------------------------------------------------

 

 

트리순회에는 전위순회, 중위순회, 후위순회가 있다.

전위순회는 루트,왼,오 순서

중위순회는 왼,루트,오 순서

후위순회는 왼,오,루트 순서

 

-dfs, bfs와 헷갈리지 말자!

 

-------------------------------------------------------------------------------------------------------------------------------------

 

 

객체지향의 특징

객체 지향 프로그래밍의 4가지 특징은 각각 추상화, 상속, 다형성, 캡슐화이다.

 

추상화: 중요한 부분을 강조하기 위해 불필요한 세부 사항들은 제거하고 가장 본질적이고 공통적인 부분만을 추출하여 표현, 객체의 공통적인 속성과 기능을 추출하여 정의하는것,  역할과 구현의 분리

 

상속: 기존의 클래스를 재활용하여 새로운 클래스를 작성, 상위 클래스로부터 확장된 여러 개의 하위 클래스들이 모두 상위 클래스의 속성과 기능들을 간편하게 사용, 반복적인 코드를 최소화하고 공유하는 속성과 기능에 간편하게 접근

 

다형성: 어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질, 어떤 객체의 속성이나 기능이 그 맥락에 따라 다른 역할을 수행할수 있는 객체 지향의 특성을 의미

 

캡슐화: 클래스 안에 서로 연관있는 속성과 기능들을 하나의 캡슐(capsule)로 만들어 데이터를 외부로부터 보호하는 것