- Introduction
- Part 1. CS
- Part 2. Language
- Part 3. Framework
- Part 4. Position
- Reference
- [TBD]
- Git 활용
- [TBD]
예비 개발자 취업 및 현업자 이직준비에 필요한 기술면접 스터디입니다.
Contributor들이 각자 주제에 대한 공부를 진행하고, 정리한 자료를 공유하여 다른 멤버들과 함께 성장하기를 목표로 합니다. 주제 외 도움될만한 자료 및 레퍼런스를 올리는 것도 환영합니다.
해당 Repository에서 학습을 하다가 추가로 궁금한 부분은 Issue
를 통해 질문해주세요:smile:
📚 개발상식 링크
- 좋은 코드란 무엇인가?
- 객체 지향 프로그래밍이란 무엇인가?
- RESTful API
- Test-Driven-Development
- 함수형 프로그래밍
- MVC 패턴
- Git & GitHub
🧬 자료구조 링크
- Array vs LinkedList
- 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 구현, 탐색
- Minimum Spanning Tree
- 시/공간 복잡도
🌍 네트워크 링크
- OSI 7계층
- GET, POST 방식의 차이점
- TCP 3-way-handshake & 4-way handshake
- TCP 와 UDP 의 차이점
- HTTP 와 HTTPS 의 차이점
- HTTP 의 문제점들
- DNS round robin 방식
- 웹 통신의 큰 흐름
- 공개키 암호, 대칭키 암호
- HTTP 동작과정과 HTTP method, 상태코드
- Stateful vs Stateless 서비스
- 로드 밸런싱
- Naver를 치면 일어나는 과정
💻 운영체제 링크
- 컴퓨터 시스템의 동작 원리
- 프로세스와 스레드의 차이
- 스케줄러의 종류
- 장기 스케줄러
- 단기 스케줄러
- 중기 스케줄러
- Context Switching
- Interrupt
- System Call
- Dead Lock
- 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
- Optimizer
- Replication
- Partitioning
- Sharding
- Object-Relational Mapping (ORM)
📤 디자인패턴 링크
-
생성 패턴 (5개)
- 싱글톤 (Singleton)
- 팩토리 메소드 (Factory Method)
- 추상 팩토리 (Abstract Factory)
- 빌더 (Builder)
- 프로토타입 (Prototype)
-
구조 패턴 (7개)
- 어댑터 (Adapter)
- 브릿지 (Bridge)
- 컴포짓 (Composite)
- 데코레이터 (Decorator)
- 퍼사드 (Facade)
- 플라이웨이트 (Flyweight)
- 프록시 (Proxy)
-
행동 패턴 (11개)
- 책임 연쇄 (Chain-of-Responsibility)
- 커맨드 (Command)
- 인터프리터 (Interpreter)
- 이터레이터 (Iterator)
- 중재자 (Mediator)
- 메멘토 (Memento)
- 옵저버 (Observer)
- 상태 (State)
- 전략 (Strategy)
- 템플릿 메소드 (Template Method)
🧩 알고리즘 링크
- 선택 정렬
- 거품 정렬
- 병합 정렬
- 삽입 정렬
- 퀵 정렬
- 힙 정렬
- 투포인터 알고리즘
- 순열(Permutation)
- BFS & DFS
- 이분탐색
- 최대공약수와 최소공배수
- LRU Cache
- Greedy Algorithm
- Dijkstra Algorithm
Java 링크
JavaScript 링크
🌼 Spring 링크
- 스프링 프레임워크란
- Spring, Spring MVC, Spring Boot의 차이
- Bean이란
- Container란
- IOC(Inversion of Control, 제어의 역전)란
- MVC 패턴이란
- DI(Dependency Injection, 의존성 주ㅋ입)란
- AOP(Aspect Oriented Programming)란
- POJO
- DAO와 DTO의 차이
- Spring JDBC를 이용한 데이터 접근
- Filter와 Interceptor 차이
☢️ React 링크
Front-end 링크
Back-end 링크
- Git 가이드 for 스터디 참여 링크