Skip to content

dev-team-study/cs-study

Repository files navigation

CS Study

기술 면접 대비를 위한 CS 스터디를 진행합니다.


👾 스터디 멤버

황창현 이현호 김범석 조재현 홍혁준

⛳ 스터디 진행 방식

1회차

항목 내용
기간 2023년 10월 11일 ~
장소 온라인 게더타운, 오프라인 강남역
요일 및 시간 매주 월요일, 수요일, 금요일 오전 10:00 ~ 11:00 (약 1시간)
방식 각 CS 과목의 키워드에 해당하는 지식을 학습하고, 자주 나오는 면접 질문의 답변을 정리한다.
매 스터디 마다 면접자 2명을 무작위로 뽑고, 나머지 인원이 면접관이 되어 모의 면접을 진행한다.
무단으로 불참하거나, 스터디 시작 전까지 PR을 업로드하지 않을 경우 벌금 3,000원을 납부한다.
한 달에 3회 이상 무단 불참 시, 스터디에서 퇴장 당할 수 있다.

2회차

  • 2회차에 키워드 일부 추가
  • 방식은 1회차와 동일하나 조금 더 Deep하게 공부하며 질문의 수준을 높임
항목 내용
기간 2024년 2월 6일 ~
장소 온라인 게더타운
요일 및 시간 매주 화요일, 금요일 오전 10:00 ~ 11:00 (약 1시간)
방식 1회차와 동일

📋 각종 컨벤션

📁 패키지 구조

Cs-study
    ├── database
    |   └── 01_관계형_데이터베이스
    |       ├── README.md => 당일에 나온 모든 질문 아카이빙
    |       ├── 범석.md
    |       ├── 창현.md
    |       └── ...
    ├── network
    |   └── ...
    ...

📍 커밋 및 PR

  1. 커밋 메시지

    {과목} {내용} 문서 작성(수정) [이름]
    
    • 작성 예시) DB 01_관계형_데이터베이스 문서 작성 [황창현]
    • 수정 예시) DB 01_관계형_데이터베이스 문서 수정 [황창현]
  2. PR

    {과목} {내용} 제출 [이름]
    
    • PR 예시) DB 01_관계형_데이터베이스 제출 [황창현]

📌 키워드

1️⃣ 데이터베이스(DB)

  • 관계형 데이터베이스
    • 데이터베이스와 파일시스템의 차이
    • 관계형 데이터베이스의 개념과 장단점
    • 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 동작원리

2️⃣ 네트워크 (Network)

  • 네트워크 레이어
    • 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 (프로젝트에서 사용한 경우)
  • 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

3️⃣ Java

  • 객체지향
    • 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 = "" vs String a = new String("")
    • List
      • ArrayList vs LinkedList
    • Map
      • HashTable vs HashMap vs LinkedHashMap vs TreeMap
      • HashMap vs ConcurrentHashMap

4️⃣ 운영체제

  • 운영체제 소개
    • 운영체제 필요성
    • 운영체제 정의
    • 운영체제 역할
  • 운영체제 구조
    • 커널
    • 시스템 호출
  • 프로세스
    • 프로세스 개념
    • 프로세스 상태
    • 프로세스 제어 블록
    • 프로세스 문맥 교환
  • 스레드
    • 스레드 개념
    • 멀티스레드의 구조
    • 멀티스레드의 장단점
    • 멀티 프로세스 VS 멀티 스레드
  • CPU 스케줄링
    • 장기 스케줄링
    • 중기 스케줄링
    • 단기 스케줄링
  • 스케줄링 알고리즘
    • FCFS
    • SJF
    • Round Robin
    • SRT
    • Priority scheduling
    • Multilevel Queue
    • Multilevel Feedback Queue
  • 인터럽트
    • 인터럽트 개념
    • 동기적 인터럽트, 비동기적 인터럽트
    • 인터럽트 처리 과정
    • 인터럽트와 이중 모드
  • 프로세스 동기화
    • 공유자원, 경쟁상태, 임계구역
    • 피터슨 알고리즘
    • 뮤텍스
    • 세마포어
    • 모니터
  • 교착 상태(Deadlock)
    • 교착 상태 정의
    • 교착 상태 조건
    • 교착 상태 해결 방법
    • 식사하는 철학자 문제
  • 메모리 관리
    • 메모리 관리 필요성
    • 고정 분할 방식
    • 가변 분할 방식
  • 가상 메모리 개요
    • 가상 메모리 정의
    • 가상 메모리 필요성
    • 페이징 기법
    • 세그먼테이션 기법
  • 가상 메모리 관리
    • 요구 페이징
    • 페이지 교체 알고리즘
      • FIFO
      • OPT
      • LRU

5️⃣ Spring

  • 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 심화
    • AOP
      • Spring AOP 어노테이션
      • JDK Dynamic Proxy
      • CGLIB
    • interceptor
      • filter와 차이점
    • Spring 전체 동작과정
  • 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 버전 차이

About

기술 면접 대비를 위한 CS 스터디

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published