Vscode: ํŒŒ์ผ ์ค‘์ฒฉ

์— ๋งŒ๋“  2016๋…„ 05์›” 12์ผ  ยท  141์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: microsoft/vscode

Visual Studio 2015์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ Visual Studio Code์—์„œ ํŒŒ์ผ ์ค‘์ฒฉ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ •๋ง ํŽธ๋ฆฌํ•˜๊ณ  ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋Ÿฐ ๊ธฐ๋Šฅ์„ ์ข‹์•„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

feature-request file-explorer ux

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

์ด๊ฒƒ์€ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. Angular ํ”„๋กœ์ ํŠธ์— asp.net vNext๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ์ž๋™์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์ด๋ฆ„ ์ง€์ •).

--app.component.ts
----app.component.ts.sass
----app.component.ts.html
--login.component.ts
----login.component.ts.sass
----login.component.ts.html

VS Code Explorer์—์„œ ๋‹ค์Œ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

--app.component.ts
--app.component.ts.sass
--app.component.ts.html
--login.component.ts
--login.component.ts.sass
--login.component.ts.html

๊ฐ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ํด๋”๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๊ฐ๋„ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค(์ฐธ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•จ).

VS Code๋กœ ์ด๋™ํ•˜๋ ค๋ฉด ์ด ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

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

์ฐธ๊ณ ๋กœ @bpasero

์ด์— ๋Œ€ํ•œ ๊ฐ€์žฅ ์ด์ƒ์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋ถ€๋ชจ ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ํ…์ŠคํŠธ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ํ™•์žฅ์ž๋ฅผ ๋บ€ ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ค‘์ฒฉ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

File1.cs
--- File1.File2.cs
--- File1.File3.cs
------ File1.File3.File4.cs

ํ˜„์žฌ ๊ณ„ํš์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์žฌ๊ณ ํ•  ๋•Œ๊นŒ์ง€ ๋‹ซ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. Angular ํ”„๋กœ์ ํŠธ์— asp.net vNext๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ์ž๋™์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์ด๋ฆ„ ์ง€์ •).

--app.component.ts
----app.component.ts.sass
----app.component.ts.html
--login.component.ts
----login.component.ts.sass
----login.component.ts.html

VS Code Explorer์—์„œ ๋‹ค์Œ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

--app.component.ts
--app.component.ts.sass
--app.component.ts.html
--login.component.ts
--login.component.ts.sass
--login.component.ts.html

๊ฐ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ํด๋”๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๊ฐ๋„ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค(์ฐธ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•จ).

VS Code๋กœ ์ด๋™ํ•˜๋ ค๋ฉด ์ด ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ ts + js + map ํŒŒ์ผ(์˜ˆ: webstorm์ด ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ)

ts + js + map + style์— ๋Œ€ํ•œ ํŒŒ์ผ ์ค‘์ฒฉ์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์šฐ๋ฆฌ๋Š” .js ๋ฐ .map ํŒŒ์ผ์„ ์ˆจ๊ธฐ๊ณ  ์žˆ์–ด ํ™•์ธํ•˜๊ธฐ๊ฐ€ ๋ฒˆ๊ฑฐ๋กญ์Šต๋‹ˆ๋‹ค. ts + css๋งŒ ์žˆ์–ด๋„ ์‚ฌ์ด๋“œ๋ฐ”๋Š” ์—ฌ์ „ํžˆ ๋ถ€ํ’€๋ ค์ง„ ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ํŒŒ์ผ ์ค‘์ฒฉ์„ ์›ํ•ฉ๋‹ˆ๋‹ค(ํŠนํžˆ ng2์˜ ๊ฒฝ์šฐ).

HTML
--css
--ts
-- ๋“ฑ ...

์ด๊ฒƒ์„ ๋‹ค์‹œ ์ƒ๊ฐํ•ด ๋ณด์‹ญ์‹œ์˜ค! ์ด๊ฒƒ์€ ๋„ˆ๋ฌด๋‚˜ ์ค‘์š”ํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ƒ์„ฑ๋œ ํŒŒ์ผ์ด ์ž‘์—… ๊ณต๊ฐ„์„ ์–ด์ง€๋Ÿฝํžˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค. ํƒ€์ดํ”„์Šคํฌ๋ฆฝํŠธ! ๋‹น์‹ ๋„ ์‚ฌ์šฉํ•˜๋Š” Typescript! ๊ฐ€ ๋Œ€ํ‘œ์ ์ด๋‹ค. ๋˜๋Š” LESS/SASS -> CSS. ๋˜๋Š” ์˜ฅ -> HTML

์ƒ์„ฑ๋œ ํŒŒ์ผ์„ ์กฐ๊ฑด๋ถ€๋กœ ์ˆจ๊ธฐ๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

"files.exclude": {
    "**/*.js": {"when": "$(basename).ts"}
}

์ด ๋™์ผํ•œ ์›์น™์„ CSS ๋ฐ ๋งต ํŒŒ์ผ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์–ด๋–ค ์ด์œ ์—์„œ์ธ์ง€ ๋Œ€๋ถ€๋ถ„์˜ ๋‹ค๋ฅธ ํŽธ์ง‘์ž๋“ค์€ ์ด ๊ธฐ๋Šฅ์ด
์™œ ์ฝ”๋“œ์™€ ๋น„๊ตํ•˜์ง€ ์•Š๋Š”์ง€ ๊ตฌํ˜„ํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์— ์œ ์˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ €๋Š”
ํ•˜๋ฃจ ๋งŒ์— ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. (๋‹น๊ธธ๊นŒ ์ƒ๊ฐ์ค‘์ด์—ˆ๋Š”๋ฐ
์š”์ฒญํ•˜์ง€๋งŒ ์ฃผ๋ณ€ ์•„ํ‚คํ…์ฒ˜์— ์•ฝ๊ฐ„์˜ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ์ผ ํ†ต๊ณ„)

2016๋…„ 9์›” 25์ผ ์ผ์š”์ผ, Andrew Sheehan [email protected]
์ผ๋‹ค:

์ƒ์„ฑ๋œ ํŒŒ์ผ์„ ์กฐ๊ฑด๋ถ€๋กœ ์ˆจ๊ธฐ๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

"files.exclude": {
"*_/_.js": {"๋•Œ": "$(basename).ts"}
}

์ด ๋™์ผํ•œ ์›์น™์„ CSS ๋ฐ ๋งต ํŒŒ์ผ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/Microsoft/vscode/issues/6328#issuecomment -249392536,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ABzUP4LXESXZpGtY1iFZJmmy9J10k4-Uks5qta2DgaJpZM4IdUnr
.

+1

์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒŒ ์™œ ๋‹ซํ˜€์žˆ๋‚˜์š”? ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ํ›Œ๋ฅญํ•œ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@uxsoft

์–ด๋–ค ์ด์œ ์—์„œ์ธ์ง€ ๋Œ€๋ถ€๋ถ„์˜ ๋‹ค๋ฅธ ํŽธ์ง‘์ž๋“ค์€ ์ด ๊ธฐ๋Šฅ์ด
์™œ ์ฝ”๋“œ์™€ ๋น„๊ตํ•˜์ง€ ์•Š๋Š”์ง€ ๊ตฌํ˜„ํ•˜์‹ญ์‹œ์˜ค.

์‚ฌ๋žŒ๋“ค์ด ๋ฆฌ์–ผ ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ด์œ ๊ฐ€ ํ•„์š”ํ•ด์„œ์ผ ์ˆ˜๋„ ์žˆ์–ด์š” :-)

์ด๊ฒƒ์€ ๋‹ซํžˆ์ง€ ์•Š์•˜์–ด์•ผ ํ•˜๊ณ  ๋‹ค์‹œ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์‚ฌ์ด์— ์ค‘๋ณต์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ.

@stevencl @chrisdias @seanmcbreen @egamma fyi ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ๋ฅผ ๋…ผ๋ฆฌ์  ๋ณด๊ธฐ๋กœ ์ „ํ™˜ํ•˜๋ ค๋ฉด PM ์กฐ์ • ๋ฐ ์•ˆ๋‚ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. https://github.com/Microsoft/vscode/pull/13754 ์—์„œ @playerx ๊ฐ€ ์ดˆ๊ธฐ PR์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋‚ด 2์„ผํŠธ: ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์„ ์ƒ๊ฐํ•ด์•ผ ํ•˜๋ฉฐ ๋ฃจํŠธ ํŒŒ์ผ ์•„๋ž˜์˜ ๋™์ผํ•œ ์ˆ˜์ค€์—์„œ ์œ ์‚ฌํ•œ ํŒŒ์ผ์„ ํ‘œ์‹œํ•˜๋Š” ์ง€์›๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ VS์˜ ์†”๋ฃจ์…˜ ํƒ์ƒ‰๊ธฐ์™€ ๊ฐ™์€ ๊ฐ•๋ ฅํ•œ ๊ฒƒ์„ ์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@bpasero , ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค๋งŒ ์งˆ๋ฌธํ•˜์‹  ๋‚ด์šฉ์ด ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

N1. ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ๋ฅผ ๋…ผ๋ฆฌ์  ๋ณด๊ธฐ๋กœ ์ „ํ™˜
์˜ˆ: fileA("directoryX/fileA")๋ฅผ directoryY์— ์žˆ๋Š” fileB์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

N2. ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ๊ฐ€ ์‹ค์ œ ํŒŒ์ผ์„ ๋ณด๋‹ค ์šฐ์•„ํ•œ ๋ฐฉ์‹์œผ๋กœ ํ‘œ์‹œํ•˜๋„๋ก ์ง€์›ํ•˜๊ณ  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ด ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ:
8aa29120-922e-11e6-9931-c6b2200a7940

๊ธฐ๋Šฅ N1๊ณผ ๊ธฐ๋Šฅ N2๋Š” ๋™์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์„œ๋กœ๋ฅผ ๋ฎ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”

@playerx ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ค๋ช…์ด Visual Studio 2015์— ๋Œ€ํ•œ ์ฐธ์กฐ๋กœ ๋งŒ๋“ค์–ด์ง€๊ณ  ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ ์†”๋ฃจ์…˜ ํƒ์ƒ‰๊ธฐ๋งŒ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์†”๋ฃจ์…˜ ํƒ์ƒ‰๊ธฐ๋ฅผ ๋ถˆ๋Ÿฌ์™”์Šต๋‹ˆ๋‹ค.

VS์™€ ๋ณ„๊ฐœ๋กœ ์šฐ๋ฆฌ ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ๋Š” ์ƒ์„ฑ๋œ ๋ชจ๋“  MAP ๋ฐ JS ํŒŒ์ผ์„ TS ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์ˆ˜์ค€์ด ์•„๋‹Œ out ํด๋”์— ๋„ฃ๊ณ  ์žˆ์œผ๋ฉฐ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์š”์ ์€ ๋™์ผํ•œ ์ˆ˜์ค€์— ์žˆ์„ ๋•Œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•ด๋‹น ํŒŒ์ผ์„ TS ํŒŒ์ผ ์•„๋ž˜์— ์ค‘์ฒฉํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ ์ค‘์ฒฉ์€ ํ™•์žฅ์ž๊ฐ€ ๊ฐ™์€ ํŒŒ์ผ์„ ํ•จ๊ป˜ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ•จ๊ป˜ ์†ํ•˜๋Š” ํŒŒ์ผ(์ผ๋ช… "ํŒŒ์ƒ ๋ฆฌ์†Œ์Šค")์„ ํ•จ๊ป˜ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ง์ด ๋ผ?

@playerx N2๊ฐ€ ํ›จ์”ฌ ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค. Angular 2 cli ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ช…๋ช… ๊ทœ์น™์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์ˆจ๊ธฐ๊ธฐ ๊ตฌ์„ฑ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ํŒจํ„ด์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Angular2 cli๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

my.component.ts
my.component.html
my.component.scss/css/less

@mbeckenbach ์ข‹์€ ์˜ˆ, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

@bpasero ์ƒ์„ฑ๋œ ํŒŒ์ผ ์ค‘์ฒฉ, TS ํŒŒ์ผ ์•„๋ž˜์— ์žˆ๋Š” ๊ฒƒ์ด ์ข‹์€ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๋ฌป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ผ์ƒ ์ƒํ™œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์‹ค์ œ ์˜ˆ(์ด๋ก ์ ์ธ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ)๋ฅผ ์—ฌ๊ธฐ์— ๋„ฃ๊ณ  ๊ทธ ์˜ˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์†”๋ฃจ์…˜์„ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค.

