Definitelytyped: ํƒญ ๋Œ€ ๊ณต๋ฐฑ?

์— ๋งŒ๋“  2014๋…„ 02์›” 18์ผ  ยท  44์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: DefinitelyTyped/DefinitelyTyped

์ •์˜์— ๋Œ€ํ•ด ์ผ๋ถ€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํƒญ๊ณผ ๊ณต๋ฐฑ ์ด ๊ฒฝ์šฐ .

์šฐ๋ฆฌ๋Š” ํƒญ ๋Œ€ ๊ณต๊ฐ„์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ „ํˆฌ๋ฅผ ์กฐ์งํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์•„๋ฌด๋„ ๊ฑฐ๊ธฐ์—์„œ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์›๋ž˜์˜ ์Šคํƒ€์ผ์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๊ณ  ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

(#1314๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ) ํ…Œ์Šคํ„ฐ์—์„œ detect-indent ์™€ TSLint๋ฅผ ๊ฒฐํ•ฉ

Discussion Infrastructure

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

์ „ํˆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํƒญ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

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

์ „ํˆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํƒญ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋นˆ์นธ์— ํˆฌํ‘œํ•œ๋‹ค!

๋‚ด๋ถ€ ๊ฐˆ๋“ฑ์„ ์‹œ์ž‘ํ•˜์ž! :์›ƒ๋‹ค:

ใ…‹. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ํ•„์š”๋กœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•Œ๋‹ค์‹œํ”ผ... ์šฐ๋ฆฌ๊ฐ€ ํƒญ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•˜๋Š” ๋ฐฉ์‹(2์นธ ๋˜๋Š” 4์นธ)์œผ๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ์ •๋ ฌ๋œ ์ฝ”๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์ด ๋Œ€ํ™”๋ฅผ ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ.

๋‚˜๋Š” ํƒญ์„ ์ข‹์•„ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ VisualStudio์˜ ๊ธฐ๋ณธ ์„ค์ •์„ ๋”ฐ๋ผ์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋“ค์—ฌ์“ฐ๊ธฐ ํฌ๊ธฐ๊ฐ€ 4์ธ ๊ณต๋ฐฑ(VS ๊ธฐ๋ณธ๊ฐ’).
๊ท€ํ•˜์™€ ๋ชจ๋‘๊ฐ€ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€์ƒ ํƒญ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก IDE๋ฅผ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.
์œ„ ์ค„์˜ ๋‹จ์–ด์™€ ์ •๋ ฌํ•˜๋ ค๋Š” ์ฝ”๋“œ์— ๋Œ€ํ•ด [ํƒญ] [ํƒญ] [๊ณต๋ฐฑ] [๊ณต๋ฐฑ] [๊ณต๋ฐฑ]์„ ๋ณด๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ผ๊ด€๋œ ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด TSLint ๊ทœ์น™์„ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด(์˜ˆ: ํƒญ ๋˜๋Š” ๊ณต๋ฐฑ 4๊ฐœ, ๋‘˜ ๋‹ค ์•„๋‹˜) ์ƒˆ ํ…Œ์Šคํ„ฐ์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค(TSLint ์ง€์› ์žˆ์Œ).

https://github.com/palantir/tslint/issues/122 ๋„

์ŠคํŽ˜์ด์Šค! FWIW JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(๊ฐ๋„/jquery)

์ด๊ฒƒ์€ ์•„๋งˆ๋„ Crockford ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค : http://javascript.crockford.com/code.html

๋“ค์—ฌ์“ฐ๊ธฐ์˜ ๋‹จ์œ„๋Š” 4์นธ์ž…๋‹ˆ๋‹ค. (21์„ธ๊ธฐ์— ์ด ๊ธ€์„ ์“ฐ๋Š” ํ˜„์žฌ) ์—ฌ์ „ํžˆ ํƒญ ์Šคํ†ฑ ๋ฐฐ์น˜์— ๋Œ€ํ•œ ํ‘œ์ค€์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ํƒญ ์‚ฌ์šฉ์„ ํ”ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ํฐ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํฌ๊ธฐ๋Š” ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ ์ค‘์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ทธ ์ฐจ์ด๋Š” ์ถ•์†Œ๋ฅผ ํ†ตํ•ด ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

TS๋Š” JS์ด๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ง ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ธ€์Ž„, Crockford๋Š” ์•ฝ๊ฐ„ ์‹ฌ์ˆ  ๊ถ‚์€ ๋Š™์€์ด์ด๋ฏ€๋กœ ๊ทธ๋ฅผ ์†Œ๊ธˆ ํ•œ ์•Œ๊ณผ ํ•จ๊ป˜ ๋ฐ๋ ค๊ฐ‘๋‹ˆ๋‹ค.

์–ผ๋งˆ ์ „ Reddit์— ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Github์˜ ์ƒ๋‹นํ•œ ๋ฉ์–ด๋ฆฌ๋ฅผ ๋ถ„์„ํ•œ ํ†ต๊ณ„๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ๊ณต๋ฐฑ์— ์ฐฌ์„ฑํ•˜์—ฌ 60% / 40%์˜€์Šต๋‹ˆ๋‹ค. ์ €์™€ ์ œ๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ์ผํ–ˆ๋˜ ๋ชจ๋“  ๊ณณ์€ ํƒญ์ด์—ˆ์Šต๋‹ˆ๋‹ค(๊ทธ ์ค‘ ํฐ ๋ถ€๋ถ„์€ AS3์ด์—ˆ์ง€๋งŒ). ๊ทธ๊ฒƒ์€ ์™„์ „ํžˆ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์ •๋ ฌ์€ ์‹œ๊ฐ„ ๋‚ญ๋น„์ด์ง€๋งŒ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์Šค๋งˆํŠธ ํƒญ๋„ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์—†์• ๊ณ  ์‹ถ์€ ์ง„์งœ ๊ณจ์นซ๊ฑฐ๋ฆฌ๋Š” _indents_ ํ˜ผํ•ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•ด ์—ดํ•ต์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์ ์–ด๋„ _ํŒŒ์ผ๋‹น_ ์ผ๊ด€์„ฑ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋Š ์‹œ์ ์—์„œ ์šฐ๋ฆฌ๋Š” #2228์„ ํ•  ๊ฒƒ์ด์ง€๋งŒ ๊ทธ๊ฒƒ์€ ๊ฝค ํฐ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

๊ธ€์Ž„, Crockford๋Š” ์•ฝ๊ฐ„ ์‹ฌ์ˆ  ๊ถ‚์€ ๋Š™์€์ด์ด๋ฏ€๋กœ ๊ทธ๋ฅผ ์†Œ๊ธˆ ํ•œ ์•Œ๊ณผ ํ•จ๊ป˜ ๋ฐ๋ ค๊ฐ‘๋‹ˆ๋‹ค.

๋™์˜

์ง€๋ฃจํ•˜๋‹ค๋ฉด JSON.js์— ๋Œ€ํ•œ pull ์š”์ฒญ์„ ์ฝ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ณ€ํ•จ์—†์ด ๊ทธ๋“ค์€ Doug์˜ ์•ฝ๊ฐ„ ์กฐ์žกํ•œ ๋ฐฉ์‹์„ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๋“ค์— ์˜ํ•ด ์ œ์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ๊ฑฐ๋ถ€๋œ ๊ณต๋ฐฑ์ž…๋‹ˆ๋‹ค :-)

