전체 글 30

[트러블슈팅] UICollectionViewCell 그림자가 초기 렌더링 시 안 보이는 문제

🚨문제상황셀 내부이미지에 shadow를 적용했지만 최초 실행 시 보이지 않음스크롤 후 다시 돌아오면 그림자가 정상적으로 보임아래 사진 순서 대로 1,2번은 안보이고 스크롤 하면 3번부터 보임, 다시 돌아오면 2,1 순으로 그림자가 생김 🔎 문제 원인AutoLayout이 완전히 적용되기 전에 shadowPath 설정containerView.bounds가 아직 계산되지 않은 상태여서 (0,0,0,0)이 찍힘override func layoutSubviews() { super.layoutSubviews() containerView.layer.shadowPath = UIBezierPath( roundedRect: containerView.bounds, // ❌ 초기에 bounds가..

iOS 2025.07.18

[AI와 함께하는 네트워크 공부] 3. HTTP란?

HTTP (HyperText Transfer Protocol)웹에서 클라이언트와 서버가 데이터를 주고받기 위한 통신 규약 🌐 HTTP의 특징1. 무상태성 (Stateless)서버는 클라이언트의 이전 요청을 기억하지 않습니다.요청 1: "로그인 해주세요" → 서버: "로그인 성공"요청 2: "내 정보 보여주세요" → 서버: "누구세요? 다시 로그인하세요" 서버 부담 감소: 각 요청마다 상태를 저장할 필요가 없어서 메모리 절약확장성: 여러 서버에 요청을 분산시키기 쉬움단순성: 각 요청이 독립적이라서 이해하기 쉬움문제점과 해결책:문제: 로그인 상태를 유지하려면?해결: 쿠키(Cookie), 세션(Session), 토큰(Token) 사용 2. 비연결성 (Connectionless)요청과 응답이 끝나면 연결을 끊..

TIL 2025.07.14

[iOS] Coordinator 패턴으로 화면 전환 로직 분리하기

기존의 ViewController에서 직접 화면 전환을 처리하는 방식이 마음에 들지 않아 Coordinator 패턴을 적용해보았다. ✅ Coordinator 패턴화면 전환(네비게이션) 로직을 별도의 객체로 분리하는 디자인 패턴 기존 문제점// ViewController가 다른 ViewController를 직접 알고 있어야 함class ExchangeRateViewController: UIViewController { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let calculatorVC = CalculatorViewController(exchangeRate: rate) na..

iOS 2025.07.10