Media Transfer Protocol
안드로이드 사용자들의 천적! iOS에는 아이튠즈가 있다면 안드로이드에는 MTP가 있다!
1 개요
기존의 PIP를 마이크로소프트가 보다 여러 종류의 장치에서 쓸 수 있도록 확장한 것으로 Windows Media Player에 내장된 기능[1]이다. 그렇게 유명한 것은 아니었으나 안드로이드에서 이동식 디스크를 MTP로 대체하면서 널리 알려지게 되었다.
2 특징
호스트가 되는 장치에 파티션을 직접 마운트 하지 않으며, 일종의 "파일서버"로서 동작한다. 느리고 잔 버그가 많아 프리징이 일상이다.
다만 MTP는 연결되는 장치의 파일 시스템에 관계없이 파일을 읽고 쓸 수 있다는 큰 특징이 있다. 과거 안드로이드 저장소가 파티션으로 나눠져 있어 안드로이드를 구동하는 리눅스 파티션과 데이터를 저장하는 FAT 파티션으로 구성할 수 있었을 적에는 FAT 파티션을 PC의 이동식 디스크로 할애할 수 있었다. 하지만 이는 폰 제작시 파티션 배분을 "용량 낭비" vs "미래를 위한 대비" 사이에서 고민을 하게 만들었으며, 많은 안드로이드 기기들이 파티션 용량 부족으로 OS 업그레이드를 받지 못하는 사태를 낳고 말았다. 혹은 모든 데이터를 날리고 파티션을 재생성 해야 했다. 최근에는 저장소를 모두 리눅스 포맷으로 이용하고 시스템과 사용자 공간을 폴더로 나누었다. 앞서 언급한 OS 업그레이드에 파티션 용량에 발목 잡힐 일이 없어졌으며, 파일도 FAT보다는 안정적으로 저장할 수 있게 되었고, 보안 설정도 가능하게 되었다. 그런데 윈도우에서는 리눅스 파티션을 읽을 수 없기 때문에 과거의 "이동식 디스크" 자체가 불가능해졌으며, 설사 된다 하더라도 포맷 하라고 뜨게 된다. 따라서 파일 시스템에 관계없이 서버와 같은 방식으로 파일들에 접근할 수 있도록 미디어 전송 프로토콜을 이용하게 되었다.
또한 MTP는 데이터의 보존에 있어서 안정적이다. 이동식 디스크의 경우 하드웨어 안전제거를 하는 등 고려해야 할 상황이 많다. 파일을 쓰다가 중단하면 파일 시스템이 깨지는 우려도 있고 전체 데이터를 날릴 가능성을 안고 있다. 따라서 직접적인 접근을 지양하고 안정적으로 이종 기기간 파일을 다루는 MTP가 느리지만 옳은 방법일 수도 있다. 그러나 버그가 넘쳐나는 관계로 잘라내기를 썼다간 파일이 사라질 수도 있다.
그리고 MTP는 보안에도 긍정적이다. 이동식 디스크는 안드로이드가 관리하다가 윈도우가 관리하다가 다시 안드로이드가 관리하는 것이 가능한데, 윈도우 쪽에서 저장공간을 헤집어 놓으면 안드로이드가 관리하지 못하는 사이 파일의 위변조 등이 가능할 수 있는 문제가 상주한다. MTP는 저장소 관리가 안드로이드 아래 일률적으로 관리되기 때문에 치명적인 파일 변조나 샌드박스 무력화 등에서 한결 안전하다.
이동식 디스크와의 차이를 도서관에 비유하면 이렇다.
- 이동식 디스크
- 이 도서관은 관리인이 없다. 마음대로 자료를 뒤지고 제거하거나 추가할 수 있으며 책을 읽으며, 다른 책을 버리는 등 여러 작업을 동시에[2] 해도 무방하다.
- 자료를 버리거나 추가하던 중 갑자기 문으로 돌진해 나가버리면 도서관
무너진다(?)시스템에 문제가 생길 수 있다. 또한, 도서관의 자료 정리 방법을 모르면 자료를 찾아볼 수 없다.
- MTP
- 출입이 엄격히 통제된 도서관. 입구에서만 관리인을 만날 수 있으며
멍청한관리인에게 명령을 내려서 필요한 작업을 수행할 수 있다. 그런데 관리인이 작업에 들어가면 끝나기 전 까지 다른 명령을 내릴 수 없으며, 느리다. 덤으로 도중에 책을 흘리거나 불 태워 소멸시켜 버리기도 한다. - 도중에 나가버리더라도 애당초 도서관안으로는 들어가지도 못하고 입구에만 있었으므로 별 문제가 생기지 않으며, 모르는 언어로 쓰인 글도 관리인이 아는 언어라면 알아서 읽어준다!
- 출입이 엄격히 통제된 도서관. 입구에서만 관리인을 만날 수 있으며
윈도우의 기본 기능인 만큼 비스타부터 내장되어 있고, 잘지원되지만[3] 다른 OS에서는 그닥...
여담이지만, 안드로이드 장치의 파일 관리가 MTP를 통해 이루어진다는 것을 쉽게 실감할 수 있는 특징 몇 가지가 있다.
- 안드로이드 장치를 컴퓨터와 연결해 사용할 경우, USB 저장소 마운트 해재 기능이 없다. 왜냐하면 위에 서술되어 있듯 이건 마운트되는 게 아니니까.
- USB 데이터 케이블로 안드로이드 장치를 컴퓨터와 연결했을 경우, 충전이 진행됨에도 불구하고 파일 관리 등을 하다 보면 오히려 배터리 양이 줄어든다. 위에 서술되어 있듯 해당 장치(스마트폰)가 파일 서버로써 컴퓨터에 연결되어 있고, 컴퓨터로는 해당 장치를 원격 조작할 뿐 작업 자체는 장치의 자원을 이용해서 이뤄지므로 배터리가 소모되는 것.
3 문제점
느리고 불안정하기까지 하다그러나 개선의 의지도 없다
안드로이드의 천적
지금은 조금 나아진 것 같지만 안드로이드에 처음 지원되었을 때 모두가 이동식 디스크를 그리워했다. 기존의 FAT방식으로 저장소를 쓸 경우 4 GiB 이상의 파일을 쓸 수 없다는 단점은 어느 정도 극복할 수 있었지만(이마저도 내부 저장소에 한한다. 외부 저장소도 ext4 같은 걸로 포맷하면 되나 그러면 장점이 희석되니...) 느리고, 잘 뻗고, 한 번에 한 작업만 되는 문제가 있어 기존의 방식을 그립게 만든다.
특정 사용자의 시스템에서는 이름 바꾸기, 새 디렉토리 생성, 파일 이동 등 내부적으로 파일 이름을 변경하는 것으로 보이는 작업을 걸면 작동이 멈춘다. 처음 발견된지 한참이 지나 Windows 10에 도달했지만 여전히...
잘라내기 기능도 엉망인데, 멋모르고 대량의 디렉토리[4]에 대해 잘라내기(to PC)를 했다간 간혈적으로 파일이 사라진다!!! PC로 파일이 전송되지는 않은 채, 안드로이드 기기로 파일을 지우라는 명령은 전달되어 파일만 사라지는 괴악한 버그
또한 마이크로 SD에 쓰인 일부 파일을 읽을 수 없는 경우도 왕왕 존재한다. 음악 파일을 예로 들면, 이어폰을 꽂아서 방금 전까지 들은 노래 파일을 컴퓨터로 옮기려고 MTP로 연결을 하면 파일이 없다. 마이크로SD를 지원하고 이동식 디스크로 연결을 하면 멀쩡히 나오는 파일이 MTP로 연결만 하면 보이지 않는 것. 발전의 길은 아직 먼 듯 하다.