[내일배움캠프 4주차 (01/23)]

yeseul jang·2026년 1월 23일

내일배움캠프

목록 보기
6/32

1️⃣ ContiguousArray

✅ 정의 (공식 개념)

  • ContiguousArray<Element>는 메모리에 요소들이 연속적으로 저장되는 배열 타입

Swift 공식 문서 기준:
ContiguousArrayArray와 비슷하지만 항상 연속된 메모리(contiguous storage) 를 보장한다.

📚 참고: ContiguousArray

✅ 어떨 때 사용할까?

  • 일반적인 Array는 값 타입(struct)이고 Copy-on-Write이다. 그래서 항상 메모리 연속이 보장되지는 않음

  • 하지만 ContiguousArrayObjective-C 브리지 안 함 Swift 전용이고 항상 연속된 메모리이다.

  • 성능이 진짜 중요한 경우 적절한 배열이다.

  • 연속 메모리의 장점: CPU 캐시 효율 높음, 반복문, 수치 연산, 그래픽 처리 빠름, low-level 연산 유리

  • 대부분은 Array 쓰면 됨

  • 성능 병목이 확인되었을 때만 ContiguousArray 고려

예시) 이미지 처리, 수치 계산, 게임 / 그래픽, 대량 데이터 반복 처리

2️⃣ Hashable

✅ 정의

  • Hashable: 값을 해시 값(hash value)으로 변환할 수 있는 타입
  • 이 값이 같은 값인지 빠르게 비교할 수 있게 해줌

✅ 왜 필요할까?

  • Set에 넣고 싶을 때
  • Dictionarykey로 쓰고 싶을 때
  • 이 객체가 동일한 개념인지 판단해야 할 때

✅ 자동 Hashable

  • Swift는 조건이 맞으면 자동으로 Hashable을 만들어 줌
  • 조건: 모든 저장 프로퍼티가 Hashable이면 가능
  • 예시
struct User: Hashable {
    let id: Int
    let name: String
}
  • StringInt는 이미 Hashable 이라 가능하다.
profile
iOS 개발

0개의 댓글