3 분 소요

이 장에서 배울 것

이번 장에서는 컴퓨터와 파일 시스템(file system)을 배웁니다. 파일 시스템은 컴퓨터 안에서 파일과 폴더를 정리하는 방식입니다. 프로그래밍을 배우기 전에 이 개념을 반드시 알아야 합니다. 왜냐하면 생물정보학 분석은 대부분 “파일을 읽고, 파일을 만들고, 파일을 다른 폴더에 저장하는 작업”이기 때문입니다.

핵심 용어를 먼저 정리하겠습니다.

  • 파일(file): 글, 표, 그림, 코드, 유전체 데이터처럼 컴퓨터에 저장된 하나의 자료입니다.
  • 폴더(folder) 또는 디렉터리(directory): 파일을 담는 상자입니다. 둘은 거의 같은 뜻으로 쓰입니다.
  • 경로(path): 파일이나 폴더가 어디에 있는지 알려주는 주소입니다.
  • 확장자(extension): 파일 이름 끝에 붙는 표시입니다. 예를 들어 .txt, .csv, .py, .fastq 같은 것입니다.
  • 텍스트 파일(text file): 사람이 글자로 읽을 수 있는 파일입니다.
  • 바이너리 파일(binary file): 사람이 바로 읽기 어렵고, 프로그램이 읽도록 저장된 파일입니다.
  • 압축 파일(compressed file): 큰 파일을 작게 줄여 저장한 파일입니다. .zip, .gz 같은 확장자가 자주 쓰입니다.

컴퓨터와 파일 시스템

가장 쉬운 비유: 책장, 책꽂이, 책

컴퓨터 저장 공간을 큰 책장이라고 생각해 봅시다. 폴더는 책장 안의 책꽂이입니다. 파일은 책꽂이에 꽂힌 책입니다. 경로는 “몇 번째 책장, 몇 번째 칸, 어떤 책”이라고 알려주는 주소입니다.

예를 들어 다음 경로를 봅시다.

project/data/sample1.fastq

이 말은 project 폴더 안에 data 폴더가 있고, 그 안에 sample1.fastq 파일이 있다는 뜻입니다. 생물정보학에서는 이런 경로를 계속 다룹니다.

파일 이름은 그냥 이름이 아닙니다

파일 이름에는 보통 두 부분이 있습니다.

sample1.fastq

여기서 sample1은 파일 이름이고, .fastq는 확장자입니다. 확장자는 컴퓨터와 사람에게 “이 파일이 어떤 형식인지” 알려줍니다.

예를 들어:

genes.txt       글자 목록 같은 일반 텍스트 파일
expression.csv  쉼표로 나뉜 표 데이터 파일
analysis.py     파이썬 코드 파일
sample.fastq    시퀀싱 read와 품질 점수가 들어 있는 파일
aligned.bam     정렬 결과가 들어 있는 바이너리 파일

여기서 FASTQ와 BAM은 나중에 자세히 배웁니다. 지금은 “생물정보학에는 정해진 규칙을 가진 파일들이 많다” 정도만 이해하면 됩니다.

폴더 구조를 왜 정리해야 할까요?

초보자는 파일을 아무 데나 저장하기 쉽습니다. 하지만 분석이 길어지면 파일이 수십 개, 수백 개가 됩니다. 그때 폴더 구조가 엉망이면 내가 어떤 데이터를 사용했는지, 어떤 코드가 어떤 결과를 만들었는지 찾을 수 없습니다.

좋은 구조는 보통 이렇게 생겼습니다.

bio_project/
  data/
    raw/
    processed/
  scripts/
  results/
  figures/
  notes/

뜻은 이렇습니다.

  • data/raw: 처음 받은 원본 데이터
  • data/processed: 전처리된 데이터
  • scripts: 분석 코드
  • results: 분석 결과
  • figures: 그림과 그래프
  • notes: 메모와 설명

원본 데이터(raw data)는 특히 함부로 바꾸지 않는 것이 좋습니다. 원본을 바꾸면 나중에 분석을 다시 할 때 무엇이 원래 데이터였는지 알 수 없기 때문입니다.

절대경로와 상대경로

경로에는 두 종류가 있습니다.

절대경로(absolute path)는 저장 공간의 맨 위에서부터 전체 주소를 적는 방식입니다.

/home/user/bio_project/data/sample1.fastq

상대경로(relative path)는 현재 내가 있는 위치를 기준으로 적는 방식입니다.

data/sample1.fastq

상대경로는 프로젝트 안에서 코드를 공유할 때 유용합니다. 다른 사람 컴퓨터에서는 /home/user 부분이 다를 수 있지만, 프로젝트 안의 data/sample1.fastq 구조는 같게 만들 수 있기 때문입니다.

텍스트 파일과 바이너리 파일

텍스트 파일은 사람이 열어서 글자를 읽을 수 있습니다. CSV, TSV, FASTA, FASTQ는 기본적으로 텍스트 파일입니다.

