전체 글 (209) 썸네일형 리스트형 C++ 면접 질문) "boost asio를 사용하여 어떻게 event-driven architecture를 구현하셨나요?" boost asio 소개:- boost 비동기 지원 라이브러리 io_context 소개:- 기본적으로 job queue를 관리하고 실행하는 단위라고 보면 됨- post, dispatch 함수를 통해 job 등록이 가능- 네트워크 소켓, 타이머, 파일 I/O 등 시스템 I/O 처리에 대한 callback 이 job인 경우 I/O 처리가 완료된 시점 job 등록됨- 즉, OS I/O 멀티플렉싱 활용 비동기 처리 가능: 특정 I/O 작업에 대한 callback 등록 필요 - OS I/O 멀티플렉싱: epoll, kqueue 등 을 사용하여 소켓에 데이터가 오거나 타이머가 만료된 이벤트를 감지 io_context 특징:- 내부적으로 job queue 관리 - job은 FIFO 순으로 처리됨- job이 비동기.. C++ 면접 질문) "빌드 시 컴파일러에서 일어나는 과정에 대해 설명해주세요." 빌드 과정은 크게 전처리, 컴파일, 어셈블, 링크 단계로 나뉩니다. 전처리 단계에서 컴파일러는 다음과 같은 일을 합니다:소스 코드 내 #로 시작하는 전처리 지시문 처리 하여 전처리된 코드 생성#include // iostream 이라는 파일 내용을 다시 전처리 후 복붙#define VALUE 10 // 코드 내 모든 "VALUE" 가 "10" 으로 다시 타이핑됨const int value = VALUE; // 예) const int value = 10 으로 변경됨#ifdef, #ifnedf, #endif 등 // 조건부로 일부 코드를 컴파일러가 못 보게 함.#ifndef HEADER_GUARD_H // 예) 헤더가드#define HEADER_GUARD_H#endif // HEADER_GUARD_H 컴파.. C++ 면접 질문) "어떤 때 reference 쓰고 어떤 때 value를 써야 할까요?" 매개변수로 어떤 때 reference를 쓰고 어떤 때 value를 쓰는지 먼저 말씀드릴께요.reference를 쓰는 기준:복사 비용이 클 때void sub_process(const std::string& text) { // read text without copying}원본 수정이 필요 할 때void modify_value(int& value) { value += 1; // access value by reference}value를 쓰는 기준:const reference 안쓰고 간결하게 사용 (복사 비용이 거의 없으므로)int use_without_using_const(int value) { return value + 1;}int use_using_const_safely(const int& valu.. C++ 면접 질문) "언제 Reference를 쓰고 언제 Pointer를 써야 할까요?" Reference와 Pointer의 차이점은 다음 글에서 알아보았습니다.C++ 면접 질문) "C++에서 Reference 와 Pointer의 차이점은?"언제 Reference를 쓰고 언제 Pointer를 써야 할 지 기준은 다음과 같습니다. 기준 1. Pointer가 굳이 필요없는 곳은 다 Reference 쓴다. Reference가 쓰이는 곳:함수 매개변수함수 반환값임시 객체아래 예시에서 임시 객체는 리터럴이 std::string 으로 객체 변환 되면서 생성됨임시 객체 (std::string) 는 stack에 저장됨임시 객체는 reference가 const 참조로 바인딩 한다면, reference가 사용되는한 임시 객체는 살려둠 (C++ 임시 객체 수면 연장 규칙)const std::string& ge.. C++ 면접 질문) "C++에서 Reference 와 Pointer의 차이점은?" 다음 예시 에서 30으로 변경된 값은?int a = 10;int& ref = a;ref = 30; ref 일까? 아니다. 답은 a 이다. 여기서 차이점 1. reference는 초기화 후 가리키는 대상을 변경 할 수 없다 위는 포인터라면 변경 가능하다int b = 10;int* b_ptr = &b;*b_ptr = 30;Reference는 초기화 후 대상을 변경 할 수 없다.여기서 차이점 2. 초기화 시 무조건 가리키는 대상이 정해져야 한다 가 발생한다.또한, NULL 값을 넣어 초기화 하는 것도 불가능하다. 그대신 Referece는 안전성을 갖게 된다. Nullpointer exception 이라던지, delete의 강제성이 없다.단, 가리키던 객체가 사라지면, reference는 엄한 곳을 가리키게 .. C++ 면접 질문) delete[] 를 통해 얼마나 해제 할지 알 수 있는 이유는? metadata 개념이 있다.metadata에는 array에 몇 개의 element가 존재하는지 기록되어있다.즉, stack에 있는 메모리 포인터가 얼마나 heap에 메모리를 할당하였는지 기록하고 있다고 볼 수도 있다. 그럼 metadata는 어디에 저장될까? 예시)int* arr = new int[10]; 라고 할 때, 10 개 정수를 저장 할 공간 외 metadata를 위한 추가 공간을 할당 한다. meatadata는 new[]에 의해 반환 되는 memory address (heap) 의 앞부분에 위치하고 있다. 만약 delete[]에 의해 별도 정의한 class의 destructor가 불리는 상황이라면? metadata에 적힌 element 수만큼 destructor가 불린다. 1분 글쓰기. 결론과 근거 3가지. 결론: 그와 싸워 이겨 그녀를 쟁취하여야 한다.지식과 정보를 거쳐 사고로 도출 근거 3가지 근거 1 그는 강한 남자다,근거 2: 강한 남자를 무찔러야 더 강한 남자다.근거 3: 나는 그의 약점을 알고 있다. 무안사고가 밝힌 현재 저비용 항공사의 비밀 feat. 보잉 737-800 여러분은 지금까지 속고 있었습니다!저비용 항공사들은 고객들의 목숨을 담보로 높은 이익을 추구하고 있었습니다.지금 당장 그 이유를 들어보시고., 분노를 느끼셔야 합니다.저비용 항공사는 왜 저렴할까요?여러분은 저비용 항공사가 단순히 서비스 혜택이 적어서 가격이 저렴하다고 생각하셨나요?하지만 이보다 더 근본적인 이유가 있습니다.이번에 사고가 난 보잉 737-800 항공기처럼, 비행기 자체가 오래된 경우가 많다는 점입니다.사고의 주인공: 15년 된 중고 항공기이번 사고가 난 항공기는 기령(비행기 나이)이 15년이나 되었으며,이전에는 라이언에어에서 사용되던 중고 항공기였습니다.오래된 항공기를 저비용 항공사에서 인수해 운항하다 보니, 사고 위험이 높아질 수밖에 없죠.보잉 737-800, 대한민국에서 가장 많이 운항.. 이전 1 2 3 4 5 6 7 ··· 27 다음