본문 바로가기

면접 준비3

기술면접 list - C/C++ C와 C++의 차이http://jjoreg.tistory.com/entry/C-%EA%B3%BC-C%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90 malloc, new 차이점- malloc()는 C의 헤더 파일에서 지원하는 함수로, 인자로 할당할 size를 받는다. 기본적으로 void * 형태의 포인터를 return 하기 때문에 할당할 포인터 자료형에 맞게 casting이 필요하다. 메모리 해제는 free()를 사용한다.- new 는 C++ 자체에서 지원하는 키워드로 따로 헤더 파일이 필요없다. malloc과는 다르게 할당할 객체의 크기를 알아서 계산하여 heap에 할당하기 때문에 size를 입력할 필요가 없다. 또한 객체 생성시 생성자를 자동으로 호출하기 때문에 생성과 초기화가 동시.. 2017. 12. 6.
기술면접 list- 자료구조 자료구조 배열(Array)- 정적으로 필요한 만큼만 원소를 저장할 수 있는 공간이 할당됨. 각 원소의 주소는 연속적으로 할당됨. - index를 통해 O(1)에 접근 가능. - 삽입, 삭제는 O(N)- 지정된 개수를 초과하는 경우 배열의 크기를 재할당한 후 복사해야함 리스트- 노드(Node)들의 연결로 이루어진 자료구조- 크기 제한이 없다(heap 용량이 충분하다면).- 다음 노드에 대한 참조를 통해 원소를 접근(O(N))- 노드의 삽입, 삭제에 강점을 가짐(O(1)) ArrayList- 동적으로 크기가 조정되는 배열- 배열이 가득 차는 경우 알아서 그 크기를 2배로 할당하고 복사를 수행- 재할당에 걸리는 시간은 O(N)이지만, 자주 일어나는 일이 아니기 때문에 접근시간은 O(1) 스택(Stack)- L.. 2017. 11. 14.
기술 면접 list - 운영체제 프로세스와 스레드의 차이key point: 운영체제에서 작업을 실행할 때 자원을 할당하는 단위, 멀티 스레드로 구현 시 장단점프로세스 : 운영체제로부터 CPU 자원을 할당받는 작업의 단위. 운영체제로부터 프로세서를 할당받음과 동시에 운영에 필요한 주소 공간, 메모리 등 자원을 할당받게 됨. 스레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위. 한 프로세스 내에서 동작되는 여러 실행의 흐름이며, 프로세스 내의 주소 공간이나 자원들을 같은 프로세스 내의 스레드끼리 공유하면서 실행된다. 멀티 프로세스로 처리할 수 있는 것을 굳이 멀티스레드로 하는 이유- 프로세스를 생성하여 자원을 할당하는 시스템 콜이 감소함으로서 자원의 효율적 관리가 가능.- 프로세스 간의 통신(IPC)보다 스레드 간의 통신의 비용이 .. 2017. 10. 27.