파일 매니저에서 확장명(.xxx)으로 파일을 판단하는 문제.

atclock의 이미지

파일 매니저로 Konquqeor를 주로 사용하는데, 처음에는 KDE에서만
그런 줄 알았습니다. 파일 매니저가 스스로 판단하는 것이 아니고
freedesktop에 따라 그렇게 하는 것이라는데, 예를 들자면 윈도우는
확장명(.xxx)에 따라 그 파일의 성격을 결정 짓는데 반해,
freedesktop에서는 모든 파일의 헤더 부분을 읽어 판단하고 있는것
같습니다.

물론 충분한 토론 과정을 거쳐 결정된 사항이겠지만,
저와 같은 실제 사용자 의견을 듣고 싶습니다.

랜덤여신의 이미지

노틸러스는 파일 헤더를 직접 읽고, 컹커러는 확장자를 믿는 듯 하더군요.

개인적으로는 노틸러스의 방식이 멋있다고( ? ) 생각합니다. 파일 확장자가 jpg 면서 실제로는 gif 파일 이라던가 하는 경우가 종종 있거든요. 그런 경우에 확장자를 바로잡는데에 도움이 되죠.
다만 아쉬운 점은 노틸러스는 확장자가 wmv 일 경우 asf 파일이라며 확장자를 asf 로 고칠 때까지 그 파일을 실행할 수가 없습니다. 옵션에서 확장자가 다를 경우 실행하지 않는 기능을 끄면 되겠지만, 아마 버그인 듯 싶더군요. GNOME 2.12 는 아직 안 써 봤지만, 고쳐졌을지도 모르겠네요.

atclock의 이미지

랜덤의여신 wrote:
노틸러스는 파일 헤더를 직접 읽고, 컹커러는 확장자를 믿는 듯 하더군요.

아닙니다. Konqueror도 파일의 헤더를 읽어 판단합니다.

dir이나 file이 많으면 처음에 읽는데 시간도 많이 걸리고
(이후에는 다릅니다), hdd 액세스도 많고, 아직은 오류도
많습니다. 궁긍적으로는 그렇게 해야겠지만요...^^

그리고 Gnome/KDE 문제가 아니라 freedesktop에서
주관하는것 같습니다.

-suser-

랜덤여신의 이미지

atclock wrote:
랜덤의여신 wrote:
노틸러스는 파일 헤더를 직접 읽고, 컹커러는 확장자를 믿는 듯 하더군요.

아닙니다. Konqueror도 파일의 헤더를 읽어 판단합니다.

엇? 제가 방금 컹커러에서 png 파일이라고 인식된 test.png 를 test.jpg 로 바꾸니까 jpeg 파일이라고 인식하던데요?
뭔가 설정을 고쳐야 하나요?
danskesb의 이미지

랜덤의여신 wrote:
atclock wrote:
랜덤의여신 wrote:
노틸러스는 파일 헤더를 직접 읽고, 컹커러는 확장자를 믿는 듯 하더군요.

아닙니다. Konqueror도 파일의 헤더를 읽어 판단합니다.

엇? 제가 방금 컹커러에서 png 파일이라고 인식된 test.png 를 test.jpg 로 바꾸니까 jpeg 파일이라고 인식하던데요?
뭔가 설정을 고쳐야 하나요?

저는 확장자가 없는 png 파일도 png라고 인식하던데요?

warpdory의 이미지

파일을 어떻게 읽는지는 설정에 따라 다른 걸로 기억합니다만 .. 어디서 바꾸는지는 기억이 안납니다..

그건 그렇고...

저는 시스템이 확장자와는 상관없이 판단해서 어떤 파일인지 알아서 보여주는 게 좋다고 봅니다. 물론, 설정에 따라서는 그런 기능을 꺼도 별 문제는 없겠지요.

사실 확장자라는 게, 도스시절에 파일이름 8.3 의 제한때문에 확정된 거라고 해도 큰 무리는 없으니까요.


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

tinywolf의 이미지

저도 확장자라는 건 좀 이상하다고 생각합니다..
도스의 잔재죠..

하지만 많은 사람들이 잘못 믿고 있는 내용을 올바르게 바꾸는 것 또한 불가능에 가까운 일이라고 생각합니다.

ㅡ_ㅡ;

정태영의 이미지

우선은 확장자를 이용해서 판단하고 포커스가 맞춰졌을 때 mime magic 을 통해서 어떤 파일인지를 판단하지 않나요 ;)

노틸러스는 그렇게 동작했던거 같은데요

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

charsyam의 이미지

정태영 wrote:
우선은 확장자를 이용해서 판단하고 포커스가 맞춰졌을 때 mime magic 을 통해서 어떤 파일인지를 판단하지 않나요 ;)

노틸러스는 그렇게 동작했던거 같은데요


그렇다면, 헤더를 보고 타입을 발견하지 못할 때는 어떻게
처리가 되야 할까요? 간단하게 생각하면...

