Skip to content

KimNahun/iOS-CS-Study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

📱 iOS CS 스터디

iOS 개발자에게 필요한 CS 핵심 주제를 빠르게 정리하고, 실무와 연결하여 면접 질문에 명확하게 답할 수 있도록 훈련하는 스터디입니다.


👥 스터디 멤버


나훈

은지

기정
김나훈 이은지 홍기정

📂 스터디 폴더 구조

study/
├── week1/   # 자료구조 / 알고리즘 기초
│   ├── 나훈/
│   ├── 은지/
│   ├── 기정/
│   └── questions/
├── week2/   # 운영체제 / 메모리 / 동시성
│   ├── 나훈/
│   ├── 은지/
│   ├── 기정/
│   └── questions/
├── week3/   # 네트워크 / HTTP / 통신
│   ├── 나훈/
│   ├── 은지/
│   ├── 기정/
│   └── questions/
└── week4/   # 데이터베이스 / 객체지향 / 면접 정리
    ├── 나훈/
    ├── 은지/
    ├── 기정/
    └── questions/

📋 스터디 운영안

🎯 스터디 목표
  • iOS 개발자에게 필요한 CS 핵심 주제를 빠르게 정리한다.
  • 단순 개념 암기가 아니라 iOS 실무와 연결해서 설명할 수 있도록 훈련한다.
  • 면접 질문에 답할 수 있을 정도로 핵심 개념을 말로 정리하는 연습을 한다.
  • 모의 면접을 통해 실제 질문을 받았을 때 짧고 명확하게 답하는 훈련을 한다.
📌 기본 정보
항목 내용
기간 4주
빈도 주 1회
회당 시간 1시간 (예상)
인원 3명 (김나훈, 이은지, 홍기정)
📏 Base Rule Set

1. 운영 원칙

  • 본 스터디는 4주를 기본 단위로 운영한다.
  • 4주 진행 후, 상호 협의를 통해 연장 여부를 결정한다.
  • 스터디 방식은 고정하지 않고, 더 좋은 방법이 있다면 회고 후 변경할 수 있다.
  • 커리큘럼과 세부 진행 내용은 추후 협의를 통해 보완 및 수정할 수 있다.
  • 급한 일 등이 생긴다면 스터디를 상호 합의 하에 1주 뒤로 연장할 수 있다.

2. 공개 및 기록 원칙

  • 본 스터디 결과물은 추후 GitHub Public Repository에 공개하는 것을 기본으로 한다.
  • 클로바노트 등으로 정리한 회의록, 메모, 발표 기록은 함께 공유한다.
  • 권장 사항으로, 각자는 당일 스터디에서 다룬 내용을 개인 블로그에 정리해 게시한다.

3. 인원 운영 원칙

  • 현재 기본 인원은 3명으로 시작한다.
  • 주변에 관심 있는 사람이 있다면 협의 후 추가 영입할 수 있다.
  • 인원이 늘어나면 발표 분량과 진행 방식은 상황에 맞게 조정한다.

4. 사전 준비 원칙

  • 해당 주차에 다룰 주제는 모두가 공통으로 공부해 온다.
  • 특정 발표자만 준비하는 방식이 아니라, 전원이 전체 범위를 미리 학습하는 것을 기본 원칙으로 한다.

5. 발표 방식

  • 당일 발표자는 랜덤으로 정한다.
  • 발표 주제는 미리 잘게 나눈 세부 주제 단위로 랜덤 배정한다.
  • 각자는 자신에게 배정된 주제를 발표한다.
  • 발표는 핵심 개념, 이유, 시간복잡도, iOS 연결 포인트 중심으로 짧고 명확하게 진행한다.

6. 질의응답 및 모의 면접 방식

  • 각 발표가 끝나면 발표 내용에 대해 질의응답을 진행한다.
  • 질의응답은 단순 확인 질문이 아니라, 면접처럼 답변하는 방식으로 진행한다.
  • 필요하면 꼬리 질문을 통해 모의 면접 형태로 확장한다.

7. 회고 및 개선

  • 매주 스터디 종료 전 짧게 회고를 진행한다.
  • 진행 방식, 발표 방식, 질문 방식 등에서 개선점이 있으면 다음 회차부터 반영한다.
⏱️ 1시간 타임테이블 & 역할 분담
시간 내용
10분 이번 주 범위 체크 및 발표 주제 배정
30분 발표 진행
15분 질의응답 및 모의 면접
5분 회고 및 다음 주 공지

역할 분담

  • 진행자: 시간 관리, 순서 진행, 질문 정리
  • 발표자: 랜덤 배정된 주제 발표
  • 기록자: 토론 내용, 질문, 회고 내용 정리 (클로바노트 AI 요약 활용 가능)
  • 공통: 해당 주차 전체 범위를 모두 공부해오기

역할은 매주 돌아가면서 맡는 것을 권장한다.

📅 Week 1 — 자료구조 / 알고리즘 기초

목표

  • 시간복잡도와 자료구조 선택 기준을 이해한다.
  • Swift와 iOS 코드에서 왜 특정 자료구조를 쓰는지 설명할 수 있다.

학습 주제

# 주제
1 시간복잡도, 공간복잡도
2 Array vs List
3 Stack, Queue
4 Hash Table
5 Tree
6 Heap, Priority Queue
7 BST와 균형 트리
8 정렬과 탐색 기초
9 재귀와 반복 / 캐시 지역성

