본문 바로가기

분류 전체보기

(28)
신입 개발자 기술면접 실전 기출 : IOCP 란? 면접관 : IOCP 에 대해서 설명해 주시겠어요? 나: 먼저, IOCP의 목적은 동시에 수행되는 스레드의 상한을 설정해서 CPU의 자원을 최대한 효율적으로 사용하게 하는 것입니다. 나: IOCP는 Overlapped I/O가 완료되면, 이를 감지해서 사용자에게 알려주는 역할을 합니다. 면접관 : Overlapped I/O가 뭔가요? 나 : Overlapped I/O는 I/O에 대한 처리를 Device Driver에 권한을 넘김으로서 별도의 스레드 없이 비동기로 둘 이상의 데이터 전송을 중첩시키는 것을 의미합니다. Device Driver는 작업을 끝내면 유저 버퍼에 데이터를 채워넣으므로 I/O에 대한 처리를 중첩해서 처리할 수 있습니다. 면접관 : Overlapped I/O와 Nonblock Socket..
신입 개발자 기술면접 C++ : Cast 연산자 (🆚 C) Dynamic_cast가 내부적으로 업, 다운 캐스팅이 가능한지 검사해 준다고 했는데, C++에서 C#처럼 리플렉션이 없는데 어떻게 가능한가? 가상함수 테이블을 이용하여 캐스팅이 가능한 자료인지 검사합니다. C에서는 일반적으로 (타입)변수 형식을 사용합니다. 이 캐스팅 방식은 타입 안전성을 제공하지 않으며, 어떠한 타입의 변환도 강제할 수 있습니다. C 캐스팅은 컴파일러가 타입 오류를 잡아내지 못할 수 있어 버그가 발생하기 쉽습니다. int i = 3; double d = 3.5; cout 강제 캐스팅을 사용하면 런타임시 seg fault, runtime error 등 예기치 못한 에러를 발생시킬 수 있는데 컴파일러딴에서 오류를 잡아 추후 문제가 될 가능성을 줄여주는 이점을 가지고 있다. 상속관계에 있어..
신입 개발자 기술면접 알고리즘 : 동적계획법 DP #include using namespace std; long long d[100]; long long fibo(int x){ if(x==1 || x==2){ return 1; } if(d[x]!=0){ return d[x]; } d[x]=fibo(x-1)+fibo(x-2); return d[x]; } int main(){ cout
신입 개발자 기술면접 C++ 손코딩 : Array, Vector, List, Stack, Queue, Tree, Heap, Hash 모듈 없이 구현 1. Vector, List, Map 에 대해서 설명해 보세요. stl에 등록되어 있는 자료구조들로서 vector는 동적배열로 이루어져 있으며, List는 더블링크드 리스트로 이루어져있습니다. Map을 Key와 Value를 쌍으로 이루며 레드블랙트리 알고리즘으로 이루어져 있어서 빠른 탐색속도를 자랑합니다. 2. Vector, List 의 차이에 대해서 설명하세요. vector는 동적배열의 클래스 탬플릿이라고 할 수 있습니다. vector객체는 요소가 추가되거나 삭제될 때마다 자동으로 메모리를 재할당하여 크기를 동적으로 변경합니다. list는 이중연결리스트의 클래스 탬플릿이라고 할 수 있습니다. 이 컨테이너는 모든 요소에서 양방향 접근, 빠른 삽입과 삭제를 할 수 있지만, 임의 접근은 불가합니다. 또한 리..