1. 무조건 모르는 포맷으로 처리한다.
2. 그냥 해당 확장자로 처리한다.

1번의 경우는 경우에 따라서 모르는 파일이 부지기수로
늘어날 가능성이 있고,
2번의 경우는 jpg 중에서도 어떤건 jpg고, 어떤건 변형된
딴 파일 일수도 있게됩니다. 흐음 생각해 볼게 많군요 ^^
고운 하루되세요.

=========================
CharSyam ^^ --- 고운 하루
=========================

ydhoney의 이미지

제목은 얏옹인데 실제로는 동물의 왕국이나 시스터 액트인 경우는 어떻게 판별할까요?

송효진의 이미지

노틸러스로 원격연결 했을 때 더블클릭으로 vim 에 넘겨주기만 잘 했으면 좋겠어요.
vim 에서 못받는건 vim 책임이지만,
노틸러스에서 넘겨주지 못하다니...
이거 옛날에 되던 기능인데,
안되게 된 후 안고쳐진지 상당히 오래되었습니다.

꽁수로 드래그&드랍 으로 vim 아이콘에 넣어서 사용중...

ydhoney wrote:
제목은 얏옹인데 실제로는 동물의 왕국이나 시스터 액트인 경우는 어떻게 판별할까요?

님께 물어봅니다.
nahu5의 이미지

ydhoney wrote:
제목은 얏옹인데 실제로는 동물의 왕국이나 시스터 액트인 경우는 어떻게 판별할까요?

grep -i "skincolor" 얏옹

정태영의 이미지

송효진 wrote:
노틸러스로 원격연결 했을 때 더블클릭으로 vim 에 넘겨주기만 잘 했으면 좋겠어요.
vim 에서 못받는건 vim 책임이지만,
노틸러스에서 넘겨주지 못하다니...
이거 옛날에 되던 기능인데,
안되게 된 후 안고쳐진지 상당히 오래되었습니다.

꽁수로 드래그&드랍 으로 vim 아이콘에 넣어서 사용중...

gvim 이 gnome_vfs 를 사용하지 않기 때문 아닌가요?

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

송효진의 이미지

헉...오픈오피스를 깔았더니 더블클릭에 writer 가 열리네요-_-;;;
오랜 옛날에는 gvim-vfs 라고 제가 스크립트 만들어 놓은것을
다른프로그램으로 열기 에 등록하니,
더블클릭으로 gvim-vfs 로 가고 그 스크립트가 sftp 주소 형식을 고쳐서 gvim 에 보내어 잘 열렸었습니다.

지금은 다른프로그램으로 열기에 등록하고, 라디오버튼이 활성화 되어 있어도 더블클릭에는 걸리지 않는군요.

얼마전까지만 해도 파일형식이 어쩌고 하는 오류메세지만 나왔었는데 (gvim 메세지가 아니고 노틸러스 메세지) 좀 발전되긴 했군요.

노틸러스에서 참조하는 mime 정보를 수정해야 하는건지...
한다면 어느 파일인거죠?

atclock의 이미지

파일명이 어떻든 간에 헤더 부분을 읽어 그 파일의 성격을 정확히
알아 내서 mime를 연결 시켜 준다면 좋은텐데요. 장점이 되겠죠.

단점이라면,
서브 dir이나 파일이 많을 경우에는 프리즈 되서 아무것도 못합니다.
그리고 헤더를 잘못 판단한 경우에는 사용자가 설정한 mime보다
우선 적용되는 것 같습니다.
예를 들자면 분명 C 소스 파일인데 엉뚱한 파일로 오인하고,
*.c 에 연결된 에디터로 열지 않고 엉뚱한 프로그램으로 열거나
또는 수동으로 열어야 하는 문제점 들이 있더군요.

설정을 할 수 있는 방법이 있다니, 찾아봐야겠습니다.

shared-mime-info, 이 패키지가 결정하는 것 맞죠?

http://www.freedesktop.org/wiki/Software_2fshared_2dmime_2dinfo

-suser-

사이져의 이미지

우연히 생성된 이런 못된 파일들은 어떻게 되죠??

cat temp.txt
MP3 is 어쩌구 저쩌구

파일 헤더만 읽으면 mp3로, 확장자로만 읽으면 txt로
인식이 될 텐데..

그리고 파일 헤더를 읽는 게 빠를까요?
아니면 파일 확장자만 처리하는 게 빠를까요?
이건 테스트할 필요도 없는 문제 아닌가요?

또 *.sh, *.a, *.o같은 파일들은 그럼 뭡니까??
이것들은 도스 이전에 나온 걸텐데요??
또 확장자에 따라 의존관계를 형성해서 처리하는 Make만 봐도
알 수 있습니다. 음 확장자가 꼭 DOS시대의 유물이라고는 생각할 수는 없겠죠.

전 확장자로 우선 내용을 판단하고 이걸로 적절하게
표시할 수 없을 경우 MIME Magic으로 처리하는
순서가 맞다고 봅니다.

파일의 종류를 나타내는 필드가 현재 리눅스가 현재의 파일 시스템에
추가되기 전까지는 말이죠.

warpdory의 이미지

사이져 wrote:
우연히 생성된 이런 못된 파일들은 어떻게 되죠??

cat temp.txt
MP3 is 어쩌구 저쩌구

파일 헤더만 읽으면 mp3로, 확장자로만 읽으면 txt로
인식이 될 텐데..

확장자가 꼭 DOS시대의 유물이라고는 생각할 수는
없겠죠. (*.sh, *.a, *.o같은 파일들은 그럼 뭡니까??
이것들은 도스 이전에 나온 걸텐데요??)

전 확장자로 우선 내용을 판단하고 이걸로 적절하게
표시할 수 없을 경우 MIME Magic으로 처리하는
순서가 맞다고 봅니다.

파일의 종류를 나타내는 필드가 현재 리눅스가 현재의 파일 시스템에
추가되기 전까지는 말이죠.

DOS 시대의 유물이라고는 안했습니다. DOS 때문에 확정됐다고 했지요.
DOS 시절 이전에도 확장자는 있었습니다만, 그것이 '절대적인 구분'은 아니었습니다.

DOS 때부터 exe, com 은 실행파일, bat 은 배치파일, txt 는 텍스트 파일.. 이런 식으로 확장자가 굳어진 거죠. 그전까지는 확장자는 말 그대로 그냥 어떤 성격을 구분해주는 것이지 exe 가 붙었다고 실행파일이다.. 이런 건 아니었죠. 유닉스류에서는 퍼미션이라는 개념이 있어서 실행가능 여부를 정하고(실행가능한 바이너리 또는 셸스크립트 파일이라고 해도 퍼미션이 없다면 먹통이죠.), OS/2 에서는 확장속성이라는 것이 그 파일의 성격을 결정짓죠.
유닉스쪽에서 쓰인 sh 이라는 것은 셸 스크립트라는 것을 나타내기 위한 하나의 꼬리표 정도였죠. .sh 를 지우더라도 실행퍼미션만 주면 별 문제없이 실행됩니다. 반면에 도스(그리고 그 이후의 윈도즈, 초기버전의 OS/2 도 마찬가지...)에서는 실행파일에서 .exe 를 지워 버리면 실행이 안되죠.

저는 MIME type 으로 처리하고 확장자는 어떤 부가적인 것이라고 봅니다. 확장자는 같은 doc 이지만, MS word 포맷도 있고, 그냥 텍스트 포맷일 때도 많고, 예전에 쓰던 팔란티어 워드에서도 doc 를 쓰기도 했었거든요. hwp 도 아래아 한글이 쓰기도 했지만, 하나워드가 쓰기도 했었고요.

물론, 말씀하신 .. 그런

Quote:

cat temp.txt
MP3 is 어쩌구 저쩌구

이런 건 조금 예외적인 경우일 겁니다. MIME 검사를 보다 엄격히 하면 충분히 해결할 수 있습니다. - OS/2 의 경우 mp3 를 Z! 플레이어에 연결시켜놓은 상태에서 test.mp3 라는 파일의 이름을 test.txt 이름만 바꾼다고 해서 e 나 epm 이 떠서 텍스트문서로 생각해서 열지는 않습니다. 여전히 Z! 가 test.txt 라는 mp3 파일을 연주합니다. 확장자가 mp3 에서 txt 가 되었다고 해서 mp3 파일이 text 파일이 된 건 아니니까요.

그리고 마지막에 쓰신..

Quote:

파일의 종류를 나타내는 필드가 현재 리눅스가 현재의 파일 시스템에
추가되기 전까지는 말이죠.

이것은 현재 리눅스에서 지원하고 있는 파일 시스템중 JFS 에서는 지원합니다. 다만, 아직 리눅스에서는 그 부분을 사용하지 않고 있습니다. 아마 조만간 사용하게 되지 않을까 싶습니다. IBM 에서는 파일의 종류를 나타내는 필드를 포함한 파일의 정보를 Extended Attribute, 확장속성이라고 해서 예전부터 지원해 왔습니다. 그래서 OS/2 에서 제가 위에서 말씀드린 동작을 보이는 게 가능하죠.


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

Prentice의 이미지

Ogg Theora 동영상도, Ogg Vorbis 손실압축 음성도, Ogg FLAC 무손실압축 음성도 모두 .ogg 확장자를 가집니다. (Speex 음성도 .ogg 확장자를 붙일 수 있습니다.)

Xiph.org의 Monty님은 확장자에 의존하는 것을 안좋게(?) 보시는 듯 합니다.

voljin의 이미지

확장자라는 것 자체가 파일의 헤더를 간략화시켜서 파일명에 붙인 다음 관리하자고 하는 것이나 마찬가지이기 때문에 이를 배제하고 헤더를 우선하는 발상은 실제 적용이 힘들 것 같아보입니다.