๋ฐฉ๊ธˆ ์ด๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค : https://github.com/iplabs/typescript/blob/languageService-v2/src/services/languageService.ts#L199 -L213 ๊ธฐ๋ณธ๊ฐ’์€ ํƒญ์ด ๊ณต๋ฐฑ์œผ๋กœ ๋ณ€ํ™˜๋œ 4๊ฐœ์˜ ๊ณต๋ฐฑ์ž…๋‹ˆ๋‹ค.

    export class EditorOptions {
        public IndentSize: number = 4;
        public TabSize: number = 4;
        public NewLineCharacter: string = "\r\n";
        public ConvertTabsToSpaces: boolean = true;

        public static clone(objectToClone: EditorOptions): EditorOptions {
            var editorOptions = new EditorOptions();
            editorOptions.IndentSize = objectToClone.IndentSize;
            editorOptions.TabSize = objectToClone.TabSize;
            editorOptions.NewLineCharacter = objectToClone.NewLineCharacter;
            editorOptions.ConvertTabsToSpaces = objectToClone.ConvertTabsToSpaces;
            return editorOptions;
        }
    }

@basarat ์–ผ๋งˆ๋‚˜ ๋งŒ์กฑ์Šค๋Ÿฝ์Šต๋‹ˆ๊นŒ!

