당신이 이미 알고 있듯이, 파일에 데이터를 저장하는 것은 편리합니다.
이번 주제에서는, 파일로 무엇을 할 수 있는지, 어떻게 구별하는지, 이들의 주요 유형은 어떤지 알아 볼 겁니다.
Unix file types - 유닉스 파일 유형
일반적으로, 파일이라는 것은 몇 가지 정보를 위한 컨테이너입니다.
우리는 이러한 컨테이너에 대부분의 것들을 넣을 수 있습니다.
사진, 텍스트, 또다른 파일에 대한 링크, 혹은 그저 다른 얽어있는 파일들을 담은 또다른 컨테이너 등등
이러한 모든 데이터는 다르므로, 파일에 저장되어 있는 파일은 다양한 유형이 있습니다.
유닉스 파일시스템 구성 요소(컴포넌트)들은 이렇습니다 :
- Regular Files - 정규 파일
당신이 주로 개인적인 데이터를 보관하는 파일.
이러한 파일은 텍스트, 사진, 등등이 있습니다.
- Directories - 디렉토리 (폴더)
시스템에서 다른 파일들들을 정리하기 쉽게 만들어 주는 폴더, 혹은 디렉토리
- Named Pipes - 명명된 파이프
하나의 프로세스의 결과물을 다른 프로세스의 입력으로 전달하며, 이름을 가지는 파이프
- symbolic links - 심볼릭 링크
다른 파일의 링크를 포함하는 파일 - ex - 바로가기
- device files - 장치 파일
물리적 기기와 상호작용하는 운영 체제에 의해 요구되는 데이터를 포함하는 파일.
- sockets - 소켓
양 방향 프로세스 간의 데이터를 교환하게 해 주는 요소
우리는 가장 흔하게 사용되는 파일 유형들을 더 자세하게 공부 할 겁니다.
이러한 파일 타입들은 모든 운영체제에서 찾을 수 있습니다 :
regular files(정규 파일), directories(디렉토리), symbolic links(심볼릭 링크)
Regular Files - 정규 파일
TXT | DOC | XLS | PPT |
RAR | MPG | JPG | ZIP |
AVI | PNG | EPS |
정규 파일은 유저들이 주로 데이터를 저장하는 장소라 흔합니다. :
문서, 비디오, 사진, 음악 등등..
대개, 이러한 파일들의 어느 데이터든 두 가지 형식으로 표현 될 수 있습니다 :
- 일부 인코딩이 되어 있는 텍스트 데이터이며, 이러한 파일을
text file
이라고 부릅니다. - 인코딩의 제약 없이 bytes 의 순열이며, 바이트로 구성되어 있는 이러한 파일을 binary file 이라고 부릅니다.
어떤 파일이 텍스트 이며, 어떤 파일이 바이너리 인지 쉽게 알아내기 위해,
두 가지 예제를 공부 해 봅시다.
텍스트 파일들은 주로 일반 형식의 텍스트, 표 형식 데이터, 설정 파일,
그리고 CSV 나 JSON 과 같은 데이터 형식을 담고 있습니다.
Binary(바이너리) 파일은 보통 비디오, 오디오, 데이터베이스, 그리고 아카이브와 같은 데이터를 담고 있습니다.
바이너리와 텍스트 파일들은 서로 다른 형질을 가지고 있으므로,
두 파일을 작업하기 위해 서로 다른 도구들이 필요합니다.
이러한 차이점들을 알고 있을 가치가 있는데,
이는 당신이 이러한 파일들의 데이터를 읽거나 작성하는 데 반드시 시간을 절약 해 주기 때문입니다.
텍스트와 바이너리 파일 간의 주요 차이점은,
바이너리 파일은 고유한 제한들이 없다는 겁니다.
바이너리 파일에는 어떠한 바이트의 시퀀스(순열)을 담을수 있다는 것을 의미하며,
이러한 바이너리 파일에는 특정한 파일 형식을 알고 있는,
미디어 플레이어, 포토샵, 오피스와 같은 적절한 프로그램으로 열 수 있습니다.
다른 한편으로, 텍스트 파일들은 텍스트 에디터 프로그램으로 편집될 수 있습니다.
또한, 텍스트 파일들은 반드시 몇 가지 제약에 적합해야 하는데,
사람이 읽을 수 있는 콘텐츠여야 하고, 라인 지향적인 데이터 형식이며,
개행 문자들을 읽을 수 있어야 하며, 등등이 있습니다.
Directory - 디렉토리
가끔 폴더라고도 불리는 디렉토리는, 파일들을 담고 있습니다.
예를 들어, "Music" 이라는 타이틀을 가진 하나의 디렉토리에 당신의 음악 파일들을 넣을 수 있습니다.
대부분의 파일 시스템들은 디렉토리 안에 또 다른 디렉토리들을 담을 수 있게 해 줍니다.
이는 parent 디렉토리가 child 혹은 subdirectories 를 담고 있다고 부릅니다.
데이터를 조직하는 이러한 방식은 트리와 같은 계층 구조로 매체들을 저장하며,
parent 디렉토리를 가지지 않은 디렉토리를 root(루트 디렉토리라고 부르며,
이러한 구조의 기반을 수행합니다.
이러한 계층은 파일 간의 명확한 링크들을 제공하며,
디스크의 데이터를 검색하는 것을 훨씬 더 편리하게 만듭니다.
우리는 그저 파일에 대한 전체 경로를 알기만 하면 됩니다.
이러한 전체 경로를 얻기 위해서, 전체 파일이름이 필요합니다.
즉, 상위 폴더에 파일을 추가하며, 상위 폴더는 또 다른 상위 폴더를 가지고 있으며,
이어서 올라가면 루트(root) 를 얻습니다.
전체 파일 이름 내부의 디렉토리 이름은 주로 슬래시(/
) 혹은 백슬래스(\
) 로 분리됩니다.
따라서 만약 만약 루트 디렉토리 "root_directory" 가 "sub_directory" 를 담고 있으며,
"sub_directory" 가 "my_file" 을 담고 있다면,
파일 시스템은 root_directory/sub_directory/myfile
과 같은 전체 파일이름을 할당 합니다.
더 나아가, 트리와 같은 계층 구조는 파일 그룹을 선택 할 수 있게 해 주며, 관리할 수 있게 해 줍니다.
또한, 계층 조직 구조를 사용하여, 우리는 이를 또 다른 컴퓨터에 전송 할 수 있습니다.
Symbolic links - 심볼릭 링크
마지막으로, 고려할 만한 특별한 파일의 유형이 하나 더 있습니다.
이러한 파일은 유닉스 시스템에서 symbolic links(심볼릭 링크) 라고 불립니다.
만약 당신이 윈도우를 사용한다면, 아마 당신은 이를 shortcuts 이라고 알고 있을 겁니다.
심볼릭 링크는 절대 혹은 상대 경로의 유형으로 또 다른 파일이나 디렉토리의 참조를 담습니다.
당신이 여러 디렉토리로부터 몇 가지 파일을 접근하고 있다고 말해 봅시다.
만약 당신이 파일을 복사하고 각각의 복사본을 해당되는 디렉토리에 넣는다면,
각 시간마다 복사본을 조정하는 것은 다른 모든것들을 조정한다는 것과 같고,
이는 시간을 낭비하는 것과 비슷하게 느껴질 겁니다.
만약 당신이 각각의 디렉토리에 이러한 파일들을 참조하는 심볼릭 링크를 넣어 둔다면,
사실상 그들이 참조하고 있는 원본 파일을 여는 것입니다.
Conclusion - 결론
이번 주제에서 배운 것들을 요약하자면 이렇습니다 :
- 개인 데이터는 정규 파일들에 저장된다.
- 정규 파일의 데이터는 파이너리거나 텍스트 형식이 될 수 있습니다.
- 정규(일반) 파일 외에도, 디렉토리, 심볼릭 링크, 소켓, 명명된 파이프, 장치 파일이 있습니다.
- 디렉토리는 또 다른 파일들의 컨테이너입니다.
- 심볼릭 링크라 불리는 특별한 파일에 링크를 저장 할 수 있습니다.
words to remember
tabular : 표의, 반반한 판자 모양의 (엑셀 표를 생각하면 됨)
characteristics : 형질
worth : 가치, 보람, 재산, 할 만한, ~의 가치가 있는, 일어나다
inherent : 고유의
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Docker' 카테고리의 다른 글
Running a "hello world" action - GitHub action 기초 (0) | 2024.07.27 |
---|---|
Regular expression - 정규 표현식 기초 (2) | 2024.07.27 |
Introduction to GitHub actions- 깃헙 액션 소개 및 기초 (3) | 2024.07.24 |
Introduction to CI/CD - CI/CD 소개와 의미 (0) | 2024.07.23 |
JSON - JSON 정의와 기초 (0) | 2024.07.22 |