์งˆ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ณด๋‹ค ์šฐ์•„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํŒŒ์ผ ๊ตฌ์กฐ์˜ ์‹ค์ œ ๊ทธ๋ฆผ ์„ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด Explorer๋ฅผ "์Šค๋งˆํŠธ"ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@bpasero ์˜ค์ผ€์ด ? ๋‚˜๋Š” ์—ฌ์ „ํžˆ ๊ธฐ๋Šฅ N1๊ณผ ๊ธฐ๋Šฅ N2๋ฅผ ํ˜ผํ•ฉํ•˜์ง€ ์•Š์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๋‚˜๋ฆฌ์˜ค 1:
์ „์—:

my.component.ts
my.component.html
my.component.scss
my.component.spec.ts

์ดํ›„(์˜ต์…˜ 1):

my.component.ts
- my.component.html
- my.component.scss
- my.component.spec.ts

์ดํ›„(์˜ต์…˜ 2):

my.component.ts
- my.component.html
- my.component.scss
my.component.spec.ts

์ดํ›„(์˜ต์…˜ 3):

my.component.html
- my.component.ts
- my.component.scss
my.component.spec.ts

์‹œ๋‚˜๋ฆฌ์˜ค 2:
์ „์—:

webpack.config.js
webpack.config.commin.js
webpack.config.dev.js
webpack.config.prod.js

ํ›„์—:

webpack.config.js
- webpack.config.commin.js
- webpack.config.dev.js
- webpack.config.prod.js

@playerx ์ถ”๊ฐ€: my.component.spec.ts ํŒŒ์ผ๋„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฐ๋ชจ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹จ์œ„ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์–‘ ํŒŒ์ผ์„ ์ˆจ๊ฒผ์Šต๋‹ˆ๋‹ค. :-)

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋‚˜๋ฆฌ์˜ค 1์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ค‘ ์‚ฌ์šฉํ•  ์˜ต์…˜์„ ์„ ํƒํ•˜์„ธ์š”.

์‹œ๋‚˜๋ฆฌ์˜ค 1 ์˜ต์…˜ 1์ด ์ œ ์ƒ๊ฐ์— ๊ฐ€์žฅ ์ ํ•ฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. Angular 2 ๊ตฌ์„ฑ ์š”์†Œ๋Š” html ํŒŒ์ผ(์ธ๋ผ์ธ ํ…œํ”Œ๋ฆฟ) ์—†์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Angular ํŒ€์ด ์–ธ์  ๊ฐ€ ๋” ๋งŽ์€ ๋ถ€๋ถ„์„ ์—ฌ๋Ÿฌ ํŒŒ์ผ๋กœ ์ถ”์ถœํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ฒฝ์šฐ my.component.animations.ts์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ํŒŒ์ผ ์ด๋ฆ„์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์‹œ๋‚˜๋ฆฌ์˜ค 1, ์˜ต์…˜ 1 ftw! angular2 ๋ช…๋ช… ๊ทœ์น™์œผ๋กœ ์ธํ•ด +1

@seves ํ™•์‹คํžˆ ์ด ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์‹ถ์ง€๋งŒ Angular 2์˜ ๋ช…๋ช… ๊ทœ์น™์€ ์ •๋ง ๋”์ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ์‹ฌ์ง€์–ด ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋” ์ด์ƒ ๊ด€๋ จ์ด ์—†๋Š” ์‚ฌ์ „ ES Module ๋นŒ๋“œ ๋„๊ตฌ์—์„œ ๊ฐœ๋ฐœ์ž ์ธ์ฒด ๊ณตํ•™์˜ ํ•„์š”์„ฑ์— ๋”ฐ๋ผ ๋ช…๋ช… ๊ทœ์น™์„ ์ง€์‹œํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ํŠน์ • ์ž„์˜ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›์„ ๋ณด๊ณ  ์‹ถ์ง€๋งŒ ๊ทธ๊ฒƒ์ด ์ž˜๋ชป๋œ ์ด์œ ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@aluanhaddad - ์—ฌ๊ธฐ์„œ ๋„ˆ๋ฌด

๋ชจ๋“  ํŒŒ์ผ์˜ ์ด๋ฆ„์€ ํ™•์žฅ์ž(+.spec ํŒŒ์ผ) ์™ธ๋ถ€์—์„œ ๋™์ผํ•˜๊ฒŒ ์ง€์ •๋˜๋ฉฐ, ์ด๋Š” ๋ถ„๋ช…ํžˆ angular2์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ œ๊ธฐ๋œ ์งˆ๋ฌธ์€ ์œ ์‚ฌํ•œ ์ด๋ฆ„์˜ ํŒŒ์ผ์ด ์žˆ๋Š” ํ™•์žฅ์˜ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋ฌด์—‡์ด๋ƒ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ทธ๋ฃน ์•„๋ž˜์˜ ๊ธฐ๋ณธ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

์ด ์‹œ๋‚˜๋ฆฌ์˜ค(ํด๋ผ์ด์–ธํŠธ ์ธก ์œ ํ˜•)์—์„œ ์šฐ์„ ์ˆœ์œ„๋Š” TS, JS, HTML, [์Šคํƒ€์ผ ์œ ํ˜•]์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ TS ๋˜๋Š” JS ํŒŒ์ผ์ด ์žˆ์ง€๋งŒ ํ…œํ”Œ๋ฆฟ์ด๋‚˜ ์Šคํƒ€์ผ์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ด๊ฑฐ ์ •๋ง ๊น”๋”ํ•˜๊ฒ ๋„ค์š”!!

@playerx 2016๋…„ 10์›” 15์ผ์— ๋Œ“๊ธ€ ์ž‘์„ฑ โ€ข ์ˆ˜์ •๋จ

์ œ์•ˆ:

N1. ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ๋ฅผ ๋…ผ๋ฆฌ์  ๋ณด๊ธฐ๋กœ ์ „ํ™˜
์˜ˆ: fileA("directoryX/fileA")๋ฅผ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” fileB์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ํ˜„์žฌ์˜ ๋ชจ๋“  OS์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. windows๋Š” ํ˜„์žฌ ๋ช‡ ๊ฐ€์ง€ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด "Junctions"๋ฅผ ์ง€์›ํ–ˆ์œผ๋ฉฐ ์ง€๊ธˆ์€ MKLINK ๋ช…๋ น๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ๊ฐ์•ˆํ•  ๋•Œ N1 ์˜ต์…˜์ด ์‹ค์ œ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ™•์žฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ค‘์ฒฉ์— ๋Œ€ํ•œ ciel์˜ ์˜๊ฒฌ(2016๋…„ 5์›” 13์ผ์— ์ฃผ์„ ์ฒ˜๋ฆฌ๋จ)์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ๊ทœ์น™ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

"*.component.ts": [  
   "$(basename).component.html",  
   "$(basename).component.spec.ts",  
   "$(basename).component.js",  
   "$(basename).component.js.map",  
   "$(basename).component.spec.js",  
   "$(basename).component.spec.js.map"
]

๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ ๋Œ€์‹  RegEx ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํŒจํ„ด์— ์ง€์ •๋œ ์ˆœ์„œ๋Œ€๋กœ ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ํŒŒ์ผ์ด ์ค‘์ฒฉ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Angular 2 ๊ทœ์น™(ts/js/html์— ๊ตญํ•œ๋˜์ง€ ์•Š์Œ)์— ๊ตญํ•œ๋˜์ง€ ์•Š๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ๊ณผ ์ผ๊ด€์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๊ด‘๋ฒ”์œ„ํ•œ ๊ตฌ์„ฑ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Visual Studio์—์„œ์™€ ๊ฐ™์€ ์†”๋ฃจ์…˜ ๋ณด๊ธฐ๋ฅผ ๋„์ž…ํ•˜๋ฉด VSCode์— ๋ถˆํ•„์š”ํ•œ ๋ณต์žก์„ฑ์ด ์ถ”๊ฐ€๋˜๊ณ  ๊ฐ€๋ฒผ์šด ํŽธ์ง‘ ํ™˜๊ฒฝ์„ ์žƒ๊ฒŒ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@aluanhaddad - ์—ฌ๊ธฐ์„œ ๋„ˆ๋ฌด

์ •๋ง, ๋…ผ๋ฆฌ์ ์ธ ๊ด€์ ์—์„œ ๋‚˜๋Š” ๋ณ„๋กœ ๋ณ€ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

my.component.html
- my.component.ts
- my.component.scss
my.component.spec.ts

๋  ๊ฒƒ์ด๋‹ค

my.html
- my.ts
- my.scss
my.spec.ts

๐Ÿ˜†
์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์€ ๊ตฌ์„ฑ ์š”์†Œ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค ...

๋‚˜๋Š” John Papa์˜ Angular 2 ๋ช…๋ช… ๊ทœ์น™์— ๋ฐ˜๋Œ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฐ€ ๊ตฌ์„ฑ ์š”์†Œ, ํŒŒ์ดํ”„, ์„œ๋น„์Šค, ๋ชจ๋“ˆ ๋ฐ ๋‚˜๋จธ์ง€ ๋ถˆํ•„์š”ํ•œ ๋ง๋„ ์•ˆ๋˜๋Š” ์ด๋ฆ„์„ ์ง“๋Š” ๊ฒƒ์— ๋ฐ˜๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” Grunt ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋™์œผ๋กœ IIFE ๋ž˜ํ•‘๋œ ๋ชจ๋“ˆ, ์ปจํŠธ๋กค๋Ÿฌ, ์„œ๋น„์Šค ๋ฐ ์ง€์‹œ๋ฌธ์„ ๋ฌถ์„ ๋•Œ Angular 1์— ๋Œ€ํ•œ ์ด๋Ÿฌํ•œ ๊ทœ์น™์„ ์ƒ๊ฐํ•ด ๋ƒˆ์Šต๋‹ˆ๋‹ค(์ด ๋ชจ๋“  ๊ฒƒ์ด ๋‹น์‹œ์—๋Š” ๊ดœ์ฐฎ์€ ์•„์ด๋””์–ด์˜€์Šต๋‹ˆ๋‹ค). ์ปจํŠธ๋กค๋Ÿฌ, ์„œ๋น„์Šค ๋“ฑ์„ ๋“ฑ๋กํ•œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋กœ๋“œ ์‹œ ํญ๋ฐœํ•˜์ง€ ์•Š๋„๋ก ๋ฒˆ๋“ค๋ง ๋ฐ ๊ธฐํƒ€ Grunt ์ž‘์—…์ด ๋ชจ๋“  .module ํŒŒ์ผ์„ ๋จผ์ € ๋กœ๋“œํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ๊ทธ์˜ Angular 1 ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๋ฉด์—์„œ ๊ฑฐ์˜ ์™„๋ฒฝํ–ˆ๊ณ  ์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋‹น์‹œ ๊ด€๋ จ์„ฑ์ด ์žˆ์—ˆ์ง€๋งŒ ๊ทธ์˜ Angular 2 ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ(๊ณต์‹ ๊ฐ€์ด๋“œ)๋Š” ๋”์ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ˆ„๊ฐ€ ๋ณธ์งˆ์ ์œผ๋กœ ์ถ”ํ•œ ๊ฒƒ์— ๋Œ€ํ•œ ์šฐ์•„ํ•œ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

File Nesting์€ ํ˜„๋Œ€ ๊ฐœ๋ฐœ, ํŠนํžˆ ์›น ๊ฐœ๋ฐœ์—์„œ ํ•„์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค...

์ œ๋ฐœ, ์ œ๋ฐœ... ์ง€์›์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๊ฐ€ ์ •๋ง๋กœ ์›ํ•˜๋Š” ๊ฒƒ์€ ๋ฌผ๋ฆฌ์  ํƒ์ƒ‰๊ธฐ ์˜†์— ๋งž์ถค ๊ตฌ์„ฑ๋œ ๋…ผ๋ฆฌ์  ๋ณด๊ธฐ ์‹œ์Šคํ…œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ตฌ์กฐ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค(์˜๋„์ ์œผ๋กœ ๋ณต์žกํ•จ).