CRLF๋Š” ์•ฝ๊ฐ„ ๋ฐ”๋ณด ๊ฐ™์ง€๋งŒ ์–ด์จŒ๋“ .

์–ด์ฉŒ๋ฉด ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์œ„ํ•ด ๊ฐ€์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์— typescript-formatter๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฃผ์ธ๋‹˜, ๋„์‚ด์žฅ์ด๋ผ๋‹ˆ.. ์ด .d.ts ํŒŒ์ผ 562๊ฐœ, ํŒŒ์ผ 446๊ฐœ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค..

https://github.com/Bartvds/DefinitelyTyped/tree/34907936bfc22562f30bb09ee82282ca0515b8b3

https://github.com/Bartvds/DefinitelyTyped/commit/34907936bfc22562f30bb09ee82282ca0515b8b3

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋งŽ์€ ํŒŒ์ผ(446๊ฐœ)์ด ๋ณ€๊ฒฝ๋˜์–ด ์ „์ฒด diff๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ—ค.

ํ…Œ์ŠคํŠธ๋„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/Bartvds/DefinitelyTyped/tree/46f9d17b2b074c887bff35b06112070b28924248

https://github.com/Bartvds/DefinitelyTyped/commit/46f9d17b2b074c887bff35b06112070b28924248

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋งŽ์€ ํŒŒ์ผ(442๊ฐœ)์ด ๋ณ€๊ฒฝ๋˜์–ด ์ „์ฒด diff๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ฉ‹์ง„. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๊ธฐ์ˆ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์‰ฌ์šด ๋ถ€๋ถ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด์ œ ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์ด ์‹ฌ๊ฐํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ•œ ์ค„ ์†์„ฑ์€ ์ง€์˜ฅ์— ๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ๋ฐ›์•„๋“ค์ธ๋‹ค๋ฉด ์•„๋งˆ๋„ ํ…Œ์Šคํ„ฐ์—์„œ ํ˜•์‹์„ ์ ์šฉํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ…Œ์Šคํ„ฐ์— TSLint ์„ค์ •์ด ์žˆ์œผ๋ฏ€๋กœ(๋น„ํ™œ์„ฑํ™”๋จ) ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ์šฐ๋ฆฌ๋Š” ํ…Œ์Šคํ„ฐ๋ฅผ ํ›Œ๋ฅญํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ํฌ๋งทํ„ฐ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” CLI ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ ๊ฐœ์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ง€๊ธˆ์€ ๋กœ์ปฌ์—์„œ ์ž‘๋™ํ•˜์ง€๋งŒ ๊นจ๋—ํ•œ CLI API ๋“ฑ์œผ๋กœ ๊ฐœ์„ ๋˜์–ด์•ผ ํ•จ).

๋น ๋ฅผ์ˆ˜๋ก ์ข‹๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ข‹์€ ์†Œ์‹์€ ๋น„๋‚œ์˜ ์—ญ์‚ฌ๋ฅผ ์žƒ์ง€ ์•Š์„ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. GitHub๊ฐ€ diff ๋ณด๊ธฐ์—์„œ๋„ ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์œผ๋ฉด ํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ํ•˜์ง€๋งŒ git blame -w -M ๊ฐ€ ์˜จ๋ผ์ธ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์€ ์งœ์ฆ๋‚˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ Github ์ง€์›ํŒ€์— ์ด๋ฉ”์ผ์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค.

@Bartvds , GitHub์—์„œ ์‘๋‹ต์ด

GitHub ๋น„๋‚œ ๋ณด๊ธฐ์—์„œ ๊ณต๋ฐฑ์„ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์€ ํ˜„์žฌ ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋‚˜์ค‘์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์•ˆํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํŒ€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋Šฅ ์š”์ฒญ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๊ฐ€ ๋ญ๋ผ๊ณ  ๋งํ•˜๋“  ์ƒ๊ด€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ํƒญ์€ ์ •๋ ฌ์ด ํฌํ•จ๋  ๋•Œ ๊ฐœ๋ฐœ์ž์˜ ์˜๋„๋ฅผ ๋ณด์กดํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋‚ด ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

use-tabs-for-indentation-spaces-for-alignment-anim

