반응형
줄 끝 스타일(Line Ending Style)
줄 끝(라인 엔딩, Line Ending) 스타일은 운영체제(OS)에 따라 다르게 처리될 수 있다. 이에 대해서 알아보자.
1. 윈도우 스타일 / 도스(DOS) 스타일 (CRLF, \r\n)
- CRLF는 Carriage Return( /r ) + Line Feed( \n )을 의미한다.
- 윈도우에서는 줄 바꿈을 할 때 두 개의 문자를 사용해서 줄 끝을 나타낸다.
- 예를 들어, 메모장 같은 기본 텍스트 편집기에서 줄 바꿈을 보면 CRLF를 사용한다.
2. 리눅스 스타일 / 맥 스타일 (LF, \n)
- LF는 Line 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 환경을 가진 작업자들끼리 협업 시에는 동일한 라인 끝 스타일을 갖도록 통일 필요
'프로그래밍 > 운영체제' 카테고리의 다른 글
AD(Active Directory)란 무엇인가? (0) | 2024.12.30 |
---|---|
윈도우11(Windows 11) 설치 이후 디스크 용량이 부족해진 당신을 위한 안내서 (1) | 2024.12.19 |
서비스(Service) vs 데몬(Daemon) (0) | 2024.03.25 |
시스템 콜, 시스템 호출(System Call)이란? (1) | 2024.02.05 |
커널 오브젝트(Kernel Object)에 대해서 (2) | 2024.01.24 |
댓글