- app
    - logic
        - helpers
            - {helper}.ts
            - {helper}.spec.ts
        - component-logic
            - {component-name}.ts
            - {component-name}.spec.ts
        - viewmodels
            - {viewmodel-name}.ts
            - {viewmodel-name}.spec.ts
    - views
        - {viewmodel-name}.html 
        - {shared-view-name}.html
    - styles
        - {some-common-style-file}.scss
        - {viewmodel-name}.scss
        - {shared-view-name}.html

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

{
    "name": "Components",
      "root": "Defines groups to be displayed on the top of the tree",
    "root": ["viewmodelsDirectory", "helpersDirectory"],
    "groups": [{
        "name": "viewmodelsDirectory",
        "displayAs": "viewmodels",
        "groups": ["viewmodel"]
    }, {
        "name": "helpersDirectory",
        "displayAs": "viewmodels",
        "groups": ["helper"]
    }, {
        "name": "viewmodel",
          "headGroup": "Which file is on the top of the group. If omitted then this group displays as directory",
        "headGroup": "viewmodel",
        "pattern": "app\/viewmodel\/(*+)\.html",

          "files": "For each path that match pattern we build a file group",
        "files": [{
            "name": "viewmodel",
              "displayAs": "Pattern explaining how to display this entry. Might accept placeholders like {fileName}, {filesGroupName}, {fileNameWithExtension}, {Extension}",
            "displayAs": "{fileName}",
            "pattern": "app\/viewmodels\/\1\.ts",
            "optional": false
        }, {
            "name": "logic",
            "displayAs": "{fileGroupName}",
            "pattern": "app\/logic\/component-logic\/\1-logic\.ts",
            "optional": false
        }, {
            "name": "view",
            "displayAs": "{fileGroupName}",
            "pattern": "app\/views\/\1\.html",
            "optional": false
        }, {
            "name": "style",
            "displayAs": "{fileGroupName}",
            "pattern": "app\/styles\/\1\.csss",
            "optional": true
        }]
    }, {
        "name": "helper",
        "headGroup": "helper",
        "pattern": "app\/logic\/helpers\/(*+)\.ts",
        "files": [{
            "name": "helper",
            "displayAs": "{fileName}",
            "pattern": "app\/viewmodels\/\1\.ts",
            "optional": false
        }]
    }]
}

์ด ๋ณด๊ธฐ ๋‚ด์—์„œ ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

- viewmodels
    - {viewmodel-name}
        - view
        - style
        - logic
- helpers
    - {helper}

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

์ด๊ฒƒ์€ ์ดˆ์•ˆ์ด์ง€๋งŒ ์•„์ด๋””์–ด๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ œ์‹œ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ๋˜ํ•œ Aurelia์—๋„ ์ ์  ๋” ๋งŽ์ด ์ ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Angular 2+์™€ ๋งค์šฐ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. (๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ) ํŒŒ์ผ ์ค‘์ฒฉ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ํ‰๊ท  ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜์—์„œ ์ ‘ํžŒ ์ž์‹์ด ์žˆ๋Š” ์ „์ฒด ํ™•์žฅ src ํด๋” ๊ธธ์ด๊ฐ€ ์•ฝ 2/3๋กœ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

@RichiCoder1 ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ณ ๋ง™๊ฒŒ๋„ Aurelia๋Š” ๋…ผ๋ฆฌ์ ์ด๊ณ  ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๋ช…๋ช… ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. :)
aurelia vscode ํ™•์žฅ๊ณผ Open-Related-File ๋ช…๋ น์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๊นŒ? ์ค‘์ฒฉ๊ณผ ๊ด€๋ จ์ด ์—†์ง€๋งŒ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋‹จ์ผ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ ์ž‘์—…์œผ๋กœ ๊ทธ๋ฃน ์ด๋ฆ„์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ฑฐ๋Œ€ํ•œ ๊ฐ๋„ ์•ฑ ์ž‘์—…์„ ์‹œ์ž‘ํ•  ๋•Œ ๋งค์šฐ ์ค‘์š”ํ•ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. vscode๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. ์ด๋ฏธ ์žˆ๋Š” ๊ฒฝ์šฐ์™€ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํŒŒ์ผ ์ค‘์ฒฉ์— ๋Œ€ํ•œ ์œ ์‚ฌํ•œ ๊ฒฝํ—˜์„ ๊ฐ€์ ธ์˜ค์‹ญ์‹œ์˜ค.

์ด๋ด, ์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” Angular ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ํ›จ์”ฌ ๋œ ๋ณต์žกํ•˜๊ณ  ๋‘”ํ•˜๊ฒŒ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ด๊ฒƒ์„ ์ง„์ง€ํ•˜๊ฒŒ ๊ณ ๋ คํ•˜๊ธฐ๋ฅผ ์ง„์‹ฌ์œผ๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํ˜ธ์—์„œ ๋งํ–ˆ๋“ฏ์ด ..

๋‚ด๊ฐ€ ์ด๊ฒƒ์„ ์›ํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” ๋น„์Šทํ•œ ์ด๋ฆ„์˜ ํŒŒ์ผ์ด ๋งŽ์ด ์žˆ๋Š” ๊ฐ๋„ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

/app
.../home.ts
.../home.component.ts
.../home.template.html
.../home.styles.scss
.../home.component.spec.ts
.../nav.ts
.../nav.component.ts
.../nav.component.spec.ts
.../nav.template.html
.../nav.styles.scss

๊ทธ๊ฒƒ๋“ค์„ ์ค‘์ฒฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ๋ช…๋ น/์ค‘๊ฐœ์ž ํŒจํ„ด์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์ผ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค.

/src/
.../Identity/
....../CreateUserRequest.cs
....../CreateUserRequest.Handler.cs
....../ConfirmUserExistsRequest.cs
....../ConfirmUserExistsRequest.Handler.cs
....../ConfirmUserValidationRequest.cs
....../ConfirmUserValidationRequest.Handler.cs

๊ทธ๊ฒƒ์€ ๊ฝค ์žฅํ™ฉํ•ด์ง€๋ฉฐ ์ด ๊ธฐ๋Šฅ์€ ๋‚ด ํ•˜๋ฃจ๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์—ฌ์ „ํžˆ WebStorm์„ ์‚ฌ์šฉํ•˜๋Š” ์œ ์ผํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค...

์˜ˆ, ์šฐ๋ฆฌ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

2017๋…„ 6์›” 2์ผ ์˜ค์ „ 10์‹œ 10๋ถ„์— MigFerreira [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์—ฌ์ „ํžˆ WebStorm์„ ์‚ฌ์šฉํ•˜๋Š” ์œ ์ผํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค...

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์„ธ์š”.

๋ฉ์ฒญํ•œ ์งˆ๋ฌธ: ๋ˆ„๊ตฐ๊ฐ€ ์Šคํฌ๋ฆฐ์ƒท์ด ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ ๋’ค์— ์ˆจ๊ฒจ์ง„ ์˜๋ฏธ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ƒ์ƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

file-grouping

์•„, ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

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

์ €๋Š” TypeScript์™€ Angular๋ฅผ ๋Œ€๊ทœ๋ชจ Dojo ํ”„๋กœ์ ํŠธ์— ๋„์ž…ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด ๊ธฐ๋Šฅ์ด ์•ž์œผ๋กœ ๋ช‡ ๋‹ฌ ์•ˆ์— ์šฐ๋ฆฌ ํŒ€์˜ VSCode ์‚ฌ์šฉ์ž์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•ด์งˆ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” ํ˜„์žฌ Angular ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—… ์ค‘์ด๋ฉฐ ๊ด€๋ จ ํŒŒ์ผ์„ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์ด๋ฏธ ์šฐ์ˆ˜ํ•œ ์ œํ’ˆ์— ํ›Œ๋ฅญํ•œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Angular ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ฑ์žฅํ•จ์— ๋”ฐ๋ผ ํƒ์ƒ‰์ด ๋” ์–ด๋ ค์›Œ์ง€๊ณ  ํ˜„์žฌ ์ƒ์‚ฐ์„ฑ์ด ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค.

#13754์—์„œ ๋ฐ˜๋ณต:

IMO, ๊ฐ€์žฅ ์šฐ์•„ํ•œ ์†”๋ฃจ์…˜์€ ํ”„๋กœ์ ํŠธ์— ๋งก๊ธฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. .vscode/settings.json ๋˜๋Š” project.json . ํŒŒ์ผ ์ œ์™ธ ๊ตฌ๋ฌธ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ณ„ ๋˜๋Š” ํด๋”๋ณ„ ์‚ฌ์šฉ์ž ์ •์˜๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ/๋„๊ตฌ ์œ ์ง€ ๊ด€๋ฆฌ์ž, VSCode ๋˜๋Š” ํƒ€์‚ฌ๋Š” ์ง€์ •๋œ ์›Œํฌํ”Œ๋กœ์— ๋Œ€ํ•œ ํŒจํ„ด ์ง‘ํ•ฉ์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ VSCode๋Š” ์•„๋ฌด ๊ฒƒ๋„ ๊ฐ€์ •ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์•„๋ฌด์—๊ฒŒ๋„ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ค‘์ฒฉํ•  ์ˆ˜ ์žˆ๋Š” ํ›„๋ณด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  "์ค‘์ฒฉํ•ด์•ผ ํ•  ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ ์ค‘์ฒฉ ํ”„๋กœํ•„ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ ์šฉํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?"๋ผ๋Š” ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๊ฐ€ ๋…ผ๋ฆฌ์  ์ค‘์ฒฉ์„ ์›ํ•œ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ์›ํ•˜์ง€ ์•Š์œผ๋ฉด ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์„ ๋ฟ์ž…๋‹ˆ๋‹ค.

์บก์ฒ˜๋ฅผ ๋“ค์–ด my-component.A.B ์—์„œ my-component.ts (AngularJS์™€ 2)

"files.nest": {
    "**/*.*.*": {"when": "$(basename).ts"}
}

์บก์ฒ˜๋ฅผ ๋“ค์–ด my-component.dev.ts ์—์„œ my-component.ts :

"files.nest": {
    "**/*.*.ts": {"when": "$(basename).ts"}
}

๋˜๋Š” ์ƒ์„ฑ๋œ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ( ํŒŒ์ผ์ด dist/ ๋กœ ์ƒ์„ฑ๋˜๋Š” Aurelia ํƒ์ƒ‰ ๊ณจ๊ฒฉ ์‚ฌ์šฉ):

// TypeScript => ES5
"files.nest": {
    "dist/src/**/*.js": {"when": "src/$(dir)/$(basename).ts"}
}

// ESNext => ES5
"files.nest": {
    "dist/src/**/*.js": {"when": "src/$(dir)/$(basename).js"}
}

// Less => CSS
"files.nest": {
    "dist/src/**/*.css": {"when": "src/$(dir)/$(basename).less"}
}

// Mappings
"files.nest": {
    "dist/src/**/*.map": {"when": "src/$(dir)/$(basename)"}
}

์ด์™€ ๊ฐ™์ด ์ž˜ ์ •์˜๋œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ณผ๋„ํ•˜๊ฒŒ ๋ณต์žกํ•˜์ง€ ์•Š์€ ํ•œ ์›ํ•˜๋Š” ์ค‘์ฒฉ ์ฒด๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ์˜ˆ์ œ๋Š” gulp์˜ ๊ฒฝ๋กœ ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค( $(path) = ์ฒซ ๋ฒˆ์งธ glob์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ๋กœ).

์ด๊ฒƒ์ด ๊ณ ๋ ค๋˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ์ •๋ณด๋‚˜ ํ”ผ๋“œ๋ฐฑ์„ ์›ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ํฌํ•จ๋œ ๊ธฐ๋Šฅ์ด ๋  ๋•Œ๊นŒ์ง€ Angular ๋˜๋Š” Aurelia ๊ฐœ๋ฐœ์— VS Code๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@threedaysmore VSCode ํŒ€์ด ์‹ค์ œ๋กœ ์ด๋ฅผ ๊ณ ๋ คํ•˜๊ณ  ์žˆ๋‹ค๋Š” ํ‘œ์‹œ๋Š” ์—†์Šต๋‹ˆ๋‹ค(๋ฐฑ๋กœ๊ทธ ๋๊นŒ์ง€ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค). PR #13754์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ @playerx ๊ฐ€ ์ ์–ด๋„ ์ผ์‹œ์ ์œผ๋กœ ์‚ญ์ œํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

๋” ์ตœ์‹  PR: #32061์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ•ญ๋ชฉ(์ฆ‰, ํŠธ๋ฆฌ ๋ชจ๋ธ)์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์–ด ๋„์›€์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

+1

+1

+1

์ด ๊ธฐ๋Šฅ์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์ค„์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. +1, ์Šค๋ ˆ๋“œ๋ฅผ ์ŠคํŒธ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋‹ค์ง€ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(์‚ฌ๋žŒ๋“ค์ด ์—„์ง€์†๊ฐ€๋ฝ์„ ์•„๋ž˜๋กœ ๋–จ์–ด๋œจ๋ฆผ). ๋‹จ์ˆœํžˆ ๋‚ด ๊ด€์‹ฌ์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด github ๋ฌธ์ œ์— +1 ๋˜๋Š” "์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค"๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ถŒ์žฅ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ด ๊ธฐ๋Šฅ์˜ ์ค‘์š”์„ฑ์„ ํ‘œ์‹œ/์ฆ๊ฐ€ํ•˜๋ ค๋ฉด ์ฒซ ๋ฒˆ์งธ ์ž‘์„ฑ์ž์˜ ์˜๊ฒฌ์— ์—„์ง€์†๊ฐ€๋ฝ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

@bpasero๊ฐ€ ๋‚ด pull request #32061์„ ๋‹ซ์•˜์Šต๋‹ˆ๋‹ค. "PR์— ๊ฐ์‚ฌํ•˜์ง€๋งŒ ์ด ๋„“์€ ์ง€์—ญ์— ๋Œ€ํ•ด์„œ๋Š” ์ˆ˜๋ฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค." (๋ฌผ๋ก  ๋‚ด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋Š” ์•„์ฃผ ์ดˆ๋ณด์ ์ธ ๊ฒƒ์ด์—ˆ๋‹ค.)

์œ ์ง€ ๊ด€๋ฆฌ์ž๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด์— ๋Œ€ํ•ด ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜๋Š” ์ด๊ฒƒ์ด pull ์š”์ฒญ ๋˜๋Š” ํ™•์žฅ์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์„ ์ œ๊ณตํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@firelizzard18 ์ €๋Š” ์ด ๊ธฐ๋Šฅ์„ ์ •๋ง ์›ํ–ˆ๊ณ , ๊ทธ ์ž‘์—…์— ์‹œ๊ฐ„์„ ํˆฌ์žํ–ˆ๊ณ  ๋™์ผํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ์ด ๊ธฐ๋Šฅ์„ ์›ํ•˜์ง€ ์•Š๋Š” ๋ฐ์—๋Š” ์ด์œ ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๊ทธ๋“ค์€ ์šฐ๋ฆฌ์—๊ฒŒ ๋งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. :)