์ฝ”๋“œ ์ •๋ ฌ(๊ท€ํ•˜์˜ ๊ฒฝ์šฐ var ๋ฐ = ์— ์ •๋ ฌ) ๊ฐœ๋…์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฆฌํŒฉํ† ๋ง์—์„œ ์œ ์ง€ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ž๋™ ์„œ์‹ ๋„๊ตฌ๋Š”

๋˜ํ•œ

  public string FirstName { get; set; }        =>  public  string  FirstName { get; set; }    
  public string Surname { get; set; }          =>  public  string  Surname   { get; set; }
  public int Age { get; private set; }         =>  public  int     Age       { get; private set; }
  private Address Address { get;  set; }       =>  private Address Address   { get; set; } 

์ƒˆ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ด ๋ชจ๋“  ์ค„์„ _reformat_ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€ํ† ํ•˜๊ธฐ์— ์ข‹์€ ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์•„๋‹™๋‹ˆ๋‹ค.

์›Œํฌํ”Œ๋กœ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ›จ์”ฌ ๋” ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์ง€๋งŒ(์•„ํŠธ๋กœ์„œ์˜ ์ฝ”๋“œ), ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์˜ฎ๊ธฐ๋Š” ํŒ€์„ ๊ฒฝํ—˜ํ•ด ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ด์ƒํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ํƒญ๊ณผ ๊ณต๋ฐฑ์„ ์„ž๋Š” ์•„์ด๋””์–ด์— ๋Œ€ํ•œ ๋‚˜์˜ ๋ณธ๋Šฅ์ ์ธ ๋ฐ˜์‘์€ ๋ชธ์„ ๋–จ๋ฉฐ "๊ทธ๋ƒฅ ๋”๋Ÿฝ๋‹ค!"๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์™„์ „ํžˆ ๋น„ํ•ฉ๋ฆฌ์ ์ด๋ผ๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ „์ ์œผ๋กœ ์ง„์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ธ๊ฐ„์ด ์ด์ƒํ•ด...

@johnnyreilly ๋‹น์‹ ์€ ์ผ๋ฐ˜์ ์ธ ์˜คํ•ด์˜ ํฌ์ƒ์ž์ž…๋‹ˆ๋‹ค. ๋“ค์—ฌ์“ฐ๊ธฐ์— ํƒญ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ •๋ ฌ์— ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ณต๋ฐฑ์ด ์žˆ๋Š” ํƒญ์„ _ํ˜ผํ•ฉ_ํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋ถ„๋ช…ํžˆ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ์ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ •๋ ฌ์„ ์œ„ํ•ด ํƒญ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ๋žŒ๋“ค์ด ์ž˜๋ชปํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํƒญ์—์„œ ๋„ˆ๋ฌด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ „ํ˜€ ๊บผ์ง„ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ์ œ๋Œ€๋กœ ํ–ˆ๋‹ค๋ฉด ์•„๋ฌด๋„ ํƒญ ๋„ˆ๋น„๋ฅผ ๋‹ค๋ฅธ ํฌ๊ธฐ๋กœ ํ‘œ์‹œํ•˜๋„๋ก ํŽธ์ง‘์ž์˜ ๊ธฐ๋ณธ ์„ค์ •์„ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์œ„์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ GIF๊ฐ€ ์‚ฌ๋žŒ๋“ค์ด ์–ด๋–ป๊ฒŒ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋ ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@basarat , ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์ •๋ ฌ์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ฑฐ์˜ ์ž‘์—…ํ•˜์ง€ ์•Š์ง€๋งŒ ๊ฐ€๋” ๋ด…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ •๋ ฌ์„ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ผ๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ๊ณต๋ฐฑ์ด ์žˆ๋Š” ๋ฆฐํŠธ ๋„๊ตฌ๊ฐ€ ์ฝ”๋“œ๋ฅผ CST๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ์™€ ์ •๋ ฌ์„ ์œ„ํ•ด ์˜๋„๋œ ๊ฒƒ์„ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค(๊ณผ๋„ํ•œ ๋ฐฉ๋ฒ•).

