본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

눈떠보니 기술 면접 전날 with JS, Python 상세페이지

눈떠보니 기술 면접 전날 with JS, Python작품 소개

<눈떠보니 기술 면접 전날 with JS, Python> 2019 코로나 팬데믹 기간에 IT 시장이 크게 성장하면서 개발자 구인난이 일어났고, 많은 사람이 개발자가 되겠다고 뛰어들었습니다. 그러나 코로나 팬데믹 기간이 끝나면서 개발자 채용 시장에는 한파가 닥쳤습니다. 2023 하반기 현재 IT 업계 취업 현황은 여전히 개발자를 구하는 추세지만 경력 위주의 검증된 개발자를 채용하는 분위기로 바뀌었습니다. 그러나 가트너가 발표한 자료에 따르면 IT 업계는 올해(2023) 4조 6000억 달러(약 6,072조 원)의 시장 규모를 형성할 것으로 예측했습니다. 경제 혼란에도 불구하고 소프트웨어(SW) 부문은 올해 두 자릿수 성장(13%)을 전망하였으므로 전망은 밝습니다. 더불어 실력이 검증된 개발자들은 경기 침체와 상관없이 개발 능력에 따라 연봉을 올려 대기업으로 이직하기도 하고 조기 취업하기도 합니다.

시니어 레벨의 개발자를 구하는 IT 시장의 흐름 속에서 신입 개발자들이 취업에 성공하려면 무엇이 필요할까? 많은 현업 개발자가 업무를 수행할 때 프로그램을 구현은 하지만 자신의 쓰는 코드가 왜 그렇게 돌아가는지 모르고 쓰는 경우도 많습니다. 신입 개발자라도 기본이 탄탄하고 프로그램을 구현할 수 있다는 능력을 어필할 수 있다면 충분히 승산이 있다고 생각합니다. 실제로 학원이나 부트캠프에서 프로그래밍을 배우는 입문자들은 코드 구현을 중점으로 연습하며 프로그래밍 언어, CS에 관한 부분은 비중이 작거나 시간이 부족해 이해하지 못하고 넘어가기도 합니다. 전공자들은 수업을 들었지만 설명할 수 없다고 말합니다. 왜냐하면 방대한 개념을 짧은 시간 안에 숙지하기란 쉽지 않은 일이며, 배운 내용을 깔끔하고 명확하게 설명하는 능력은 또 다른 문제이기 때문입니다. 그러므로 신입 개발자들이 촉박한 시간 안에 핵심 내용을 숙지하고 효율적으로 면접을 대비할 수 있으면 좋겠다고 생각하여 이 책을 집필하게 되었습니다.

기술 면접 대비를 위해 프론트엔드와 백엔드, CS와 깃허브 분야로 카테고리를 나누고 자주 등장 하는 면접 질문을 선정하여 답변을 정리하였습니다. 프론트엔드는 자바스크립트를 기반으로 하고, 백엔드는 파이썬을 기반으로 작성되었습니다. 키워드를 넣어 답안을 기억하고 떠올리기 쉽도록 하였습니다. 답안은 면접관이 집중하여 들을 수 있도록 30초 안에 답변할 수 있는 길이의 요약 답변과 구체적인 개념 설명이 담긴 답변으로 두 가지 버전을 제작하였습니다. 또한 추가적이 꼬리 질문에 대한 답변과 깊이 있는 이해를 위해 추가 설명 자료를 준비하여 한 권 만으로도 부족함이 없도록 신경 썼습니다.

기술 면접을 고른 후 출제 빈도 난이도를 고려하여 질문을 추렸습니다. 이후 각자 파트를 맡아 답변을 작성하였습니다. 정기적인 토론을 통해 다른 사람이 작성한 답안을 보고 피드백을 교환하여 자신이 맡은 주제 외에도 전체적으로 보면서 추가 답변이나 수정 사항을 반영하였습니다. 주 1회 이상 프론트엔드와 백엔드 개발자들이 함께 회의하면서 모르는 부분을 공부하고 부족한 부분을 보완하는 방식으로 협업하였습니다. 피그잼을 이용해 이미지 작업을 추가하여 면접 시 개념에 도움이 될 수 있도록 노력하였습니다.