@bpasero
๋‚˜๋Š” ์ด ๊ธฐ๋Šฅ์ด ๋‹น์‹ (๊ธฐ๊ณ ์ž๋กœ๋ถ€ํ„ฐ), ์–ด๋–ป๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๋‹น์‹ ์ด ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ๊ทธ๊ฒƒ์„ ์‹คํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๊ฐ„์„ ํ• ์• ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค๋กœ๋ถ€ํ„ฐ ๋” ๋งŽ์€ ์ง€์นจ์„ ๋ฐ›์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

VS Code์—๋„ ํŒŒ์ผ ์ค‘์ฒฉ์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ตœ๊ทผ์— ๋” ๋‚˜์€ Angular ์ง€์›/ํ†ตํ•ฉ์œผ๋กœ ์ธํ•ด ๋‚ด ASP.NET Core ์•ฑ์— ๋Œ€ํ•œ Angular/ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด VS 2017์—์„œ VS Code๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ํ›จ์”ฌ ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ํŒŒ์ผ ์ค‘์ฒฉ์ด ์ •๋ง ์–ด๋ ต์Šต๋‹ˆ๋‹ค. :-(

VS Code์— ํŒŒ์ผ ์ค‘์ฒฉ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ์ฃผ์„ธ์š”!

https://blogs.msdn.microsoft.com/webdev/2018/02/07/file-nesting-in-solution-explorer/
๋˜๋Š”
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.FileNesting

@bpasero ํŒ€์—์„œ ์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋ช‡ ๋…„ ๋™์•ˆ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์˜ ๋งŽ์€ ํ™œ๋™์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„ ๋‹ซ์•˜๋‹ค๊ฐ€ ๋‹ค์‹œ ์—ด์—ˆ๊ณ  ์ตœ์†Œํ•œ์˜ ์ง€์‹œ๋กœ ์—ฌ๋Ÿฌ ๊ตฌํ˜„์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—ฌ์ „ํžˆ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๊นŒ?

React ๋ฐ TypeScript ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋Œ€ํ•œ ๊ฐ•๋ ฅํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ฐœ๋ฐœ์ž ๊ฐ์ •์€ ์ผ๊ด€๋˜๊ฒŒ ๊ธ์ •์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค(๊ฐœ์ธ์ ์œผ๋กœ๋„ ๊ธ์ •ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค). ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

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

๋‚˜๋Š” ๊ทธ๋“ค์ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜์ง€๋งŒ ๋กœ๋“œ๋งต์„ ๋ณด๋ฉด ๊ทธ๋“ค์˜ ๊ณ„ํš์ด ์ด ๊ณ„ํš๋ณด๋‹ค ํ›จ์”ฌ ์•ผ์‹ฌ์ฐจ๊ณ  ์œ ์šฉํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋“ค์ด ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์œ„ํ•ด ์ด๊ฒƒ์„ ๋‚จ๊ฒจ๋‘๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค. .

Micro$oft์˜ ๋ฉ‹์ง„ ๊ฒฝ๋ ฅ ๊ธฐํšŒ๋Š” ์šฉ๊ฐํ•œ ์‚ฌ๋žŒ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

"Micro$oft" LUL - ๊ฒฝํ—˜์ด ์ œํ•œ๋œ ์‹ญ๋Œ€ ์ดˆ๋ฐ˜์ด ์ด ์Šค๋ ˆ๋“œ๋ฅผ ํŒ”๋กœ์šฐํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋†€๋ž์Šต๋‹ˆ๋‹ค.

_Anyway_, @develleoper - ์ตœ๊ทผ Microsoft๋Š” ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์ œ์ž‘์ž๊ฐ€ ์ธก๋ฉด์— ์ž์ฒด ํŒจ๋„์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ณง ์ถœ์‹œ๋  ๋•Œ ์ผ๋ถ€ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์ œ์ž‘์ž๋Š” ์•„๋งˆ๋„ ๋ฌผ๋ฆฌ์  ํŒŒ์ผ ๋Œ€์‹  ๋…ผ๋ฆฌ์  ํŒŒ์ผ ํŠธ๋ฆฌ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. .

@waynebloss IMO, ์ด ๊ธฐ๋Šฅ์„ ์ƒˆ ํŒจ๋„์ด ํ•„์š”ํ•œ ์ž ์žฌ์  ํ™•์žฅ์œผ๋กœ ๋‚จ๊ฒจ๋‘์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ˜„์žฌ ๊ธฐ๋Šฅ์ด ๋ชจ๋‘ ํฌํ•จ๋œ ํŒŒ์ผ ํŠธ๋ฆฌ๋ฅผ ๋‹ค์‹œ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ถ”๊ฐ€๋˜๋Š” ํ–ฅํ›„ ๊ธฐ๋Šฅ์œผ๋กœ ํŒŒ์ผ ํŠธ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ, ํ˜„์žฌ ํŒŒ์ผ ํŠธ๋ฆฌ ์ฝ”๋“œ๋ฅผ ํ™•์žฅ์ž๋กœ ๋ถ„๊ธฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ ํ–ฅํ›„ ๊ธฐ๋Šฅ ์—…๋ฐ์ดํŠธ๋ฅผ ์ถ”์ ํ•˜๋Š” ์œ ์ง€ ๊ด€๋ฆฌ ๋ถ€๋‹ด์ด ์ค„์–ด๋“ค์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

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

@RoyTinker๊ฐ€ ๋™์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์ค‘์ฒฉ์ด ๊ณต์‹์ ์œผ๋กœ ์ง€์›๋  ๋•Œ๊นŒ์ง€๋Š” ์ƒˆ ํŒจ๋„์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ผ ๋ฟ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

@Wayofsin ๋‚˜๋Š” ๋‹น์‹ ์ด ๋ฌด์—‡์„ ์–ป์œผ๋ ค๊ณ ํ•˜๋Š”์ง€ ์ „ํ˜€ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ด ๊ธฐ๋Šฅ์„ ์›ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์‹ฌ๊ฐํ•˜๊ฒŒ ์˜์‹ฌํ•˜๋Š” ์‚ฌ๋žŒ์€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ญ์‚ฌ๋ฅผ ์‹ค์ œ๋กœ ์ฝ์–ด๋ณด๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ "์•„๋‹ˆ์˜ค"๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. @playerx ๋Š” ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ–ˆ๊ณ  "์•„๋‹ˆ์˜ค"๋ผ๊ณ  ๋Œ€๋‹ตํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ์˜ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํฌํฌํ•˜๊ณ  ๊ทธ ์‹œ์ ์—์„œ ์ตœ์‹  ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•˜๊ณ  ์•ฝ๊ฐ„์˜ ์ˆ˜์ •์„ ๊ฐ€ํ•˜๊ณ  ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  "์•„๋‹ˆ์˜ค"๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ด๊ฒƒ์„ ์›ํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ์—ฌ๋ฅผ ์ˆ˜๋ฝํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ด ๋ถ„๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@develleoper ๋ฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์€ ์ƒ๊ฐ @bpasero '์— ๋Œ€ํ•œ ๋‹˜์˜ ๋Œ“๊ธ€ @playerx์˜ PR ์šฐ๋ฆฌ์—๊ฒŒ VSCode ํŒ€์ด ํ•จ๊ป˜ ๊ฐ€๊ณ  ์‹ถ์€ ์žฅ์†Œ์— ๋Œ€ํ•œ ๋งŽ์€ ์ด์•ผ๊ธฐ : https://github.com/Microsoft/vscode/pull/13754๋ฅผ

๊ทธ์˜ ์˜๊ฒฌ์—์„œ ๋‚˜๋Š” @bpasero๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

  • ์ผ์ข…์˜ ๋…ผ๋ฆฌ์ ์ธ ๊ด€์ ์„ ์›ํ•˜๋Š” ๋ชจ๋“  ๊ทธ๋ฃน์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๊ด„์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์›ํ•จ
  • ํŒŒ์ผ ์ค‘์ฒฉ์„ ๋…ผ๋ฆฌ์  ๋ณด๊ธฐ(๋ฌผ๋ฆฌ์  ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ณด๊ธฐ์™€ ๋ฐ˜๋Œ€)๋กœ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
  • ๋…ผ๋ฆฌ์  ๋ณด๊ธฐ๋Š” ๋ฌผ๋ฆฌ์ ์ธ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ณด๊ธฐ์™€ ๋ถ„๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ œ ์ƒ๊ฐ์—๋Š” ํŒŒ์ผ ์ค‘์ฒฉ์ด ๋…ผ๋ฆฌ์  ๋ณด๊ธฐ ๋ณ€๊ฒฝ _์ด๊ธฐ๋Š” ํ•˜์ง€๋งŒ ํŒŒ์ผ ์ˆจ๊ธฐ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋ฉฐ ํ˜„์žฌ ํŒŒ์ผ ํŠธ๋ฆฌ์—์„œ ์ง€์›๋˜๋ฉฐ ์„ค์ •์„ ํ†ตํ•ด ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์— ํŒŒ์ผ ์ค‘์ฒฉ์€ ํŒŒ์ผ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ํŒŒ์ผ ์ˆจ๊ธฐ๊ธฐ์˜ ๋˜ ๋‹ค๋ฅธ ํ˜•ํƒœ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

์ œ์ณ๋‘๊ณ , Atom์€ ์ด์ œ ํŠธ๋ฆฌ ๋ณด๊ธฐ ํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ์ค‘์ฒฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. https://github.com/atom/tree-view/issues/572 ์ฐธ์กฐ

@firelizzard18 ๊ท€ํ•˜์˜ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์„ ๋Œ“๊ธ€๋กœ ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. #32061.

@RoyTinker ๋Š” ๊ทธ๋“ค์ด ๊ธฐ๋Œ€ํ•˜๋Š” @bpasero์˜ ์ฒซ ๋ฒˆ์งธ ๊ธฐ๋Œ€์กฐ์ฐจ ์ถฉ์กฑ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

VS์™€ ๋ณ„๊ฐœ๋กœ ์šฐ๋ฆฌ ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ๋Š” ์ƒ์„ฑ๋œ ๋ชจ๋“  MAP ๋ฐ JS ํŒŒ์ผ์„ TS ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์ˆ˜์ค€์ด ์•„๋‹Œ out ํด๋”์— ๋„ฃ๊ณ  ์žˆ์œผ๋ฉฐ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์š”์ ์€ ๋™์ผํ•œ ์ˆ˜์ค€์— ์žˆ์„ ๋•Œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•ด๋‹น ํŒŒ์ผ์„ TS ํŒŒ์ผ ์•„๋ž˜์— ์ค‘์ฒฉํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถ”๊ฐ€๋กœ ๋ง๋ถ™์ด์ž๋ฉด ๊ฐ€์ƒ ํƒ์ƒ‰๊ธฐ๋ฅผ ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ๋กœ ์ƒ๊ฐํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋ˆ„๊ตฐ๊ฐ€ ๋‚ด๋ณด๋‚ธ ๊ฐœ์ฒด๋ฅผ typescript ํŒŒ์ผ ์•„๋ž˜์— ์ค‘์ฒฉํ•˜๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๋“ค์ด PR์„ ์ˆ˜๋ฝํ•˜์ง€ ์•Š์€ ์ด์œ ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ธฐ์กด ์ฝ”๋“œ์— ๋Œ€ํ•œ ํŒจ์น˜์— ๊ด€์‹ฌ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์œ ์—ฐํ•œ ์†”๋ฃจ์…˜์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์Šค์Šค๋กœ์— ๋Œ€ํ•ด ์•„๋ฌด ์ƒ๊ฐ์ด ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๊ทธ๋“ค์ด ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€๋Š” ๊ฑฐ์˜ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ณด๋Š” ๋ฌธ์ œ๋Š” ๊ทธ๋“ค์ด PR์„ ์ˆ˜๋ฝํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ์ถ”์ธกํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ  ๋ช…ํ™•ํ•œ ๋‹ต๋ณ€๊ณผ ์ง€์นจ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์ด ์ž‘์„ฑํ•œ ๋ชจ๋“  ์˜๊ฒฌ์€ @bpasero ๊ฐ€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š” ๊ท€ํ•˜์˜ ํ•ด์„์ž…๋‹ˆ๋‹ค.

๋„ˆ๋ฌด ๋งŽ์€ ๋Œ€ํ™”์™€ ๊ธฐ์—ฌ์ž๋“ค์˜ ์นจ๋ฌต์ด ์ œํ’ˆ ์ž์ฒด์— ์ข‹์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@Wayofthesin , @playerx ๋Š” ๋จธ๋ฆฌ๋ฅผ ๋ชป ๋ฐ•์•˜์Šต๋‹ˆ๋‹ค: ์šฐ๋ฆฌ๋Š” @bpasero ๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ๊ฒƒ์„ @bpasero ๋Š” ์–ด๋””๋กœ ์ด๋™ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” @bpasero ๊ฐ€ ๋งค์šฐ ๋ชจํ˜ธํ•œ ์ฝ”๋ฉ˜ํŠธ๋กœ ์ œ PR์„ ๋งˆ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. @playerx ์˜ ๊ฒฝ์šฐ @bpasero ๋Š” "ํ˜„์žฌ ๊ฒŒ์ž„ ์ข…๋ฃŒ ๋‹จ๊ณ„์— ์žˆ์œผ๋ฉฐ ๋‹ค์Œ ๋‹ฌ์—๋งŒ ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."๋ผ๊ณ  ๋Œ“๊ธ€์„

๋‚ด PR์€ ์ง„ํ–‰์ค‘์ธ ์ž‘์—…์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ์ž์˜ ์ง€์นจ์„ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋‚˜๋Š” ๋น„๋ฐ€์Šค๋Ÿฌ์šด ์‘๋‹ต์„ ๋ฐ›์•˜๊ณ  ๋‚ด PR์ด ๋‹ซํ˜”์Šต๋‹ˆ๋‹ค.

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

image
image

๋†๋‹ด์ด์•ผ. ๋ถ„์œ„๊ธฐ๋ฅผ ์กฐ๊ธˆ ๋†’์ด๊ณ  ์‹ถ์—ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด ์กฐ์‚ฌํ•ด ์ฃผ์‹ญ์‹œ์˜ค. ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ํ”„๋กœ์ ํŠธ ๋ณด๊ธฐ๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์€ ์ •๋ง ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์–ด๋ ต์ง€๋Š” ์•Š์ง€๋งŒ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

+1, ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์œ„์ฑ— ๋ฏธ๋‹ˆ ์•ฑ ๊ฐœ๋ฐœ์—๋„ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•˜๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์–ด๋ ต๋‚˜์š”? ์•ฝ 200๋งŒ Java ์ปค๋ฎค๋‹ˆํ‹ฐ ํšŒ์›์—๊ฒŒ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ด ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ œ๋ฐœ....!!!

VS Code๋Š” ํŠธ๋ฆฌ ๋ณด๊ธฐ์—์„œ ๊ฐ€์ƒ ํŒŒ์ผ ์ค‘์ฒฉ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ 1.29์˜ ๋ณ€๊ฒฝ ๋กœ๊ทธ์—๋Š” ๋‹ค์Œ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
image
์ด๊ฒƒ์€ ํŒŒ์ผ ๊ทธ๋ฃนํ™”์˜ ๊ธฐ๋ฐ˜์ด ๋งŒ๋“ค์–ด์กŒ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@MortenChristiansen ์Œ... ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค'

์ œ์•ˆ ์‚ฌํ•ญ์œผ๋กœ Visual Studio 2017์—๋Š” .filenesting.json ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํ†ตํ•œ ํŒŒ์ผ ์ค‘์ฒฉ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ตฌ์„ฑ ํŒŒ์ผ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋น„์Šทํ•œ ๊ฒƒ์ด VSCode์— ๋Œ€ํ•ด ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋กœ์„œ:

{
  "help": "https://go.microsoft.com/fwlink/?linkid=866610",
  "root": true,

  "dependentFileProviders": {
    "add": {
      "addedExtension": {},
      "pathSegment": {
        "add": {
          ".*": [
            ".js",
            ".css",
            ".html",
            ".htm",
            ".less",
            ".scss",
            ".coffee",
            ".iced",
            ".config",
            ".cs",
            ".vb",
            ".json"
          ]
        }
      },
      "extensionToExtension": {
        "add": {
          ".js": [
            ".coffee",
            ".iced",
            ".ts",
            ".tsx",
            ".jsx",
            ".vue"
          ],
          ".css": [
            ".less",
            ".scss",
            ".sass",
            ".styl",
            ".vue"
          ],
          ".html": [
            ".md",
            ".mdown",
            ".markdown",
            ".mdwn"
          ],
          ".map": [
            ".js",
            ".css"
          ],
          ".svgz": [
            ".svg"
          ],
          ".designer.cs": [
            ".resx"
          ],
          ".cs.d.ts": [
            ".cs"
          ],
          ".ts": [
            ".vue"
          ],
          ".scss": [
            ".vue"
          ],
          ".sass": [
            ".vue"
          ]
        }
      },
      "fileToFile": {
        "add": {
          ".bowerrc": [
            "bower.json"
          ],
          ".npmrc": [
            "package.json"
          ],
          "npm-shrinkwrap.json": [
            "package.json"
          ],
          "yarn.lock": [
            "package.json"
          ],
          ".yarnclean": [
            "package.json"
          ],
          ".yarnignore": [
            "package.json"
          ],
          ".yarn-integrity": [
            "package.json"
          ],
          ".yarnrc": [
            "package.json"
          ]
        }
      },
      "fileSuffixToExtension": {
        "add": {
          "-vsdoc.js": [
            ".js"
          ]
        }
      },
      "allExtensions": {
        "add": {
          ".*": [
            ".tt"
          ]
        }
      }
    }
  }
}

๋ฒ”ํ”„ ๐Ÿ—

๋‹คํŠธ์—์„œ ์ž๋™ ์ƒ์„ฑ๋œ ํŒŒ์ผ์—๋„ ์ข‹์Šต๋‹ˆ๋‹ค.

์ด๋Š” Salesforce ํ™•์žฅ์—๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—๋Š” ๋ชจ๋“  ์ฝ”๋“œ ํŒŒ์ผ๊ณผ ์—ฐ๊ฒฐ๋œ *.meta.xml ํŒŒ์ผ์ด ์žˆ์œผ๋ฏ€๋กœ ํšจ๊ณผ์ ์œผ๋กœ ํŒŒ์ผ ํŠธ๋ฆฌ ๊ธธ์ด๋ฅผ ๋‘ ๋ฐฐ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์†Œ์Šค ํŒŒ์ผ ์•„๋ž˜์— ๋„ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ค‘์ฒฉ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ์‚ฌํ•ญ/์š”๊ตฌ ์‚ฌํ•ญ์„ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ธฐ๋ถ€๊ฐ€ ๊ณต์‹ ๋ฆด๋ฆฌ์Šค์—์„œ ๋” ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ ๊นŒ์š”?

๋‚ด ํŒŒ์ผ์„ ๋ณด๊ณ ,
Typescript, ์›น ๋ฐ ์Šคํƒ€์ผ์ด ๋†’์ด ์Œ“์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค.
์ค‘์ฒฉ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ด๊ฒƒ์— ์ „ํ˜€ ๊ด€์‹ฌ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•„์ €์”จ, ์ด๊ฒƒ๋„ ๋ณด๊ณ  ์‹ถ์–ด์š”.

๊ธฐ๊ดดํ•จ - ์ด ๊ธฐ๋Šฅ์˜ ๋™์ž‘์€ ๋งค์šฐ ์ž˜ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ถ„๋ช…ํžˆ ๋งŽ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

+1 ์–˜๋“ค์•„

์ด๊ฒƒ์€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌธ์ œ๋ฅผ ๋‹ซ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@isidorn ์€ ๊ทธ๋“ค์ด ๊ทธ๊ฒƒ์— ๊ด€์‹ฌ์ด ์—†๊ณ  ํ•˜๋ ค๊ณ  ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๋ถ„๋ช…ํžˆ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ง€๊ธˆ VSC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ์ „๋ถ€์ž…๋‹ˆ๋‹ค. Angular ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ํŒŒ์ผ ์ค‘์ฒฉ ์—†์ด ๋„ˆ๋ฌด ์žฅํ™ฉํ•˜๊ณ  ์ง€์ €๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹WebStorm์— ๊ฐ‡ํ˜€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

@isidorn , "๊ทธ๋ ‡์ง€ ์•Š์€ ๋ฏธ๋ž˜"๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜์–ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ง€์นจ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ฐ”๋Ÿฌ๋ณด๊ณ  ์‹ถ์ง€๋งŒ ๋‚ด MR์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์ด ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค.

2019๋…„, ์ƒˆ๋กœ์šด ์†Œ์‹์ด ์žˆ๋‚˜์š”?

์ž๋ฐ” ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ vscode๋กœ ์™„์ „ํžˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ์ฃผ์š” ์›์ธ์ž…๋‹ˆ๋‹ค.

๋‚ด Java ํ”„๋กœ์ ํŠธ์—์„œ Java ํŒจํ‚ค์ง€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํƒ์ƒ‰๊ธฐ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์˜ ์ ˆ๋ฐ˜(๋˜๋Š” ๊ทธ ์ด์ƒ)์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ฐœ๋ฐœ ๋ฐ˜๋ณต์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๋ฒˆ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋•Œ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ์ผ์ข…์˜ ํƒ์ƒ‰๊ธฐ์—์„œ ํ•ญ์ƒ ์œ„/์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Java ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋งŽ์€ IDE๋Š” ์ด๋Ÿฌํ•œ ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹จ์ผ ํŒจํ‚ค์ง€ ์ด๋ฆ„์œผ๋กœ ์ถ•์†Œํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ „์ฒด ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋ฅผ ์‰ฝ๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ vscode์—์„œ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„ ์ž‘์—…์œผ๋กœ ์ธํ•ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ธฐ๋ณธ vscode ์•„ํ‚คํ…์ฒ˜์˜ ์ œํ•œ์œผ๋กœ ์ธํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ?

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ •๋ง ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค!

์˜คํ”ˆํ•œ์ง€ 3๋…„์ด ๋„˜์—ˆ๋Š”๋ฐ.. ์•ˆํ• ๋“ฏ... ์ง€๊ธˆ ์›น์Šคํ†ฐ ์„ค์น˜์ค‘...

์ด๊ฒƒ์ด ํ•ด๊ฒฐ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ์‚ฌํ•ญ์„ ๋ถ™์—ฌ๋„ฃ์Œ์œผ๋กœ์จ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ•˜๋ฉด ํ”„๋ฆฌ์›จ์–ด์™€ ์˜คํ”ˆ ์†Œ์Šค์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณ„๋กœ... ๊ฒŒ์ž„์— ์Šคํ‚จ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—.

์˜ˆ - ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์šฐ์ˆ˜ํ•œ ๊ฐœ๋ฐœ ํŒ€์˜ ๋งค์šฐ ์‹ค๋ง์Šค๋Ÿฌ์šด ์‘๋‹ต(๋˜๋Š” ๋ถ€์กฑ)์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ง€์ • ์ค‘์ฒฉ์„ ๋งŒ๋“ค์—ˆ์ง€๋งŒ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์ด ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. VS ์ฝ”๋“œ ํŒ€์—๋Š” ๋‹ค๋ฅธ ๊ณ„ํš์ด ์žˆ์œผ๋ฉฐ ์ฝ”๋“œ์˜ ํ•ด๋‹น ๋ถ€๋ถ„์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ ์ด ๊ธฐ๋Šฅ์€ ์ค‘์š”ํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž ์ง€์ • Vs Code ๋นŒ๋“œ(ํ™•์žฅ ์ €์žฅ์†Œ ์ž‘๋™)๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/floatas/vscode/releases/tag/1.37 ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ, VsCodium(์—…๋ฐ์ดํ„ฐ๋กœ ์ž๋™ ๋นŒ๋“œ)๊ณผ ๋น„์Šทํ•œ ๊ฒƒ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์ง€๋งŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ตฌ์„ฑ์„ settings.json์— ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    "files.nesting.enabled": true,
    "files.nesting.rules": {
        "(?<basename>.*)\\.ts$": [
            "$(basename)\\.spec\\.ts$",
        ],
        "(?<basename>.*)\\.html$": [
            "$(basename)\\.css$",
            "$(basename)\\.scss$"
        ]
    },

์ค‘์ฒฉ์„ ํ™œ์„ฑํ™”ํ•  ๋•Œ ๋Œ€ ์ฝ”๋“œ ๋‹ค์‹œ ์‹œ์ž‘์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@floatas ์ฝ”๋“œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”?

@e-belair ์Šฌํ”„๊ฒŒ๋„ ํ™•์žฅ์„ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ ์ค‘์ฒฉ ๊ธฐ๋Šฅ์€ ์ •๋ง ๋‹ฌ์ฝคํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค! ์ด๊ฒƒ์ด ์ผ์–ด๋‚˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค :)