๋ฌผ๋ก , ์ด ํ˜„๋Œ€ ์‹œ๋Œ€์— ๋“ค์—ฌ์“ฐ๊ธฐ์— ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ๋งŽ์€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽธ์ง‘์ž๋Š” ํƒญ์„ ์ž˜ ๋‹ค๋ฃจ์ง€๋งŒ ๊ณต๋ฐฑ์€ ์ „ํ˜€ ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ™”์‚ดํ‘œ ํ‚ค ํƒ์ƒ‰, ์‚ญ์ œ, ๋ฐฑ์ŠคํŽ˜์ด์Šค - ๊ณต๋ฐฑ์˜ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ์ทจ๊ธ‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Visual Studio, Sublime, PHPStorm ๋ฐ Notepad++๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜์ง€๋งŒ ๋ชจ๋‘ ๋“ค์—ฌ์“ฐ๊ธฐ ๊ณต๋ฐฑ์— ๋Œ€ํ•œ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™”์‚ดํ‘œ ํ‚ค ํƒ์ƒ‰, ์‚ญ์ œ, ๋ฐฑ์ŠคํŽ˜์ด์Šค - ๊ณต๋ฐฑ์˜ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ์ทจ๊ธ‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํƒ์ƒ‰: Ctrl + ํ™”์‚ดํ‘œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ณต๋ฐฑ(์‹ค์ œ๋กœ๋Š” ๋ชจ๋‘ ๊ณต๋ฐฑ) + ๋‹จ์–ด๋ฅผ ํ™‰ํ•‘ํ•ฉ๋‹ˆ๋‹ค.

์‚ญ์ œ/๋ฐฑ์ŠคํŽ˜์ด์Šค์˜ ๊ฒฝ์šฐ: ๋‹จ์–ด ์„ ํƒ์˜ ๊ฒฝ์šฐ ๋‹จ์–ด ํ™•์žฅ(reshaper ๊ธฐ๋ณธ๊ฐ’์—์„œ ctrl+w)๊ณผ ์„ ํƒ ํ•ด์ œ(ctrl+shift+w)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. _inside_ ๊ณต๋ฐฑ์„ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์ง€๋งŒ ํƒญ(๋“ค์—ฌ์“ฐ๊ธฐ ์ฆ๊ฐ€)๊ณผ ํƒญ ์ด๋™(๋“ค์—ฌ์“ฐ๊ธฐ ๊ฐ์†Œ)์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

@jedmao ์‚ฌ์‹ค ๋‚˜๋Š” ๋‹น์‹ ์˜ ์š”์ ์„ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ณธ๋Šฅ์ ์ธ(๊ทธ๋ฆฌ๊ณ  ๋น„์ด์„ฑ์ ์ธ) ๋ฐ˜์‘์„ ๊ณต์œ ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ•˜์ง€ ์•Š์•˜๋‹ค : ์Šค๋งˆ์ผ :

@johnnyreilly ์žก์•˜๋‹ค.

@basarat ์ผ๋ถ€ ๊ณต๋ฐฑ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ Home ๋ฐ End ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Ctrl + arrow key ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ํ•ญ์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ •์‹ ์ ์ธ ์ผ๊ด€์„ฑ ๋•Œ๋ฌธ์— ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ๋ฅผ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

for (var i = 0; i < 10; i++) {
    if (i > 5) {
        console.log('I am greater than 5');
    }
}

๋‚ด ์ปค์„œ๊ฐ€ 3ํ–‰์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์žˆ๊ณ  2ํ–‰์˜ ์‹œ์ž‘ ๋ถ€๋ถ„๊นŒ์ง€ ํƒ์ƒ‰ํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Sublime์—์„œ ๊ท€ํ•˜์˜ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Up , Hold Ctrl , Left , Release Ctrl (4 ๋…ผ๋ฆฌ์  ๋‹จ๊ณ„)
  • Hold Ctrl , Left , Release Ctrl , Up , Hold Ctrl , Right , Left , Release Ctrl (8 ๋…ผ๋ฆฌ์  ๋‹จ๊ณ„)

Visual Studio์—์„œ ๋‘ ๋ฒˆ์งธ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” 7๊ฐœ์˜ ๋…ผ๋ฆฌ์  ๋‹จ๊ณ„๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Hold Ctrl , Left , Release Ctrl , Up , Hold Ctrl , Right , Release Ctrl (7 ๋…ผ๋ฆฌ์  ๋‹จ๊ณ„)

