Powerline: ์œ ์ง€ ๋ณด์ˆ˜ ์š”์ฒญ

์— ๋งŒ๋“  2019๋…„ 06์›” 20์ผ  ยท  11์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: powerline/powerline

๋ณ‘ํ•ฉ ๋˜๋Š” ์ปค๋ฐ‹์ด ์—†๋Š” ์ง€๋‚œ 9๊ฐœ์›” ๋™์•ˆ ๋ฌธ์ œ์™€ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๊ฐ€ ์Œ“์—ฌ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ด€๋ฆฌ์ž์ธ @Lokaltog ๊ฐ€ ๋ฐ”์˜๋‹ค๋Š” ๊ฒƒ์€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์œ ์ง€ ๊ด€๋ฆฌ ์ฑ…์ž„์„ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ์ด์ „ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋งˆ๋„ ๊ฐ€์žฅ ํ™œ๋™์ ์ธ ํฌํฌ์˜ @PH111P ๊ฐ€ ๊ธฐ๊บผ์ด ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ผ์ƒ์ ์ธ ์ƒ์‚ฐ์„ฑ์„ ์œ„ํ•ด ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์ ๊ทน์ ์ธ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฒƒ์€ ์•ฝ๊ฐ„์˜ ๋ถˆ๋งŒ์ž…๋‹ˆ๋‹ค.

discussion

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๊ทธ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ์„ฑ์— YAML์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜ํ•˜๋ฉด ์ฃผ์„์— ๋Œ€ํ•œ ์ง€์›๊ณผ IMHO๊ฐ€ ๋” ์ฝ๊ธฐ ์‰ฌ์šด ๊ตฌ๋ฌธ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ค‘์š”ํ•œ ๋“ค์—ฌ์“ฐ๊ธฐ์— ๋Œ€ํ•ด ๊ดœ์ฐฎ๋‹ค๊ณ  ๊ฐ€์ •).

YAML์€ JSON์˜ ์ƒ์œ„ ์ง‘ํ•ฉ์ด๋ฏ€๋กœ ํ˜„์žฌ ๋ชจ๋“  ๊ตฌ์„ฑ ํŒŒ์ผ์€ ์ด๋ฏธ ์œ ํšจํ•œ YAML์ด๋ฉฐ ์ฝ”๋“œ ๋ณ€๊ฒฝ์€ ์ตœ์†Œํ™”๋ฉ๋‹ˆ๋‹ค. ์•„๋งˆ ์‰ฝ๊ฒŒ์™€ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ํŒŒ์ผ ํ™•์žฅ์ž๋ฅผ ์ ์šฉํ•˜๊ณ  ์‚ฌ์šฉ yaml.safe_load ๋Œ€์‹  json.load . PyYAML(๋˜๋Š” ๋‹ค๋ฅธ YAML ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด์ง€๋งŒ PyYAML์ด ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ž„)์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  11 ๋Œ“๊ธ€

๋‚˜๋Š” ์ˆ˜๋…„ ๋™์•ˆ ์ „๋ ฅ์„ ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ด€์‹ฌ ๋ถ€์กฑ์ด ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์— ๊ธฐ์—ฌํ•˜์ง€ ์•Š์€ ์ฃผ๋œ ์ด์œ ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ฃผ ์ €์žฅ์†Œ์— ๊ธฐ์—ฌ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

๊ธฐ๊บผ์ด ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”. @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์ด ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ž„)์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