IMCAT.DEV
로그인 가입
Ruby 입문 자료구조

Ruby 기본적인 파일 입출력

Ruby 기본적인 파일 입출력 — 초급

기본적인 파일 입출력

1. 도입 (왜 배워야 하는가)

파일 입출력(File I/O)은 프로그램이 외부 데이터를 읽거나 저장하는 방법을 제공합니다. 실무에서 이 기술이 중요한 이유는 데이터 관리 및 저장이 필수적이기 때문입니다. 예를 들어, 사용자의 정보를 파일에 저장하거나 로그 데이터를 기록하는 상황에서 파일 입출력은 필수적입니다.

파일 입출력을 모르면, 프로그램이 종료될 때마다 데이터를 잃어버리거나, 사용자에게 정보를 지속적으로 제공할 수 없는 문제가 발생할 수 있습니다. 데이터베이스와 같은 복잡한 시스템을 사용하지 않고도 간단하게 데이터를 저장하고 불러오는 방법을 익히는 것은 개발자로서의 기초를 다지는 중요한 단계입니다.

2. 핵심 개념 설명

  • 파일(File): 데이터를 저장하는 장소입니다. 마치 서랍에 문서나 사진을 저장하는 것과 같습니다.
  • 읽기(Read): 파일에 저장된 데이터를 가져오는 행위입니다. 서랍에서 문서를 꺼내는 것과 비슷합니다.
  • 쓰기(Write): 데이터를 파일에 저장하는 행위입니다. 서랍에 새로운 문서를 넣는 것과 같습니다.
  • 용어설명
    파일 열기파일을 읽거나 쓰기 위해 열어야 함
    파일 닫기파일 사용 후 자원을 해제하기 위해 닫음
    예외 처리파일 작업 중 발생할 수 있는 오류 처리

    3. 기본 코드 예제

    다음은 파일에 문자열을 쓰고, 다시 읽는 기본적인 예제입니다.

    # 파일에 문자열 쓰기
    File.open('example.txt', 'w') do |file|
      file.puts '안녕하세요, Ruby!'
    end
    
    # 파일에서 문자열 읽기
    content = File.read('example.txt')
    puts content

    실행 결과

    안녕하세요, Ruby!

    코드 한 줄씩 동작 설명

    1. File.open('example.txt', 'w'): 'example.txt'라는 파일을 쓰기 모드('w')로 엽니다. 파일이 존재하지 않으면 새로 생성됩니다.
    2. do |file|: 파일을 블록으로 열고, 파일 객체를 file이라는 변수로 사용합니다.
    3. file.puts '안녕하세요, Ruby!': 파일에 문자열 '안녕하세요, Ruby!'를 씁니다.
    4. end: 블록이 끝나면 파일이 자동으로 닫힙니다.
    5. content = File.read('example.txt'): 'example.txt' 파일을 읽어 content 변수에 저장합니다.
    6. puts content: 읽어온 내용을 콘솔에 출력합니다.
    7. 4. 실전 활용 예제

      예제 1: 로그 파일 작성

      쇼핑몰에서 사용자 행동을 기록하기 위해 로그 파일을 작성할 수 있습니다.

      File.open('log.txt', 'a') do |file|
        file.puts "사용자 A가 상품 B를 장바구니에 추가했습니다."
      end

      예제 2: 설정 파일 읽기

      애플리케이션의 설정 정보를 파일에서 읽는 예제입니다.

      settings = File.read('settings.txt').split("\n")
      settings.each do |setting|
        puts setting
      end

      5. 흔한 실수와 주의사항

      실수 1: 파일 모드 실수

    8. 잘못된 코드:
    9. File.open('example.txt', 'r') do |file| # 읽기 모드에서 쓰기 시도
        file.puts '내용 추가'
      end
    10. 올바른 코드:
    11. File.open('example.txt', 'a') do |file| # 추가 모드 사용
        file.puts '내용 추가'
      end

      실수 2: 파일 닫기를 잊음

      파일을 열고 닫지 않으면 자원 누수가 발생할 수 있습니다. Ruby에서는 블록을 사용하면 자동으로 닫히지만, 블록을 사용하지 않으면 명시적으로 닫아야 합니다.

      6. 정리

    12. 파일 입출력은 외부 데이터 관리에 필수적입니다.
    13. 파일을 열고, 읽고, 쓰는 기본 개념을 이해해야 합니다.
    14. 블록을 사용하여 파일을 열면 자동으로 닫히므로 안전합니다.
    15. 다음에 학습하면 좋은 주제: 파일 경로 및 예외 처리, CSV 파일 읽기 및 쓰기.