Technical Interview Guidelines for beginners
예비 개발자들의 기술 면접 준비를 위한 자료를 정리해놓은 Repository입니다. 개발이라는 분야를 모두 담지는 못했습니다. 그저 가이드라인으로 참고해주시면 감사하겠습니다. 또한 제가 개인적으로 면접을 준비하면서 정리한 내용이라 잘못된 부분이 있을 수 있습니다. 이런 부분들에 대해서는 Pull Request
or Issue
로 참여해주시면 정말 감사하겠습니다. 주제와 관련된 좋은 참고 자료를 추가하는 것도 가능합니다. 해당 Repository에서 학습을 하시다가 생기는 질문은 Issue
에 올려주세요.
취준생 여러분의 건승을 기원합니다 :)
Content
Part 1. 전산 기초
Link
개발상식- 객체 지향 프로그래밍이란 무엇인가?
- RESTFul API란?
- TDD란 무엇이며 어떠한 장점이 있는가?
- 함수형 프로그래밍이란?
- MVC 패턴이란 무엇인가?
Link
자료구조- Array vs LinkedList
- Stack and Queue
-
Tree
- Binary Tree
- Full Binary Tree
- Complete Binary Tree
- BST(Binary Search Tree)
- Binary Heap
-
Red-Black Tree
- 정의
- 특징
- 삽입
- 삭제
-
HashTable
- hash function
-
Resolve Collision
- Open Addressing
- Separate Chaining
- Resize
-
Graph
- Graph 용어 정리
- Graph 구현
- Graph 탐색
-
Minimum Spanning Tree
- Kruskal algorithm
- Prim algorithm
Link
네트워크- GET, POST 방식의 차이점
- TCP 3-way-handshake
- TCP와 UDP의 차이점
-
HTTP와 HTTPS의 차이점
- HTTP의 문제점들
- DNS round robin 방식
- 웹 통신의 큰 흐름
Link
운영체제- 프로세스와 스레드의 차이
-
스케줄러의 종류
- 장기 스케줄러
- 단기 스케줄러
- 중기 스케줄러
-
CPU 스케줄러
- FCFS
- SJF
- SRT
- Priority scheduling
- RR
- 동기와 비동기의 차이
-
멀티스레드
- 장점과 단점
-
프로세스 동기화
- Critical Section
- 해결책
-
메모리 관리 전략
- 메모리 관리 배경
- Paging
- Segmentation
-
가상 메모리
- 배경
- 가상 메모리가 하는 일
- Demand Paging(요구 페이징)
- 페이지 교체 알고리즘
-
캐시의 지역성
- Locality
- Caching line
Link
데이터베이스-
데이터베이스
- 데이터베이스를 사용하는 이유
- 데이터베이스 성능
-
Index
- Index란 무엇인가
- Index의 자료구조
- Primary index vs Secondary index
- Composite index
- Index의 성능과 고려해야할 사항
-
정규화에 대해서
- 정규화 탄생 배경
- 정규화란 무엇인가
- 정규화의 종류
- 정규화의 장단점
-
Transaction
- 트랜잭션(Transaction)이란 무엇인가?
- 트랜잭션과 Lock
- 트랜잭션의 특성
- 트랜잭션을 사용할 때 주의할 점
- Statement vs PrepareStatement
-
NoSQL
- 정의
-
CAP 이론
- 일관성
- 가용성
- 네트워크 분할 허용성
-
저장방식에 따른 분류
- Key-Value Model
- Document Model
- Column Model
Link
Design Pattern- Singleton
Link
Algorithm (알고리즘)- 손코딩 및 코딩 테스트 대비
=> 대부분의 내용이 코드이기 때문에 별도의 Repository에 저장합니다. - 코딩 테스트를 위한 Tip
- 문제 해결을 위한 전략적 접근
- Sorting Algorithm
Part 2. Language
Link
Java- JVM에 대해서 / GC의 원리
- Collection
- Annotation
- Generic
- final
- Overriding vs Overloading
- Access Modifier
- Wrapper class
- Multi-Thread 환경에서의 개발
추가 자료
Link
JavaScript- JavaScript Event Loop
- Hoisting
- Closure
- this에 대해서
- Promise
추가 자료
Part 3. 분야별
Link
Front-End- 브라우저의 작동 원리
-
Document Object Model
- Event bubbling and Capturing
- Event delegation
- CORS
- 크로스 브라우징
- 웹 성능과 관련된 Issues
- CSS Methodology
- normalize.css vs reset.css
추가 자료
- Front-end-Developer-Interview-Questions (한국어)
- Front-end Interview (영어)
-
- 면접 시 물어보기 가장 좋은 것들이 '기본'에 대한 내용이라고 생각되는데요, 그 '기본'에 대해 체크리스트 형식으로 잘 정리되어 있는 문서를 공유합니다.
그 외 좋은 자료
- 주니어 개발자를 위한 취업 정보
- mission-peace/interview repository
=> 각종 알고리즘에 대한 코드와 동영상 강의 링크를 제공합니다. (영어) - awesome-interview-questions
=> 각종 언어, CS 기초에 대한 interview 질문들이 정리되어 있습니다. (영어) - coding-interview-university
=> (한국어 version) 구글 인터뷰를 준비하면서 정리한 자료가 한국어로 번역되어 있는 자료입니다. - 코딩 인터뷰 완전분석 => (도서) 코딩 인터뷰에 관련된 도서 중 가장 유명한 책이라고 생각되는데요, 최근 개정판이 발간되었습니다.
- tech-interview-handbook Github repository
=> (영어) 코딩 인터뷰에 관련되어 정리되어있는 respository 입니다.
Contributor
해당 Repository에 기여를 해주신 분들입니다 :)
-
New resource
: 유용한 알고리즘 연습 사이트 추가
-
New resource
: Part 1 - 운영체제
-
Fix typo
-
Fix typo
-
New resource
: Part 2 - Java
-
New resource
: Part 1 - 운영체제