Visual Studio 2015์์ ์๋ํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก Visual Studio Code์์ ํ์ผ ์ค์ฒฉ์ ๋ณผ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น? ์ ๋ง ํธ๋ฆฌํ๊ณ ๋์์ด ๋์์ต๋๋ค. ๋๋ ๊ทธ๋ฐ ๊ธฐ๋ฅ์ ์ข์ํ ๊ฒ์ ๋๋ค!
์ฐธ๊ณ ๋ก @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. ํ์ผ ํ์๊ธฐ๊ฐ ์ค์ ํ์ผ์ ๋ณด๋ค ์ฐ์ํ ๋ฐฉ์์ผ๋ก ํ์ํ๋๋ก ์ง์ํ๊ณ ๊ฐ๋ฐ์์๊ฒ ์ด ๊ธฐ๋ฅ์ ํ์ฑํํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์:
๊ธฐ๋ฅ 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, ์ต์ 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์์ ๋ณด๊ฑฐ๋ ์ค๋ ๋๋ฅผ ์์๊ฑฐํ์ธ์.
๋ฉ์ฒญํ ์ง๋ฌธ: ๋๊ตฐ๊ฐ ์คํฌ๋ฆฐ์ท์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง ์ ๊ณตํ ์ ์์ต๋๊น? ๊ทธ ๋ค์ ์จ๊ฒจ์ง ์๋ฏธ๊ฐ ๋ฌด์์ธ์ง ์์ํ ์ ์์ต๋๋ค.
์, ์๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
์ด๊ฒ์ ์ด์ ์ฐ๋ฆฌ์๊ฒ ๊ฐ์ฅ ํฐ ๋๋ฝ ๊ธฐ๋ฅ์ด ๋์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ด ์์ด์ ์ฌ์ฉํ์ง ์์ ๋๋ฃ๊ฐ ์์ต๋๋ค. ๋ง์ ํ์ผ์ด ๋น์ทํ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์์ ๋ ํ๋์ ํน์ ํ์ผ์ ์ฐพ์ผ๋ ค๊ณ ํ ๋ ์ ๋ง ๊ณ ํต์ค๋ฝ์ต๋๋ค. ๊ฐ ๊ตฌ์ฑ ์์(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์์ ์ ๋ ์ด ๋ชจ๋ ๊ฒ์ด ์๋๋ผ ์ผ๋ถ๋ฅผ ๊ตฌํํ๋ ์์ ์ ์์ํ์ต๋๋ค. ์ ๋ ๋งค์ฐ ์์ํ ์์ญ์ ์์๊ณ ์์ผ๋ก ๋์๊ฐ๊ธฐ ์ ์ ์ง์นจ์ ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๋ด์ด์ผ. ๋ถ์๊ธฐ๋ฅผ ์กฐ๊ธ ๋์ด๊ณ ์ถ์๋ค. ์ด์ ๋ํด ์กฐ์ฌํด ์ฃผ์ญ์์ค. ์ด๋ฐ ์ข ๋ฅ์ ํ๋ก์ ํธ ๋ณด๊ธฐ๋ก ์์ ํ๋ ๊ฒ์ ์ ๋ง ์ด๋ ต์ต๋๋ค. ์ด๋ ต์ง๋ ์์ง๋ง ๋นํจ์จ์ ์ ๋๋ค.
+1, ๋์ํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์์ฑ ๋ฏธ๋ ์ฑ ๊ฐ๋ฐ์๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
ํ๊ธฐ๊ฐ ๋๋ฌด ์ด๋ ต๋์? ์ฝ 200๋ง Java ์ปค๋ฎค๋ํฐ ํ์์๊ฒ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ด ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค. ์ ๋ฐ....!!!
VS Code๋ ํธ๋ฆฌ ๋ณด๊ธฐ์์ ๊ฐ์ ํ์ผ ์ค์ฒฉ์ ์ง์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฒ์ 1.29์ ๋ณ๊ฒฝ ๋ก๊ทธ์๋ ๋ค์ ์ฌํญ์ด ํฌํจ๋์์ต๋๋ค.
์ด๊ฒ์ ํ์ผ ๊ทธ๋ฃนํ์ ๊ธฐ๋ฐ์ด ๋ง๋ค์ด์ก์์ ๋ํ๋ด๋ ๊ฒ ๊ฐ์ต๋๋ค.
@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์ ๋น์ฉ์ ์ง๋ถํฉ๋๋ค. ๋ค์ ์น์คํฐ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค(๋น์ฉ์ ์ง๋ถํ์ต๋๋ค). ๊ทธ๋ค์ ์ ๋ง๋ก ๊ทธ๋ฅ ๋์์ ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ ๊ฒ ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋งํด์ผ ํ๋ฏ๋ก ํฐ์ผ์ ๋ซ๊ณ ๋๋ด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ ๋๊ธ์ ์ฝ์ด๋ณด๋ฉด ๋น์ ์ด ๋งํ๋ ๋ฐฉ์์ผ๋ก ํ๋ํ๋ ์ฌ๋๋ค์ด ๋ง์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋์ ์ธ ๊ฒ์ด ์ํฉ์ ๋ฐ๊ฟ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๊น?
๋ด๊ฐ ๋งํ๊ณ ์ ํ๋ ๋ฐ๋ ํ๋ฅญํ ์ฌ์ ๊ฐ๋ ๋ฉ์์ง๊ฐ ์ด๋ป๊ฒ ์ ๋ฌ๋๋์ง๋ ์ ๊ฒฝ ์ฐ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ์๊ฒฌ์ ๋ฌด์ํ๋ค๋ฉด ์ข์ ์ฌ์ ๊ฐ๊ฐ ๋ ์ ์์ต๋๋ค. ๊ธฐ์ ํ์ฌ์ ๊ณ ๊ฐ ์ง์ ๋ผ์ธ์์ ์ผํ ์ ์ด ์๋ค๋ฉด ์ด๊ฒ์ ์ดํดํ ๊ฒ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์ ์ ์ฒด์ ์ธ ๊ฒฐ๋ง์, ์ด๋ ์ชฝ์ด๋ ์ข๋ ์ข์ง ์๋ (๋น์ ์ด ๊ฐ์ํ๋ ๋ ผํ์ ์ํด) ๊ทธ๊ฒ์ด ์ค์ํ์ง ์๋ค๊ณ ๋งํ๊ณ ์๋ค๋ฉด ๊ทธ๋ค์ ๊ทธ๊ฒ์ ํ์ง ์์ ๊ฒ์ ๋๋ค. ํ๋ฆฌ์จ์ด์ธ ๊ฒ์์ ์คํจ์ด ์์ต๋๋ค. ์ ๋ง ๋ ผ์์ ์ฌ์ง๊ฐ ์์ผ๋ฉฐ ํฐ์ผ์ ๋ซ์์ผํฉ๋๋ค.
์ด ๋ฌธ์ ๊ฐ ์์ง ํด๊ฒฐ๋์ง ์์ ์ด์ ์ ๋ํด ๋ถํํ๊ธฐ๋ณด๋ค ๊ฐ๋ฅํ ์๋ฃจ์ ๊ณผ ํต์ฐฐ๋ ฅ์ ๋ํ ์๊ฒฌ ์น์ ์ ์ง์คํ ์ ์์ต๋๊น? ์ด ๋ฌธ์ ์ ์ํฅ์ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ ์ ๋ฌธ์ ์ค๋ช ์ ๋ํ ํฌํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค
์ด์ ๋ํ ๊ณต๊ฐ PR์ด ์์ต๋๋ค(#13754)...
๋๊ตฐ๊ฐ ๊ณต์์ ์ผ๋ก ํฌํฌ๋ฅผ ์ ์ธํ๊ณ Windows Apple ๋ฐ Linux์ฉ ๋ฐ์ด๋๋ฆฌ๊ฐ ํฌํจ๋ ๊ธฐ๋ณธ ์ ์ ์ฌ์ดํธ๋ฅผ ์ค์ ํ๋ค๋ฉด... ์๋ง๋ 1000๋ช
์ ์ต๊ทค๋ฌ ๊ฐ๋ฐ์ ๋ช ๋ช
์ด ๋ฐค์ ๊ทธ๊ณณ์ ๋ฐ์ด๋ค ๊ฒ์ด๊ณ ์ด๋๊ฐ์ ์ฝ๊ฐ์ ๊ธฐ๋ถ ๋ฒํผ์ด ์๋ค๋ฉด ๋์ ๋ฒ ์๋ ์์ ๊ฒ์
๋๋ค ๋
ธ๋ ฅ์ ์ํด.
์ง๊ธ์ ๊ฐ์ธ์ ์ผ๋ก ์ด ๊ธฐ๋ฅ์ด ํ์ํ์ง ์์ง๋ง VSCode๋ MIT ๋ผ์ด์ ์ค ํ์ ์๊ณ ์ปค๋ฎค๋ํฐ๋ ์ด ๊ธฐ๋ฅ์ ์ ๋ง๋ก ์ํ๋ฉฐ ์ปค๋ฎค๋ํฐ์ ์ผ๋ถ ๊ตฌ์ฑ์์ ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ ๋ง ์ด์ฌํ ์ผํ์ต๋๋ค.
๊ทธ๋์...
์๋ง๋ ๊ทธ๋ค์ #75181๋ ๊ณ ์น ์ ์์ ๊ฒ์ ๋๋ค! ๋จ์ํ ํ์๊ธฐ ํจ๋์ ํ์ํด๋ ํ์ผ ํญ์ด ์ด๋ฆฌ์ง ์์์ผ ํฉ๋๋ค.
@BrunnerLivio ๋น์ ์ ๋๋ฌด ์๊ธด ๋ถํ์ ๋ํด ๋ถํํฉ๋๋ค ;). ์ด๊ฒ์ ๋๊ตฐ๊ฐ๊ฐ ์์ ์ ๋ถ๋ง, ํ์ ๋๋ ํฌํ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ค๋ฅธ ์ฌ๋์๊ฒ ์์ ์ ๋๋์ ํ๋์ ์์ ํ๊ฑฐ๋ ๊ฐ์ํ๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ์์๋์์ต๋๋ค. ๋น์ ๋ ๋๊ฐ์ดํ๊ณ ์์ต๋๋ค. ๋ค์ ๋งํ์ง๋ง, ์ด ๋ฌธ์ ๋ ์๋ฌด๋ฐ๋ ๊ฐ์ง ์๋ ํ๋ฆฌ์จ์ด์ ๋๋ค. 4๋ ์ด ์๋์์ต๋๋ค. ๋ชจ๋๊ฐ "๊ทธ๋ค"์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ํ๋ฆฌ์จ์ด์ ๋๋ค. ๊ทธ๋ค์ ์ด ํฌ๋ผ์ ์ฌ๋๋ค์ ๋๋ค. ์ ๊ฐ ์ฝ 1๋ ์ ์ ๊นจ๋ฌ์๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์ด ๊ธฐ๋ฅ์ ํฅ์์ํฌ ์๊ฐ์ด ์์ ์ ๋๋ก ์ผ์ ๋ง์ด ํ๊ณ , ์น์คํฐ์ผ๋ก ํ๋ IDE์ ๋น์ฉ์ ์ง๋ถํ๊ณ ์ถ์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์ง๋ง ๊ท์ฐฎ๊ฒ ํ์ง๋ ์์ ๊ฒ ๊ฐ์์.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌด๋ฃ๋ผ๋ ๊ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๊ตฐ๊ฐ ์๋น์ค ์์ค ๊ณ์ฝ์ ์ ์งํ๊ฑฐ๋ ์ง์์ ์ํด ๋์ ์ง๋ถํ๋ ๊ฒ๊ณผ๋ ๋ค๋ฆ
๋๋ค. "๊ณ ๊ฐ"์ด๋ผ๋ ๋จ์ด๋ ๊ตฌ๋งคํ ์ ํ์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์
๊ทธ๋์ ๋์์
๋ด๊ฐ ์๊ฐํ๋ ๋ ๋ค๋ฅธ ๋์:
์์ฒด ์ฌ์ด๋๋ฐ ๋ฒํผ๊ณผ ํจ๋์ด ์๋ Explorer ํธ๋ฆฌ๋ฅผ ๋ชจ๋ฐฉํ๋ ํ์ฅ ํ๋ก๊ทธ๋จ์ ๋น๋ํ๊ณ ์ฌ์ฉํ์ธ์.
๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๋ ๊ฒ ํ๋ค.
pt., 7.02.2020, 02:15 uลผytkownik Hecatron [email protected]
๋ํผ์ฌ์ฐ:
๊ฐ์ธ์ ์ผ๋ก ์์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์ง๋ง ๋๊ตฌ์๊ฒ๋ ๋ฐฉํด๊ฐ ๋์ง๋ ์์ ๊ฒ ๊ฐ์์
๊ทธ ์์
๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌด๋ฃ๋ผ๋ ๊ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๊ตฐ๊ฐ๊ฐ ๊ทธ๊ฒ์ ๋ค๊ณ ์๋ ๊ฒ ๊ฐ์ง ์์ต๋๋ค.
์๋น์ค ์์ค ๊ณ์ฝ์ ๋ฐ๋ฅด๊ฑฐ๋ ์ง์ ๋น์ฉ์ ์ง๋ถํฉ๋๋ค. ๋จ์ด๋ถํฐ
"๊ณ ๊ฐ"์ ๊ตฌ๋งคํ ์ ํ์ ์๋ฏธํฉ๋๋ค.๊ทธ๋์ ๋์์
- ๋๊ตฐ๊ฐ๊ฐ ์์ค๋ฅผ ํฌํฌํ๊ณ , ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ , ํ์ ๋ฐํํฉ๋๋ค.
์์ฒญํ ๋ค์ ํฌํจํ๋๋ก ์์ฒญํ์ญ์์ค.- ๋ค๋ฅธ ์ต์ ์ผ๋ก Visual Studio 2019 Community๋ฅผ ์ฌ์ฉํด ๋ณด์ญ์์ค.
๋ํ ์ค์ฒฉ์ด ์๊ธฐ ๋๋ฌธ์ ๋ฌด๋ฃ(์คํ ์์ค๋ ์๋)- ์ ์ถ๊ฐ๋ ๋๊น์ง ๋ค๋ฅธ ๊ฒ์ ์ฌ์ฉํ์ญ์์ค.
โ
์ด ์ค๋ ๋์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/microsoft/vscode/issues/6328?email_source=notifications&email_token=ACJ4R34R3CWQNAAMHTCOP2TRBSY3TA5CNFSM4CDVJHV2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LDNMVX
๋๋ ๊ตฌ๋ ์ทจ์
https://github.com/notifications/unsubscribe-auth/ACJ4R3YUKMXFVOO5NSXSQ6DRBSY3TANCNFSM4CDVJHVQ
.
์ด๊ฒ์ ์ฝ๊ฐ์ ์ง๋ณด !! 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 ๋๋ฌธ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
@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
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ ๋๊ท๋ชจ ํ๋ก์ ํธ์ ์ค์ํ ๊ธฐ๋ฅ์ ๋๋ค. Angular ํ๋ก์ ํธ์ asp.net vNext๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ด์ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ์๋์ผ๋ก ์ง์ ํฉ๋๋ค(์ด๋ฆ ์ง์ ).
VS Code Explorer์์ ๋ค์์ ์ป์์ต๋๋ค.
๊ฐ ๊ตฌ์ฑ ์์์ ๋ํ ํด๋๋ฅผ ๋ง๋๋ ๊ฒ์ ๊ฐ๋ ํ๋ก์ ํธ์ ๋ํ ์๋ชป๋ ์๋ฃจ์ ์ ๋๋ค(์ฐธ์กฐ๋ฅผ ๋ณ๊ฒฝํด์ผ ํจ).
VS Code๋ก ์ด๋ํ๋ ค๋ฉด ์ด ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค.