๋ณํฉ ๋๋ ์ปค๋ฐ์ด ์๋ ์ง๋ 9๊ฐ์ ๋์ ๋ฌธ์ ์ ํ ๋ฆฌํ์คํธ๊ฐ ์์ฌ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์ฌ ๊ด๋ฆฌ์์ธ @Lokaltog ๊ฐ ๋ฐ์๋ค๋ ๊ฒ์ ์ดํดํ ์ ์์ง๋ง ์ ์ง ๊ด๋ฆฌ ์ฑ ์์ ๊ณต์ ํ๊ฑฐ๋ ์ด์ ํ ์ ์์ต๋๊น? ์๋ง๋ ๊ฐ์ฅ ํ๋์ ์ธ ํฌํฌ์ @PH111P ๊ฐ ๊ธฐ๊บผ์ด ํ ๊ฒ์ ๋๋ค.
๋ง์ ์ฌ๋๋ค์ด ์ผ์์ ์ธ ์์ฐ์ฑ์ ์ํด ์ด๊ฒ์ ์ฌ์ฉํ๋ฉฐ ์ ๊ทน์ ์ธ ์ ์ง ๊ด๋ฆฌ๊ฐ ๋ถ์กฑํ๋ค๋ ๊ฒ์ ์ฝ๊ฐ์ ๋ถ๋ง์ ๋๋ค.
๋๋ ์๋ ๋์ ์ ๋ ฅ์ ์ ์ฌ์ฉํ์ง ์์๊ธฐ ๋๋ฌธ์ ๊ด์ฌ ๋ถ์กฑ์ด ๋ด๊ฐ ๊ทธ๊ฒ์ ๊ธฐ์ฌํ์ง ์์ ์ฃผ๋ ์ด์ ์ ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ์์ ์ ์ํํ ์ ์๋ค๋ฉด ์ฃผ ์ ์ฅ์์ ๊ธฐ์ฌ์๋ฅผ ์ถ๊ฐํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
๊ธฐ๊บผ์ด ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค.
๊ฐ์ฌ ํด์. @ZyX-I ์ด๋ค ์๊ฐ์ด ์์ต๋๊น?
๋๋ ๊ด์ฌ์ด ์์ง๋ง ์ ๋ ฅ์ ์ด ์ผ๋ง๋ ๋๋ฆฌ๊ฒ ์๋ํ๋์ง์ ๋ํด ๋ฐ๋ํฉ๋๋ค. ๊ทธ๋์ ์๋ง๋ ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ์ผ์ ์ฒ๋ฆฌํ ๊ฒ์ ๋๋ค.
ํธ์ง: @Lokaltog ๊ฐ ํ์ฌ ์ ์ง ๊ด๋ฆฌ์์ ํ ๋ก ์ ํ๊ฑฐ๋ ๊ทธ๋ค์ด ๋ณด๊ณ ์ถ์ดํ๋ ๊ฒ์ ๋ํ ์ค๋ช ์ ํ๋ ๋ฐ ๋งค์ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ์ด์ ์ด ์์ ํ "์ฐ๋ฆฌ๋ ์ ๋ฐ์ดํธ๋ฅผ ์ํ๋ฏ๋ก ์ ๋ ฅ์ ์ด ๊ฐ ์ข ์์ฑ์ ์ ๋ฒ์ ์ผ๋ก ์ค๋จ๋์ง ์๋๋ก ํ๋ ๊ฒ"์ด๋ผ๋ฉด ์ ๋ ์ ๋นํ ๊ด์ฌ์ด ์์ง๋ง "์ ๋ ฅ์ ์ด ๋ ๋นจ๋ผ์ง๊ณ ๋ ๋ง์ ์ฌ๋๋ค์ด ๋ฉ์ง ์ธ๋ชจ์ ๋ฉ์ง ๋ชจ์ต์ ๊ฐ์ถ๊ธฐ๋ฅผ ์ํ๋ฉด ์๋ํ๋ ์ ธ ํ๊ฒฝ"์ด๋ผ๋ฉด ํ์คํ ๋ด๊ฐ ์ด์ ์ ๊ฐ๊ณ ์๋ ๊ฒ์ ๋๋ค.
@ryanerwin์ ๋์ํฉ๋๋ค. ์ ๋ ๊ธฐ์ฌํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค.
@ryanerwin ๋๋ powerline์ ์ง์ ์ฌ์ฉํ์ง ์๊ณ ๋ช ๋ ๋์ ์ฌ์ฉํ์ง ์์๊ธฐ ๋๋ฌธ์ ํ์ฌ ํ๋ก์ ํธ๊ฐ ์ด๋ค ์ํ์ธ์ง ์
๋ํ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ๋ฌด์์ ํด์ผ ํ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ค๋ฅธ ์ด๋ฒคํธ ์คํธ๋ฆผ ์ํฉ ์ ํผํ๊ธฐ ์ํด ํฌํฌ๋ฅผ ์ ์งํ๊ธฐ ์ํด ์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณด๊ดํ๊ณ ์ปค๋ฎค๋ํฐ์ ๋งก๊ธฐ๋ ๊ฒ์ ๊ณ ๋ คํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์๋ง๋ repo๋ฅผ ์ฃฝ์ผ ๊ฒ์ด๋ฏ๋ก ๋์ ์ ์ง ํ์ ์ฌ๋ฌ๋ถ์ ์ถ๊ฐํ๊ณ ์ ์ ๋์ ๊ฐ๋ฐ์ ์ถ์ ํ๋ ค๊ณ ํฉ๋๋ค.
@Lokaltog ๊ฐ์ฌํฉ๋๋ค!
์ง๊ธ์ #1953 ๋๋ #2013๊ณผ ๊ฐ์ ์ผ๋ถ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ธฐ ์์ํฉ๋๋ค. ๋ฏธ๋์ ๊ด๋ จํ์ฌ ๋ช ๊ฐ์ง ์๋ก์ด ๊ธฐ๋ฅ์ด ์์ง๋ง ๊ธฐ๋ณธ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋ํด ์๊ฐํ๊ธฐ ์ ์ ๊ฐ์ ํด์ผ ํฉ๋๋ค.
~1.5๋
์ ์ ์ด ์ฝ๋๋ฅผ ์ดํด๋ณด์์ง๋ง ์ด๋ป๊ฒ๋ ๊ด์ฌ์ ์์์ต๋๋ค.
Hacktoberfest์ ํจ๊ป ๋๋ ์ฌ๊ธฐ์ ๋ฌด์ธ๊ฐ๋ฅผ ํ๊ณ ์ถ์ ๋๊ธฐ๋ฅผ ๋ค์ ์ป์๊ณ ๋ด ๋๊ธฐ๊ฐ ์ ์ ๋์ ์ง์๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด์จ๋ ์ต๊ทผ์ ์ต์ํ์ ํ๋์ด ๋ ์๊ธด ๊ฒ ๊ฐ์ ๊ธฐ์ฉ๋๋ค.
๋ฏธ๋ ๋ฐฉํฅ๊ณผ ๊ด๋ จํ์ฌ ํ์ฌ CI ํ๊ฒฝ์ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ ~5k ๋ผ์ธ์ ์ถ๋ ฅ์ ์ ๊ณตํ์ง๋ง ๋๋ถ๋ถ์ ๊ด๋ จ์ฑ์ด ์๋ bash ์ถ๋ ฅ์ผ๋ก ๋ณด์ด๋ฉฐ ํ ์คํธ๊ฐ ์คํจํ๋ ์ด์ ์ ํ ์คํธ ๋ฐฉ๋ฒ์ด ๋ช ํํ์ง ์์ต๋๋ค. ์ ํํ ์คํจํ๊ณ ์์ต๋๋ค. ์คํดํ์ง ๋ง์ธ์. ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ด ์์ฒญ๋ ์์ ํ ์คํธ๊ฐ ์๋ค๋ ์ฌ์ค์ด ๋ง์์ ๋ค์ง๋ง ํ ์คํธ ์คํ ์ํฌํ๋ก๋ฅผ ๋ค์ ์คํํ๋ฉด ๊ฐ๋ ์ฑ์ ๋์์ด ๋ ์ ์์ต๋๋ค.
๋ํ ์ ๋ ํ์ฌ ์ค์น ๋ฐ ๊ตฌ์ฑ ์ํฌํ๋ก์ ์ด๋ ฌํ ํฌ์ด ์๋๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ์ง๋ฃจํ๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ด ๊ฒ ๊ฐ์ต๋๋ค. ์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋์ง ์ค๋ง๋ฆฌ ์์ด ์ ๋ ฅ์ ์ ๊ตฌ์ฑํ ๋ ์ข
์ข
๋ช ๊ฐ์ง ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ํ JSON์ ์ฃผ์์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ตฌ์ฑ ํ์ผ์ ๋งค์ฐ ์ข์ง ์์ต๋๋ค(VSCode์ฒ๋ผ ์ถ๊ฐํ์ง ์๋ ๊ฒฝ์ฐ).
๋ถํํ๋ ๋ง์ง๋ง ์์ ์ ๋ํด ๋ ์ํ๋ ๋ฐฉ๋ฒ์ ๋ฌป๋ ์๋ชป๋ ์ฌ๋์ด์ง๋ง ํฅํ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค.
@StopMotionCuber Json5๋ ์ฃผ์์ ์ง์ํ๋ฏ๋ก ํ๋ก์ ํธ๊ฐ json5๋ก ๊ตฌ์ฑ ํ์ผ์ ์ฝ๋ ๊ฒ์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ๊ทธ๊ฒ์ด ๋งค์ฐ ๋๋ฆฌ๋ค๊ณ ๋งํ์ง๋ง (๋ด๊ฐ ๋ณผ ์์๋ ํ ๊ตฌ์ฑ์ ์์์๋ฟ๋ง ์๋๋ผ ์์ฃผ ์ฝ์ต๋๊น?).
๋ค๋ฅธ ๊ตฌ์ฑ์ ์ฌ์ฉํ๊ธฐ ์ํด ์ ๋ ฅ์ ์ ๋ค์ ์์ฑํ๋ ๊ฒ์ด ์ค์ ๋ก ํ์ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค(์ฃผ์์ด ์ค์ ๋ก ์ข์์ง๋ผ๋; ์๋ง๋ ์ฐ๋ฆฌ๋ ๋ฐ์ค๋ก ์์ํ๋ ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๊ทธ ๋ค์ ์ ๋ ฅ์ ์์ ๋ฌด์๋จ).
powerline-lint
)์ ๋ํ ๋ฆฐํฐ๊ฐ ์์ผ๋ฉฐ ์ฃผ์ ํ
์คํธ ํธ์ง๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก json
ํ์ผ์ ์ง์ ์ค๋ฅ๋ฅผ ํ์ํฉ๋๋ค.ํ ์คํธ์ ๊ด๋ จํ์ฌ @StopMotionCuber์ ๋์ํฉ๋๋ค. ์คํจํ ํ ์คํธ ์ผ์ด์ค๋ฅผ ํ์ํ๋ ๊ฒ์ ๊ณ ํต
๊ทธ๋งํ ๊ฐ์น๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ตฌ์ฑ์ YAML์ ์ฌ์ฉํ๋๋ก ์ ํํ๋ฉด ์ฃผ์์ ๋ํ ์ง์๊ณผ IMHO๊ฐ ๋ ์ฝ๊ธฐ ์ฌ์ด ๊ตฌ๋ฌธ์ ์ถ๊ฐํ ์ ์์ต๋๋ค(์ค์ํ ๋ค์ฌ์ฐ๊ธฐ์ ๋ํด ๊ด์ฐฎ๋ค๊ณ ๊ฐ์ ).
YAML์ JSON์ ์์ ์งํฉ์ด๋ฏ๋ก ํ์ฌ ๋ชจ๋ ๊ตฌ์ฑ ํ์ผ์ ์ด๋ฏธ ์ ํจํ YAML์ด๋ฉฐ ์ฝ๋ ๋ณ๊ฒฝ์ ์ต์ํ๋ฉ๋๋ค. ์๋ง ์ฝ๊ฒ์ ๊ฐ์ ๋ช ๊ฐ์ง ์ถ๊ฐ ํ์ผ ํ์ฅ์๋ฅผ ์ ์ฉํ๊ณ ์ฌ์ฉ yaml.safe_load
๋์ json.load
. PyYAML(๋๋ ๋ค๋ฅธ YAML ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด์ง๋ง PyYAML์ด ๊ฐ์ฅ ์ผ๋ฐ์ ์)์ ๋ํ ์ข
์์ฑ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ทธ๋งํ ๊ฐ์น๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ตฌ์ฑ์ YAML์ ์ฌ์ฉํ๋๋ก ์ ํํ๋ฉด ์ฃผ์์ ๋ํ ์ง์๊ณผ IMHO๊ฐ ๋ ์ฝ๊ธฐ ์ฌ์ด ๊ตฌ๋ฌธ์ ์ถ๊ฐํ ์ ์์ต๋๋ค(์ค์ํ ๋ค์ฌ์ฐ๊ธฐ์ ๋ํด ๊ด์ฐฎ๋ค๊ณ ๊ฐ์ ).
YAML์ JSON์ ์์ ์งํฉ์ด๋ฏ๋ก ํ์ฌ ๋ชจ๋ ๊ตฌ์ฑ ํ์ผ์ ์ด๋ฏธ ์ ํจํ YAML์ด๋ฉฐ ์ฝ๋ ๋ณ๊ฒฝ์ ์ต์ํ๋ฉ๋๋ค. ์๋ง ์ฝ๊ฒ์ ๊ฐ์ ๋ช ๊ฐ์ง ์ถ๊ฐ ํ์ผ ํ์ฅ์๋ฅผ ์ ์ฉํ๊ณ ์ฌ์ฉ
yaml.safe_load
๋์json.load
. PyYAML(๋๋ ๋ค๋ฅธ YAML ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด์ง๋ง PyYAML์ด ๊ฐ์ฅ ์ผ๋ฐ์ ์)์ ๋ํ ์ข ์์ฑ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.