비전공자인 개발자는 상세 답변과 함께 추가 자료를 참고하여 개념 공부를 함께 할 수 있고 전공자인 개발자는 짧은 시간 내에 정돈된 답변으로 면접관을 사로잡을 수 있는 연습을 할 수 있습니다. 개발에 입문하려는 사람이라면 방대한 정보 속에서 프로그래밍에 대한 큰 줄기를 파악하고 핵심 개념을 익힐 수 있는 좋은 책이 될 것입니다. 희망하는 회사에 지원하여 높은 경쟁률을 뚫고 기술 면접의 기회를 잡았다면 합격이 간절할 것입니다. 기술 면접까지 주어진 시간이 많지 않기에 소중한 시간을 헛되이 보내지 않도록 독자분들과 같은 마음으로 책을 집필하였습니다. 함께 취업 성공의 꿈을 이루어 봅시다. 여러분을 응원합니다!

- 기술 면접이란?

기술 면접이란 개발 역량과 협업 능력을 평가하는 과정입니다. 면접관은 지원자가 보유한 기술 스택, 프로젝트 경험, 컴퓨터 과학 기초 지식 등에 대해 질문하고, 지원자는 자신의 역량과 커뮤니케이션 능력을 보여줄 수 있어야 합니다. 기술 면접은 회사마다 다르게 진행되지만, 일반적으로 실무진이나 팀장급, CTO 등이 면접을 진행합니다.
프론트엔드 개발자는 웹사이트나 웹앱의 사용자 인터페이스를 구현하고, 사용자와의 상호작용을 담당하는 분야입니다. 프론트엔드 개발자가 되기 위해서는 HTML, CSS, JavaScript 등의 웹 표준 기술과 React, Vue, Angular 등의 라이브러리 및 프레임워크에 대한 이해가 필요합니다. 프론트엔드 개발자 기술 면접은 웹 서비스의 사용자 인터페이스를 구축하고 관리하는 데 필요한 역량과 협업 능력을 평가하는 과정입니다. 면접자는 JavaScript와 같은 필수 언어뿐만 아니라, 프레임워크, 웹 접근성 등 다양한 주제에 대해 질문을 받을 수 있습니다. 또한 프로젝트를 통해 문제 해결 능력과 코드 품질을 보여줘야 합니다.

백엔드 개발자는 서버, 데이터베이스, API 등 웹 애플리케이션의 핵심적인 부분을 구축하고 담당하는 분야입니다. 백엔드 개발자는 웹 애플리케이션의 핵심적인 부분을 담당하므로 이러한 부분들을 잘 이해하여 설계하고 구현하며, 보안, 성능, 확장성 등의 이슈를 고려할 수 있어야 합니다. 백엔드 개발의 기본 개념, 사용하는 프로그래밍 언어와 프레임워크, 데이터베이스와 API, 웹 서버와 네트워킹, 알고리즘과 자료구조 등에 대한 질문이 있을 수 있습니다. 또한, 자신의 프로젝트나 경험에 대한 질문도 받을 수 있으므로, 이력서나 포트폴리오에 적은 내용은 잘 설명할 수 있어야 합니다.


저자 소개

강경모
"눈 떠 보니 기술 면접 전날!"을 보셨네요! 여기에서 면접 성공을 위한 비밀이 숨어있습니다. 함께 찾아봐요!
작성한 질문: 데이터베이스, 프로그래밍
GitHub: https://github.com/ggengmo


고동우
기술 면접에 더 이상 겁먹지 않기 위해!
작성한 질문: 웹/브라우저, Python
담당: 컨벤션 검토
GitHub: https://github.com/Ko-udon


김모건
다양한 면접 질문을 모아두었습니다. 함께 취업 에러를 수정해 봐요!
작성한 질문: 네트워크
담당: 피그마(이미지) 작업
GitHub: https://github.com/redcontroller


신명진
중요한 것은 꺾여도 포기하지 않는 마음! 계속 나아가다 보면 좋은 결과가 기다릴 것입니다.
작성한 질문: 자바스크립트, 네트워크
담당: 머릿말
GitHub: https://github.com/mjshin0425


안성진
당신은 이미 멋진 경험과 능력을 갖추고 있습니다. 면접은 그것들을 표현하는 하나의 기회일 뿐입니다. 화이팅하세요!
작성한 질문: 웹/브라우저, 프로그래밍


