ex)ipad에 내 셀카를 찍어서 데스크톱에 넘기면 그건 파일을 넘기는 것이다.
그 사진을 열고 싶을때? 더블클릭해서 프리뷰를 연다. 근데 여기서 궁금점!! 어떻게 컴퓨터는 이게 이미지인지 알고 처리했던건가? 요것이 뭐 텍스트 파일일수도 있고 영상일수도 있는데 어떻게 이미지인지 알았던거야!!!
궁금하지 않나요?
파일은 바이트의 시퀀스이므로 시스템이 파일의 유형을 알아야 할 때 파일을 열고 내부의 비트를 읽어내 파일을 확인하는 것일까?
ㄴㄴ 이것은 비트를 다 읽어봐야하기에 비효율적이다.
OS가 파일의 경로 확장자로 결정한다.
맥에서는 안보이지만 .jpeg가 숨어있는 것.
하지만 웹에서는 경로확장자로 파일을 식별하지 않는다고 한다. 대신에 그들은 MIME 미디어 유형이라고 불리는것사용
결국 이 모든게 jpeg이미지를 가리키는 것이다. 하지만 애플에선!!!
public.jpeg 이 하나가 웹이든 로컬이든 모든 jpeg 이미지를 나타낸다. 우와!!! 근데 오똫게?
애플에서 설명하기를 프로토콜과 같은 상속을 허용하기에 가능하다고 한다.
public.jpeg 는 public.image를 준수하는데 이는 모든 이미지 파일 형식을 설명하는 추상적 유형이다. 어? 이미지는 파일이네
그래서 public.data를 준수한다. 모든 파일 형식을 설명하는 추상적 유형. 근데? 파일은 또 바이트의 시퀀스이므로 데이터로 나타낼수 있네?결국 public.item을 준수한다. 위에서 설명한 대로 계층을 타고타고 올라갈수 있는 것처럼 반대로 내려갈수도 있음!!
public.png, tiff즉 jpeg말고도 다른 타입들은 모두 public.image를 준수하고 있다.물론 jpeg와는 형제구조라고 생각하면 될듯?
이번엔 한단계 더 올라가보자.
컴퓨터는 바이트의 연속(비트로 연산하니까)으로 모든 것이 표현 가능하다.그래서 data아래에 image뿐만 아니라 audio, text등 다양하게 하위 유형이 있는것을 알수 있다.
Apple은 이와같이 파일형식을 식별하기 위해 UTI를 사용한다. 만약 앱에서 새로운 파일 유형을 만들고 싶을땐 UTI를 따로 만들어야 한다. iOS14부터 쉽게 사용할 수있도록 새로운 프레임워크가 소개되었는데 이는 기회가 되면 추후에 다뤄보겠슴다....
'iOS' 카테고리의 다른 글
CoreLocation과 Battery의 관계 (1) | 2024.04.21 |
---|---|
CoreLocation & MapKit (1) | 2024.04.19 |
Coremotion2편- 걷기데이터 & HealthKit (0) | 2024.04.17 |
KeyChain (1) | 2023.10.08 |
Fastlane - CI를 해보자 (0) | 2023.08.09 |