반대로 바이너리 파일은 사람이 메모장으로 열어도 깨져 보일 수 있습니다. BAM 파일이 대표적입니다. BAM은 SAM이라는 텍스트 정렬 결과를 더 작고 빠르게 다루기 위해 압축한 바이너리 형식입니다.

압축 파일과 대용량 데이터

생물정보학 데이터는 큽니다. FASTQ 파일 하나가 수 기가바이트가 될 수 있습니다. 그래서 .gz처럼 압축된 형태로 저장되는 일이 많습니다.

sample1.fastq.gz

이 파일은 FASTQ 파일을 gzip이라는 방식으로 압축한 것입니다. 확장자가 두 개처럼 보이지만, 뜻은 “FASTQ 형식의 파일을 압축했다”입니다.

생물정보학에서 왜 중요한가

생물정보학은 데이터 과학이면서 동시에 파일 작업입니다. 데이터를 어디에 두었는지, 어떤 파일을 읽었는지, 어떤 결과 파일을 만들었는지 관리하지 못하면 분석이 재현되지 않습니다.

좋은 연구자는 멋진 알고리즘만 아는 사람이 아닙니다. 파일 이름, 폴더 구조, 원본 데이터 보존, 결과물 위치를 깔끔하게 관리하는 사람입니다.

실전 감각: 분석 프로젝트 폴더를 읽는 법

생물정보학 프로젝트의 폴더 구조는 단순 정리가 아니라 분석 기록입니다. 보통 흐름은 원본 데이터, 전처리 데이터, 분석 코드, 결과표, 그림 순서로 이어집니다.

rna_project/
  data/raw/sample1.fastq.gz
  data/processed/sample1.trimmed.fastq.gz
  scripts/01_qc.sh
  scripts/02_count.py
  results/gene_counts.csv
  figures/qc_summary.png

이 구조를 보면 sample1.fastq.gz는 원본 read 파일이고, sample1.trimmed.fastq.gz는 전처리된 read 파일이며, gene_counts.csv는 유전자별 count 결과일 가능성이 큽니다. 파일 이름과 위치만 읽어도 분석 흐름을 어느 정도 복원할 수 있습니다.

초보자가 자주 하는 실수는 원본 파일을 덮어쓰기, final2.csv처럼 의미 없는 이름 붙이기, 코드와 결과와 원본 데이터를 한 폴더에 섞어 두기입니다. 원본 데이터는 실험 노트의 원본 기록과 같아서 절대 함부로 바꾸면 안 됩니다.

데이터 해석 관점에서 중요한 질문은 세 가지입니다. 이 파일은 입력인가, 중간 산출물인가, 최종 결과인가? 어떤 코드가 이 파일을 만들었는가? 같은 조건으로 다시 만들 수 있는가? 이 질문에 답할 수 있어야 분석이 재현됩니다.

미니 실습 블록: 프로젝트 폴더를 재현 가능하게 나누기

이 실습은 프로젝트 폴더를 재현 가능하게 나누기를 직접 손으로 확인하는 연습입니다. 왜 필요한가 하면, 분석 파일이 섞이면 어떤 원본과 코드로 결과를 만들었는지 추적하기 어렵기 때문입니다.

mkdir -p rnaseq-mini/data/raw rnaseq-mini/data/processed
mkdir -p rnaseq-mini/scripts rnaseq-mini/results rnaseq-mini/figures
touch rnaseq-mini/README.md

각 코드 요소의 의미를 풀어보면 다음과 같습니다. data/raw에는 원본 FASTQ와 원본 metadata를 그대로 두고, 사람이 손본 파일은 data/processed에 새 이름으로 저장합니다. scripts에는 코드, results에는 결과표, figures에는 그림을 둡니다.

생물정보학/계산생물학에서 쓰이는 장면은 분명합니다. RNA-seq 프로젝트에서 sample01_R1.fastq.gz, sample01_R2.fastq.gz, metadata.tsv를 정리할 때 바로 쓰입니다.

흔한 오해 또는 주의점도 있습니다. sample1, Sample01, sample_01처럼 같은 샘플을 여러 이름으로 쓰면 컴퓨터는 서로 다른 샘플로 봅니다.

핵심 정리

파일은 컴퓨터에 저장된 하나의 자료이고, 폴더는 파일을 담는 상자입니다. 경로는 파일의 주소이며, 확장자는 파일 형식을 알려줍니다. 생물정보학에서는 FASTQ, BAM, CSV, TSV 같은 파일을 많이 다루므로 파일 시스템을 이해하는 것이 프로그래밍의 첫걸음입니다.

문제 풀이

컴퓨터와 파일 시스템

0 / 36
Gemini AI 채점

주관식 답안은 Gemini API로 채점합니다. API 키는 이 브라우저에만 저장됩니다.

API KEY 미등록
  1. 1. [쉬움] 객관식

    파일(file)의 의미로 가장 적절한 것은?

    선택지
  2. 2. [쉬움] 객관식

    폴더 또는 디렉터리(directory)의 역할은?

    선택지
  3. 3. [쉬움] 객관식

    경로(path)의 의미로 적절한 것은?

    선택지
  4. 4. [쉬움] 객관식

    sample.fastq에서 .fastq는 무엇인가?

    선택지
  5. 5. [보통] 객관식

    project/data/sample1.fastq가 뜻하는 구조로 맞는 것은?

    선택지
  6. 6. [보통] 객관식

    원본 데이터(raw data)를 함부로 바꾸면 위험한 이유는?

    선택지
  7. 7. [보통] 객관식

    상대경로(relative path)의 설명으로 적절한 것은?

    선택지
  8. 8. [쉬움] 객관식

    텍스트 파일의 특징으로 적절한 것은?

    선택지
  9. 9. [보통] 객관식

    BAM 파일처럼 사람이 바로 읽기 어려운 형식을 무엇이라고 설명했는가?

    선택지
  10. 10. [보통] 객관식

    sample1.fastq.gz의 의미로 적절한 것은?

    선택지
  11. 11. [쉬움] 객관식

    좋은 프로젝트 폴더 구조에서 scripts 폴더에는 보통 무엇을 넣는가?

    선택지
  12. 12. [쉬움] 객관식

    좋은 프로젝트 폴더 구조에서 figures 폴더에는 보통 무엇을 넣는가?

    선택지
  13. 13. [보통] 객관식

    절대경로(absolute path)의 설명으로 적절한 것은?

    선택지
  14. 14. [보통] 객관식

    생물정보학에서 파일 시스템 이해가 중요한 이유로 적절한 것은?

    선택지
  15. 15. [쉬움] 객관식

    data/raw 폴더에 가장 어울리는 것은?

    선택지
  16. 16. [쉬움] 객관식

    확장자의 역할로 가장 적절한 것은?

    선택지
  17. 17. [중간] 객관식

    다음 구조에서 원본 FASTQ 파일이 들어 있어야 할 위치로 가장 적절한 것은? project/data/raw/sample1.fastq.gz

    선택지
  18. 18. [중간] 객관식

    sample1.fastq.gz라는 이름에서 알 수 있는 정보로 가장 적절한 것은?

    선택지
  19. 19. [중간] 객관식

    현재 위치가 bio_project이고 파일이 bio_project/data/sample.csv에 있을 때 올바른 상대경로는?

    선택지
  20. 20. [중간] 객관식

    분석 재현성을 가장 해치는 행동은?

    선택지
  21. 21. [중간] 객관식

    results/gene_counts.csv라는 파일명과 위치로 추론하기 가장 자연스러운 것은?

    선택지
  22. 22. [중간] 객관식

    다음 중 파일명으로 샘플과 처리 단계를 가장 잘 드러낸 것은?

    선택지
  23. 23. [중간] 객관식

    다음 중 “파일의 입력/중간산출물/최종결과”를 구분해야 하는 이유로 가장 적절한 것은?

    선택지
  24. 24. [중간] 객관식

    폴더 하나에 원본, 코드, 결과 그림을 모두 섞어 두었을 때 가장 직접적인 문제는?

    선택지
  25. 25. [실전] 객관식

    재현 가능한 분석 폴더 구조로 가장 적절한 것은?

    선택지
  26. 26. [실전] 객관식

    sample01_R1.fastq.gz라는 파일명에서 직접 추론할 수 있는 것은?

    선택지
  27. 주관식 27. [실습] 주관식 · Gemini 채점

    bio_project/data/raw/sample1.fastq라는 경로를 사람이 읽을 수 있는 말로 설명하라.

  28. 주관식 28. [실습] 주관식 · Gemini 채점

    원본 데이터와 처리된 데이터를 다른 폴더에 두어야 하는 이유를 설명하라.

  29. 주관식 29. [실습] 주관식 · Gemini 채점

    텍스트 파일과 바이너리 파일의 차이를 설명하라.

  30. 주관식 30. [실습] 주관식 · Gemini 채점

    생물정보학 프로젝트에 data, scripts, results, figures 폴더를 둔다면 각각 무엇을 넣을지 설명하라.

  31. 주관식 31. [실습] 주관식 · Gemini 채점

    상대경로가 프로젝트 공유에 유리한 이유를 설명하라.

  32. 주관식 32. [실습] 주관식 · Gemini 채점

    sample.fastq.gz를 보고 알 수 있는 정보를 설명하라.

  33. 주관식 33. [실습] 주관식 · Gemini 채점

    다음 폴더 구조를 보고 원본 데이터, 코드, 결과 파일이 어디에 있는지 설명하라. data/raw, scripts, results, figures를 반드시 언급하라.

  34. 주관식 34. [실습] 주관식 · Gemini 채점

    sample2.aligned.sorted.bam이라는 파일명을 보고 추론할 수 있는 분석 단계와 주의점을 설명하라.

  35. 주관식 35. [실습] 주관식 · Gemini 채점

    RNA-seq 미니 프로젝트 폴더를 만드는 명령어를 작성하라.

  36. 주관식 36. [실습] 주관식 · Gemini 채점

    원본 데이터를 덮어쓰지 않기 위해 data/rawdata/processed를 어떻게 써야 하는지 설명하라.