오정배
기술 면접에 대해 막막하신 분들! 이 책으로 두려움을 같이 덜어내 봐요!
작성한 질문: 운영체제
담당: 백엔드 총괄, 피그마(PDF) 작업
GitHub: https://github.com/Alexmint001


오태권
이 책을 읽는 모두가 멋진 개발자가 되는 그날을 위해!


우준하
내일 있을 면접에서 후회하지 않기 위해!
작성한 질문: HTML/CSS, 웹/브라우저
담당: 레이아웃
GitHub: https://github.com/wooluck210


이승빈
이 책이 예비 주니어 개발자들에게 도움이 되기를 소망합니다!
작성한 질문: 자료구조/알고리즘
GitHub: https://github.com/sungbinlee


이예진
나의 지식을 다른 사람에게 잘 나누는 사람이 될 때까지. ????
작성한 질문: 리액트
담당: 레이아웃
GitHub: https://github.com/YennieJ


이지은
목표한 바를 모두 이뤄보아요!
작성한 질문: 자바스크립트
담당: 컨벤션
GitHub: https://github.com/cutieun


이지현
일단 고! 프론트엔드 개발자입니다.
작성한 질문: 웹/브라우저, 프로그래밍
담당: 총괄, 프론트엔드 총괄, 피그마(PDF) 작업
GitHub: https://github.com/Sleepingoff


임연정
같이 빠르게 정리해 봐요! 응원합니다!
작성한 질문: HTML/CSS
담당: 피그잼(이미지) 작업
GitHub: https://github.com/limm1222


황병헌
책을 집필하는 우리 그리고 이 책을 보게 될 독자분들 이 책을 통해 여러분의 취업 준비에 좋은 결과가 있기를 소망합니다!!
작성한 질문: 암호화/보안
담당: 출판 관리
GitHub: https://github.com/Ruler-H

목차

## Chapter 0. 공통 질문

1. 웹/브라우저

1.1. 쿠키(Cookies), 세션 스토리지(Session Storage), 로컬 스토리지(Local Storage)의 차이에 대해 설명해 주세요.

1.2. 브라우저 동작 과정에 대해서 설명해 주세요.

1.2.1. DNS 프로토콜에 대해서 설명해 주세요.

1.2.2. DOM과 BOM에 대해서 설명해 주세요.

1.2.3. 브라우저의 동작 과정을 상세하게 설명해 주세요.

1.3. 서버 사이드 렌더링과 클라이언트 사이드 렌더링의 차이에 대해 설명해 주세요.

1.3.1. CSR의 동작 과정을 설명해 주세요.

1.3.2. SSR의 동작 과정을 설명해 주세요.

1.3.3. SSR과 CSR의 단점을 보완할 방법이 있나요?

1.4. 웹 브라우저의 렌더에 관해 설명해 주세요.

1.4.1. Reflow와 Repaint가 실행되는 시점에 대해 설명해 주세요.

1.5. 웹사이트 성능 최적화 방법에 대해 설명해 주세요.

1.5.1. 렌더링 최적화에 대한 기준이 있나요?

1.5.2. 라이트하우스가 무엇인가요?

1.5.3. 이미지 최적화를 위해 할 방법이 무엇인가요?

1.6. 브라우저에서 탭 이동 혹은 탭 종료 시에는 세션 스토리지에 어떤 영향을 주는지 설명해 주세요.

1.6.1. 세션 스토리지에 저장된 데이터를 다른 탭으로 이동시킬 수 있나요?

2. 네트워크

2.1. 프록시 서버의 기능에 대해 설명해 주세요.

2.1.1. 리버스 프록시란 무엇인지 포워드 프록시와 비교하여 설명해 주세요.

2.1.2. VPN과 Proxy Server의 차이점에 대해 설명해 주세요.

2.2. HTTP란 무엇인지, HTTP 프로토콜의 가장 큰 특징을 설명해 주세요.

2.2.1. HTTP와 HTTPS의 차이점에 대해 설명해 주세요.

2.2.2. HTTPS 동작 방식을 설명해 주세요.

2.2.3. HTTP 1.1과 HTTP 2.0의 차이를 설명해 주세요.

