본 스터디는 iOS 개발자와 Back-end 개발자 이 두명이 면접에 대비하여 CS 지식에 대한 이해도를 높히고자 개설되었습니다.
월, 수, 금 주 3회 CS 지식을 공부하고 공부한 내용을 md 파일로 만들어 주세요.
주에 공부할 내용이 방대할 경우 조율이 가능합니다.
학습한 내용은 md 파일로 만들고 학습한 다음날 오후 8시 이전에 PR(Pull Request)를 작성해주세요.
일주일에 한 번, 스터디원들과 함께 모여 그 주에 학습한 내용들에 대한 의견을 공유합니다.
주 한번 확인시에 지각, 내용 숙지 미숙 시엔 1만원에 벌금이 발생합니다.
💡 개발상식
- 좋은 코드란 무엇인가? ✅
- 객체 지향 프로그래밍이란 무엇인가? ✅
- RESTFul API 란? ✅
- TDD 란 무엇이며 어떠한 장점이 있는가? ✅
- 함수형 프로그래밍이란? ✅
- MVC 패턴이란 무엇인가? ✅
- Git 과 GitHub 에 대해서 ✅
💡 자료구조
- Array vs Linked List ✅
- Stack and Queue ✅
- Tree ✅
- Binary Tree ✅
- Full Binary Tree ✅
- Complete Binary Tree ✅
- BST (Binary Search Tree) ✅
- Binary Heap ✅
- Red-Black Tree ✅
- 정의
- 특징
- 삽입
- 삭제
- Hash Table ✅
- Hash Function
- Resolve Collision
- Open Addressing
- Separate Chaining
- Resize
- Graph ✅
- Graph 용어 정리
- Graph 구현
- Graph 탐색
- Minimum Spanning Tree
- Kruskal algorithm
- Prim algorithm
💡 네트워크
- GET, POST 방식의 차이점 ✅
- TCP 3-way-handshake ✅
- TCP 와 UDP 의 차이점 ✅
- HTTP 와 HTTPS 의 차이점 ✅
- HTTP 의 문제점들
- DNS round robin 방식 ✅
- 웹 통신의 큰 흐름
💡 운영체제
- 프로세스와 스레드의 차이
- 스케줄러의 종류
- 장기 스케줄러
- 단기 스케줄러
- 중기 스케줄러
- CPU 스케줄러
- FCFS
- SJF
- SRT
- Priority scheduling
- RR
- 동기와 비동기의 차이
- 멀티스레드
- 장점과 단점
- 프로세스 동기화
- Critical Section
- 해결책
- 메모리 관리 전략
- 메모리 관리 배경
- Paging
- Segmentation
- 가상 메모리
- 배경
- 가상 메모리가 하는 일
- Demand Paging (요구 페이징)
- 페이지 교체 알고리즘
- 캐시의 지역성
- Locality
- Caching line
💡 데이터베이스
-
데이터베이스
- 데이터베이스를 사용하는 이유
- 데이터베이스 성능
-
Index
- Index 란 무엇인가
- Index 의 자료구조
- Primary index vs Secondary index
- Composite index
- Index 의 성능과 고려해야할 사항
-
정규화에 대해서
- 정규화 탄생 배경
- 정규화란 무엇인가
- 정규화의 종류
- 정규화의 장단점
-
Transaction
- 트랜잭션(Transaction)이란 무엇인가?
- 트랜잭션과 Lock
- 트랜잭션의 특성
- 트랜잭션의 상태
- 트랜잭션을 사용할 때 주의할 점
-
Statement vs PreparedStatement
-
NoSQL
- 정의
- CAP 이론
- 일관성
- 가용성
- 네트워크 분할 허용성
- 저장방식에 따른 분류
- Key-Value Model
- Document Model
- Column Model
-
DBMS 는 어떻게 트랜잭션을 관리할까?
💡 Design Pattern Link
- Singleton
💡 Algorithm (알고리즘) Link
- 손코딩 및 코딩 테스트 대비 => 대부분의 내용이 코드이기 때문에 별도의 Java Algorithm Training Repository에 저장합니다.
- 코딩 테스트를 위한 Tip
- 문제 해결을 위한 전략적 접근
- Sorting Algorithm
- Prime Number Algorithm
백종현 (iOS 개발자)
- github : jonghyunBaik
임지원 (Back-end 개발자)
- github : i-am-jiwon