tech-interview-study
스터디 목차는 Songwonseok/CS-Study 와 gyoogle/tech-interview-for-developer 를 참고하여 구성했습니다.
각 주제에 대한 깊이있는 학습을 지향합니다.
Part 1. CS 면접 질문/답변 정리
면접 전 예상 질문을 보고 스스로 답변한 후 정답을 확인합니다.
Part 2. CS Deep Dive
충분한 시간이 있을 때 CS를 깊이있게 다루기 위한 파트입니다.
🖥️ Computer Architecture | 📂 Data Structure | 📦 Database | 📡 Network |
🚨 Operating System | 🐣 Algorithm | 🌐 Web | ⚙️ Software Engineering |
🎨 Design Pattern | 🗣️ Language |
😊 Collaborator
CS Deep Dive
CS 면접 질문/답변 정리
Contributer
Issue와 PR로 오탈자 및 잘못된 내용을 알려주세요🙂
Rules
매주 월요일 밤 9시
온라인 스터디 (공휴일 제외)
스터디에서는 모의 면접
, 피드백
및 차주 주제 선정
모의 면접은 참여자 중 면접관 비율이 더 많도록 랜덤으로 당일에 선정
모의 면접 내용을 면접관 중 1인이 수합하여 문서화
🚨 3회 이상 불참시 퇴출.
유고 사유 | 익일 코딩테스트 및 면접, 질병(인증 필요)
📌 학습 주제
🖥️ Computer Architecture
📂 Data Structure
- Array
- Array & List
- Linked List
- 스택(Stack) & 큐(Queue) & 덱(Deque)
- 힙(Heap)
- 트리(Tree)
- 이진탐색트리(Binary Search Tree)
- 레드-블랙트리(Red-Black Tree)
- 해시(Hash)
- 트라이(Trie)
- B-Tree & B+Tree
📦 Database
- 키(Key) 정리
- JOIN
- SQL Injection
- SQL vs NoSQL
- 정규화(Nomalization)
- 이상(Anomaly)
- 인덱스(INDEX)
- 트랜잭션(Transaction)
- 트랜잭션 격리 수준(Transaction Isolation Level)
- 저장 프로시저(Stroed Procedure)
- 레디스(Redis)
📡 Network
- OSI 7 계층
- TCP & UDP
- TCP 3 way handshake & 4 way handshake
- TCP/IP 흐름제어 & 혼잡제어
- 대칭키 & 공개키
- HTTP & HTTPS
- TLS/SSL handshake
- 로드 밸런싱(Load Balancing)
🚨 Operating System
- 운영체제란
- 프로세스 & 스레드
- 프로세스 주소 공간
- 인터럽트(Interrupt)
- 시스템 콜(System Call)
- PCB와 Context Switching
- IPC(Inter Process Communication)
- CPU 스케줄링
- 데드락(DeadLock)
- Race Condition
- 세마포어(Semaphore) & 뮤텍스(Mutex)
- 페이징 & 세그먼테이션(PDF)
- Blocking, Non-blocking, Synchronous, Asynchronous
- 페이지 교체 알고리즘
- 메모리 관리(Memory Management)
- 파일 시스템
🐣 Algorithm
- 시간복잡도와 공간복잡도
- 거품 정렬(Bubble Sort)
- 선택 정렬(Selection Sort)
- 삽입 정렬(Insertion Sort)
- 퀵 정렬(Quick Sort)
- 병합 정렬(Merge Sort)
- 힙 정렬(Heap Sort)
- 기수 정렬(Radix Sort)
- 계수 정렬(Count Sort)
- 이분 탐색(Binary Search)
- 해시 테이블 구현
- DFS & BFS
- 최장 증가 수열(LIS)
- 최소 공통 조상(LCA)
- 동적 계획법(Dynamic Programming)
- 다익스트라(Dijkstra)
- 비트마스크(BitMask)
🌐 Web
- 브라우저와 렌더링
- DOM
- Reflow&Repaint
- 쿠키(Cookie) & 세션(Session)
- HTTP Request Methods
- HTTP Status Code
- CORS
- REST
- 웹서버와 WAS
- OAuth
- JWT(JSON Web Token)
- Authentication and Authorization
- 로그레벨
- UI/UX
- CSR & SSR
- Cross Browsing
- Vue.js vs React
- 네이티브 앱 & 웹 앱 & 하이브리드 앱
- PWA(Progressive Web App)
- CSRF & XSS
- 웹 성능 최적화
- CSS Methodology
- CSS
- 클라우드
- 모노레포
- Storybook
- RSC
- Suspense
⚙️ Software Engineering
- 클린코드(리팩토링 & 시큐어코딩)
- TDD(Test Driven Development)
- 애자일(Agile)
- 객체 지향 프로그래밍(Object-Oriented Programming)
- 함수형 프로그래밍(Fuctional Programming)
- 데브옵스(DevOps)
- 서드 파티(3rd party)
- 마이크로서비스 아키텍처(MSA)
🎨 Design Pattern
🗣️ Language
C
- [C] C언어 컴파일 과정
- [C] 구조체 메모리 크기 계산
- [C] 포인터(Pointer)
- [C] 동적할당
C++
- [C++] 얕은 복사 vs 깊은 복사
- [C++] 가상 함수(Virtual Function)
- [C++] 입출력 최적화하기
- [C++] Vector Container
Java
- [Java] Java 컴파일 과정
- [Java] Call by Value vs Call by Reference
- [Java] String & StringBuffer & StringBuilder
- [Java] 자바 가상 머신(Java Virtual Machine)
- [Java] Casting(업캐스팅 & 다운캐스팅)
- [Java] 오토 박싱 & 오토언박싱
- [Java] Thread 활용
- [Java] 고유 락(Intrinsic Lock)
- [Java] 문자열 클래스
- [Java] Garbage Collection
- [Java] Promotion & Casting
- [Java] Primitive type & Reference type
- [Java] 직렬화(Serialization)
- [Java] Error & Exception
- [Java] Stream API
- [Java] Record
- [Java] Interend String in Java
- [Java] Composition
Javascript
- [Javascript] ES2015+ 요약 정리
- [Javascript] Object Prototype
- [Javascript] Closure
- [Javascript] Hoisting
Python
- [Python] 매크로 사용법