2.2.4. HTTP 버전별 성능과 기능의 차이점을 설명해 주세요.

2.3. GET, POST, PUT, DELETE에 대해 설명해 주세요.

2.4. URI, URL, URN에 대해 설명해 주세요.

2.5. REST API에 대해 설명해 주세요.

2.5.1. RESTful API와 REST API의 차이점에 대해 설명해 주세요.
2.5.2. REST API의 장단점을 설명해 주세요.
2.5.3. REST API의 사용 사례를 설명해 주세요.

2.6 DNS에 대해 설명해 주세요.

2.6.1. DNS의 기본 동작 방식에 대해 설명해 주세요.

2.7. TCP와 UDP 방식의 차이점에 대해 설명해 주세요.

2.7.1. 동작 순서가 어떻게 되나요?

2.8. SOAP에 대해서 설명해 주세요.

2.9. 웹 호스팅에 대하여 설명해 주세요.

2.9.1. 웹 사이트 속도는 호스트 서버의 위치에 영향을 받나요?

2.10. 웹 서버에 대하여 설명해 주세요.

2.10.1. 웹 서버의 동작 순서는 어떻게 되나요?
2.10.2. WAS와 분리하여 사용하는 이유는 무엇인가요?

3. 프로그래밍

3.1. 형상 관리 도구는 왜 사용하고, 어떤 종류가 있는지 설명해 주세요.

3.1.1. Git과 GitHub의 차이를 설명해 주세요.

3.2. 컴파일 언어와 인터프리터 언어의 차이에 대해 설명해 주세요.

3.2.1. 자바스크립트는 인터프리터 언어인가요?

3.2.2. 컴파일과 인터프리터 두 방식을 모두 쓰는 언어가 있나요?

3.2.3. 컴파일 과정에 대해서 추가적으로 설명해 주세요.

3.3. 객체 지향 프로그래밍에 대해서 설명해 주세요.

3.3.1. 자바스크립트에서의 객체 지향 프로그래밍이란?

3.3.2. 객체 지향 5원칙이란 무엇인가요?

3.3.3. 함수형 프로그래밍이란 무엇인가요?

3.4. 라이브러리와 프레임워크의 차이점에 대해 설명해 주세요.

3.5. 디자인 패턴에 대하여 설명해 주세요.

3.5.1. 파이썬에서 유용한 패턴은 어떤 것들이 있을까요?

3.5.2. Decorator Pattern과 Decorator의 차이를 알고 있나요?

3.6. API rate limiting이란 무엇이며, 그것의 주요 목적에 대해서 설명해 주세요.

3.6.1. 다른 서비스나 서버와의 통신에서 Rate limiting을 적용하는 데 있어서의 주의점은 무엇인가요?

3.6.2. Rate limiting을 위반했을 때 클라이언트나 사용자에게 어떤 응답을 제공하는 것이 좋은가요?

3.7. MTV 패턴에 대하여 설명해 주세요.

3.8. 애자일 개발 방법론에 대하여 설명해 주세요.

3.8.1. 애자일 개발 방법론을 적용하기 위하여 사용되는 프로젝트 관리 도구에 대하여 설명해 주세요.

4. 보안

4.1. CORS란 무엇인가요?

4.1.1. CORS에 대처하는 방법을 구체적으로 설명해 주세요.
4.1.2. CORS를 우회하는 방법에 대해 구체적으로 설명해 주세요.
4.1.3. Cross Origin 요청이란 무엇이고, 어떤 상황에서 CORS Error를 만날 수 있나요?

4.2. XSS에 대해서 간단히 설명해 주세요.

4.2.1. CORS에 대처하는 방법을 구체적으로 설명해 주세요.

4.3. CSRF에 대해서 간단히 설명해 주세요.

4.3.1. CSRF 공격을 막는 방법에는 무엇이 있나요?
4.3.2. XSS와 CSRF 공격의 차이점에 대해 설명해 주세요.

## Chapter 1. 프론트엔드

1. HTML/CSS

1.1. !DOCTYPE이 무엇인지 설명해 주세요.

1.1.1. !DOCTYPE을 선언하지 않으면 어떻게 되나요?

1.2. HTML의 data-속성의 목적을 설명해 주세요.