์‹ค์ œ ํƒญ ๋ฌธ์ž์˜ ๊ฒฝ์šฐ ์ตœ๋‹จ ๊ฒฝ๋กœ๋Š” ์ˆ˜์ •์ž ํ‚ค๊ฐ€ ์—†๋Š” ๋‹จ 2๊ฐœ์˜ ๋…ผ๋ฆฌ์  ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ๋” ๊ฐ„๋‹จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • Left , Up

๋‹จ์–ด ์„ ํƒ์ด ๊ณต๋ฐฑ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋ฐฑ์ŠคํŽ˜์ด์Šคํ•˜๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์„ฑ๊ณตํ•˜์ง€ ์•Š๊ณ  Visual Studio์—์„œ ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ Visual Studio์šฉ TabSanity ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งŒ๋“  ์ด์œ ์ž…๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„, ๋‹ค๋ฅธ ํŽธ์ง‘์ž๋“ค์„ ์œ„ํ•œ ๊ทธ๋Ÿฌํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํƒญ ๋ฌธ์ž์˜ ๊ฒฝ์šฐ ์ˆ˜์ •์ž ํ‚ค๊ฐ€ ์—†๋Š” ํ•ญ์ƒ 2๊ฐœ์˜ ๋…ผ๋ฆฌ์  ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ๋” ๊ฐ„๋‹จํ•  ์ˆ˜ ์—†๋‹ค

:+1: ๋‹น์‹ ์˜ ์žฅ์ ์ด ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜์ด ์ฃผ์„์„ ํŽธ์ง‘ํ•˜๋ฉด ctrl ๋“ฑ์ด ๋‚ด VS์™€ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋ฏ€๋กœ ๋‚ด ์Šต๊ด€์ด ์ด์–ด์ง‘๋‹ˆ๋‹ค.)

๋‹จ์–ด ์„ ํƒ์ด ๊ณต๋ฐฑ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋ฐฑ์ŠคํŽ˜์ด์Šคํ•˜๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‚ด ๋‚˜์œ, ๋‚ด ์„ค๋ช…์ด ํ˜ผ๋ž€ ์Šค๋Ÿฌ์› ์Šต๋‹ˆ๋‹ค. "๋‹จ์–ด" ์„ ํƒ ๋น„ํŠธ๋ฅผ ๋ฌด์‹œํ•˜์‹ญ์‹œ์˜ค. I rarely need to select inside whitespace though, just use tab (increase indent) and shift tab (decrease indent). ์— ์ง‘์ค‘ํ•˜์„ธ์š”. ๊ฐ„๊ฒฉ ๋“ค์—ฌ์“ฐ๊ธฐ๊ฐ€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํƒญ ๋ฌธ์ž์˜ ๊ฒฝ์šฐ ์ˆ˜์ •์ž ํ‚ค๊ฐ€ ์—†๋Š” ํ•ญ์ƒ 2๊ฐœ์˜ ๋…ผ๋ฆฌ์  ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

์ด๊ฑด ์–ด๋–ค๊ฐ€์š” :

public  string  FirstName { get; set; }    
public  string  Surname   { get; set; }
public  int     Age       { get; private set; }
private Address Address   { get; set; } 

์˜ ์ฒ˜์Œ๋ถ€ํ„ฐํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค Age ์˜ ์œ ํ˜• ๋ณ€ํ™”์— Surname IE์˜ string ์ด์ „ ๋ผ์ธ์—์ด ๊ฐ™์€ ์ผ Ctrl ์‹œ๋‚˜๋ฆฌ์˜ค?

@basarat ์ €๋Š” Tab ์™€ Shift+Tab ์ข…๊ต์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฌ๋Ÿฌ ์ค„์˜ ์ฝ”๋“œ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Shift+Tab ํƒญ์˜ backspace ํ‚ค ๋ˆ„๋ฆ„์— ๋Œ€ํ•œ ์ข‹์€ ๋ณ„์นญ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์ง€๋งŒ backspace ๋งŒํผ ๊ฐ„๋‹จํ•˜๊ฑฐ๋‚˜ ์ง๊ด€์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Ctrl+Delete ๋Š” Delete ํ‚ค์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ณ„์นญ์ด์ง€๋งŒ ๋‘˜ ์ด์ƒ์˜ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์‚ญ์ œํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— ํƒญ์˜ ๊ฐ„๋‹จํ•œ Delete ํ‚ค๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ•˜๋‚˜๋งŒ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ์ผํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ์ผํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ •์‹ ์  ์ผ๊ด€์„ฑ).

