단순히 CS 지식을 넓게 훑는 것이 아니라, 기본 개념을 이해하고, 면접 답변으로 정리하고, 꼬리질문에 대응할 수 있도록 깊게 학습하는 것을 지향합니다.
- 과제 기한: 매주 일요일 자정
- 라이브 다대다 모의면접: 격주 진행 예정
- 라이브 다대다 모의면접은 가능하면 대면 진행을 원칙으로 하되, 상황에 따라 Discord로 대체 가능
|
윤민섭 TF장 |
기본 운영 기간은 약 8~9주이며, 진행 상황에 따라 추가 운영할 수 있습니다. (시즌 1 한달 간 CS, 시즌 2는 직무에 맞춘 세부 질문으로 진행)
| 주차 | 시즌 | 주제 | 질문 범위 | 진행 내용 |
|---|---|---|---|---|
| Week 01 | Season 1 - 공통 CS 압축 | Computer Architecture + OS Runtime | COMMON-001 ~ COMMON-040 | 컴퓨터가 코드를 실행하는 흐름, CPU, 레지스터, 명령어 사이클, 컴파일/인터프리터, 프로세스, 스레드, 컨텍스트 스위칭 |
| Week 02 | Season 1 - 공통 CS 압축 | OS Memory / Concurrency + Core Data Structure | COMMON-041 ~ COMMON-080 | 메모리 구조, Stack/Heap, 가상 메모리, Page Fault, 동시성, Mutex/Semaphore, Deadlock, Hash, Tree, Heap |
| Week 03 | Season 1 - 공통 CS 압축 | Network / Web / I/O | COMMON-081 ~ COMMON-120 | 요청이 서버까지 가는 흐름, OSI/TCP-IP, TCP/UDP, HTTP/HTTPS, DNS, REST, WebSocket, Blocking/Non-blocking, I/O Multiplexing |
| Week 04 | Season 1 - 공통 CS 압축 | Database / Storage / Cache | COMMON-121 ~ COMMON-160 | 데이터 저장과 조회, Key, 정규화, Join, Index, Transaction, Isolation Level, Lock, Connection Pool, Replication, Cache |
| Week 05 | Season 1 - 공통 CS 압축 | Software Engineering / Design Pattern | COMMON-161 ~ COMMON-200 | OOP, SOLID, Design Pattern, Layered Architecture, 테스트, 좋은 코드 구조, 시스템 설계 기초 |
| Week 06 | Season 2 - 직무별 심화 | Role-Based Interview 1 | ROLE-001 ~ ROLE-040 | 희망 직무별 핵심 질문 선정 및 답변 작성. Backend, Cloud/DevOps, Frontend, Data/AI 등 각자 직무에 맞는 질문 대비 |
| Week 07 | Season 2 - 직무별 심화 | Role-Based Interview 2 | ROLE-041 ~ ROLE-080 | 직무별 상세 질문, 기술 선택 이유, 트레이드오프, 직무 적합성 중심 답변 정리 |
| Week 08 | Season 2 - 프로젝트/포트폴리오 | Project-Based Interview | PROJECT-001 ~ PROJECT-040 | 프로젝트 구조, 본인 역할, 기술적 의사결정, 트러블슈팅, 성능 개선, 장애 대응, CS 개념과 프로젝트 연결 |
진행 상황에 따라 특정 주제는 2주 이상 다룰 수 있으며, 참여자들의 필요에 따라 추가 주차를 운영할 수 있습니다.
매주 일요일 자정까지 질문에 대한 답변을 PR로 제출합니다.
각 질문에 대해 본인의 언어로 설명 가능한 답변을 작성하는 것을 목표로 합니다.
- 질문에 대한 개념 정리 및 본인의 답변
- 질문은 주에 주제 별로 40개씩 출제되지만, 최소 20개에 답변 작성 후 제출을 원칙으로 합니다.
아래 항목은 필수가 아니며, 필요하다고 판단되는 경우에만 작성합니다.
- 참고 자료
- 꼬리 질문 및 답변
- 추가로 공부한 개념
- 프로젝트 / 과제 경험과의 연결
- 헷갈렸던 부분
- 함께 고민하고 싶은 부분
답변 예시
# Week 01 - Computer Architecture + OS Runtime
---
## [OS-001] 시스템 콜이 무엇인지 설명해 주세요.
시스템 콜은 사용자 프로그램이 운영체제 커널의 기능을 사용하기 위해 요청하는 인터페이스입니다.
일반 애플리케이션은 파일 입출력, 프로세스 생성, 네트워크 통신처럼 하드웨어나 커널 자원에 직접 접근할 수 없기 때문에, 시스템 콜을 통해 커널 모드로 전환한 뒤 OS가 대신 작업을 수행합니다.
대표적인 예시로는 `read`, `write`, `open`, `fork`, `exec` 등이 있습니다.
참고 자료:
-
---
## [OS-002] 우리가 사용하는 시스템 콜의 예시를 들어주세요.
파일을 읽을 때 사용하는 `read`, 파일을 열 때 사용하는 `open`, 프로세스를 생성할 때 사용하는 `fork`, 새로운 프로그램을 실행할 때 사용하는 `exec` 등이 시스템 콜의 예시입니다.
개발자가 직접 시스템 콜을 호출하지 않더라도, Java의 파일 입출력 API나 Python의 `open()` 같은 고수준 API 내부에서 운영체제의 시스템 콜이 호출될 수 있습니다.
참고 자료:
- 본 TF는 강의형 스터디가 아니라, 각자가 정해진 질문에 대해 답변을 작성하고 서로 피드백하며 성장하는 참여형 스터디입니다.
따라서 개인의 반복적인 미제출은 본인의 학습뿐 아니라, 함께 준비하는 팀원들의 몰입도와 TF 전체 분위기에도 영향을 줄 수 있습니다.
완벽한 답변을 요구하는 것은 아니지만, 최소한의 제출과 기록은 반드시 지켜야 합니다.
아래에 해당하는 경우 해당 주차는 미제출로 처리합니다.
- 과제 기한까지 PR을 제출하지 않은 경우
- 필수 답변 범위에 대한 답변이 누락된 경우
단, 답변의 완성도보다 본인의 언어로 이해하고 작성하려는 시도를 중요하게 봅니다.
완벽하지 않은 답변이라도 고민한 흔적이 있다면 제출로 인정합니다.
아래와 같은 사유가 있는 경우, 운영진에게 사전에 공유하면 미제출 누적에서 제외할 수 있습니다.
- 서류, 코딩테스트, 인적성, 면접 등 취업 프로세스
- 질병 또는 병원 진료
- 가족 또는 개인 긴급 사유
- 학교, 회사, 교육 과정 등 필수 일정
- 기타 운영진이 인정할 수 있는 불가피한 사유
가능하면 과제 기한 전에 공유하는 것을 원칙으로 합니다.
부득이하게 사전 공유가 어려운 경우, 사후에 상황을 설명하면 운영진 논의 후 인정 여부를 결정합니다.
| 누적 미제출 횟수 | 조치 |
|---|---|
| 1회 | 경고 및 리마인드 |
| 2회 | 운영진 개별 확인 및 참여 의사 재확인 |
| 3회 | TF 퇴출 처리 |
미제출은 인정 사유가 없는 경우에만 누적됩니다.
인정 사유 없이 미제출이 3회 누적될 경우, TF에서 퇴출 처리될 수 있습니다.
퇴출은 꾸준히 참여하는 팀원들의 학습 분위기와 TF 운영의 지속성을 지키기 위한 기준입니다.
- 완벽한 답변보다 꾸준한 제출을 우선합니다.
- 모르는 내용이 있어도 비워두기보다, 어디까지 이해했고 어디가 어려웠는지 작성합니다.
- 함께 하는 TF인 만큼, 최소한의 책임감을 가지고 참여합니다.