1.3. meta 태그에 대해 설명해 주세요.

1.3.1. 메타 데이터에 대해 설명해 주세요.

1.4. 시맨틱 태그에 대해 설명해 주세요.

1.4.1. section요소와 article 요소의 사용 용도에 관해 설명해 주세요.

1.5. id와 class 의 차이점을 설명해 주세요.

1.5.1. 선택자 우선순위가 어떻게 되나요?

1.6. CSS에서 박스 모델에 대해 설명해 주세요.

1.6.1. 마진 병합 현상이란 무엇인가요?

1.7. CSS에서 position을 어떻게 사용하는지 설명해 주세요.

1.7.1. 왜 애니메이션을 이용할 때 transform을 이용하는 것이 좋나요?

1.8. CSS에서 c는 cascading을 의미하는데 이에 대한 설명과 캐스캐이딩 시스템의 장점을 설명해 주세요.

1.9. CSS에서 display 속성과 각 요소에 관해서 설명해 주세요.

1.9.1. inline-block은 inline과 block의 특징을 모두 가지고 있기 때문에 어떤 상황에서 사용하면 좋나요?

1.10. 반응형 웹이 무엇이며, 어떤 원리로 동작하는지 설명해 주세요.

1.10.1. 반응형 웹을 만들기 위해 사용하는 단위에 대해 설명해 주세요.

1.10.2. 반응형 웹을 사용하는 이유에 대해 설명해 주세요.

1.10.3. 반응형 웹과 적응형 웹의 차이는 무엇인가요?

2. JAVASCRIPT

2.1. var, let, const의 차이에 대해 설명해 주세요.

2.1.1. var 키워드 대신 let, const 키워드를 사용하는 이유가 있나요?

2.2. 실행 컨텍스트에 대해 설명해 주세요.

2.2.1.호이스팅에 대해 설명해 주세요.

2.2.2. let, const 키워드를 사용하면 호이스팅이 일어나지 않나요?

2.2.3. Temporal Dead Zone이란 무엇인가요?

2.2.4. 스코프 체이닝이 무엇인지 설명해 주세요.

2.3. 클로저에 대해 설명해 주세요.

2.3.1. 클로저를 어떻게 사용하나요?

2.3.2. 스코프는 무엇인지, 어떤 종류가 있는지 설명해 주세요.

2.4. Prototype 에 대해 설명해 주세요.

2.4.1. 자바스크립트의 Prototype 체이닝에 대해 설명해 주세요.

2.4.2. 자바스크립트의 Object.prototype은 무엇인가요?

2.5. this 동작에 대해 설명해 주세요.

2.6. 동기와 비동기에 대해 설명해 주세요.

2.6.1. 이벤트 루프에 대해서 설명해 주세요.

2.6.2. 태스크 큐에 대해서 설명해 주세요.

2.6.3. 비동기의 동작원리를 설명해 주세요.

2.7. Promise , Async, Await이 뭔지 그리고 사용 방법을 설명해 주세요.

2.7.1. promise와 Async, Await의 차이를 설명해 주세요.

2.7.2. promise.all()에 대해 설명해 주세요.

2.7.3. Promise 와 Callback 차이를 설명해 주세요.

2.8. TypeScript와 JavaScript의 차이를 설명해 주세요.

2.8.1. 타입과 인터페이스의 차이점과 왜 사용하는지 설명해 주세요.

2.8.2. 동적 타이핑 언어의 특징에 대해 설명해 주세요.

2.9. 자바스크립트 엔진이 코드를 실행하는 과정에 대해 설명해 주세요.

2.9.1. 자바스크립트 엔진을 구성하는 메모리 힙과 콜 스택에 대해 설명해 주세요.

2.9.2. 자바스크립트 코드를 바이트 코드로 변환하는 과정에 대해 설명해 주세요.

2.9.3. V8 엔진에 대해 설명해 주세요.

2.10. SPA에 대해 설명해 주세요.

2.10.1. MPA(Multiple Page Application)에 대해 설명해 주세요.

2.11. 모듈 번들러와 트랜스파일러에 대해 설명해 주세요.

2.11.1. 모듈 번들러를 왜 사용하나요?

3. REACT

3.1. React를 프로젝트에 도입해야 하는 이유를 설명해 주세요.

