파일 스니퍼


스토리

이 연습 문제의 스토리는 파일 확장자와 바이너리 파일 형식을 비교한다는 설정을 빌려 바이너리 데이터, 패턴 매칭, 문자열 인코딩이라는 개념을 살펴봐요. 학습자는 기대하는 미디어 타입과 파일에 인코딩된 미디어 타입을 비교하는 함수 몇 개를 작성하게 돼요.

과제

이 스토리를 통해 다음과 같은 함수를 정의해요.

  • 문자열 확장자에서 미디어 타입 반환하기
  • 바이너리 파일 형식에서 미디어 타입 반환하기
  • 문자열 확장자에서 얻은 기대 미디어 타입과 바이너리 파일에서 얻은 실제 타입 비교하기

연습 문제 참고

파일 형식 일반적인 확장자 미디어 타입 첫 바이트에서 읽는 바이너리 '시그니처'
ELF none or "exe" "application/octet-stream" 0x7F, 0x45, 0x4C, 0x46
BMP "bmp" "image/bmp" 0x42, 0x4D
PNG "png" "image/png" 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A
JPG "jpg" "image/jpg" 0xFF, 0xD8, 0xFF
GIF "gif" "image/gif" 0x47, 0x49, 0x46

구현