전체 글 30

[iOS] 클로저에서 async/await로 리팩토링하기

기존에 배웠던 클로저 기반 네트워킹에서 async/await 방식으로 리팩토링 아닌 리팩토링을 해보았다 ✅ 기존 방식 (클로저 기반)private func fetchData() { session.dataTask(with: request) { (data, response, error) in guard let data, error == nil else { return } if let response = response as? HTTPURLResponse { if (200.. ✅ async/awaitfunc fetchData(url: URL) async -> Result { do { let (data, response) = tr..

iOS 2025.07.08

[AI와 함께하는 네트워크 공부] 2. TCP vs UDP

🚚 TCP (Transmission Control Protocol)장점단점1. 신뢰성 보장패킷 분실 시 자동 재전송중복 패킷 제거순서 보장2. 흐름 제어받는 쪽 속도에 맞춰 전송버퍼 오버플로우 방지3. 혼잡 제어네트워크 상황에 맞춰 전송 속도 조절1. 속도 느림연결 설정 시간 필요확인 과정으로 인한 지연2. 오버헤드헤더 크기 큼 (20바이트)제어 정보 많음3. 실시간 통신에 부적합재전송으로 인한 지연순서 보장 때문에 블로킹🤝 TCP 3-Way Handshake (연결 설정)📱 클라이언트 → 🖥️ 서버: "연결하고 싶어요!" (SYN)🖥️ 서버 → 📱 클라이언트: "좋아요! 연결해요!" (SYN-ACK) 📱 클라이언트 → 🖥️ 서버: "확인했어요!" (ACK) ex.// URLSession..

TIL 2025.07.07

비트 연산자

기본 비트 연산자OR 연산 (|)// 둘 중 하나라도 1이면 19 | 20// 01001 (9)// 10100 (20)// ----- OR// 11101 (29)AND 연산 (&)// 둘 다 1이어야 19 & 20// 01001 (9)// 10100 (20)// ----- AND// 00000 (0)XOR 연산 (^)// 서로 다르면 1, 같으면 010 | 12// 1010 (10)// 1100 (12)// ---- XOR// 0110 (6)NOT 연산 (~)// 0은 1로, 1은 0으로~1010 = 0101시프트 연산 (>)1 > 2 # 8을 오른쪽으로 2칸 이동# 1000 → 0010 (2가 됨) 비트 조작 기본 패턴특정 비트 설정 (Set)// n번째 비트를 1로 설정number |= (1 특정..

알고리즘 2025.07.04