별도 필드를 만든다는 것도 결국은 파일명에서 마지막 확장자를 안보여주는 것과 다를게 없지 않나요? 헤더 판별 정보가 8192바이트 넘어야 있는 형식도 있는데 일일이 다 읽어들이는 것도 굉장히 비효율적이고...

실행해보기 전에는 무슨 파일인지 알 수 없다는 것도 치명적입니다. 동영상을 받았는데 확장자는 없고, 나한테 코덱도 없고, MIME 타입이 완전히 정형화 되어서 헤더에서 특정 정보를 읽어낼 수 있다면 좋겠지만 그런게 없을 경우 막막해보이는군요.

warpdory의 이미지

voljin wrote:
확장자라는 것 자체가 파일의 헤더를 간략화시켜서 파일명에 붙인 다음 관리하자고 하는 것이나 마찬가지이기 때문에 이를 배제하고 헤더를 우선하는 발상은 실제 적용이 힘들 것 같아보입니다.

별도 필드를 만든다는 것도 결국은 파일명에서 마지막 확장자를 안보여주는 것과 다를게 없지 않나요? 헤더 판별 정보가 8192바이트 넘어야 있는 형식도 있는데 일일이 다 읽어들이는 것도 굉장히 비효율적이고...

실행해보기 전에는 무슨 파일인지 알 수 없다는 것도 치명적입니다. 동영상을 받았는데 확장자는 없고, 나한테 코덱도 없고, MIME 타입이 완전히 정형화 되어서 헤더에서 특정 정보를 읽어낼 수 있다면 좋겠지만 그런게 없을 경우 막막해보이는군요.

먼저 헤더 부분을 읽어서 보여주는 건 이미 1994년(사실은 그 이전부터이곘지만, 제가 본 격적으로 OS/2 를 쓴 게 그때부터라서...)부터 OS/2 에서 쓰이던 방식입니다. 당시 386 컴퓨터에서도 충분히 잘 보여주던 걸 실제 적용이 힘들지는 않을 겁니다. 다만, 요새는 600 메가 이상의 동영상 파일이 많아지니깐 그게 좀 문제가 될 것 같군요.

그리고 그 별도 필드 역시 OS/2 에서 이미 구현되어 있는 방법입니다. (HPFS 의 확장속성이 바로 그 별도 필드입니다.) 이미 1980년대 후반에서 1990년대 초반에 쓰였던 방법입니다.(지금도 쓰입니다.) - 확장속성 자체는 HPFS 가 아닌 FAT16 에서도 쓰일 수 있습니다. 다만, 루트 디렉터리에 파일을 2 개 더 만들어서 거기에 저장을 합니다.

마지막에 말씀하신 건 거꾸로 확장자가 잘못 되어 있다면... 그것도 같은 경우가 발생할 수 있습니다.


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

atclock의 이미지

사실 제 개인적인 생각으로는, 현재 사용되고 있는 확장명(명칭이나 유래가 어찌되었든)에 따르는 것이 좀 더 효율적이지 않나 생각해봅니다.
어차피 연결 프로그램에서 다시 헤더를 읽어 지원하거나 그렇지 않으면 알 수 없는 파일이라고 할테니까요. 그리고 데이터베이스가 있고 계속 추가 한다고 하더라도, 오류는 계속 있을거라 여겨집니다. 바이러스 잡는 백신도 아닌데 굳이 그렇게까지(현재로서는) 할 필요가 있나 생각되어서 올린 글이었습니다. 답글 달아주신 모든 분들께 감사드립니다.
윈도우와 비교하기는 그렇지만, 그런 방식을 몰라서라기 보다는 역시 효율성에 더 비중을 두지 않아나 생각해봅니다.

-suser-

voljin의 이미지

warpdory wrote:
voljin wrote:
확장자라는 것 자체가 파일의 헤더를 간략화시켜서 파일명에 붙인 다음 관리하자고 하는 것이나 마찬가지이기 때문에 이를 배제하고 헤더를 우선하는 발상은 실제 적용이 힘들 것 같아보입니다.

별도 필드를 만든다는 것도 결국은 파일명에서 마지막 확장자를 안보여주는 것과 다를게 없지 않나요? 헤더 판별 정보가 8192바이트 넘어야 있는 형식도 있는데 일일이 다 읽어들이는 것도 굉장히 비효율적이고...

실행해보기 전에는 무슨 파일인지 알 수 없다는 것도 치명적입니다. 동영상을 받았는데 확장자는 없고, 나한테 코덱도 없고, MIME 타입이 완전히 정형화 되어서 헤더에서 특정 정보를 읽어낼 수 있다면 좋겠지만 그런게 없을 경우 막막해보이는군요.

