본문 바로가기

분류 전체보기

(28)
신입 개발자 기술면접 C++ 손코딩 : 트리 순회 참고 : https://m.blog.naver.com/PostView.naver?blogId=sedi1017&logNo=223144612932&proxyReferer=https:%2F%2Fm.search.naver.com%2Fsearch.naver%3Fwhere%3Dm%26sm%3Dmtb_jum%26query%3D%25EC%25A0%2584%25EC%259C%2584%2B%25EC%25A4%2591%25EC%259C%2584%2B%25ED%259B%2584%25EC%259C%2584 이진 트리의 순회 알고리즘은 재귀적으로 각 노드를 방문합니다. 각 순회 방법(전위, 중위, 후위)는 방문 순서를 결정합니다. 전위, 중위, 후위의 차이는 루트 노드를 몇 번째로 탐색하느냐?? 차이입니다. 전위 순회(Pre-o..
신입 개발자 기술면접 C++ : 스마트 포인터 (🆚GC) 📌RAII 패턴 이란? RAII (Resource Acquisition Is Initialization)는 C++에서 자주 사용되는 프로그래밍 기법으로, 객체의 생명주기와 자원 관리를 관련짓는 방법론입니다. 이 패턴의 핵심 아이디어는 자원의 할당과 초기화를 객체의 생성과 결부시키고, 자원의 해제를 객체의 소멸과 연결하는 것입니다. RAII는 C++의 스마트 포인터 와 같은 표준 라이브러리 구성 요소에서 널리 사용됩니다. 이들 스마트 포인터는 자동으로 메모리를 관리하여 개발자가 수동으로 new와 delete를 사용하여 메모리를 관리하는 복잡성을 줄여줍니다. 📌스마트 포인터란? #include 헤더로 사용이 가능하다. C++ 프로그램에서 new 키워드를 사용하면, delete로 해제할 수 있다. C++은 메..
C++ 개발자 면접 체크리스트 C++의 중급 수준에 있다고 언급했을 때, 면접관은 여러분이 기본적인 문법을 넘어서 C++의 고급 기능들을 어느 정도 숙지하고 있으며, 실제 프로젝트나 문제 해결에 이러한 지식을 적용할 수 있음을 기대할 것입니다. 여기에 몇 가지 근거를 제시해드릴게요. 객체 지향 프로그래밍(OOP)에 대한 이해: 클래스와 객체의 사용, 상속, 다형성, 캡슐화 등 객체 지향 프로그래밍의 핵심 개념에 익숙하고, 이를 프로젝트에 어떻게 적용했는지 설명할 수 있어야 합니다. 표준 라이브러리 사용 경험: STL(Standard Template Library)의 주요 컴포넌트들(예: 벡터, 맵, 세트, 알고리즘 등)을 어떻게 사용하는지, 그리고 이를 통해 프로젝트에서 어떤 문제를 해결했는지 구체적인 예를 들 수 있어야 합니다. 메..
신입 개발자 인터뷰 : 동기 비동기 블록 논블록 꼬꼬무 🏮 🐱 동기 비동기 블로킹 논블로킹이 무엇인가요? 동기/비동기 = 호출당한 함수의 종료를 누가 처리하느냐 블로킹/넌블로킹 = 제어권이 누구에게 돌아가느냐 동기 (Synchronous) 는 작업의 순차적인 진행을 의미합니다. 예: 데이터베이스 시스템에서 트랜잭션이 순차적으로 실행됩니다. 한 트랜잭션이 완료되기 전까지 다음 트랜잭션은 시작되지 않습니다. 이는 데이터의 일관성과 무결성을 유지하는 데 중요합니다. 탄생 배경: 초기 컴퓨팅 시스템에서는 작업들이 순차적으로 실행되었습니다. 한 작업이 완료되어야 다음 작업이 시작될 수 있었으며, 이러한 동기적 처리는 프로그래밍을 단순하고 직관적으로 만들었습니다. 비동기 (Asynchronous) 는 작업의 완료에 대한 콜백이나 이벤트같은 알림을 기반으로 합니다. 즉, 작..