๋‚˜๋„ ๋‹น์‹ ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‚ด๋ถ€ ๊ณต๋ฐฑ์„ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜๊ฒ ๋‹ค๊ณ  ์ œ์•ˆํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ณต๋ฐฑ์„ ์„ ํƒํ•˜์ง€ ์•Š๊ณ  ์–ด๋”˜๊ฐ€๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ์ •๋ ฌ ์˜ˆ๋Š” ํ™•์‹คํžˆ Ctrl + arrow key ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•  ๋•Œ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ด์ „์— ๋งํ–ˆ๋“ฏ์ด Ctrl + arrow key ํƒ์ƒ‰์„ ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‹น์‹ ์ด ์ง€์ ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์•„๋งˆ๋„ ์ œ๊ฐ€ ์‚ฌ์šฉํ•  ์œ ์ผํ•œ ๊ฒฝ์šฐ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ, ๋‚˜๋ฅผ ๊ฐ€์žฅ ๊ดด๋กญํžˆ๋Š” ๊ฒƒ์€ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ํƒญ์ด ์žˆ๋Š” ํŒŒ์ผ๊ณผ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ๊ณต๋ฐฑ ์‚ฌ์ด๋ฅผ ์ „ํ™˜ํ•  ๋•Œ ๊ทผ์œก ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์™„์ „ํžˆ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ํƒญ์ด ์žˆ๋Š” ํŒŒ์ผ์—์„œ ํšจ์œจ์ ์ธ(๊ฐ€์žฅ ์ ์€ ๋…ผ๋ฆฌ์  ๋‹จ๊ณ„) ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ๊ณต๋ฐฑ์ด ์žˆ๋Š” ํŒŒ์ผ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›ํ™œํ•œ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ํŽธ์ง‘์ž๋ฅผ ๋น„๋‚œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํŽธ์ง‘์ž๊ฐ€ ๋“ค์—ฌ์“ฐ๊ธฐ์™€ ์ •๋ ฌ์— ๋Œ€ํ•ด ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ๊ณต๋ฐฑ์ด ์žˆ๋Š” ํŒŒ์ผ์—์„œ ๊ฐ€์ •์„ ํ•˜๋Š” ๊ฒƒ์€ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ(CST ์—†์ด) ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋”์šฑ ์•ˆํƒ€๊นŒ์šด ๊ฒƒ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ฆฌ๊ธฐ ์–ด๋ ต๋‹ค๋Š” ์ ์ด๋‹ค. ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„์€ ์ˆœ์ˆ˜ํ•œ ์•…์ž…๋‹ˆ๋‹ค... ๋ฟ”์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ข… ๊ฒฐ๋ก ์€? ๋‚˜๋Š” ๋‹จ์ง€ ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค, ๋‹น์‹ ์€ ๋„๋Œ€์ฒด ๋ฌด์—‡์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์ตœ์ข… ๊ฒฐ๋ก ์€? ๋‚˜๋Š” ๋‹จ์ง€ ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค, ๋‹น์‹ ์€ ๋ฌด์—‡์„ ์‚ฌ์šฉํ•˜๋Š”

ํŒŒ์ผ๋ณ„๋กœ ์ผ๊ด€์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์— ํ˜ผํ•ฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

@basarat ๋งŒํ™”๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” Apple ์ง์›์ด ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•˜๊ณ  Microsoft ์ง์›์ด ํƒญ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@jedmao ์ €๋Š” ms ์‚ฌ๋žŒ์ด๊ณ  ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค :)

๋‚˜๋Š” #4211์ด ์ข‹์€ ์ œ์•ˆ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

airbnb /javascript styleguide์—์„œ ์ˆ˜ํ–‰ํ•œ ๋Œ€๋กœ 2๊ฐœ์˜ ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