@floatas PR์€ ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ?

@tariqporter # 72160

@floatas (https://github.com/microsoft/vscode/issues/6328#issuecomment-524030094)

VS ์ฝ”๋“œ ํŒ€์—๋Š” ๋‹ค๋ฅธ ๊ณ„ํš์ด ์žˆ์œผ๋ฉฐ ์ฝ”๋“œ์˜ ํ•ด๋‹น ๋ถ€๋ถ„์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ #41627์ด ๋  ๊ฒƒ์ด๋ฉฐ, ์ด๊ฒƒ์€ ํŠธ๋ฆฌ๋ทฐ ์žฌ์ž‘์„ฑ์˜ ์ผ๋ถ€๋กœ ๋จผ์ € ์ž‘์—…๋  ๊ฒƒ์ด๋ฉฐ, ์•„๋งˆ๋„ ๋‚˜์ค‘์— ์ด๊ฒƒ์„ ๋” ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

VS Code๋Š” ํ›Œ๋ฅญํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ๋ถ€์กฑํ•œ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ๋„ ๊ธฐ๋Œ€๋œ๋‹ค

๋‚œ ๊ทธ๊ฒŒ ํ•„์š”ํ•ด

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•˜์‹ญ๋‹ˆ๊นŒ? ํŠธ๋ฆฌ ๋ทฐ๋ฅผ ์ฒญ์†Œํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

Blazor ์•ฑ์—์„œ ์ด ๊ธฐ๋Šฅ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ Mac์šฉ VS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๋ ‡๊ฒŒ ํŒ€์˜ ์ €ํ•ญ์ด ๋งŽ์Šต๋‹ˆ๊นŒ?

์ด๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ™•์žฅ API์˜ ๊ตฌํ˜„์„ ์ถ”์ ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

4๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ ์ด ๋ฌธ์ œ์— ์ง„์ „์ด ์—†์Šต๋‹ˆ๊นŒ? ์˜ค์˜ค..
์ด๊ฑด ์†”์งํžˆ ๊ธฐ๊ฐ€๋ง‰ํž™๋‹ˆ๋‹ค...

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ IDE ์ค‘ ์–ด๋–ค ์‹์œผ๋กœ๋“  ์ด๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” IDE๊ฐ€ ์ƒ๊ฐ๋‚˜์ง€ ์•Š์œผ๋ฉฐ, ๋‚ด๊ฐ€ ์ž‘์—…ํ•œ ํ”Œ๋žซํผ์—์„œ ์ด๊ฒƒ์ด ์œ ์šฉํ•˜์ง€ ์•Š์€ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด์„œ๋„ ์ƒ๊ฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค... oO.. ์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ์–ด๋–ค IDE์—์„œ๋‚˜ ์ฃผ์–ด์ง„ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•œ ์‹œ์ ๊นŒ์ง€์ž…๋‹ˆ๋‹ค... ์ถ”์ธก์ปจ๋ฐ...

ํŒ€์ด ์‚ฌ๋žŒ๋“ค์„ ๊ฒฝ์Ÿ์ž๋“ค์—๊ฒŒ ๋ฐ€์–ด๋ถ™์ด๋ ค๊ณ  ํ•˜๋Š” ๊ฑธ๊นŒ์š”?...
WebStorm์„ VSCode๋กœ ๊ต์ฒดํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ๊ทธ๋Ÿฐ ์ผ์€ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” VS๋‚˜ IDEA๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด ์—†์Šต๋‹ˆ๋‹ค.:S...

์•„ ๊ธ€์Ž„...

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

@firelizzard18 ๊ทธ๋Ÿฌ๋ฉด ๊ณ ๊ฐ ๊ธฐ๋ฐ˜์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ๊ผญ ํ•„์š”ํ•œ ๊ฒƒ์„ ๋†“์น˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ณ ๊ฐ์˜ ๋ง์— ๊ท€๋ฅผ ๊ธฐ์šธ์ด๋Š” ๋ฒ•์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์€ ๋งํ•˜์ž๋ฉด ๋จน์ž‡๊ฐ ์œ„์— ์˜ฌ๋ผ์„œ๋Š” ์ง„์ •ํ•œ ํ›Œ๋ฅญํ•œ ์ž์งˆ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ๋Œ“๊ธ€์„ ์ฝ์–ด๋ณด๋ฉด ๋‹น์‹ ์ด ๋งํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ–‰๋™ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋“ค์€ ๋“ฃ์ง€ ์•Š๊ณ  4๋…„ ํ›„์— ํŠนํžˆ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ง„์ •์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ๋ฅผ ์›ํ•˜์ง€๋งŒ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋„ˆ๋ฌด ์ปค์„œ ํŒŒ์ผ์„ ํ•จ๊ป˜ ์ค‘์ฒฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฉ๋ฒ•์„ ๋ณผ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ขŒ์ ˆ๊ฐ์ด ๊ทน์— ๋‹ฌํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง„์ •์œผ๋กœ ๋น„์ฃผ์–ผ ์ฝ”๋“œ๊ฐ€ ํ”„๋ฆฌ์›จ์–ด์ด๋ฉฐ ์•„๋ฌด๋„ ์ด๊ฒƒ์„ ์ง„์ •์œผ๋กœ ์šฐ์„  ์ˆœ์œ„๋กœ ์‚ผ๋Š” ๋ฐ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ์šฐ๋ฆฌ ์‚ฌ์šฉ์ž๋“ค์ด ์š”๊ตฌํ•˜๋Š” ๋ฌด๋ฃŒ ์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•ด ์–ป๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ‚จ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ์ผ์ด ์ œ์ž๋ฆฌ์— ๋†“์ผ ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š” ๊ฒฝ์šฐ IDE์— ๋น„์šฉ์„ ์ง€๋ถˆํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์›น์Šคํ†ฐ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(๋น„์šฉ์„ ์ง€๋ถˆํ–ˆ์Šต๋‹ˆ๋‹ค). ๊ทธ๋“ค์€ ์ •๋ง๋กœ ๊ทธ๋ƒฅ ๋‚˜์™€์„œ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํ‹ฐ์ผ“์„ ๋‹ซ๊ณ  ๋๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ๋Œ“๊ธ€์„ ์ฝ์–ด๋ณด๋ฉด ๋‹น์‹ ์ด ๋งํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ–‰๋™ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ ๋Œ€์ ์ธ ๊ฒƒ์ด ์ƒํ™ฉ์„ ๋ฐ”๊ฟ€ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ๋งํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ”๋Š” ํ›Œ๋ฅญํ•œ ์‚ฌ์—…๊ฐ€๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ์ „๋‹ฌ๋˜๋Š”์ง€๋Š” ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์˜๊ฒฌ์„ ๋ฌด์‹œํ•œ๋‹ค๋ฉด ์ข‹์€ ์‚ฌ์—…๊ฐ€๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ  ํšŒ์‚ฌ์˜ ๊ณ ๊ฐ ์ง€์› ๋ผ์ธ์—์„œ ์ผํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ์ด๊ฒƒ์„ ์ดํ•ดํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

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

Issue Voting

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

์ด์— ๋Œ€ํ•œ ๊ณต๊ฐœ PR์ด ์žˆ์Šต๋‹ˆ๋‹ค(#13754)...
๋ˆ„๊ตฐ๊ฐ€ ๊ณต์‹์ ์œผ๋กœ ํฌํฌ๋ฅผ ์„ ์–ธํ•˜๊ณ  Windows Apple ๋ฐ Linux์šฉ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ํฌํ•จ๋œ ๊ธฐ๋ณธ ์ •์  ์‚ฌ์ดํŠธ๋ฅผ ์„ค์ •ํ•œ๋‹ค๋ฉด... ์•„๋งˆ๋„ 1000๋ช…์˜ ์•ต๊ทค๋Ÿฌ ๊ฐœ๋ฐœ์ž ๋ช‡ ๋ช…์ด ๋ฐค์ƒˆ ๊ทธ๊ณณ์— ๋›ฐ์–ด๋“ค ๊ฒƒ์ด๊ณ  ์–ด๋”˜๊ฐ€์— ์•ฝ๊ฐ„์˜ ๊ธฐ๋ถ€ ๋ฒ„ํŠผ์ด ์žˆ๋‹ค๋ฉด ๋ˆ์„ ๋ฒŒ ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ๋…ธ๋ ฅ์„ ์œ„ํ•ด.
์ง€๊ธˆ์€ ๊ฐœ์ธ์ ์œผ๋กœ ์ด ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜์ง€ ์•Š์ง€๋งŒ VSCode๋Š” MIT ๋ผ์ด์„ ์Šค ํ•˜์— ์žˆ๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ์ด ๊ธฐ๋Šฅ์„ ์ •๋ง๋กœ ์›ํ•˜๋ฉฐ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ผ๋ถ€ ๊ตฌ์„ฑ์›์€ ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ •๋ง ์—ด์‹ฌํžˆ ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ...

์•„๋งˆ๋„ ๊ทธ๋“ค์€ #75181๋„ ๊ณ ์น  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๋‹จ์ˆœํžˆ ํƒ์ƒ‰๊ธฐ ํŒจ๋„์„ ํ‘œ์‹œํ•ด๋„ ํŒŒ์ผ ํƒญ์ด ์—ด๋ฆฌ์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@BrunnerLivio ๋‹น์‹ ์€ ๋„ˆ๋ฌด ์›ƒ๊ธด ๋ถˆํ‰์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค ;). ์ด๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ž์‹ ์˜ ๋ถˆ๋งŒ, ํ•„์š” ๋˜๋Š” ํˆฌํ‘œ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์ž์‹ ์˜ ๋„๋•์  ํ–‰๋™์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐ•์š”ํ•˜๊ธฐ๋ฅผ ์›ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ๋„ ๋˜‘๊ฐ™์ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ด ๋ฌธ์ œ๋Š” ์•„๋ฌด๋ฐ๋„ ๊ฐ€์ง€ ์•Š๋Š” ํ”„๋ฆฌ์›จ์–ด์ž…๋‹ˆ๋‹ค. 4๋…„์ด ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘๊ฐ€ "๊ทธ๋“ค"์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ”„๋ฆฌ์›จ์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ด ํฌ๋Ÿผ์˜ ์‚ฌ๋žŒ๋“ค์ž…๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์•ฝ 1๋…„ ์ „์— ๊นจ๋‹ฌ์•˜๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ์ด ๊ธฐ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์‹œ๊ฐ„์ด ์—†์„ ์ •๋„๋กœ ์ผ์„ ๋งŽ์ด ํ–ˆ๊ณ , ์›น์Šคํ†ฐ์œผ๋กœ ํ•˜๋Š” IDE์— ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๊ท€์ฐฎ๊ฒŒ ํ•˜์ง€๋Š” ์•Š์„ ๊ฒƒ ๊ฐ™์•„์š”.
๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌด๋ฃŒ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ตฐ๊ฐ€ ์„œ๋น„์Šค ์ˆ˜์ค€ ๊ณ„์•ฝ์„ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ ์ง€์›์„ ์œ„ํ•ด ๋ˆ์„ ์ง€๋ถˆํ•˜๋Š” ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. "๊ณ ๊ฐ"์ด๋ผ๋Š” ๋‹จ์–ด๋Š” ๊ตฌ๋งคํ•œ ์ œํ’ˆ์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์—

๊ทธ๋ž˜์„œ ๋Œ€์•ˆ์€

  1. ์†Œ์Šค๋ฅผ ํฌํฌํ•˜๊ณ , ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ , ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ฐœํ–‰ํ•œ ๋‹ค์Œ, ํฌํ•จํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ์‚ฌ๋žŒ
  2. ๋‹ค๋ฅธ ์˜ต์…˜์œผ๋กœ ์ค‘์ฒฉ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๋ฃŒ(์˜คํ”ˆ ์†Œ์Šค๋Š” ์•„๋‹˜)์ธ Visual Studio 2019 Community๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์‹ญ์‹œ์˜ค.
  3. ์— ์ถ”๊ฐ€๋  ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋Œ€์•ˆ:

์ž์ฒด ์‚ฌ์ด๋“œ๋ฐ” ๋ฒ„ํŠผ๊ณผ ํŒจ๋„์ด ์žˆ๋Š” Explorer ํŠธ๋ฆฌ๋ฅผ ๋ชจ๋ฐฉํ•˜๋Š” ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œํ•˜๊ณ  ์‚ฌ์šฉํ•˜์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๊ทธ๋ ‡๊ฒŒ ํ–ˆ๋‹ค.

pt., 7.02.2020, 02:15 uลผytkownik Hecatron [email protected]
๋‚˜ํ”ผ์‚ฌ์šฐ:

๊ฐœ์ธ์ ์œผ๋กœ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ๋ฐฉํ•ด๊ฐ€ ๋˜์ง€๋Š” ์•Š์„ ๊ฒƒ ๊ฐ™์•„์š”
๊ทธ ์œ„์—
๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌด๋ฃŒ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์„ ๋“ค๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์„œ๋น„์Šค ์ˆ˜์ค€ ๊ณ„์•ฝ์— ๋”ฐ๋ฅด๊ฑฐ๋‚˜ ์ง€์› ๋น„์šฉ์„ ์ง€๋ถˆํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์–ด๋ถ€ํ„ฐ
"๊ณ ๊ฐ"์€ ๊ตฌ๋งคํ•œ ์ œํ’ˆ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋Œ€์•ˆ์€

  1. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์†Œ์Šค๋ฅผ ํฌํฌํ•˜๊ณ , ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ , ํ’€์„ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    ์š”์ฒญํ•œ ๋‹ค์Œ ํฌํ•จํ•˜๋„๋ก ์š”์ฒญํ•˜์‹ญ์‹œ์˜ค.
  2. ๋‹ค๋ฅธ ์˜ต์…˜์œผ๋กœ Visual Studio 2019 Community๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์‹ญ์‹œ์˜ค.
    ๋˜ํ•œ ์ค‘์ฒฉ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๋ฃŒ(์˜คํ”ˆ ์†Œ์Šค๋Š” ์•„๋‹˜)
  3. ์— ์ถ”๊ฐ€๋  ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/microsoft/vscode/issues/6328?email_source=notifications&email_token=ACJ4R34R3CWQNAAMHTCOP2TRBSY3TA5CNFSM4CDVJHV2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LDNMVX
๋˜๋Š” ๊ตฌ๋… ์ทจ์†Œ
https://github.com/notifications/unsubscribe-auth/ACJ4R3YUKMXFVOO5NSXSQ6DRBSY3TANCNFSM4CDVJHVQ
.

์ด๊ฒƒ์˜ ์•ฝ๊ฐ„์˜ ์ง„๋ณด !! vscode์—์„œ ๊ผญ ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์•„์š”!!

2020-04-09 20_01_05-File Nesting ยท Issue #6328 ยท microsoft_vscode

VS Code๋Š” ๋ฌด๋ฃŒ ์ œํ’ˆ์ด๊ณ  Visual Studio ์ •์‹ ๋ฒ„์ „์€ ์œ ๋ฃŒ ์ œํ’ˆ์ž…๋‹ˆ๋‹ค.

@GeorgeTarazi ๊ท€ํ•˜์˜ ์˜๊ฒฌ์— ๋”ฐ๋ฅด๋ฉด VSCode๋ฅผ ์‚ฌ์šฉํ•œ ์ ์ด ์—†๊ฑฐ๋‚˜ Visual Studio๋ฅผ ์‚ฌ์šฉํ•œ ์ ์ด ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•ด๋ณด์‹œ๋ฉด ์ „ํ˜€ ๋‹ค๋ฅธ ์ œํ’ˆ์ด๋ผ๋Š” ๊ฒƒ์„ ์•„์‹ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Visual Studio๋Š” VSCode์˜ '์ •์‹ ๋ฒ„์ „'์ด ์•„๋‹™๋‹ˆ๋‹ค.

์•„๋ฌด๋„ ์ฃผ์ œ์—์„œ ๋ฒ—์–ด๋‚œ ์˜๊ฒฌ์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ๋ฐ›๊ณ  ์‹ถ์–ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ €์žฅ์†Œ ๊ด€๋ฆฌ์ž๋Š” ์ง€๊ธˆ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋…ผ์˜๋ฅผ ์ž ๊ทธ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ Visual Studio 2019 Community(๋ฌด๋ฃŒ) ์—๋””์…˜์ด ํ•„์š”ํ•œ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
๊ณผ๊ฑฐ์˜ ์ด์ „ Pro/Enterprise ๋ฒ„์ „๊ณผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด Java์— ๋Œ€ํ•œ ์˜คํ”ˆ ์†Œ์Šค ๋Œ€์•ˆ์œผ๋กœ dotnet์„ ํ‘ธ์‹œํ•˜๋ ค๋Š” MS์˜ ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ์ด๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋น„์ฆˆ๋‹ˆ์Šค ๊ด€์ ์—์„œ Studio 2019๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์—ฌ์ „ํžˆ ๋ผ์ด์„ ์Šค๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•ด Studio 2019์™€ VSCode๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์„ ํ˜ธํ•˜๋Š” VScode python, Studio 2019 ๋‚˜๋Š” dotnet์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.
์˜คํ”ˆ ์†Œ์Šค ๋“ฑ์„ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ VSCode
์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ณ„๋„์˜ ์™ธ๋ถ€ ๋„๊ตฌ btw์ด๊ธฐ ๋•Œ๋ฌธ์— ์ ์–ด๋„ dotnet์—์„œ๋Š” ๊ณต์œ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ๋‘˜ ๋‹ค ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. VSCode - Javascript, Studio 2019๋Š” ์•„๋งˆ๋„ C#๊ณผ CPP์˜ ์กฐํ•ฉ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ์ด ์•„์ง ํฌํŒ…๋˜์ง€ ์•Š์€ ์ด์œ ๋Š” ether ๋•Œ๋ฌธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๊ทธ๋“ค์€ ๋จผ์ € ํ•„์š”ํ•œ ํ™•์žฅ ๋˜๋Š” ์ข…์†์„ฑ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ๋จผ์ € ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋‹ค๋ฅธ ํŒ€, ๋‹ค๋ฅธ ์ˆ˜์ค€์˜ ๋ฆฌ์†Œ์Šค
  3. ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋ฉฐ ๋‹ค๋ฅธ ์–ธ์–ด ๊ฐ„์— ๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ๋ณต์‚ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@georgebatalinski ๋‚˜๋Š” ๋‹น์‹ ์ด ๋งํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Visual Studio๋ณด๋‹ค Angular์— ๋” ์œ ์šฉํ•œ ์‹œ๊ฐ์  ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ํ”„๋ก ํŠธ ์—”๋“œ ์ŠคํŒŒ์— ๋Œ€ํ•ด ๋” ๊ฐœ๋ฐœ์ž ์นœํ™”์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” 90๋…„๋Œ€๋ถ€ํ„ฐ VS ์ œํ’ˆ์„ ์‚ฌ์šฉํ•ด ์™”๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ๋„ ๋‹น์‹ ๋ณด๋‹ค ๋‚˜์ด๊ฐ€ ๋งŽ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.) Qbasic๋„ vb ์‹œ์ ˆ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ me me me ๊ฒƒ์— ์งˆ๋ ธ์–ด, ๋‚˜์—๊ฒŒ ๊ทธ๊ฒƒ์„ ๋ฌด๋ฃŒ๋กœ ์ค˜. ํŠนํžˆ ์ด ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์–ป๊ธฐ ์œ„ํ•ด ์‹œ๊ฐ์  ์ฝ”๋“œ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ธฐ๋Šฅ์ด ๋‚ด ๋ˆˆ์— ๋” ํฐ ์•ฑ์— ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์‹œ VC๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋ฉ๋‹ˆ๊นŒ?
์›น ํ”„๋กœ์ ํŠธ๋กœ ์ž‘์—…ํ•  ๋•Œ ์ž‘์—… ๊ณต๊ฐ„์„ ์–ด์ง€๋Ÿฝํžˆ๋Š” ์ƒ์„ฑ๋œ ํŒŒ์ผ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋•Œ๋กœ ํŒŒ์ผ์„ ํ™•์ธํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ˆจ๊ธฐ๋Š” ๊ฒƒ์ด ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹™๋‹ˆ๋‹ค).