먼저 헤더 부분을 읽어서 보여주는 건 이미 1994년(사실은 그 이전부터이ㅤㄱㅖㅆ지만, 제가 본 격적으로 OS/2 를 쓴 게 그때부터라서...)부터 OS/2 에서 쓰이던 방식입니다. 당시 386 컴퓨터에서도 충분히 잘 보여주던 걸 실제 적용이 힘들지는 않을 겁니다. 다만, 요새는 600 메가 이상의 동영상 파일이 많아지니깐 그게 좀 문제가 될 것 같군요.

그리고 그 별도 필드 역시 OS/2 에서 이미 구현되어 있는 방법입니다. (HPFS 의 확장속성이 바로 그 별도 필드입니다.) 이미 1980년대 후반에서 1990년대 초반에 쓰였던 방법입니다.(지금도 쓰입니다.) - 확장속성 자체는 HPFS 가 아닌 FAT16 에서도 쓰일 수 있습니다. 다만, 루트 디렉터리에 파일을 2 개 더 만들어서 거기에 저장을 합니다.

마지막에 말씀하신 건 거꾸로 확장자가 잘못 되어 있다면... 그것도 같은 경우가 발생할 수 있습니다.

OS/2 같은 경우 일반 대중에게 퍼지는 것이 실패했기 때문에 그 구조를 그대로 현재 스케일에 도입한다면 이런저런 문제가 생길 것 같네요. 당장 사람들이 쓰는 파일형식이 훨씬 다양해졌고 새로 나오는 프로그램들이 생성하고 다루는 파일형식 같은 경우...헤더 규격을 엄격하게 통일하지 않는 이상 남이 받아보았을때는 이걸 뭘로 처리해야하는지 알 수도 없어지지 않을까요?

확장속성의 경우에도 결국 저장해서 안보여주는 것 보다는 명시적으로 보여주는 것이 사용자가 고치고 정리하기도 쉬운 편이고...서로 다른 파일시스템에서 복사 등의 처리를 하려면 모든 파일의 헤더 규격이 통일되기 이전에는 역시 파일명과 함께 다루는 것이 가장 효율적인 것 같습니다. (확장자라는 것이 일종의 통일된 필드라고 할 수 있으니 사실 파일 시스템에 확장자를 대신할 별도 필드 추가는 불필요해 보이네요. 리스트업 때 필드에서 읽어와 파일이름 뒤에 붙이는거라면 무슨 차이가 있을까요..)

죠커의 이미지

헤더가 너무 클 경우가 일반적이지 않을 것이라고 생각하기 때문에 헤더를 직접 읽는 형태로 구현을 하더라도 크게 문제는 없을 것 같습니다. 최근에 구글이나 애플의 경우 백그라운드로 파일들을 조사하고 있으니깐 (심지어 내용까지) 그 기술을 더 높은 수준으로 연구하면 해더가 커서 유저가 손해보는 시간은 점차 줄어들 것이라고 생각합니다.

하지만 voljin님의 지적과 같이 파일의 종류가 다양한 점을 해더만으로 해결하기는 힘들다고 생각합니다. (화일의 종류마다 해석기를 쉘에 제공해야 할테니깐요.) 여기에 대해서 별도 필드를 사용하는 것은 좋은 방법이라고 생각합니다. 대부분의 현대적인 화일 시스템에서는 그다지 무리없이 구현이 가능할 것입니다. 별도 필드를 사용하는 것도 현재 에트리뷰트 기준인 NTFS에서는 그다지 문제가 될 부분은 없습니다. EXT3에서도 그렇겠죠?

운영체제와 어플리케이션이 모두 확장 필드를 이용하되 운영체제는 비어있는 시간을 이용해서 인덱스를 만들면서 확장 필드와 실제 화일의 해더 내용간의 검증을 하고 없으면 ㅤㅈㅜㅌ여주는 시스템 정도는 괜찮을 것 같습니다.

warpdory의 이미지

voljin wrote:
warpdory wrote:
voljin wrote:
확장자라는 것 자체가 파일의 헤더를 간략화시켜서 파일명에 붙인 다음 관리하자고 하는 것이나 마찬가지이기 때문에 이를 배제하고 헤더를 우선하는 발상은 실제 적용이 힘들 것 같아보입니다.

별도 필드를 만든다는 것도 결국은 파일명에서 마지막 확장자를 안보여주는 것과 다를게 없지 않나요? 헤더 판별 정보가 8192바이트 넘어야 있는 형식도 있는데 일일이 다 읽어들이는 것도 굉장히 비효율적이고...

실행해보기 전에는 무슨 파일인지 알 수 없다는 것도 치명적입니다. 동영상을 받았는데 확장자는 없고, 나한테 코덱도 없고, MIME 타입이 완전히 정형화 되어서 헤더에서 특정 정보를 읽어낼 수 있다면 좋겠지만 그런게 없을 경우 막막해보이는군요.

