A banner was created from here
ํ์ผ ๋์ ๊ฐํ์ ํด์ผ ํ๋ ์ด์ ๋ฅผ ํ ์ค๋ก ์๊ธฐํ์๋ฉด
POSIX ์์ ํ๋์ ํ์ ์ ์ํ๋ ํ์ค์ด๊ธฐ ๋๋ฌธ์
๋๋ค
๋ชจ๋ ํ ์คํธ ํ์ผ์์ "ํ" ์ด๋ผ๋ ๋จ์๋ ๊ฐํญ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ง๋ค์ด ์ง๋๋ค
์๋๋ฉด, IEEE ๋ผ๋ ๋จ์ฒด์์ UNIX ์ ํ์ค์ ๊ทธ๋ ๊ฒ ์ ์ํ๊ณ ์๊ฑฐ๋ ์
3.206 Line
A sequence of zero or more non- characters plus a terminating character.
์๋์ IEEE ํ์ค์ ๋์ ์๋ ๊ฒ ์ฒ๋ผ, ๋๋์ง ์์ ํ์
ํ์ผ ๋์ non-newline ๋ฌธ์๊ฐ ํ๋ ์ด์ ์๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค
3.195 Incomplete Line
A sequence of one or more non- characters at the end of the file.
๋ง์ ๋ฐ๋๋ก ํด์ ์ดํดํ๊ธฐ๊ฐ ์กฐ๊ธ ์ด๋ ค์ด๋ฐ ๋ฐ๊ฟ๋งํ๋ฉด
ํ์ผ ๋์ newline ๋ฌธ์๊ฐ ์์ผ๋ฉด ๋๋์ง ์์ ํ์ผ๋ก ๊ฐ์ฃผํ๋ค๋ ์๋ฏธ์
๋๋ค
์ด ๊ณณ์๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ถ๋ค๊ป์ ๋ง์ด ์์ํ๋๊น
.prettierrc ํ์ผ์ ์์ฑ ํ์ค๋์ ์๋ฅผ ๋ค์ด ์ค๋ช
ํด ๋ณด๊ฒ ์ต๋๋ค
์๋ ํ๋ prettier ์ค์ ์ค "endOfLine" ์ต์ ์ ๊ดํ ๊ฐ์ ๋ชฉ๋ก์ ๋๋ค
Default | CLI Override | API Override |
---|---|---|
"auto" | --end-of-line <auto | lf | crlf | cr> | endOfLine: "<auto | lf | crlf | cr>" |
auto ๋ ๋ญ ์ ๋นํ ์๋์ผ๋ก ํด์ฃผ๊ฒ ๋ค๋ ์๋ฏธ๋ก ์๊ฒ ๋๋ฐ
lf
, crlf
, cr
์ ๋์ฒด ๋ฌด์จ ์๋ฏธ์ผ๊น์?
Line Feed ์ ์ค์๋ง๋ก, UNIX ์ด์ ์ฒด์ ์์ ๊ฐํ ๋ฌธ์ (์ค๋ฐ๊ฟ ๋ฌธ์) ๋ก ์ฌ์ฉ ๋ฉ๋๋ค
ASCII ์์๋ 0x0A(10)
์ฝ๋ ๋ฒํธ๋ฅผ ๊ฐ์ต๋๋ค. ๋ค๋ค ์๊ณ ๊ณ์๋ \n
๋ฌธ์๋ฅผ ์๋ฏธํฉ๋๋ค
์ด๋๊ฐ์ ๊ธ์ ์ธ ๋ ๊น๋นก์ด๋ ์ปค์๋ฅผ ๋ณด์
จ๋ค๋ฉด
๊ทธ ์ปค์๋ฅผ ํ ์นธ ์๋๋ก ๋ด๋ฆฌ๋ ์ญํ ์ ํฉ๋๋ค
์ด๋ ๊ฒ ํ๋ฉด ์ถ์ด ์ถ๊ฐ๋๊ฒ ์ฃ ?
Carriage Return ์ ์ค์๋ง๋ก
๊ณผ๊ฑฐ MacOS (9 ๋ฒ์ ์ดํ) ์ ์ด์์ฒด์ ์์๋ ์ค ๋ฐ๊ฟ์ ์ฌ์ฉ ํ์ต๋๋ค
ASCII ์์๋ 0x0D(13)
์ฝ๋ ๋ฒํธ๋ฅผ ๊ฐ์ต๋๋ค. ์กฐ๊ธ ์์ํ ์ ์์ต๋๋ค๋ง
ํ์ด์ฌ์ผ๋ก ์๋์ฐ์์ ๋์ด์จ ํ
์คํธ ํ์ผ์ ์ฒ๋ฆฌํ ์ผ์ด ์์ผ์ ๋ถ๋ค์...
์์ฃผ ๊ท์ฐฎ์ ๋
์์ด์ฃ ๐ฅ
Carriage Return ์ ์ญํ ์, ์ปค์๋ฅผ ํ์ฌ ์ค ๋งจ ์์ผ๋ก ๊ฐ์ ธ๊ฐ๋ ๊ฒ๋๋ค
์๋์ฐ ์ด์์ฒด์ ๋ lf
์ cr
์ ์กฐํฉํ์ฌ ์ค๋ฐ๊ฟ์ ์ฒ๋ฆฌ ํฉ๋๋ค (ํ์ฌ๋)
์ด๋ฅผ ๋ณดํต crlf
์ ํํ๋ก ํ๋๋ฐ ๋ฌธ์๋ก ํํํ๋ฉด \r\n
์ ์กฐํฉ์ด ๋ฉ๋๋ค
์ปค์๋ฅผ ๋งจ ์์ผ๋ก ์ฎ๊ธฐ๊ณ ๊ทธ ์์น์์ ์๋๋ก ํ ์ค ์ถ๊ฐ ํ๋ ํํ๋ก ๋์ํ๊ฒ ์ฃ
lf, cr ์ ์๋ฏธ๋ฅผ ์์์ผ๋ prettier ๊ฐ ์๋ํ ์ต์
๊ฐ์ ์ด์ ์ผ ์ดํดํ ์ ์์ต๋๋ค
๋์ ์ด์์ฒด์ ์ ๋ง๊ฒ, EOL(end of line) ๊ฐ์ ๋ถ์ฌ์ค๊ฒ. ์ค์ ์ ์๋ ค์ค!
๊ทธ๋ฌ๋ ์ฌ๋ฌ๋ถ๋ค์ ์์ ์ ์ด์์ฒด์ ์ ๋ง๋ EOL ์ค์ ์ ์
๋ ฅํ๊ฑฐ๋
์์์ ์ ํด์ค๊ฑฐ๋ผ๊ณ ๋ฏฟ๊ณ auto๋ก ๋์
๋ ๋ฉ๋๋ค!
์๊ธฐํ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ ์ ์์ต๋๋ค
์๋ฅผ ๋ค์ด, python ์ ๊ฒฝ์ฐ๋ os.linesep
์ด๋ผ๋ ์์ฑ์ผ๋ก, ์ด์์ฒด์ ๋ณ๋ก ๊ฐํ๋ฌธ์๋ฅผ ์ ๊ณตํฉ๋๋ค
MacOS
In [1]: import os
In [2]: os.linesep
Out[2]: '\n'
Windows 10(x64)
In [1]: import os
In [2]: os.linesep
Out[2]: '\r\n'
๊ฐํ ๋ฌธ์๋ฅผ ํ๋์ฝ๋ฉ ํ๊ธฐ ๋ณด๋ค๋, os.linesep
์ ์ฌ์ฉํ๋๊ฒ
์ข ๋ ๋ฐ๋์ง ํ๊ฒ ๋ค์
Github ์ ํ์ผ ๋ง์ง๋ง์ด ๊ฐํ ๋์ด ์์ง ์์ผ๋ฉด
๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๋ฅผ ์๋ ค์ค๋๋ค (์ ์ฌ์ ์ธ ๋ฌธ์ ๊ฐ ๋ ์ ์๊ธฐ ๋๋ฌธ์!)
Github ์์๋ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด, ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค
์์ธํ ๋ด์ฉ์ Github ๊ณต์ ๋ฌธ์ ๋ฅผ ์ฐธ๊ณ ํ์ธ์
๋ง์ฐํ๊ฒ, ์ค ๋ฐ๊ฟ์ด ๋จนํ์ง ์์์
\r\n
๋ ํด๋ณด๊ณ , \n
๋ ํด๋ณด๊ณ ์ข์ถฉ์ฐ๋ ๊ฐ๋ฐ ํ๋ ์ฌ์๋
์ด ์๊ฐ๋ฉ๋๋ค
๊ทธ ๋๋ ์ ์ด๊ฑธ ์ฐพ์๋ณด๊ณ ์์์ผ ๊ฒ ๋ค๋ ์๊ฐ์ ๋ชป ํ์๋์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง
์ง๊ธ์ด๋ผ๋ ์ ํํ๊ฒ ์ ์ ์์ด์ ๋คํ์
๋๋ค
์ด์ ๋ ์กฐ๊ธ ๋ POSIX ํ์ค์ ์งํค๋ ๊ฐ๋ฐ์๊ฐ ๋๊ฑธ๊น์...?
์๋ฌดํผ ๊ธธ๊ณ ์ธ๋ฐ์๋ ๊ธ ์ฝ์ด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค ๐
ํ๋ฒ ์ฏค ๊ถ๊ธํดํ ๋งํ ์ฃผ์ ์ธ๋ฐ ์ ๋ฆฌ ๊ฐ์ฌํฉ๋๋ค! ๊ทธ๋ฆฌ๊ณ ์ฒญ๊ฒฝ์ฑ ์ด๋ชจ์ง ๊ท์ฝ๋ค์.