기술 면접용 질문들/운영체제 관련 맨텀 2021. 4. 16. 18:24
프로세스(Process) 1. 운영체제로부터 시스템 자원을 할당받는 작업의 단위 2. 컴퓨터에서 연속적으로 실행되고 있는 프로그램 3. 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 - 하나의 프로세스는 코드 영역, 데이터 영역, 스택 영역, 힙 영역의 4가지 영역으로 이루어져 있음. 스레드(Thread) 프로세스가 할당받은 자원을 이용하는 여러 실행 흐름의 단위 - 각 스레드는 프로세스 내에서 스레드마다 스택 영역과 레지스터영역을 별도로 할당받는다. - 코드 영역, 데이터 영역, 힙 영역은 공유한다. 멀티 프로세스 응용프로그램을 여러 개 프로그램 인스턴스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 함 장점 - 프로세스 중 하나에 문제가 발생하면 해당 프로세스만 중지된다. 단점 - 각각의 프로..
기술 면접용 질문들/유니티 관련 맨텀 2021. 4. 16. 14:44
코루틴(Coroutine) - 여러 개의 루틴이 동시에 실행되며 서로 제어를 넘겨주는 방식. - yield return을 사용하여 현재 위치를 기억하고 다른 루틴에게 수행 권한을 넘겨서 여러개의 쓰레드가 동시 동작하는 것과 같은 효과를 제공한다. - 실제로는 단일 쓰레드 이기 때문에 멀티쓰레드가 가지는 교착 상태 경합 등의 문제에서 자유롭다는 장점이있다. - 특정 조건이 충족될때까지 실행 상태를 지연시킬 수 있다. - GameObject의 Active가 off가 된다면 이미 실행 중이었던 코루틴은 정지되며, StartCoroutine은 오류가 발생한다. - 정지된 코루틴은 GameObject가 다시 Active가 되더라도 재 실행되지 않는다. public void MyMethod() { StartCoro..
기술 면접용 질문들/프로그래밍 관련 맨텀 2021. 4. 15. 19:36
선형구조 - 자료를 순차적으로 나열한 형태 - 배열, 연결 리스트, 스택, 큐 비선형 구조 - 하나의 자료 뒤에 다수의 자료가 올 수 있는 형태 - 트리, 그래프 배열(Array) - 메모리를 연속적으로 미리 선언하고 사용함. - 중간 요소를 삭제할 경우, 해당 부분은 메모리를 돌려받지 않고 놔둠. - 장점 : 메모리 주소가 연속적이다. 접근 빠름. - 단점 : 배열의 크기를 변경할 수 없다. 동적 배열(ArrayList) - 연속된 메모리 공간을 사용한다. - 배열의 크기를 유동적으로 조정 가능하다. - 저장 가능한 메모리 용량(Capacity)과 현재 사용 중인 공간의 크기(Size)가 있으며, 현재 가용량(Capacity)을 넘어갈 때 더 큰 공간의 메모리를 할당함. (전체 이동할 때 비용이 크기 ..
기술 면접용 질문들/프로그래밍 관련 맨텀 2021. 4. 15. 18:20
Big-O 표기법 - 점근 표기법 이라고도 한다. - 알고리즘의 효율의 지표를 나타내는 표기법 - 실행속도는 환경에 의존적이며, 입력 N의 크기에 따라 영향을 받을 수 있기 때문에 지표화 시키기 어려움. 때문에 차선책인 Big-O 표기법을 사용함. O(N^2) - O는 Order Of 라고 읽는다. 1) 수행 연산의 개수를 대략적으로 판단 - 일반 연산은 1개 - N번 수행되는 반복문 안에 있다면 N개 - N번 반복되는 중첩반복문에 있다면 N^2개 2) 대표 항목만 남긴다. - 차수가 가장 높은 것만 남기고, 상수 또한 삭제한다. public int Test(int N) { int result = 0; for(int i = 0; i < N; i++) result += i; for(int i = 0; i ..
기술 면접용 질문들/프로그래밍 관련 맨텀 2021. 4. 14. 21:55
추상화(Abstraction) - 객체들의 공통적인 특징을 도출해 내는 것. - 우리가 구현하는 객체들이 가진 공통적인 데이터와 기능을 도출해 내는 것을 의미한다. 캡슐화(Encapsulation) - 연관 있는 변수와 함수를 하나로 묶는 것 (클래스) - 클래스라는 캡슐에 분류된 집단 별로 넣어 실체화 하면 객체를 만들 수 있다. - 접근한정자를 통해 객체가 내부적으로 기능을 어떻게 구현하는지를 감출 수 있어, 정보은닉이 가능하다. - 목적 : 내부의 기능 구현이 변경되더라도 그 기능을 사용하는 코드는 영향을 받지 않도록 함. 상속성(Inheritance) - 재사용성과 확장성 - 상위 클래스의 특징을 하위 클래스에서 물려받는 것. - 상위 클래스에 정의된 동작을 다시 사용, 확장 및 수정하는 하위 클..
기술 면접용 질문들/운영체제 관련 맨텀 2021. 4. 13. 23:34
가비지 컬렉션(GC) GC는 메모리 관리 기법 중 하나이다. C와 C++로 개발할 때에는 객체를 선언하기 위해 메모리를 직접 할당하고, 사용이 끝나면 메모리를 해제해야 한다. (Unmanaged 언어) 하지만 C#과 Java에서는 가비지 컬렉터(GC)가 자동으로 메모리를 관리해 준다. (Managed 언어) 참고하면 좋은 글 : 닷넷 가비지 컬렉션 다시 보기 - Part I http://www.simpleisbest.net/post/2011/04/01/Review-NET-Garbage-Collection.aspx GC의 동작 방식 Mark and Sweep 알고리즘 1. 최상위 레퍼런스를 위한 GC Root가 존재한다. (여러개인듯) 2. 이 GC Root에서부터 참조를 타고 가면서 방문한 레퍼런스들에 ..