iOS 연결 포인트

  • Swift Array의 특성과 성능
  • Dictionary, Set이 빠른 이유
  • UITableView, UICollectionView 데이터 관리
  • undo/redo와 Stack
  • BFS, DFS가 필요한 탐색 문제
  • 우선순위 기반 처리와 Heap / Priority Queue
  • 배열 기반 자료구조가 실제로 빠른 이유와 캐시 지역성

예상 질문

  • Array와 Linked List의 차이는 무엇인가?
  • 왜 이론상 List가 삽입/삭제에 유리한데 실제로는 Array가 빠를 때가 많은가?
  • Stack과 Queue의 차이는 무엇인가?
  • Dictionary와 Set은 왜 빠른가?
  • Hash 충돌이 발생하면 어떻게 되는가?
  • Tree와 Heap은 어떤 차이가 있는가?
  • Priority Queue는 왜 Heap으로 구현하는가?
  • BST는 왜 편향되면 성능이 나빠지는가?
  • O(1), O(log n), O(n)의 차이를 설명해봐라.
  • iOS에서 자료구조 선택이 중요한 이유는 무엇인가?
📅 Week 2 — 운영체제 / 메모리 / 동시성

목표

  • 프로세스, 스레드, 메모리 구조를 이해한다.
  • iOS의 동시성과 ARC를 CS 관점에서 설명할 수 있다.

학습 주제

# 주제
1 프로세스와 스레드
2 컨텍스트 스위칭
3 동기와 비동기
4 직렬과 병렬
5 Race Condition
6 Deadlock
7 메모리 구조 (코드, 데이터, 힙, 스택)
8 가상 메모리 / 캐시 메모리 기초
9 ARC / retain cycle / iOS 연결

iOS 연결 포인트

  • 메인 스레드에서 UI를 처리하는 이유
  • GCD, OperationQueue, Swift Concurrency
  • async/await의 필요성
  • ARC와 retain cycle
  • struct와 class의 메모리 관점 차이

예상 질문

  • 프로세스와 스레드 차이는 무엇인가?
  • 동기와 비동기의 차이는 무엇인가?
  • 직렬과 병렬의 차이는 무엇인가?
  • 힙과 스택은 어떻게 다른가?
  • iOS에서 메인 스레드가 중요한 이유는 무엇인가?
  • ARC는 무엇인가?
  • retain cycle은 왜 생기는가?
📅 Week 3 — 네트워크 / HTTP / 통신

목표

  • 네트워크 기초를 이해하고 iOS 네트워킹과 연결한다.
  • URLSession, REST API, 인증 방식 등을 설명할 수 있다.

학습 주제

# 주제
1 IP / DNS
2 TCP / UDP
3 HTTP / HTTPS
4 요청과 응답 구조
5 HTTP Method
6 상태 코드
7 REST API
8 쿠키 / 세션 / 토큰
9 소켓 통신 / WebSocket / iOS 연결

iOS 연결 포인트

  • URLSession 기본 흐름
  • JSON 인코딩/디코딩
  • 네트워크 에러 핸들링
  • Access Token, Refresh Token
  • WebSocket, socket.io 사용 이유
  • 일반 API 요청과 실시간 통신 차이

예상 질문

  • TCP와 UDP의 차이는 무엇인가?
  • HTTP와 HTTPS 차이는 무엇인가?
  • GET과 POST 차이는 무엇인가?
  • 401과 403 차이는 무엇인가?
  • REST API란 무엇인가?
  • 소켓 통신은 언제 필요한가?
📅 Week 4 — 데이터베이스 / 객체지향 / 면접 정리

목표

  • 데이터 저장과 객체지향 기초를 정리한다.
  • 4주 동안 배운 내용을 면접 답변 형태로 정리한다.

학습 주제

# 주제
1 RDB / NoSQL
2 인덱스
3 정규화
4 트랜잭션 / ACID
5 객체지향 4대 특성
6 SOLID — SRP
7 SOLID — OCP / LSP / ISP / DIP
8 추상화 / Protocol / DI
9 디자인 패턴 / iOS 아키텍처 / 최종 면접 정리

iOS 연결 포인트

  • Core Data, SQLite, Realm 등 로컬 저장소
  • 인덱스와 조회 성능
  • MVVM, Clean Architecture와 객체지향
  • Protocol 기반 설계
  • DI와 테스트 가능한 구조

예상 질문

  • RDB와 NoSQL 차이는 무엇인가?
  • 인덱스는 왜 빠른가?
  • 트랜잭션이 필요한 이유는 무엇인가?
  • 객체지향 4대 특성을 설명해봐라.
  • SOLID 중 SRP와 DIP를 설명해봐라.
  • Protocol을 왜 사용하는가?
🏁 최종 목표

4주가 끝났을 때 아래가 가능해야 한다.

  • 주요 자료구조와 시간복잡도를 설명할 수 있다.
  • 프로세스, 스레드, 메모리, 동시성을 설명할 수 있다.
  • HTTP, TCP, 인증 방식을 설명할 수 있다.
  • DB와 객체지향을 iOS 구조와 연결할 수 있다.
  • 면접 질문에 1~2분 정도로 또렷하게 답할 수 있다.

💡 매주 공통 진행 팁

  • 개념 정의만 하지 말고 반드시 iOS 예시와 연결해서 말하기
  • 발표는 짧고 명확하게 준비하기
  • 질문을 받으면 정의 → 이유 → iOS 예시 순서로 답하기
  • 발표 후에는 모의 면접처럼 꼬리 질문까지 받아보기
  • 매주 마지막에는 이번 주 핵심 개념 3개를 각자 말로 정리하기

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors