본문 바로가기
프로그래밍/운영체제

줄 끝 스타일(Line Ending Style) - 윈도우 스타일 vs 리눅스 스타일

by bantomak 2025. 2. 6.
반응형

줄 끝 스타일(Line Ending Style)

줄 끝(라인 엔딩, Line Ending) 스타일은 운영체제(OS)에 따라 다르게 처리될 수 있다. 이에 대해서 알아보자.

1. 윈도우 스타일 / 도스(DOS) 스타일 (CRLF, \r\n)

  • CRLFCarriage Return( /r ) + Line Feed( \n )을 의미한다.
  • 윈도우에서는 줄 바꿈을 할 때 두 개의 문자를 사용해서 줄 끝을 나타낸다.
  • 예를 들어, 메모장 같은 기본 텍스트 편집기에서 줄 바꿈을 보면 CRLF를 사용한다.

2. 리눅스 스타일 / 맥 스타일 (LF, \n)

  • LFLine Feed( \n )만 사용하는 걸 의미한다.
  • 유닉스 기반 시스템(리눅스, macOS)에서는 줄 끝을 나타낼 때 단일 문자 LF를 사용한다.
  • 터미널에서 cat, vim, nano 같은 프로그램을 사용할 때도 기본적으로 LF를 따른다.

❓왜 이런 차이가 생겼을까?

이 차이는 초기 컴퓨터 역사에서 비록 되었다.

  • 옛날 타자기나 프린터에서는 줄 바꿈을 할 때 두 가지 동작이 모두 필요했다.
    • 캐리지 리턴(Carriage Return, CR, \r) : 커서를 맨 앞으로 이동
    • 라인 피드(Line Feed, LF, \n) : 다음 줄로 이동
  • MS-DOS와 윈도우는 이 방식을 유지해서 CRLF를 사용
  • 유닉스 기반 시스템(리눅스, macOS)은 LF만 사용해도 충분하다고 판단해서 LF를 사용

실무에서 발생할 수 있는 문제점

동일한 코드로 작성한 프로그램이 OS 환경에 따라서 다른 결괏값을 내게 되면 협업하는 과정에서 문제가 발생할 수 있다. 다른 OS에서 작업한 동료가 올린 코드 내용 자체는 동일한데 라인 끝 스타일이 달라서 Git이나 SVN 등, 코드 관리 툴에서 변경 사항으로 계속 잡히는 문제가 발생한다.

결론

  • 윈도우 > CRLF(\r\n)
  • 리눅스, macOS > LF(\n)
  • 다른 OS 환경을 가진 작업자들끼리 협업 시에는 동일한 라인 끝 스타일을 갖도록 통일 필요

댓글