먼저 헤더 부분을 읽어서 보여주는 건 이미 1994년(사실은 그 이전부터이ㅤㄱㅖㅆ지만, 제가 본 격적으로 OS/2 를 쓴 게 그때부터라서...)부터 OS/2 에서 쓰이던 방식입니다. 당시 386 컴퓨터에서도 충분히 잘 보여주던 걸 실제 적용이 힘들지는 않을 겁니다. 다만, 요새는 600 메가 이상의 동영상 파일이 많아지니깐 그게 좀 문제가 될 것 같군요.

그리고 그 별도 필드 역시 OS/2 에서 이미 구현되어 있는 방법입니다. (HPFS 의 확장속성이 바로 그 별도 필드입니다.) 이미 1980년대 후반에서 1990년대 초반에 쓰였던 방법입니다.(지금도 쓰입니다.) - 확장속성 자체는 HPFS 가 아닌 FAT16 에서도 쓰일 수 있습니다. 다만, 루트 디렉터리에 파일을 2 개 더 만들어서 거기에 저장을 합니다.

마지막에 말씀하신 건 거꾸로 확장자가 잘못 되어 있다면... 그것도 같은 경우가 발생할 수 있습니다.

OS/2 같은 경우 일반 대중에게 퍼지는 것이 실패했기 때문에 그 구조를 그대로 현재 스케일에 도입한다면 이런저런 문제가 생길 것 같네요. 당장 사람들이 쓰는 파일형식이 훨씬 다양해졌고 새로 나오는 프로그램들이 생성하고 다루는 파일형식 같은 경우...헤더 규격을 엄격하게 통일하지 않는 이상 남이 받아보았을때는 이걸 뭘로 처리해야하는지 알 수도 없어지지 않을까요?

확장속성의 경우에도 결국 저장해서 안보여주는 것 보다는 명시적으로 보여주는 것이 사용자가 고치고 정리하기도 쉬운 편이고...서로 다른 파일시스템에서 복사 등의 처리를 하려면 모든 파일의 헤더 규격이 통일되기 이전에는 역시 파일명과 함께 다루는 것이 가장 효율적인 것 같습니다. (확장자라는 것이 일종의 통일된 필드라고 할 수 있으니 사실 파일 시스템에 확장자를 대신할 별도 필드 추가는 불필요해 보이네요. 리스트업 때 필드에서 읽어와 파일이름 뒤에 붙이는거라면 무슨 차이가 있을까요..)

현재 스케일에 도입한다 해도 전혀 문제 될 것이 없습니다. MS 의 광고대로라면 NTFS 는 HPFS 의 특징을 그대로 물려 받고 있으니까요. (문제는 NT 커널에서 그걸 제대로 못 해주고 있다는 것이긴 하지만요. 물론, 광고 그대로 믿기는 좀 께름직 하긴 합니다.) 그리고 위에서 언급한대로 JFS 파일 시스템 같은 경우는 이미 저러한 특징을 그대로 쓸 수 있습니다. 조금만 더 조작하면 되는 거죠. JFS 파일 시스템은 AIX 등에서 사용해서 이미 안정성 등을 충분히 인정 받은 파일 시스템이지요. - 조금 다른 관점에서 본다면 HPFS 는 JFS 의 서브셋이라고 보시면 됩니다.

이미 하드웨어적으로는 또한 소프트웨어적으로도 충분히 헤더 내용을 보고 어떤 파일인지 체크해주는 것은 가능합니다. 다만 말 그대로 아직까지는 그 궁합의 문제(파일 갯수가 몇만개쯤 된다고 할 때.. 단순히 파일의 확장자만 보고 파악하는 것과 각 파일들의 헤더를 쭉 훑어 보는 것은 분명히 확장자만 보고 파악하는 것이 '효율성'이라는 관점에서는 아무래도 떨어질 수 밖엔 없지만, 그 반대로 만일 그 수만개쯤 되는 파일중에서 확장자는 mp3 이지만, 내용이 ogg 이거나, 확장자는 xls 파일이지만, 단순히 텍스트 파일일 경우... 이런 경우 더 확실히 잡아낼 수 있다는 점도 있습니다.) 그리고, 결국은 과연 사용자가 느낄 때 느리냐, 빠르냐의 문제가 될 겁니다. 하지만, 제 경험으로는 ... 하드웨어적으로는 이미 충분하다고 봅니다. 문제는 메모리와 사용자가 어떻게 느끼느냐 .. 하는 점이지요. 이건 개발자들이 열심히 삽질해야 할 문제겠죠.


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

voljin의 이미지

파일시스템에서 파일종류를 관리해주는 것 까지는 좋은데, 이걸 파일 리스트업을 할때 같이 보여준다면 결국 이게 확장자와 다른 점이 뭐지요?
per file 관리를 할 때 이 필드를 강제로 수정할 수 있게 해준다면 잘못된 표기 등은 현재의 확장자 방식에 비해서 아무런 차이가 없을텐데요. (지금도 파일을 분석하여 맞는 확장자로 돌려주는 프로그램들은 있습니다. 대몬에서 분석하여 fs에 기록하거나, 확장자를 변경하라고 그 후보를 알려주는거나 결국 같은 작업입니다.)
이런 대몬이 OS에 기본으로 탑재 된 다음 확장자 표시를 기본으로 비활성화(윈도는 이렇게 되어있죠. 핸들링 할 방법을 아는 확장자는 비표시)한다면 어떤 차이가 있을지 모르겠군요.

