이 연습 문제의 스토리는 파일 확장자와 바이너리 파일 형식을 비교한다는 설정을 빌려 바이너리 데이터, 패턴 매칭, 문자열 인코딩이라는 개념을 살펴봐요. 학습자는 기대하는 미디어 타입과 파일에 인코딩된 미디어 타입을 비교하는 함수 몇 개를 작성하게 돼요.
이 스토리를 통해 다음과 같은 함수를 정의해요.
| 파일 형식 | 일반적인 확장자 | 미디어 타입 | 첫 바이트에서 읽는 바이너리 '시그니처' |
|---|---|---|---|
| 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 |