๋น„ํ™œ์„ฑํ™”/ํ™œ์„ฑํ™” ์„ ํƒ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋งก๊ธฐ๊ณ  ์–ด๋–ค ํ™•์žฅ์ด ์ด๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ• ์ง€ ์„ ํƒํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? :-)
๊ตฌํ˜„์ด ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•ด ๋ณด์ด๋Š”๋ฐ....

@funder7 ์กฐ๋งŒ๊ฐ„. ๊ฐœ๋ฐœ์ž๋“ค์€ VS Code๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์ด๋ฐ์˜ฌ๋กœ๊ธฐ์  ๊ฒฌํ•ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๋ฐํ˜”์œผ๋ฏ€๋กœ ์ด๊ฒƒ์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

@tmarkovski ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ƒ์„ฑ๋œ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. rm -f *.js *.map ... ๊ทธ๋Ÿฐ๋ฐ IntelliJ Idea์—์„œ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๋ฐœ๊ฒฌํ–ˆ๋Š”๋ฐ ๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์—…ํ•  ๋•Œ ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ฑ์„ ๋ณด๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์ตœ์†Œํ•œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์ง€๋งŒ ํ™œ์„ฑํ™” ์˜ต์…˜์€ ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ Idea๋ฅผ ์–ธ๊ธ‰ํ•œ ์ด์œ ๋Š” ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๊ธฐ๋Šฅ์ด ๋ณด์กฐ ์†Œํ”„ํŠธ์›จ์–ด์™€ ์ฆ๊ฒจ ์‚ฌ์šฉํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ฐจ์ด๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์‚ฌ์‹ค ๋‚˜๋Š” ์ด๊ฒƒ์ด

        "**/*.js": {
            "when": "$(basename).ts"
        },