3.1.1. 컴포넌트 기반 개발에서 어떻게 재사용을 유도하나요?

3.2. 생명주기에 관해 설명해 주세요.

3.3. Virtual DOM이란 무엇인지 설명해 주세요.

3.4. Props와 State의 공통점과 차이점에 관해 설명해 주세요.

3.4.1. Props Drilling은 무엇이고, 해결 방법은 무엇인지 설명해 주세요.

3.5. Context API에 관해 설명해 주세요.

3.5.1. 왜 Context를 두고 상태 관리 라이브러리들이 생겼나요?

3.6. 클래스형 컴포넌트와 함수형 컴포넌트의 차이에 관해 설명해 주세요.

3.6.1. 함수형의 장점이 더 많으니 반드시 클래스형보다 함수형을 써야 할까요?

3.7. React hooks는 무엇인지 설명해 주세요.

3.7.1. 왜 hook이 나오게 되었나요?

3.8. 상태(State)를 직접 변경하지 않고 set 함수를 사용하는 이유를 설명해 주세요.

3.8.1. 만약 상태를 직접 변경한다면, 어떻게 될까요?

3.9. 리액트의 렌더링 성능 향상 방법에 관해 설명해 주세요.

3.9.1. Lazy Loading은 어떻게 사용되나요?
3.9.2. 제어 컴포넌트와 비제어 컴포넌트는 언제 사용하나요?

3.10. 메모이제이션이 무엇이고 언제 사용해야 하는지 설명해 주세요.

3.10.1. useMemo와 useCallback에 대한 개념과 언제 사용해야 하는지 설명해 주세요.

3.10.2. React.memo는 무엇인지 설명해 주세요.

## Chapter 2. 백엔드

1. 데이터베이스

1.1. RDB와 NoSQL의 차이에 대해 설명해 주세요.

1.1.1. NoSQL의 강점과 약점이 무엇인가요?

1.1.2. DDL, DML, DCL 이란 무엇인가요?

1.2. 데이터베이스에서 인덱스를 사용하는 이유와 장단점을 설명해 주세요.

1.2.1. 일반적으로 인덱스는 수정이 잦은 테이블에선 사용하지 않기를 권합니다. 그 이유에 대해서 설명해 주세요.

1.2.2. 기본키는 인덱스라고 할 수 있을까요? 그렇지 않다면, 인덱스와 기본키는 어떤 차이가 있나요?

1.3. 트랜잭션에 대해서 설명해 주세요.

1.3.1. 데이터를 읽을 때는 트랜잭션을 적용하지 않아도 되는지 설명해 주세요.

1.3.2. 트랜잭션의 롤백 과정에 대해 설명해 주세요.

1.4. ACID에 대해서 설명해 주세요.

1.4.1. ACID 속성과 BASE 속성의 차이점을 설명해 주세요.

1.4.2. 데이터 정규화와 비정규화에 대해서 설명해 주세요.

1.5. 트랜잭션 격리수준에 대해서 설명해 주세요.

1.5.1. 모든 데이터베이스 관리 시스템(DBMS)이 4개의 격리 수준을 구현하나요? 그렇지 않다면 그 이유를 설명해 주세요.

1.5.2. 트랜잭션을 병행으로 처리한다면 발생할 수 있는 문제를 설명해 주세요.

1.6. Redis에 대해서 설명해 주세요.

1.6.1. Redis는 언제 사용하는지 설명해 주세요.

1.6.2. Redis 사용 시에 주의해야 할 점을 설명해 주세요.

1.7. Elasticsearch에 대해서 간단히 설명해 주세요.

1.7.1. Elasticsearch 클러스터(Cluster)에 대해서 간단하게 설명해 주세요.

1.7.2. Elastic Search의 키워드 검색과 RDBMS의 LIKE 검색의 차이에 대해 설명해 주세요.

1.8. JOIN에 대해 설명해 주세요.

1.8.1. JOIN 연산 시 성능상 주의해야 할 점을 설명해 주세요.

1.8.2. FULL OUTER JOIN을 어떤 상황에 사용하는지 설명해 주세요.

1.9. MongoDB에 대해서 간단히 설명해 주세요.

1.9.1. MongoDB의 스키마리스(schemaless) 특징을 간단히 설명해 주세요.

