기술 면접 대비를 위한 CS 스터디를 진행합니다.
황창현 | 이현호 | 김범석 | 조재현 | 홍혁준 |
---|---|---|---|---|
항목 | 내용 |
---|---|
기간 | 2023년 10월 11일 ~ |
장소 | 온라인 게더타운, 오프라인 강남역 |
요일 및 시간 | 매주 월요일, 수요일, 금요일 오전 10:00 ~ 11:00 (약 1시간) |
방식 | 각 CS 과목의 키워드에 해당하는 지식을 학습하고, 자주 나오는 면접 질문의 답변을 정리한다. 매 스터디 마다 면접자 2명을 무작위로 뽑고, 나머지 인원이 면접관이 되어 모의 면접을 진행한다. 무단으로 불참하거나, 스터디 시작 전까지 PR을 업로드하지 않을 경우 벌금 3,000원을 납부한다. 한 달에 3회 이상 무단 불참 시, 스터디에서 퇴장 당할 수 있다. |
- 2회차에 키워드 일부 추가
- 방식은 1회차와 동일하나 조금 더 Deep하게 공부하며 질문의 수준을 높임
항목 | 내용 |
---|---|
기간 | 2024년 2월 6일 ~ |
장소 | 온라인 게더타운 |
요일 및 시간 | 매주 화요일, 금요일 오전 10:00 ~ 11:00 (약 1시간) |
방식 | 1회차와 동일 |
Cs-study
├── database
| └── 01_관계형_데이터베이스
| ├── README.md => 당일에 나온 모든 질문 아카이빙
| ├── 범석.md
| ├── 창현.md
| └── ...
├── network
| └── ...
...
-
커밋 메시지
{과목} {내용} 문서 작성(수정) [이름]
- 작성 예시)
DB 01_관계형_데이터베이스 문서 작성 [황창현]
- 수정 예시)
DB 01_관계형_데이터베이스 문서 수정 [황창현]
- 작성 예시)
-
PR
{과목} {내용} 제출 [이름]
- PR 예시)
DB 01_관계형_데이터베이스 제출 [황창현]
- PR 예시)
- 관계형 데이터베이스
- 데이터베이스와 파일시스템의 차이
- 관계형 데이터베이스의 개념과 장단점
- DDL, DML, DCL, TCL
- Key
- MySQL 아키텍처
- innodb
- 언두로그
- 쿼리동작 방식
- Join
- 이상 현상과 정규화
- 트랜잭션
- 트랜잭션 개념
- ACID
- Commit, Rollback
- 트랜잭션 격리수준
- LOCK, 교착상태
- 인덱스
- 인덱스 개념
- 인덱스 종류
- Clustered index, Non-Clustered index
- B-Tree 인덱스
- 인덱스 자료구조
- 옵티마이저
- 실행계획
- Master/Slave
- Sharding
- NoSQL
- NoSQL의 개념
- RDB VS NoSQL
- Redis 동작원리
- 네트워크 레이어
- OSI 7계층
- TCP/IP 4계층
- IP
- IPv4 vs IPv6
- subnet
- CIDR
- 통신
- TCP
- 흐름제어, 혼잡제어, 오류제어
- 3-way-handshake, 4-way-handshake
- UDP
- HTTP
- HTTP status code
- HTTP method
- HTTP 1.1, 2.0, 3.0
- HTTPS, SSL/TSL
- DNS
- 기타 : socket, STOMP, SMTP (프로젝트에서 사용한 경우)
- TCP
- Web
- Web Server vs WAS
- Web Server
- apache vs nginx (동작원리)
- SSL offloading
- reverse proxy
- load balancing
- L7 vs L4
- 알고리즘
- Web cache
- URI, URN, URL
- Rest API
- 보안
- CORS
- XSS
- SQL Injection
- 인증
- cookie
- session
- JWT
- 객체지향
- 4가지 특징
- 5원칙 (SOLID)
- 객체지향 vs 절차지향 vs 함수형 프로그래밍
- JDK, JRE, JVM
- 컴파일 과정
- 컴파일 언어 vs 인터프리터 언어
- JVM 메모리 구조
- Garbage Collector 동작과정
- STW(Stop-The-World)
- Parallel GC, G1 GC, ZGC
- Java8의 큰 특징 + Java11과의 차이점
- Java21
- Virtual Thread
- Java 기초
- 접근제어자
- 클래스, 객체, 인스턴스 차이
- Overloading vs Overriding
- Primitive type vs Reference type
- Call by Reference vs Call by Value
- Wrapper Class
- interface vs abstract class
- Checked Exception vs UnChecked Exception
- static
- final
- generic
- stream, lambda
- Reflection & Dynamic Proxy
- Java 컬렉션
- hashcode() & equals()
- Thread Safe & Syncronized
- Volatile
- AtomicInteger
- String
- String vs StringBuffer vs StringBuilder
- Immutable Object
String a = ""
vsString a = new String("")
- List
- ArrayList vs LinkedList
- Map
- HashTable vs HashMap vs LinkedHashMap vs TreeMap
- HashMap vs ConcurrentHashMap
- 운영체제 소개
- 운영체제 필요성
- 운영체제 정의
- 운영체제 역할
- 운영체제 구조
- 커널
- 시스템 호출
- 프로세스
- 프로세스 개념
- 프로세스 상태
- 프로세스 제어 블록
- 프로세스 문맥 교환
- 스레드
- 스레드 개념
- 멀티스레드의 구조
- 멀티스레드의 장단점
- 멀티 프로세스 VS 멀티 스레드
- CPU 스케줄링
- 장기 스케줄링
- 중기 스케줄링
- 단기 스케줄링
- 스케줄링 알고리즘
- FCFS
- SJF
- Round Robin
- SRT
- Priority scheduling
- Multilevel Queue
- Multilevel Feedback Queue
- 인터럽트
- 인터럽트 개념
- 동기적 인터럽트, 비동기적 인터럽트
- 인터럽트 처리 과정
- 인터럽트와 이중 모드
- 프로세스 동기화
- 공유자원, 경쟁상태, 임계구역
- 피터슨 알고리즘
- 뮤텍스
- 세마포어
- 모니터
- 교착 상태(Deadlock)
- 교착 상태 정의
- 교착 상태 조건
- 교착 상태 해결 방법
- 식사하는 철학자 문제
- 메모리 관리
- 메모리 관리 필요성
- 고정 분할 방식
- 가변 분할 방식
- 가상 메모리 개요
- 가상 메모리 정의
- 가상 메모리 필요성
- 페이징 기법
- 세그먼테이션 기법
- 가상 메모리 관리
- 요구 페이징
- 페이지 교체 알고리즘
- FIFO
- OPT
- LRU
- Servlet
- 개념
- tomcat
- filter
- servlet container
- 동작과정
- Spring 기본
- Spring vs Spring MVC vs Spring Boot
- MVC1 vs MVC2
- dispatcher servlet
- IoC
- DI
- Bean, Component
@Component
@Service
@Controller
- 생성주기
- 프로토타입 빈
- Container
- VO vs DTO vs DAO
- Spring vs Spring MVC vs Spring Boot
- Spring 심화
- AOP
- Spring AOP 어노테이션
- JDK Dynamic Proxy
- CGLIB
- interceptor
- filter와 차이점
- Spring 전체 동작과정
- AOP
- JPA
- JDBC, Spring JDBC
- Sql Mapper(MyBatis), ORM
- @Transactional
- JPA, Hibernate
- 영속성 컨텍스트
- 즉시/지연 로딩
- 프록시
- 고아객체
- 단뱡향/양방향 매핑
- N + 1 문제
- 테스트
- DDD, TDD
- Junit4 vs Junit5
- 단위, 통합, 인수 테스트
- stub, mock
- SpringBoot 계층별 테스트 방법
- 테스트 커버리지 (JACOCO)
- 기타
- 2.x.x와 3.x.x 버전 차이