์ œ์•ˆ: ์ž…๋ ฅ ์ค‘์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์„ค์ •ํ•œ ์ฝ”๋”ฉ ํ‘œ์ค€์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ž…๋ ฅ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ณต๋ฐฑ, ์ž‘์€๋”ฐ์˜ดํ‘œ ๋ฐ LF๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์œ ํ˜• ์ •์˜์—์„œ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ณต๋ฐฑ ๋Œ€ ํƒญ ์ธ์ˆ˜๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ์ด ๊ทœ์น™์„ ์ ์šฉํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์‹œํ–‰ํ•˜๊ณ  ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ์›น ์‚ฌ์ดํŠธ์— ๋”ฐ๋ฅด๋ฉด ๊ณต๋ฐฑ๊ณผ ์ž‘์€ ๋”ฐ์˜ดํ‘œ์ž…๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ ์„ ํ˜ธํ•˜๋Š” ๊ฒƒ์€ ๊ณต๋ฐฑ(4)๊ณผ _ํฐ ๋”ฐ์˜ดํ‘œ์ด์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์ด ์ผ๊ด€์„ฑ์ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋ผ๋ฉด ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

ํƒญ์„ ์ฐฌ์„ฑํ•˜๋Š” ์‚ฌ์šฉ์ž์™€ ํƒญ ๊ณต๊ฐ„์„ ์„ ํ˜ธํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋น„์Šทํ•œ ํƒ€ํ˜‘์„ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ œ ๊ฐœ์ธ์ ์ธ ์ทจํ–ฅ์€ ๊ณต๋ฐฑ(4)๊ณผ ํฐ๋”ฐ์˜ดํ‘œ์ด์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์ด ์ผ๊ด€์„ฑ์ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋ผ๋ฉด ์ž‘์€๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

@glen-84๋Š” ์ˆœ์ „ํžˆ ๋‹น์‹ ์˜ ์ฆ๊ฑฐ์›€์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค ... ์ปดํŒŒ์ผ๋Ÿฌ ํŒ€์ด ํฐ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/Microsoft/TypeScript/issues/5811#issuecomment -160187924

  • JSON
  • ๋ชจ๋“  ์–ธ์–ด์—์„œ ์ž‘๋™ํ•˜๋ฏ€๋กœ ์ธ์ง€ ๋ถ€ํ•˜๊ฐ€ โ€‹โ€‹์ ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ ์  ๋” ๋งŽ์€ TypeScript๋ฅผ ๋…์ ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž์‹ ์„ ๋ฐœ๊ฒฌํ•จ์— ๋”ฐ๋ผ ๊ฐœ์ธ์ ์œผ๋กœ ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ €๋„ ์ข€ ๊ฐ€๋…์„ฑ์ด ์ข‹์€ ๊ฒƒ ๊ฐ™์€๋ฐ, 57% vs 43%(ํฐ ์ฐจ์ด๋Š” ์•„๋‹˜)์˜€๋Š”๋ฐ, ์–ด๋”˜๊ฐ€์— ์„ ์„ ๊ทธ์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. =)

๋‚˜๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ํƒญ๊ณผ ์ •๋ ฌ์„ ์œ„ํ•œ ๊ณต๋ฐฑ์— ๋Œ€ํ•œ @jedmao ์˜ ํฌ์ธํŠธ๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด ๊ณต๊ฐœ: ์ €๋Š” go fmt ์žˆ๊ณ  ํƒญ์ด๋‚˜ ๊ณต๋ฐฑ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•œ ์ ์ด ์—†๋Š” Go-land์—์„œ ์™”์Šต๋‹ˆ๋‹ค. ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์œ„ํ•œ ํƒญ๊ณผ ์ •๋ ฌ์„ ์œ„ํ•œ ๊ณต๋ฐฑ์ด๋ฉฐ ๋งค์šฐ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.+1:

๋ฌผ๋ก  ๊ณต๊ฐ„. ํƒญ์ด ๋‹ค๋ฅธ ๊ณณ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ์—์„œ ํƒญ์ด ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ๋ Œ๋”๋ง๋˜๋Š”์ง€ ์•„๋ฌด๋„ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@hinell ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ์—์„œ ํƒญ์ด ๋‹ค๋ฅด๊ฒŒ ๋ Œ๋”๋ง๋˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํƒญ์ด ๋“ค์—ฌ์“ฐ๊ธฐ์— "์ „์šฉ" ์‚ฌ์šฉ๋˜๋Š” ํ•œ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํŠนํžˆ ์ด๊ฒƒ ๋•Œ๋ฌธ์— ํƒญ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค: http://nickgravgaard.com/elastic-tabstops/

ํƒญ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋” ํฐ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๊ฐœ๋ฐœ์ž ์ ‘๊ทผ์„ฑ ์ž…๋‹ˆ๋‹ค.

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