그리고 헤더 분석 방식은 분석 정보가 없는 파일에 대해서는 무력하기 때문에 어떠한 형태로든 명시적으로 파일정보에 이 부분을 나타내주어야 합니다. (네트워크상에서 교환하거나 압축할 경우에 그렇죠.)

확장자를 사용하고 부속으로 헤더 분석을 사용하는 방법이라면 납득이 갑니다만... (그러면서도 노틸러스처럼 일일이 직접 asf로 바꾸라고 귀찮게 구는건 좋은 방법이 아닌 것 같습니다. 한번알려만 주는 정도에서 끝내야지..)

대상의 카테고리를 명시적으로 보여준다는 개념 자체를 버리지 않는 이상 결국 어떤 형태를 취하더라도 현재의 확장자 방식의 변형일 뿐이라고 생각됩니다.

warpdory의 이미지

voljin wrote:
파일시스템에서 파일종류를 관리해주는 것 까지는 좋은데, 이걸 파일 리스트업을 할때 같이 보여준다면 결국 이게 확장자와 다른 점이 뭐지요?
per file 관리를 할 때 이 필드를 강제로 수정할 수 있게 해준다면 잘못된 표기 등은 현재의 확장자 방식에 비해서 아무런 차이가 없을텐데요. (지금도 파일을 분석하여 맞는 확장자로 돌려주는 프로그램들은 있습니다. 대몬에서 분석하여 fs에 기록하거나, 확장자를 변경하라고 그 후보를 알려주는거나 결국 같은 작업입니다.)
이런 대몬이 OS에 기본으로 탑재 된 다음 확장자 표시를 기본으로 비활성화(윈도는 이렇게 되어있죠. 핸들링 할 방법을 아는 확장자는 비표시)한다면 어떤 차이가 있을지 모르겠군요.

그리고 헤더 분석 방식은 분석 정보가 없는 파일에 대해서는 무력하기 때문에 어떠한 형태로든 명시적으로 파일정보에 이 부분을 나타내주어야 합니다. (네트워크상에서 교환하거나 압축할 경우에 그렇죠.)

확장자를 사용하고 부속으로 헤더 분석을 사용하는 방법이라면 납득이 갑니다만... (그러면서도 노틸러스처럼 일일이 직접 asf로 바꾸라고 귀찮게 구는건 좋은 방법이 아닌 것 같습니다. 한번알려만 주는 정도에서 끝내야지..)

대상의 카테고리를 명시적으로 보여준다는 개념 자체를 버리지 않는 이상 결국 어떤 형태를 취하더라도 현재의 확장자 방식의 변형일 뿐이라고 생각됩니다.

사용자 관점에서는 파일시스템(정확히는 OS 겠죠.)에서 파일 종류를 파악해서 보여주는 것은 단순히 확장자만 보여주는 것과는 상당히 다릅니다. 말씀하신대로 어떤 데몬에서 분석해서 틀린 확장자를 가진 파일을 찾아서 원래의 확장자로 돌려준다면 꽤 쓸만한 거죠.

즉, 확장자가 jpg 이기 때문에 jpeg 파일이냐, - 확장자로 구분하는 방법.
jpeg 파일이기 때문에 확장자가 jpg 가 붙느냐 - 확장속성 같은 것을 이용하여 구분하는 방법.
이냐로 문제를 좁힐 수 있는 것이고, 저는 뒤쪽을 더 선호하는 합니다.

여태까지 이러한 방식으로 헀을 때 문제 생긴 적은 한번도 없었거든요. 단순히 확장자만 가지고 작업하거나 했을 땐 문제 생긴 적이 많았지만 말이죠.


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

정태영의 이미지

warpdory wrote:
그리고 그 별도 필드 역시 OS/2 에서 이미 구현되어 있는 방법입니다. (HPFS 의 확장속성이 바로 그 별도 필드입니다.) 이미 1980년대 후반에서 1990년대 초반에 쓰였던 방법입니다.(지금도 쓰입니다.) - 확장속성 자체는 HPFS 가 아닌 FAT16 에서도 쓰일 수 있습니다. 다만, 루트 디렉터리에 파일을 2 개 더 만들어서 거기에 저장을 합니다.

http://hjem.get2net.dk/rune_moeller_barnkob/filesystems/vfat.html
vfat 에서도 확장자 필드가 따로 존재합니다...

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

warpdory의 이미지

정태영 wrote:
warpdory wrote:
그리고 그 별도 필드 역시 OS/2 에서 이미 구현되어 있는 방법입니다. (HPFS 의 확장속성이 바로 그 별도 필드입니다.) 이미 1980년대 후반에서 1990년대 초반에 쓰였던 방법입니다.(지금도 쓰입니다.) - 확장속성 자체는 HPFS 가 아닌 FAT16 에서도 쓰일 수 있습니다. 다만, 루트 디렉터리에 파일을 2 개 더 만들어서 거기에 저장을 합니다.

