회의 시작 전에 어색하게 백엔드 리더 A상과 둘이 있다가 갑자기 '카이교코-도'에 대해서 이런저런 질문을 하길레...나는 '카이교 코도??' 뭔 솔...? 순간 당황해서 어버버거리다 그거 뭐냐고 다시 물어보고 난리도 아니었다. A상은 필시 '이새끼 뭐지...?'라고 생각했을 것 같다.
한국어로는 '강제줄바꿈', '줄바꿈' 이렇게 쓰는 거 같고 전산학에서는 개행(line alignment)이라고 한다.
나무위키를 찾아보니, 잘못해서 아스키문자가 뿌려지는 시절도 있었다는... 그런 역사도 있다.
PC통신 시절에 쓰던 VT 환경은 가로가 80바이트로 제한이 되어 있었는데, 2바이트 코드 지원이 미비해서 맨 끝 글자가 깨지는 일이 잦았다. 예를 들어, 한 행의 80열째에 글자를 쓰면 80, 81열에 한글 코드가 기록이 되어야 하는데, VT상에서 81열은 없기 때문에 앞부분 코드만 기록되고 뒷부분 코드는 잘려버린다. 이렇게 되면 전혀 의도하지 않은 문자가 출력되는데, 한글 코드 맨 앞 비트가 1로 시작하기 때문에 아스키 코드 확장 영역에 있는 특수문자가 뿌려지는 일이 많았다. 강제 줄 바꿈을 하는 이유는 이런 일을 막기 위함이었고, 당시 PC통신 프로그램의 편집기는 아예 자동으로 개행을 넣어주는 일이 많았다.
나무위키: 강제줄바꿈에 관하여
다시 보니 특별한 건 아니고, 내가 용례를 몰라서 못알아들은 거... /n이런 걸 카이교코도(개행코드)라고 하나보다.근데 단순히 이게 개행코드다! 라는 것보단 이런저런 상황이 얽혀있으니 좀 더 자세히 공부할 필요를 느낌.
Qitta의 한 기사에 누군가 정리를 잘 해놨다.
■改行コード それぞれの違い、役割◆業務内(IT時の膨大なDBデータの各テーブルの件数を条件付きで取得するselect文を作成する際、Excelからサクラエディタに貼り付けて改行コードを入れる作業…
qiita.com
번역을 좀 해서 살을 붙여보자.
■ 개행 코드 각각의 차이점과 역할
1. CR (Carriage Return, 캐리지 리턴)
🔹 영어 의미: 복귀 (Return)
🔹 역할: 커서를 줄의 맨 앞으로 이동시킴.
🔹 시각화: ←
🔹 사용처: Mac OS (버전 9까지) 등
2. LF (Line Feed, 라인 피드)
🔹 영어 의미: 개행 (Line Feed)
🔹 역할: 커서를 새로운 줄로 이동시킴.
🔹 시각화: ↓
🔹 사용처: Unix 계열 (Linux 등)
3. CRLF (Carriage Return + Line Feed, 캐리지 리턴 + 라인 피드)
🔹 영어 의미: CR + LF
🔹 역할: 커서를 줄 맨 앞으로 이동하고, 다음 줄로 개행.
🔹 시각화: ↵
🔹 사용처: Windows 등
■ 각 OS에서의 개행 코드 차이
- LF: Unix 계열 (Linux, macOS 등)
- CR: MacOS (버전 9까지) 등
- CRLF: Microsoft Windows 등
■ 정규 표현식에서 개행 코드 사용
- LF: \n (단순 개행)
- CR: \r (커서를 줄 맨 앞으로 이동)
- CRLF: \r\n (개행 후, 커서를 줄 맨 앞으로 이동)
print("Hello\nWorld") # LF 사용 → Hello와 World가 다른 줄에 출력됨
print("Hello\r\nWorld") # CRLF 사용 → Windows에서 줄바꿈 처리
🔹 기타 사항
- 텍스트 파일을 다른 OS에서 열었을 때 줄바꿈이 깨지는 이유는 개행 코드 차이 때문
- 웹 브라우저와 프로그래밍 언어: 일반적으로 \n(LF)을 사용
- Git 설정: Windows에서는 core.autocrlf=true 설정 시 자동 변환 가능
- 텍스트 파일 간 차이 해결: dos2unix, unix2dos 등의 유틸리티 사용
- dos2unix 같은 도구를 사용하면 개행 코드를 변환할 수 있습니다.
- Git에서는 Windows와 Unix의 개행 코드 차이를 자동으로 처리하는 설정(core.autocrlf)이 있음
'개발일지' 카테고리의 다른 글
[아침회의 소재 준비] 초로 전해지는 문장술(한국어: 더 많은 사람이 읽게 만드는 글쓰기 기술) (0) | 2025.02.12 |
---|---|
Yup빌드에러/fetcher와 에러모달/setTimeout문제 (0) | 2025.02.08 |
OpenAI, AI 브라우저 에이전트 "Operator" 출시 (1) | 2025.02.07 |