์ƒ์„ฑ๋œ ํŒŒ์ผ์„ ์ˆจ๊ธฐ์ง€๋งŒ ํŒŒ์ผ์ด ์‚ฌ๋ผ์ง€๊ณ  ์กด์žฌ๋ฅผ ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค./

4๋…„์ด ๋„˜๋Š” ์‹œ๊ฐ„์ด ํ˜๋ €์Šต๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ์„ธ๊ณ„์—์„œ๋Š” ์˜์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„์ง ๊ตฌํ˜„ํ•  ๊ณ„ํš์ด ์—†์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ๊ฑฐ๋Œ€ํ•œ ํŒŒ์ผ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์Šค์บ”ํ•  ๋•Œ ์ •์‹ ์  ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ ์ƒ์‚ฐ์„ฑ์— ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํƒ์ƒ‰๊ธฐ์— ์ถ”๊ฐ€ ํŒŒ์ผ์ด ํ‘œ์‹œ๋˜๋Š” ๋ถ€๋‹ด ์—†์ด ๋ณ„๋„์˜ Typescript ์ธํ„ฐํŽ˜์ด์Šค ํŒŒ์ผ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง„ํ–‰ ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง„ํ–‰ ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ค‘๋ณต ๋ฌธ์ œ๋Š” ์ง€๋‚œ ์ฃผ vscode ํŒ€์›์— ์˜ํ•ด ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฏ€๋กœ ๊ทธ๋“ค์€ ๊ทธ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋ฌด์‹œํ•˜๊ธฐ๋กœ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์œ ๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์ •๋ง ๊ณ ๊ตฐ๋ถ„ํˆฌํ•ฉ๋‹ˆ๋‹ค.