http://hjem.get2net.dk/rune_moeller_barnkob/filesystems/vfat.html
vfat 에서도 확장자 필드가 따로 존재합니다...

확장자 필드가 아니라 .. 확장속성에 대한 얘기였습니다...


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

죠커의 이미지

예전에 FAT와 같이 확장자 필드가 강제화된 시스템이 아니라면 더 이상 확장자라는 것을 운영체제가 신뢰할 이유가 무엇인지 궁금합니다. 시스템적으로 지원하는 확장자가 아니라서 .이 단순히 두개의 필드를 구분하는 구분자(delimeter)에 불구하다면 과감히 파일 속성을 도입해 그것 만을 신뢰하는 것이 더 올바른 선택이라고 생각합니다. 이 경우에도 파일 속성을 기록할때 운영체제가 돕거나 응용프로그램에서 직접 지시할 수 있도록 하는 게 좋겠지요.

그리고 화일헤더 탐색에 대해서는 여유 시간에 동작하는 부차적인 메카니즘으로 규정한다면 문제가 없을 것 같습니다. 잘 못 분류된 자료를 잘 정리해주는 비서 정도의 의미를 두면 되겠지요. 파일 헤더가 짧은 경우 바로 읽고 길 경우는 to do list에 올리는 구현과 여유 시간 동안에 전체 파일에 대해서 탐색하는 방법으로 구현해두면 괜찮을 것 같습니다.

다크슈테펜의 이미지

그런데 한편으로는 이런 상황도 일어나죠 가장 기본적인 파일 포맷인(?) TXT파일입니다.다른 파일 포맷은 이미지파일이나 그런것으로 변형된다 하더라도 같은 프로그램에서 연동이 가능하겠지요.JPG파일로 인식된 PNG파일이라 하더라도 궁극적으로 여는 프로그램은 이미지 뷰어입니다.물론 헤더 속성으로 인해 JPG냐 PNG냐 설명이 달리 표기 되겠지만요.
하지만 기본적인 TXT파일은 무한히 확장이 가능합니다.즉 기본적인 텍스트 형태냐 그리고 프로그램 소스냐 아니면 웹페이지 소스냐 그리고 프로그램 설정파일이냐 천차 만별이고 또한 열어야 하는 적당한 프로그램도 달라집니다.이경우에는 어쩔수 없이 확장자를 이용해야 하지 않을까 생각합니다.확장자가 없으면 사용자가 어디에 쓰이는 프로그램인지 설명이 없다면 사용이 불가능할수도 있으니까요
이런 형식에는 압축파일 zip도 포함하는 것입니다.대부분의 스킨파일은 zip로 압축됩니다.윈도우즈 왠만한 프로그램은 그냥 복사하는 것 아니라면 zip로 해서 확장자만 달리해서 사용하고 있습니다.또한 자바의 JAR그리고 파이어폭스 스킨,확장도 역시 이형식으로 압축이 됩니다.이경우에도 역시 헤더만으로는 불가능하죠.

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

죠커의 이미지

다크슈테펜 wrote:
그런데 한편으로는 이런 상황도 일어나죠 가장 기본적인 파일 포맷인(?) TXT파일입니다.다른 파일 포맷은 이미지파일이나 그런것으로 변형된다 하더라도 같은 프로그램에서 연동이 가능하겠지요.JPG파일로 인식된 PNG파일이라 하더라도 궁극적으로 여는 프로그램은 이미지 뷰어입니다.물론 헤더 속성으로 인해 JPG냐 PNG냐 설명이 달리 표기 되겠지만요.
하지만 기본적인 TXT파일은 무한히 확장이 가능합니다.즉 기본적인 텍스트 형태냐 그리고 프로그램 소스냐 아니면 웹페이지 소스냐 그리고 프로그램 설정파일이냐 천차 만별이고 또한 열어야 하는 적당한 프로그램도 달라집니다.이경우에는 어쩔수 없이 확장자를 이용해야 하지 않을까 생각합니다.확장자가 없으면 사용자가 어디에 쓰이는 프로그램인지 설명이 없다면 사용이 불가능할수도 있으니까요
이런 형식에는 압축파일 zip도 포함하는 것입니다.대부분의 스킨파일은 zip로 압축됩니다.윈도우즈 왠만한 프로그램은 그냥 복사하는 것 아니라면 zip로 해서 확장자만 달리해서 사용하고 있습니다.또한 자바의 JAR그리고 파이어폭스 스킨,확장도 역시 이형식으로 압축이 됩니다.이경우에도 역시 헤더만으로는 불가능하죠.

여러 용도로 쓰이는 동일 형태의 포맷이 문제이군요. 다시 생각해봐야겠습니다.