본문 바로가기
TIL

250520 TIL | 셀 재사용부터 앱 생명주기까지

by 23g 2025. 5. 20.

 

안녕하세요?

오늘은 셀 재사용, 앱 생명주기, if/guard 문 등등 많은 내용을 정리해보았서요!

그럼 렛츠고

셀 재사용과 메서드

prepareForReuse()란?

  • UITableViewCell 또는 UICollectionViewCell의 재사용 직전에 호출됨
  • 셀에 남아있는 이전 상태 초기화용으로 주로 사용
  • ex: 이미지 초기화, 텍스트 리셋 등

if문, guard, 클로저, 옵셔널 처리

  • if 분기문이 많으면 초보 개발자 티 남
  • → 로직 분기 단순화하거나 함수 분리 고려
  • 삼항연산자는 ()로 감싸면 가독성 좋아짐
  • guard 구문에는 비즈니스 로직 넣지 않기
  • → 유효성 검사만 하는 게 좋음
  • guard / if는 옵셔널 바인딩 도구일 뿐, 자체가 바인딩 로직은 아님
  • 클로저 안에서 self에 ? 붙이면 안전한 참조 가능
  • → [weak self] → self?.doSomething() 패턴
  • Enum 값 접근: .caseName으로 점 연산자 사용 가능

데이터 관련 팁

  • .count - 1: 배열은 0부터 시작하기 때문에 범위 주의
  • → 안 해주면 index out of range 에러로 앱 죽음
  • 어떤 프로퍼티를 넣어야 할지 모를 땐 init() 호출해서 감 잡기
  • → 초기화 과정에서 전체 구조 파악 가능

UI & UX 개념

Optimistic UI란?

  • 요청 전 결과부터 보여주는 UI 기법
  • ex: 좋아요 버튼 누르면 바로 좋아요 숫자 올라감 → 이후 서버 요청
  • 신입 개발자가 놓치기 쉬운 부분 (요청 실패 시 롤백도 고려해야 함)

앱 생명주기 (ViewController 기준)

  1. viewDidLoad() : 최초 로딩 시 호출 (1회)
  2. viewWillAppear() : 뷰가 화면에 보이기 직전
  3. viewDidAppear() : 뷰가 완전히 나타난 후
  4. viewWillDisappear() : 뷰가 사라지기 직전
  5. viewDidDisappear() : 뷰가 완전히 사라진 후

앱 시작 관련

  • Cold Start: 앱을 껐다가 완전히 새로 실행할 때
  • Warm Start: 백그라운드에서 다시 켤 때

도구 관련

  • GUI (그래픽 UI) ↔ CLI (커맨드 라인)
  • → CLI 명령어 기초 익혀두면 디버깅, 설정 편함
  • Git 기초 명령어 (clone, commit, push, pull 등)도 습득 필수

시스템/언어 개념

  • override: 상속받은 메서드 재정의할 때 사용
  • super.~: 부모 클래스의 원래 동작 유지하거나 추가 호출하려고 사용
  • Apple 생태계의 특성→ 개발자는 외부에서만 사용 가능 (프라이빗 구조)
  • 인터페이스는 공개, 구현체는 비공개

Deprecated

  • deprecated된 기능: 공식적으로 사용 지양됨→ 새 방식으로 대체해야 함
  • → 경고 발생, 향후 삭제 가능성 있음