1.9.2. MongoDB의 Replica Set이 무엇인지 간단히 설명해 주세요.

2. 자료구조 & 알고리즘

2.1. 배열과 연결 리스트의 차이점에 대해서 설명해 주세요.

2.1.1. 배열과 연결 리스트 중 어떤 상황에서 어떤 데이터 구조를 선택해야 하나요?

2.1.2. 연결 리스트에서 노드를 삭제할 때 메모리 누수를 어떻게 방지할 수 있나요?

2.2. 스택과 큐의 차이를 설명해 주세요.

2.2.1 스택과 큐의 주요 용도는 무엇인가요?

2.3. 해시 테이블은 무엇이며 어떤 상황에 사용하는지 설명해 주세요.

2.3.1. 해시 테이블에서 충돌(Collision)은 어떻게 처리되나요?

2.4. 트리 자료구조에 관해 설명해 주세요. 이진 트리와 이진 탐색 트리의 차이는 무엇이 있나요?

2.4.1. 이진 탐색 트리를 활용한 실제 응용 사례나 문제 해결에 어떻게 활용되는지 예시를 제시해 주실 수 있을까요?
2.4.2. 이진 탐색 트리의 시간 복잡도는 어떻게 계산되며, 어떤 상황에서 최악의 시간 복잡도를 갖을 수 있을까요?

2.5. 그래프 자료구조와 그래프 탐색 알고리즘에 대해 설명해 주세요.

2.5.1. 그래프 탐색 알고리즘을 활용하여 어떻게 최단 경로를 찾을 수 있는지 자세히 설명해 주실 수 있을까요?
2.5.2. 그래프 자료 구조를 사용하여 현실 세계의 어떤 문제를 해결할 수 있는 예를 들어볼 수 있을까요?

2.6. 시간 복잡도와 공간 복잡도란 무엇이며 언제 사용되는지 설명해 주세요.

2.6.1. 시간 복잡도와 공간 복잡도 중 어느 것이 더 중요한가요?
2.6.2. 시간 복잡도를 최적화하는 방법 중 어떤 기술이 자주 사용되나요?

2.7. 이진 탐색 알고리즘을 설명해 주세요.

2.7.1. 이진 탐색 알고리즘의 동작 과정을 설명해 보세요.
2.7.2. 다른 검색 알고리즘과 비교했을 때 어떤 장점을 가지고 있나요?

2.8. 다이내믹 프로그래밍이 무엇이며 어떤 문제에 사용하는지 설명해 주세요.

2.8.1. 다이내믹 프로그래밍을 사용한 예제를 들어볼 수 있을까요?
2.8.2. 다이내믹 프로그래밍과 분할 정복의 차이점은 무엇인가요?

2.9. 그리디 알고리즘과 다이내믹 프로그래밍의 차이점에 대해 설명해 주세요.

2.9.1. 그리디 알고리즘을 사용할 때 최적해를 보장할 수 없는 상황은 어떤 경우인가요?

3. 암호화 & 보안

3.1. DDoS 공격 대해서 설명해 주세요.

3.1.1. DDoS 공격을 막기 위한 방법에 대해서 설명해 주세요.

3.1.2. Dos(Denial of Service)와 DDos(Distributed Denial of Service)의 차이점에 대해서 설명해 주세요.

3.2. JWT(JSON Web Token)에 대해서 간단히 설명해 주세요.

3.2.1. JWT의 만료된 토큰을 다시 갱신하는 방법에 대해 설명해 주세요.

3.2.2. JWT의 서명 검증하는 과정을 간단하게 설명해 주세요.

3.3. OAuth에 대해서 간단히 설명해 주세요.

3.3.1. OAuth는 어떻게 작동하나요?

3.4. SQL Injection에 대해서 간단히 설명해 주세요.

3.4.1. SQL Injection을 방지하기 위한 방법에 대해 설명해 주세요.

3.5. 단방향 암호화에 대해서 간단히 설명해 주세요.

3.5.1. 단방향 암호화로 해시된 비밀번호가 유출되면 어떤 문제가 발생할 수 있나요?

3.5.2. 해시 값 유출에 대한 문제를 방지하기 위한 방법에는 무엇이 있나요?