์ด์œ ๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์ •๋ง ๊ณ ๊ตฐ๋ถ„ํˆฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋“ค์—๊ฒŒ๋Š” ๊ทธ๊ฒƒ์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํŒ€์œผ๋กœ์„œ ๊ทธ๋“ค์€ ๋‹ค๋ฅธ ๊ฒƒ๋“ค์„ ์šฐ์„ ์‹œํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๋“ค์˜ ๊ฒฐ์ •์— ๋™์˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด ๋ชจ๋“  "OMG ์™€์šฐ~ " ์ง•์ง•๊ฑฐ๋ฆฌ๋Š” ๊ฒƒ์€ ๋ถˆ์พŒํ•˜๊ณ  ๋ฌด์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋“ค์—๊ฒŒ๋Š” ๊ทธ๊ฒƒ์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํŒ€์œผ๋กœ์„œ ๊ทธ๋“ค์€ ๋‹ค๋ฅธ ๊ฒƒ๋“ค์„ ์šฐ์„ ์‹œํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๋“ค์˜ ๊ฒฐ์ •์— ๋™์˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด ๋ชจ๋“  "OMG _whhhhhy_" ์ง•์ง•๊ฑฐ๋ฆผ์€ ๋ถˆ์พŒํ•˜๊ณ  ๋ฌด์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ™˜๊ฒฝ์„ ์›ํ•˜๋Š” ๋Œ€๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” "๊ธฐ๋ณธ ์„ค์ •" ๋ณด๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ž‘์—… ๋ชฉ์ ์œผ๋กœ ํ•˜๋ฃจ ์ข…์ผ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ๋ชฉ๋ก์„ ๋” ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ธฐ๋Šฅ์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ฆฌ์„์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ์„ ์š”๊ตฌํ•˜๋Š” ์‚ฌ์šฉ์ž๋Š” VSCode๊ฐ€ ๊ฐœ์„ ๋˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ, ์•„๋งˆ๋„ ์ถฉ๋ถ„ํ•œ ์‚ฌ๋žŒ๋“ค์ด ์ด ๊ธฐ๋Šฅ์„ ์š”์ฒญํ•˜๋ฉด ์‹ค์ œ๋กœ ์ผ์–ด๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถˆํ‰ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํฐ ์ž‘์—… ๊ณต๊ฐ„์„ ์œ„ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ตœ๊ทผ์— ์ด๊ฒƒ์„ ๋‹ค์‹œ ์‚ดํŽด๋ณด๊ณ  ์žˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์—์„œ ๊ณผ๊ฑฐ์—๋Š” ๊ทธ๋ฆฌ ๋ฉ€๋ฆฌ ๊ฐ€์ง€ ์•Š์€ ๋ช‡ ๊ฐ€์ง€ pull ์š”์ฒญ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ๋ณธ ๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๊ฒƒ์„ ํ™•์žฅ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

vscode์—์„œ ๋‹ค๋ฅธ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์‚ดํŽด๋ณด์•˜์ง€๋งŒ ์•„๋ฌด ๊ฒƒ๋„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ ์ฐฝ๊ณผ ๋™์ผํ•œ ๊ฒƒ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ค‘์ฒฉ์ด ์ถ”๊ฐ€๋œ ํ™•์žฅ์„ ์ž‘์„ฑํ•˜๋Š” ์‚ฌ๋žŒ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” Visual Studio 2019์—์„œ ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ธ .filenesting.json ํŒŒ์ผ ์ฝ๊ธฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค ์•”ํ˜ธ)

javascript๋Š” ์ œ ๋ชจ๊ตญ์–ด๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์Šค์Šค๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ํ•  ์ˆ˜ ์žˆ์„์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ์ถœ๋œ ํ™•์žฅ API๊ฐ€ ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ ์–ด๋„ ์™ผ์ชฝ์˜ ๋ณ„๋„ ํƒ์ƒ‰๊ธฐ ํƒญ์—์„œ๋Š”

@grbd ๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” ์ด ๊ฐœ๋ฐœ์„ ์œ„ํ•œ "ํ›„ํฌ"๊ฐ€ ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ๊ฐ€ ํด๋”๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ง€์ ์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ค‘์ฒฉ๋œ ํŒŒ์ผ์ด ํ‘œ์‹œ๋˜๋Š” ๋ฐฉ์‹์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ๋™์ž‘์€ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ๋กœ ํ™•์žฅ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ƒˆ ํ‘œ์‹œ ๋ชจ๋“œ์— ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋Š” ํŒŒ์ผ ํ™•์žฅ์ž๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
์ €๋Š” vscode์šฉ์œผ๋กœ ์•„๋ฌด๊ฒƒ๋„ ๊ฐœ๋ฐœํ•œ ์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์ •๋ณด๋ฅผ ๋“œ๋ฆด ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค... ํ™•์žฅ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ์ƒ๊ฐ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž˜ ์‚ฌ์šฉํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•œ ํ›„์—๋Š” ์•„๋งˆ๋„ ๋ฉ”์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค ์ฝ”๋“œ๋กœ ์˜ฎ๊ฒจ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‹œ์ž‘์ ์œผ๋กœ ๋‚˜๋Š” ์•„๋งˆ๋„ vscode-solution-explorer๋ฅผ ๋ณด๊ณ  ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์™€ ์œ ์‚ฌํ•œ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ํŒŒ์ผ์„ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ์ž‘์—…์„ ์ด๋ฏธ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์ฐจ์ด์ ์€ ํŒŒ์ผ ์ค‘์ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Œ€์‹  VStudio 2019์˜ ๋ณด๊ธฐ๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ด๋–ค ํŒŒ์ผ ํ™•์žฅ์ž๋ฅผ ํฌํ•จํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ์„ค์ •์€ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ .filenesting.json ๋˜๋Š” ๊ธฐํƒ€ json ๊ด€๋ จ ํŒŒ์ผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด์œ ๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์ •๋ง ๊ณ ๊ตฐ๋ถ„ํˆฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋“ค์—๊ฒŒ๋Š” ๊ทธ๊ฒƒ์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํŒ€์œผ๋กœ์„œ ๊ทธ๋“ค์€ ๋‹ค๋ฅธ ๊ฒƒ๋“ค์„ ์šฐ์„ ์‹œํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๋“ค์˜ ๊ฒฐ์ •์— ๋™์˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด ๋ชจ๋“  "OMG _whhhhhy_" ์ง•์ง•๊ฑฐ๋ฆผ์€ ๋ถˆ์พŒํ•˜๊ณ  ๋ฌด์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

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

์™œ "๊ฐ€์ƒ ํด๋”"๊ฐ€ ํ•„์š”ํ•œ์ง€ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €๋Š” makefile์„ ํ†ตํ•ด ๊ตฌ์„ฑ๋œ C ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋ณ€๊ฒฝํ•  ์œ„ํ—˜์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฝ”๋“œ๋Š” ์—‰๋ง์ด๊ณ  ๋™์ผํ•œ ๋ฌธ์ œ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•  ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ ์ •์‹ ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ƒ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํŒŒ์ผ์„ ๊ฐ€์ƒ์œผ๋กœ ์ •๋ ฌํ•ด์•ผ ํ•˜๋ฉฐ ์ฝ”๋“œ::BLocks, Programmers Notepad(์˜ˆ)์—์„œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ VS ์ฝ”๋“œ์—์„œ๋Š” ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋งŽ์€ ์กฐ์ง์—์„œ ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํด๋”์—์„œ ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์–ดํ•  ์ˆ˜ ์—†๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ _๋ฐ˜๋“œ์‹œ_์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "๋” ์ด์˜๊ฒŒ ํ•˜๊ธฐ"์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ: VS Code๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์‚ฐ์„ฑ์ด ํ›จ์”ฌ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ์ž‘์—… ํ๋ฆ„์ด ๋” ๋Š๋ฆด ๋ฟ์ž…๋‹ˆ๋‹ค.

ํŒ€์ด ๋งˆ์Œ์„ ๋ฐ”๊พธ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•˜๋”๋ผ๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ด๋Ÿฌํ•œ ํ•ต์‹ฌ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ๊ณต์—…์ฒด์— ์˜์กดํ•˜๊ณ  ๊ณ ์žฅ๋‚  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์— ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์šฐ์„ ์ˆœ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์ ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ VS Code๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜์‹ ๋‹ค๋ฉด ํ–ฅํ›„ ๊ณ ๋ คํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@grbd ๋„์›€์ด ๋˜๊ณ  ์‹ถ์ง€๋งŒ ์‹œ๊ฐ„์ด ๋งŽ์ด ๋‚จ์•„ ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
์˜ค๋Š˜์˜ ๋งˆ์Šคํ„ฐ์™€ ์ผ์น˜ํ•˜๋„๋ก ์‚ฌ์šฉ์ž ์ง€์ • ํŒŒ์ผ ์ค‘์ฒฉ ํฌํฌ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ํŒŒ์ผ ์ค‘์ฒฉ์œผ๋กœ ์‹œ์ž‘์ ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ฐ”์ด๋„ˆ๋ฆฌ๋„ ์ถ”๊ฐ€ํ•˜์—ฌ ์‹œ๋„ํ•ด ๋ณด์„ธ์š”.
https://github.com/floatas/vscode

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