# CS-Study

### [스터디 기록](https://jmxx219.notion.site/CS-c23e84f06df542e7a0233192fc517c46)

<br>

## 👨‍💻 스터디원

| 이름  | 깃허브                                                |
| --- | -------------------------------------------------- |
| 배수빈 | [@baexxbin](https://github.com/baexxbin)           |
| 손지민 | [@jmxx219](https://github.com/jmxx219)             |
| 최동근 | [@reddevilmidzy](https://github.com/reddevilmidzy) |
| 이재표 | [@jaepyo-Lee](https://github.com/jaepyo-Lee)       |
| 백종인 | [@rookedsysc](https://github.com/rookedsysc)       |
| 홍지운 | [@jackson-hong](https://github.com/jackson-hong)   |

<br>

## 📚 학습 주제

`운영체제`, `네트워크`, `데이터베이스`, `자바 및 스프링`, `자유 주제`

[Tech-Interview](https://github.com/VSFe/Tech-Interview) 참고

| No. |                                             📌 운영체제                                            |                                                         📌 네트워크                                                         |                                        📌 데이터베이스                                       |                                                    📌 자바                                                    |                                                    📌 스프링                                                    |
| :-: | :--------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------: |
|  1  |               [시스템 콜](https://jmxx219.gitbook.io/cs/operating-system/undefined-6)              |                                  [OSI 7계층](https://jmxx219.gitbook.io/cs/network/osi-7)                                 |             [RDB와 NoSQL](https://jmxx219.gitbook.io/cs/database/rdb-nosql)             |                                [JVM](https://jmxx219.gitbook.io/cs/java/jvm)                                |                            [Servlet](https://jmxx219.gitbook.io/cs/spring/servlet)                           |
|  2  |                [인터럽트](https://jmxx219.gitbook.io/cs/operating-system/interrupt)                |             [Mutiplexing과 Demultiplexing](https://jmxx219.gitbook.io/cs/network/mutiplexing-demultiplexing)             |                  [스키마](https://jmxx219.gitbook.io/cs/database/schema)                  |                 [Garbage Collection](https://jmxx219.gitbook.io/cs/java/garbage-collection)                 |                  [DispatcherServlet](https://jmxx219.gitbook.io/cs/spring/dispatcherservlet)                 |
|  3  |                [컴파일](https://jmxx219.gitbook.io/cs/operating-system/undefined-9)               |                              [웹소켓과 소켓통신](https://jmxx219.gitbook.io/cs/network/undefined-3)                             |                    [key](https://jmxx219.gitbook.io/cs/database/key)                   |                              [final](https://jmxx219.gitbook.io/cs/java/final)                              |                             [Tomcat](https://jmxx219.gitbook.io/cs/spring/tomcat)                            |
|  4  |                 [프로세스](https://jmxx219.gitbook.io/cs/operating-system/process)                 |               [Stateless와 Connectionless](https://jmxx219.gitbook.io/cs/network/stateless-connectionless)               |                [인덱스](https://jmxx219.gitbook.io/cs/database/undefined-1)               |         [static class와 static method](https://jmxx219.gitbook.io/cs/java/static-class-static-method)        | [Servlet Filter와 Spring Interceptor](https://jmxx219.gitbook.io/cs/spring/servlet-filter-spring-interceptor) |
|  5  |            [프로세스 주소 공간](https://jmxx219.gitbook.io/cs/operating-system/undefined-13)           |                               [쿠키와 세션](https://jmxx219.gitbook.io/cs/network/undefined-4)                               |         [B-Tree와 B+Tree](https://jmxx219.gitbook.io/cs/database/b-tree-b+tree)         |                        [추상클래스와 인터페이스](https://jmxx219.gitbook.io/cs/java/undefined-1)                       |                [DTO, DAO, VO, Entity](https://jmxx219.gitbook.io/cs/spring/dto-dao-vo-entity)                |
|  6  |             [컨텍스트 스위칭](https://jmxx219.gitbook.io/cs/operating-system/undefined-8)             |                                   [HTTP](https://jmxx219.gitbook.io/cs/network/http-2)                                  |               [뷰(View)](https://jmxx219.gitbook.io/cs/database/undefined)              |                    [equals와 hashCode](https://jmxx219.gitbook.io/cs/java/equals-hashcode)                   |            [Spring MVC와 Spring Boot](https://jmxx219.gitbook.io/cs/spring/spring-mvc-spring-boot)            |
|  7  |            [프로세스 스케줄링](https://jmxx219.gitbook.io/cs/operating-system/undefined-12)            |                                 [HTTP 버전 비교](https://jmxx219.gitbook.io/cs/network/http)                                |           [함수적 종속성과 정규화](https://jmxx219.gitbook.io/cs/database/undefined-7)           |                        [Collections](https://jmxx219.gitbook.io/cs/java/collections)                        |                                [AOP](https://jmxx219.gitbook.io/cs/spring/aop)                               |
|  8  |                    [IPC](https://jmxx219.gitbook.io/cs/operating-system/ipc)                   | [HTTP 상태코드](https://github.com/jmxx219/CS-Study/blob/jmxx219/network/HTTP%20%EC%83%81%ED%83%9C%20%EC%BD%94%EB%93%9C.md) |                [DB JOIN](https://jmxx219.gitbook.io/cs/database/db-join)               |                       [예외처리(Exception)](https://jmxx219.gitbook.io/cs/java/exception)                       |                            [IoC와 DI](https://jmxx219.gitbook.io/cs/spring/ioc-di)                            |
|  9  |            [Thread Safe](https://jmxx219.gitbook.io/cs/operating-system/thread-safe)           |                              [HTTP 메소드](https://jmxx219.gitbook.io/cs/network/http-method)                              |           [클러스터링과 리플리케이션](https://jmxx219.gitbook.io/cs/database/undefined-3)          |                          [자바의 동기화](https://jmxx219.gitbook.io/cs/java/synchronized)                         |                     [@Transactional](https://jmxx219.gitbook.io/cs/spring/transactional)                     |
|  10 |           [Synchronized](https://jmxx219.gitbook.io/cs/operating-system/undefined-2)           |                                [TCP와 UDP](https://jmxx219.gitbook.io/cs/network/tcp-udp)                                |                   [DB 트래픽](https://jmxx219.gitbook.io/cs/database/db)                  |                         [reflection](https://jmxx219.gitbook.io/cs/java/reflection)                         |  [SQL Mapper vs ORM vs QueryBuilder](https://jmxx219.gitbook.io/cs/spring/sql-mapper-vs-orm-vs-querybuilder) |
|  11 |          [뮤텍스와 세마포어, 모니터](https://jmxx219.gitbook.io/cs/operating-system/undefined-4)          |                         [3-way handshake](https://jmxx219.gitbook.io/cs/network/3-way-handshake)                        |                   [DBCP](https://jmxx219.gitbook.io/cs/database/dbcp)                  |                                [OOP](https://jmxx219.gitbook.io/cs/java/oop)                                |     [Hibernate, JPA, Spring Data JPA](https://jmxx219.gitbook.io/cs/spring/hibernate-jpa-spring-data-jpa)    |
|  12 | [Thread Pool, Fork-Join](https://jmxx219.gitbook.io/cs/operating-system/thread-pool-fork-join) |                         [4-way Handshake](https://jmxx219.gitbook.io/cs/network/4-way-handshake)                        |               [트랜잭션](https://jmxx219.gitbook.io/cs/database/undefined-4)               |                        [Java Thread](https://jmxx219.gitbook.io/cs/java/java-thread)                        |                [Persistence Context](https://jmxx219.gitbook.io/cs/spring/persistence-context)               |
|  13 |                [데드락](https://jmxx219.gitbook.io/cs/operating-system/undefined-1)               |                                    [IP 주소](https://jmxx219.gitbook.io/cs/network/ip)                                    |             [트랜잭션의 격리성](https://jmxx219.gitbook.io/cs/database/undefined-5)            |                             [Stream](https://jmxx219.gitbook.io/cs/java/stream)                             |                            [JPA 연관관계 맵핑](https://jmxx219.gitbook.io/cs/spring/jpa)                           |
|  14 |              [캐시 메모리](https://jmxx219.gitbook.io/cs/operating-system/undefined-7)              |                                  [라우터](https://jmxx219.gitbook.io/cs/network/undefined)                                 |             [DB Locking](https://jmxx219.gitbook.io/cs/database/db-locking)            |                        [자바 Annotation](https://jmxx219.gitbook.io/cs/java/annotation)                       |                        [N+1 Problem](https://jmxx219.gitbook.io/cs/spring/n+1-problem)                       |
|  15 |            [메모리 할당과 단편화](https://jmxx219.gitbook.io/cs/operating-system/undefined-3)           |                               [서브넷 마스크](https://jmxx219.gitbook.io/cs/network/undefined-2)                              |          [SQL Injection](https://jmxx219.gitbook.io/cs/database/sql-injection)         | [String, StringBuffer, StringBuilder](https://jmxx219.gitbook.io/cs/java/string-stringbuffer-stringbuilder) |                            [WebFlux](https://jmxx219.gitbook.io/cs/spring/webflux)                           |
|  16 |               [가상 메모리](https://jmxx219.gitbook.io/cs/operating-system/undefined)               |                                    [DHCP](https://jmxx219.gitbook.io/cs/network/dhcp)                                   |              [MySQL 엔진 아키텍처](https://jmxx219.gitbook.io/cs/database/mysql)             |         [Java 8 vs Java 11 va Java 17](https://jmxx219.gitbook.io/cs/java/java8-vs-java11-va-java17)        |                       [스프링에서 사용되는 디자인 패턴](https://jmxx219.gitbook.io/cs/java/undefined)                      |
|  17 |            [세그먼테이션과 페이지](https://jmxx219.gitbook.io/cs/operating-system/undefined-5)           |                            [브라우저에 URL입력 시 일어나는 일](https://jmxx219.gitbook.io/cs/network/url)                            |       [MySQL InnoDB 스토리지 엔진](https://jmxx219.gitbook.io/cs/database/mysql-innodb)      |                      [Wrapper Class](https://jmxx219.gitbook.io/cs/java/wrapper-class)                      |                                                                                                              |
|  18 |              [Thrashing](https://jmxx219.gitbook.io/cs/operating-system/thrashing)             |                                     [DNS](https://jmxx219.gitbook.io/cs/network/dns)                                    |         [Message Broker](https://jmxx219.gitbook.io/cs/database/message-broker)        |                            [Generic](https://jmxx219.gitbook.io/cs/java/generic)                            |                                                                                                              |
|  19 |                    [TLB](https://jmxx219.gitbook.io/cs/operating-system/tlb)                   |                                [로드밸런서](https://jmxx219.gitbook.io/cs/network/undefined-1)                               |                  [Redis](https://jmxx219.gitbook.io/cs/database/redis)                 |                           [Optional](https://jmxx219.gitbook.io/cs/java/optional)                           |                                                                                                              |
|  20 |           [페이지 교체 알고리즘](https://jmxx219.gitbook.io/cs/operating-system/undefined-11)           |                                  [SOP와 CORS](https://jmxx219.gitbook.io/cs/network/sop)                                 |              [Apache Kafka](https://jmxx219.gitbook.io/cs/database/kafka)              |                               [JDBC](https://jmxx219.gitbook.io/cs/java/jdbc)                               |                                                                                                              |
|  21 |              [파일 시스템](https://jmxx219.gitbook.io/cs/operating-system/undefined-10)             |                               [XSS와 CSRF](https://jmxx219.gitbook.io/cs/network/xss-csrf)                               |                 [Flyway](https://jmxx219.gitbook.io/cs/database/flyway)                |                         [jackson 라이브러리](https://jmxx219.gitbook.io/cs/java/jackson)                         |                                                                                                              |
|  22 |            [동기와 비동기 & 블로킹과 논블록킹](https://jmxx219.gitbook.io/cs/operating-system/and)           |                                    [gRPC](https://jmxx219.gitbook.io/cs/network/grpc)                                   |             [프로시저와 트리거](https://jmxx219.gitbook.io/cs/database/undefined-6)            |                     [Virtual Thread](https://jmxx219.gitbook.io/cs/java/virtual-thread)                     |                                                                                                              |
|  23 |                            [-](https://jmxx219.gitbook.io/cs/readme)                           |                                     [DMZ](https://jmxx219.gitbook.io/cs/network/dmz)                                    | [Table Scan과 Index Scan](https://jmxx219.gitbook.io/cs/database/table-scan-index-scan) |                             [RxJava](https://jmxx219.gitbook.io/cs/java/rxjava)                             |                                                                                                              |

<br>

### 📌 자유주제

* [서버리스](https://jmxx219.gitbook.io/cs/etc/undefined)
* [MSA](https://jmxx219.gitbook.io/cs/etc/msa)
* [TDD](https://jmxx219.gitbook.io/cs/etc/tdd)
* [컨테이너](https://jmxx219.gitbook.io/cs/etc/undefined-1)
* [REST API](https://jmxx219.gitbook.io/cs/etc/rest-api)
* [SOLID 원칙](https://jmxx219.gitbook.io/cs/etc/solid)

\ <br>

## 💫 정리 시 참고사항

* 깃허브 저장소에 정리되어 있는 주제들을 보고 참고해주세요.
* 각 주의 정리 순서는 `운영체제` → `네트워크` → `데이터베이스` → `자바 및 스프링` → `자유 주제` 순으로 진행됩니다.
* 내용 정리는 줄글이 아닌 **한눈에 파악하기 쉽도록 깔끔하게** 정리해주세요.
  * br 태그를 이용하여 문단 간의 공백을 넣어주세요.
* Tech-Interview에 있는 질문들에 대한 답만 정리하는 것이 아닌, **개념 위주**로 정리해주세요.
  * 질문들은 주제에 대한 키워드이기 때문에 정리해나갈 방향 정도로 생각해주세요.
* 커밋하기 전에 **동기화**를 꼭 해주세요.

<br>

## 💡 Rule

**\[ 스터디 진행 ]**

* 매주 수요일 20시 00분 화상스터디 진행
  * 저번 주차의 주제들을 바탕으로 면접 준비
* 화상 스터디 전 날(화요일)까지 맡은 주제를 정리해서 PR 생성

**\[ 스터디 방법 ]**

* 매주 각 분야별로 하나씩 총 5개의 주제 선정
* 각자 해당 주차의 주제들 중 하나를 맡아 정리
* 저번 주차의 주제들 모두 학습 및 주제 별 질문리스트 생각해오기

**\[ 스터디 규칙 ]**

* 스터디 진행 시 항상 카메라 ON
* 특별한 사유없는 불참과 맡은 주제 정리 미완료 3회시 스터디 퇴장
* 사유가 있을 경우 사전 공지(최소 하루전)