3.5.3. 솔트(salt)란 무엇이며, 왜 사용하는지 설명해 주세요.

3.6. 블록체인에 대해서 설명해 주세요.

3.6.1. 블록체인의 거래 검증 과정에 대해 설명해 주세요.

3.6.2. 블록체인에 관련된 공격 중 ‘51% 공격’이란 무엇인가요?

3.7. 비대칭키 암호화, 대칭키 암호화에 대해 간단히 설명해 주세요.

3.7.1. 대칭키 암호화와 비대칭키 암호화 중 어떤 것이 더 안전한가요?

3.7.2. 암호화 방식을 선택할 때 고려할 요소는 무엇이 있나요?

3.8. 정보보안 3요소에 대해서 설명해 주세요.

3.8.1. 각 정보보안 요소를 보장하기 위한 기술에는 무엇이 있나요?

4. Python

4.1. Python의 GIL(Global Interpreter Lock) 이 무엇인지 설명해 주세요.

4.1.1. 그럼 멀티 쓰레드 환경에선 어떻게 사용하면 될까요?

4.1.2. python의 메모리 구조와 GC에 대해서 설명해 주실 수 있나요?

4.1.3. 뮤텍스(Mutex)에 대해서는 아시나요?

4.2. 파이썬의 가비지 컬렉션에 대해 설명해 주세요.

4.2.1. 튜플의 값은 변경이 가능한가요?

4.3. 파이썬의 내장되어 있는 정렬 함수들에 대해서 설명해 주세요.

4.3.1. Timsort 알고리즘에 대해서 알고 있나요?

4.4. 리스트와 튜플의 차이점에 대해 설명해 주세요.

4.4.1. 튜플의 값은 변경이 가능한가요?

4.5. 파이썬의 실행 과정에 대해서 설명해 주세요.

4.5.1. 마우스 이벤트의 프로퍼티

4.6. 파이썬에서 변수 선언 시, 데이터 유형은 어떻게 정의되는지 설명해 주세요.

4.7. 파이썬의 빌트인 함수에 대해 설명해 주세요.

4.7.1. 빌트인 함수 사용의 장점이 있나요?

4.8. 파이썬의 generator는 무엇인지 설명해 주세요.

4.8.1. generator는 어떤 상황에서 사용하면 좋을까요?

5. 운영체제

5.1. OS(운영체제) 대해 설명해 주세요.

5.1.1. 인터럽트에 대해 설명해 주세요.

5.2. 기아 상태(Starvation)에 대해서 설명해 주세요.

5.2.1. 에이징의 메커니즘은 무엇이고 언제 효과적인지 설명해 주세요.

5.3. 뮤텍스란에 대해서 설명해 주세요.

5.3.1. 세마포어란 무엇이며 뮤텍스와의 차이점은 무엇입니까?

5.4. 가상메모리가 무엇인가요?

5.4.1. 요구 페이징*(Demand Paging)*이란 무엇입니까?

5.5. 페이징(Paging)에 대해서 설명해 주세요.

5.5.1. 페이징 교체 알고리즘에 대해서 설명해 주세요.

5.6. CPU 스케줄링(Scheduling)에 대해서 설명해 주세요.

5.6.1. 라운드 로빈 스케줄링(Round Robin Scheduling)이란 무엇인가요?

5.7. 스택영역과 힙영역의 차이점은 무엇이 있나요?

5.8. 캐시메모리에 대해서 설명해 주세요.

5.8.1. 캐시의 지역성에 대해서 설명해 주세요.

5.9. 교착 상태(DeadLock)란 무엇인지 설명해 주세요.

5.9.1. 교착 상태를 해결할 수 있는 방법을 설명해 주세요.

5.10. 프로세스와 쓰레드 차이에 관해 설명해 주세요.

5.10.1. 프로세스 제어 블록(PCB, Process Control Block)에 대해 설명해 주세요.

5.10.2. 문맥 교환(Context Switch)에 대해 설명해 주세요.

5.11. 싱글 쓰레드와 멀티 쓰레드의 장단점에 대해서 설명해 주세요.

5.11.1. 싱글 쓰레드와 멀티 쓰레드의 차이점에 대해서 설명해 주세요.


리뷰

구매자 별점

0.0

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

0명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전