๐Ÿ’ป Programming/Computer General (19)

๋งฅ๋ถ ๋ธ”๋กœ๊น…์„ ์œ„ํ•œ ์ดˆ๊ฐ„๋‹จ ๊ทธ๋ฆผ๊ทธ๋ฆฌ๊ธฐ ์•ฑ (๋งฅ๋ถ ๋ฒ„์ „ ๊ทธ๋ฆผํŒ)

์•ˆ๋…•ํ•˜์„ธ์š”, ์˜ค๋Š˜์€ ๋งฅ๋ถ์šฉ ๊ทธ๋ฆผ๊ทธ๋ฆฌ๊ธฐ ์•ฑ์„ ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

ํฌํ† ์ƒต์ด๋‚˜ ์œ ์‚ฌ ์•ฑ๋“ค์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์šด ๊ทธ๋ฆผ๊ทธ๋ฆฌ๊ธฐ ์•ฑ์ด ์•„๋‹Œ ์ •๋ง ๊ฐ„๋‹จํ•œ ๊ทธ๋ฆผ๊ทธ๋ฆฌ๊ธฐ ์•ฑ์ž…๋‹ˆ๋‹ค.

์œˆ๋„์šฐ์—๋Š” ๋ณ„๋„๋กœ ์„ค์น˜ํ•˜์ง€ ์•Š์•„๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋”ธ๋ ค์˜ค๋Š” ๊ทธ๋ฆผ๊ทธ๋ฆฌ๊ธฐ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ”๋กœ "๊ทธ๋ฆผํŒ(์˜๋ฌธ์œผ๋กœ๋Š” paint)"์ด๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ธ๋ฐ์š”

์ „ ๊ทธ ํ”„๋กœ๊ทธ๋žจ์„ ํ•œ๋ฒˆ ์‚ดํŽด๋ณด๊ณ ๋Š” "๋ˆ„๊ฐ€ ์ด๋Ÿฐ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ์ง€?" ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณด๊ฒŒ๋˜์—ˆ๋Š”๋ฐ์š”

๊ทธ๋ ‡๊ฒŒ ์‰ฌ์šธ ์ˆ˜๊ฐ€ ์—†๋”๊ตฐ์š”

๊ทธ ํ›„๋กœ๋Š” ์ €๋„ ๋งค์šฐ ์• ์šฉํ–ˆ๋˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ”๋กœ ๊ทธ๋ฆผํŒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ๋งฅ๋ถ์—์„œ๋Š” ๊ทธ๋Ÿฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ตœ๊ทผ์— ๋‹ค์‹œ ์ฐพ์•„๋ณด๋‹ˆ ํŽ˜์ธํŠธ X ๋ผ๋Š” ์•ฑ์ด ์žˆ๋”๊ตฐ์š”.

์•ฑ์Šคํ† ์–ด์—์„œ paintx ๋กœ ๊ฒ€์ƒ‰์„ ํ•˜์‹œ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ผ๋ฐ˜ ๋ฒ„์ „๊ณผ ํ”„๋ฆฌ๋ฏธ์—„ ๋ฒ„์ „์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

๋งฅ์šฉ ๊ทธ๋ฆผ๊ทธ๋ฆฌ๊ธฐ ์•ฑ ํŽ˜์ธํŠธ X

์ €๋Š” ์ผ๋ฐ˜ ๋ฒ„์ „์„ ๋ฌด๋ฃŒ๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

์‹คํ–‰์‹œํ‚ค๋ฉด UI ์ž์ฒด๊ฐ€ ์œˆ๋„์šฐ์˜ ๊ทธ๋ฆผํŒ๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํŽ˜์ธํŠธ X ์‹คํ–‰ํ™”๋ฉด

์œˆ๋„์šฐ์˜ ๊ทธ๋ฆผํŒ๊ณผ ํ•œ๋ฒˆ ๋น„๊ตํ•ด๋ณผ๊นŒ์š”?

์™€~ ์–ด์ฉœ ์ด๋ ‡๊ฒŒ ๋น„์Šทํ• ๊นŒ์š”~

์ƒ๊ธด๊ฒƒ ๋ถ€ํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋น„์Šทํ•˜๊ณ ์š”, ๊ธฐ๋Šฅ์—ญ์‹œ ๋Œ€๋ถ€๋ถ„ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผํŒ์„ ์ž์ฃผ ์‚ฌ์šฉํ•˜์…จ๋˜ ๋ถ„๋“ค์€ ์‰ฝ๊ฒŒ ์ ์‘ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์—ญ์‹œ ์• ํ”Œ์˜ ์•ฑ์Šคํ† ์–ด์—๋Š” ์™„์ „๋ฌด๋ฃŒ ์•ฑ์ด ๊ฑฐ์˜ ์—†์ฃ .

๋ฌด๋ฃŒ๋กœ ๋‹ค์šด๋ฐ›์•„์„œ ์‚ฌ์šฉ์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ทธ๋ฆฌ๋Š” ๊ทธ๋ฆผ์˜ ํฌ๊ธฐ๊ฐ€ ์ผ์ • ์‚ฌ์ด์ฆˆ๋ฅผ ๋„˜์–ด๊ฐ€๊ฒŒ๋˜๋ฉด ์›Œํ„ฐ๋งˆํฌ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ข€ ๋” ์ •ํ™•ํžˆ ๋ง์”€๋“œ๋ฆฌ์ž๋ฉด ๊ฐ€๋กœ ๋˜๋Š” ์„ธ๋กœ ์–ด๋Š ํ•œ์ชฝ์ด๋ผ๋„ 200ํ”ฝ์…€์„ ๋„˜์–ด๊ฐ€๋ฉด ์›Œํ„ฐ๋งˆํฌ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

์ฆ‰, 1024 x 199 ๋Š” ์›Œํ„ฐ๋งˆํฌ๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š์ง€๋งŒ 199 x 200 ์‚ฌ์ด์ฆˆ์—์„œ๋Š” ์›Œํ„ฐ๋งˆํฌ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

ํŽ˜์ธํŠธ X Lite ์›Œํ„ฐ๋งˆํฌ

 

ํ•ด๋‹น ์›Œํ„ฐ๋งˆํฌ๋ฅผ ์—†์• ๋ ค๋ฉด ์šฐ์ธก ์ƒ๋‹จ์˜ Remove Watermark & AD ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ผ์ • ๊ธˆ์•ก์„ ์ง€๋ถˆํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํŽ˜์ธํŠธ X Lite ์›Œํ„ฐ๋งˆํฌ & ๊ด‘๊ณ  ์ œ๊ฑฐ ํŒ์—…์ฐฝ

์ปคํ”ผ ํ•œ์ž” ๊ฐ’๋„ ์•ˆ๋˜๋Š” $5 ๋ฅผ ๊ฒฐ์ œํ•˜๋ฉด ์›Œํ„ฐ๋งˆํฌ ๋ฐ ๊ด‘๊ณ ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ๊ทธ๋ ‡๊ฒŒ ํฌ๊ฒŒ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ผ์ด ์—†์–ด ์ผ๋‹จ ๋ฌด๋ฃŒ๋กœ ๊ทธ๋ƒฅ ์‚ฌ์šฉ์ค‘์ž…๋‹ˆ๋‹ค.

์–ด๋– ์‹ ๊ฐ€์š”? ๋ธ”๋กœ๊น… ์šฉ๋„๋กœ ์ž์ž˜ํ•˜๊ฒŒ ๊ทธ๋ฆผ์„ ๊ทธ๋ ค์•ผ ํ•  ๋•Œ๋„ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์ง€ ์•Š๋‚˜์š”?

 

์ด์ƒ์œผ๋กœ ๋งฅ๋ถ์šฉ ๊ทธ๋ฆผ๊ทธ๋ฆฌ๊ธฐ ์•ฑ ํŽ˜์ธํŠธX ํฌ์ŠคํŒ…์„ ๋งˆ์นฉ๋‹ˆ๋‹ค.

ํŠน๋ณ„ํžˆ ๋‚ด๊ฐ€ ๋ญ ์ž˜๋ชปํ•œ๊ฑฐ ์—†๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ ์›น์‚ฌ์ดํŠธ๋ฅผ ์„œํ•‘ํ•˜๋‹ค๋ณด๋ฉด ๊ผญ ๋‚˜๋งŒ ์ด์ƒํ•œ ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚˜๊ธฐ๋„ ํ•œ๋‹ค.

์ด๋ฒˆ์—๋„ ์ฒ˜์Œ๋ณด๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ์งง๊ฒŒ ๊ธฐ๋ก์œผ๋กœ ๋‚จ๊ฒจ๋ณธ๋‹ค.

ํฌ๋กฌ์„ ๋ฉ”์ธ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š”๋ฐ ์–ผ๋งˆ ์ „๋ถ€ํ„ฐ ํŠน์ • ์‚ฌ์ดํŠธ์—๋งŒ ์ ‘์†ํ•˜๋ ค๊ณ  ํ• ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋–ด๋‹ค.

HTTP Bad Request - Header Field Too Long

์™€~ ์ด๊ฑด ๋ญ์ง€? ํ—ค๋” ํ•„๋“œ ๊ธธ์ด๊ฐ€ ใ„ด ~~~~ใ…“ ๋ฌด ๊ธธ๋‹ค๊ณ  ?? ๋‚œ ๋ญ ํ•œ๊ฒŒ ์—†๋Š”๋ฐ? ๋‚œ ๊ทธ๋ƒฅ ์‚ฌ์ดํŠธ์— ์ ‘์†์„ ์‹œ๋„ํ•œ๊ฒƒ ๋ฟ์ธ๋ฐ?

์‚ฌํŒŒ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ์ ‘์†์„ ์‹œ๋„ํ•˜๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ์ ‘์†์ด ๋œ๋‹ค.

๋ญ์ง€?

์—ญ์‹œ ๋ธŒ๋ผ์šฐ์ € ๋ฌธ์ œ์˜€์–ด.

ํฌ๋กฌ์—์„œ ์ฟ ํ‚ค์™€ ์ž„์‹œ์ธํ„ฐ๋„ท ํŒŒ์ผ๋“ค์„ ์‚ญ์ œํ•˜๊ณ  ์žฌ์ ‘์†์„ ์‹œ๋„ํ–ˆ๋‹ค.

์ •.์ƒ.์ ‘.์†.

๋ธŒ๋ผ์šฐ์ €์— ์บ์‹ฑ๋œ ๋ญ”๊ฐ€๊ฐ€ header field์™€ ์—ฐ๊ด€๋˜์–ด์žˆ๋Š”๊ฑด์ง€ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ์ผ€์ด์Šค์˜€๋‹ค.

MacOS Catalina ์—…๋ฐ์ดํŠธ ํ›„ ๋ฐœ์ƒํ•œ Invalid active developer path ์˜ค๋ฅ˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

 

MacOS๋ฅผ Catalina๋กœ ์—…๋ฐ์ดํŠธ ํ•˜๊ณ ๋‚˜๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.

 

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), 
missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

 

๊ทธ๋ฆฌ๊ณ  IntelliJ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฒฝ๊ณ ํŒ์—…์„ ๋„์›Œ์ฃผ์—ˆ๋‹ค.

 

 

๋ญ์ง€? ์ด๋Ÿฐ ์˜ค๋ฅ˜๋Š” ์ฒจ์ธ๋ฐ?? ์ผ๋‹จ ๊ธฐ์กด์— ์ž˜ ๋˜๋˜๊ฒƒ์ด๋ผ ์„ค์ •๋งŒ ๋ฐ”๊พธ๋ฉด ๋˜๊ฒ ์ง€ ํ•˜๊ณ  Configure์— ๋“ค์–ด๊ฐ€๋ณด๋‹ˆ 

 

 

path ๊ด€๋ จํ•ด์„œ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ์ œ์ผ ์ƒ๋‹จ์— ์žˆ๋Š” Git ์‹คํ–‰ํŒŒ์ผ ์œ„์น˜๋ฅผ ์„ ํƒํ•ด์ฃผ๋Š” ๊ณณ์ธ๋ฐ..์ด๋ฏธ ์ž๋™์œผ๋กœ ์ฐพ์•„์„œ ์„ค์ •์ด ๋˜์–ด์žˆ๋‹ค. ํ•˜์ง€๋งŒ Test๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„ 

 

์ด๋ ‡๊ฒŒ ๋˜‘๊ฐ™์€ ์˜ค๋ฅ˜๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

์ฝ˜์†”์ฐฝ์—์„œ ์ง์ ‘ git ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด๋ณด๋‹ˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

์ด๋Ÿด๋• ๊ตฌ๊ธ€์‹ ์—๊ฒŒ ๋ฌผ์–ด๋ณด๋ฉด ๋ชจ๋“  ํ•ด๊ฒฐ์ฑ…์ด ๋‹ค ์žˆ๋‹ค.

๊ฒ€์ƒ‰ํ•ด๋ณธ ๊ฒฐ๊ณผ xcode-select --install ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด cli ํˆด์„ ์„ค์น˜ํ•ด์ฃผ๋‹ˆ ๋”์ด์ƒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๋‹ค.

 

[๋ฉ”์ด๋ธ ํ”„๋กœ์ ํŠธ์— external jar ํŒŒ์ผ์„ ์˜์กด์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•]

 

maven ํ”„๋กœ์ ํŠธ์˜ ์›น์•ฑ์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•˜๋˜ ์ค‘ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ๋ฅผ ๋ถ™์ผ ์ผ์ด ์žˆ์—ˆ๋‹ค. ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ๋Š” ์ฝ”๋ชจ๋ž€์„ ์‚ฌ์šฉํ•˜์˜€๊ณ , ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ.

๋นŒ๋“œ ํ•  ๋•Œ ์ฝ”๋ชจ๋ž€ ๋ฉ”์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์ถ”๊ฐ€๋กœ ๋‘ ๊ฐœ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ war ์•ˆ์— ๋ฌถ์–ด ์ฃผ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ๋ณ„๋„์˜ lib ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์— ํ•„์š”ํ•œ jar ํŒŒ์ผ๋“ค์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  pom.xml ํŒŒ์ผ์— ์˜์กด์„ฑ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

 

๊ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์˜ groupId, artifactId, version ์ •๋ณด๋Š” ์ž„์˜๋กœ ์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ๋„ฃ์–ด์ค˜๋„ ๋ฌด๊ด€ํ•œ๊ฒƒ ๊ฐ™๊ณ , systemPath๋งŒ ์ž˜ ์žก์•„์ฃผ๋ฉด ๋œ๋‹ค. 

 

maven์˜ systemPath๋Š” scope์ด system์ผ ๋•Œ์—๋งŒ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์•ˆ๋…•ํ•˜์„ธ์š”, ์ผ€์ด์น˜์ž…๋‹ˆ๋‹ค.


์˜ค๋Š˜๋„ ์‰ฝ๊ฒŒ ๋„˜์–ด๊ฐ€์ง€๋ฅผ ์•Š๊ณ  ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋„ค์š”. ์˜ค๋Š˜์€ ์œˆ๋„์šฐ์šฉ ๋„์ปค๋ฅผ ์„ค์น˜๋ฅผ ํ–ˆ๋‹ค๊ฐ€ jre 8 ์ด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘์„ ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋œ ์ผ€์ด์Šค์ž…๋‹ˆ๋‹ค.


jdk7, 8, jre7, 8์„ ์œˆ๋„์šฐ10 ์— ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉ์ค‘์ธ ํ™˜๊ฒฝ์ธ๋ฐ์š” jdk8์„ ์„ค์น˜ํ•ด๋ณด์‹  ๋ถ„๋“ค์€ ์•„์‹œ๊ฒ ์ง€๋งŒ 7๋ฒ„์ „ ๊นŒ์ง€๋Š” c:\Program Files\Java ๋ฐ‘์— ์„ค์น˜๊ฐ€ ๋˜๊ณ  ํ™˜๊ฒฝ์„ค์ • ๋ณ€์ˆ˜์—๋„ ํ•ด๋‹น ๊ฒฝ๋กœ์˜ bin๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์„ค์ •ํ•ด์คฌ์—ˆ๋Š”๋ฐ(C:\Program Files\Java\jre7\bin), 8๋ฒ„์ „๋ถ€ํ„ฐ๋Š” C:\ProgramData\Oracle\Java\javapath\java.exe ๋ฅผ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ๊ฐ€์ง€๋„๋ก ํ•ด๋†จ๋”๊ตฐ์š”. ๋ฌผ๋ก  ์„ค์น˜ ๊ฒฝ๋กœ๋Š” Program Files\Java\jdk1.8 ์ด์—ˆ๋Š”๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ง์ด์ฃ . ์–ด์ฐŒ๋˜์—ˆ๊ฑด ์ž˜ ์“ฐ๊ณ ์žˆ์—ˆ๋Š”๋ฐ, ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๊ฑด ์ฑ—๋ด‡ ์˜คํ”ˆ์†Œ์Šค ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋ ค๊ณ  ์œˆ๋„์šฐ์šฉ ๋„์ปค๋ฅผ ์„ค์น˜ํ•ด์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ ๋‚œ ๋’ค์— ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ‘์ž๊ธฐ ์ดํด๋ฆฝ์Šค(Oxygen)๊ฐ€ ์‹คํ–‰์ด ์•ˆ๋˜๋”๊ตฐ์š”. 

๋ญ์ง€? ๋ญ์ง€? ํ•˜๋‹ค๊ฐ€, ์ดํด๋ฆฝ์Šค๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•ด๋ณด๊ณ  ์‹คํ–‰ํ–ˆ๋”๋‹ˆ ์ฒ˜์Œ ํ•œ๋ฒˆ์€ ์ž˜ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ดํด๋ฆฝ์Šค๋ฅผ ์ข…๋ฃŒํ–ˆ๋‹ค๊ฐ€ ์‹คํ–‰์‹œํ‚ค๋ฉด ๋˜ ์•ˆ๋˜๊ณ  ์ฐธ ํฌํ•œํ•œ ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ใ… ใ… 


์•„๋ฌดํŠผ ํ•œ์ฐธ์„ ํ•ด๋ฉ”๋‹ค๊ฐ€ neon ๋ฒ„์ „์œผ๋กœ ๋‹ค์‹œ ์„ค์น˜ํ•ด์„œ๋„ ํ•ด๋ณด๊ณ  ํ•˜๋‹ค๊ฐ€ java๋ฅผ ์‹คํ–‰ํ•ด๋ดค๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๊ตฐ์š”.


Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/Object


ํ—ˆํ—ˆ, ์ด๋Ÿฐ ๋ฉ”์‹œ์ง€๋Š” ๋˜ ์ฒ˜์Œ ๋ด์„œ ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ดค๋”๋‹ˆ jdk, jre ์„ค์น˜๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์•ˆ๋œ ์ผ€์ด์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€ ๊ฒƒ ๊ฐ™๋”๊ตฐ์š”.


์กฐ๊ธˆ ์ „๊นŒ์ง€ ์•„๋ฌด ๋ฌธ์ œ ์—†๋˜๊ฒŒ ๋„์ปค๋ฅผ ์„ค์น˜ํ–ˆ๋”๋‹ˆ ์ž๋ฐ”๊ฐ€ ์‹คํ–‰์ด ์•ˆ๋œ๋‹ค? ์ข€ ์ดํ•ด๊ฐ€ ์•ˆ๋˜๋Š” ๋ถ€๋ถ„์ด๋ผ์„œ java๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ๋•Œ Program Files ํ•˜์œ„์˜ java๋ฅผ ์“ฐ๋Š”๊ฑด์ง€ ProgramDataํ•˜์œ„์˜ java๋ฅผ ์“ฐ๋Š”๊ฑด์ง€ ํ™•์ธํ•ด๋ณด๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋•Œ ์‚ฌ์šฉํ•œ ๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.


 for %i in (java.exe) do @echo. %~$PATH:i


์œˆ๋„์šฐ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•ด์ฃผ๋Š” for ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•œ ๊ฒƒ์œผ๋กœ ๋„์›€๋ง์„ ์ถœ๋ ฅํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.



C:\Users\dev>for /?

ํŒŒ์ผ ์ง‘ํ•ฉ์—์„œ ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ง€์ •๋œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.


FOR %๋ณ€์ˆ˜ IN (์ง‘ํ•ฉ) DO ๋ช…๋ น์–ด [๋ช…๋ น์–ด ๋งค๊ฐœ ๋ณ€์ˆ˜]


  %๋ณ€์ˆ˜      ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํ•œ ๋ฌธ์ž๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  (์ง‘ํ•ฉ)      ํ•˜๋‚˜ ์ด์ƒ์˜ ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  ๋ช…๋ น์–ด      ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•  ๋ช…๋ น์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  ๋ช…๋ น์–ด-๋งค๊ฐœ ๋ณ€์ˆ˜

              ์ง€์ •๋œ ๋ช…๋ น์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋‚˜ ์Šค์œ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.


์ผ๊ด„ ํ”„๋กœ๊ทธ๋žจ์—์„œ FOR ๋ช…๋ น์„ ์“ฐ๋ ค๋ฉด, '%๋ณ€์ˆ˜' ๋Œ€์‹  '%%๋ณ€์ˆ˜'๋ฅผ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค.

๋ณ€์ˆ˜ ์ด๋ฆ„์—์„œ๋Š” ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ณ„ํ•˜๋ฏ€๋กœ %i์™€ %I๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค.


๋ช…๋ น ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋ฉด FOR ๋ช…๋ น์— ์•„๋ž˜์™€ ๊ฐ™์€ ์ถ”๊ฐ€์ ์ธ ํ˜•ํƒœ๊ฐ€

์ง€์›๋ฉ๋‹ˆ๋‹ค.


FOR /D %๋ณ€์ˆ˜ IN (์ง‘ํ•ฉ) DO ๋ช…๋ น [๋ช…๋ น-๋งค๊ฐœ ๋ณ€์ˆ˜]


   ์ง‘ํ•ฉ์— ๋Œ€ํ‘œ ๋ฌธ์ž๊ฐ€ ์žˆ์œผ๋ฉด ํŒŒ์ผ ์ด๋ฆ„ ๋Œ€์‹  ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„๊ณผ

   ์ผ์น˜ํ•˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.


FOR /R [[๋“œ๋ผ์ด๋ธŒ:]๊ฒฝ๋กœ] %๋ณ€์ˆ˜ IN (์ง‘ํ•ฉ) DO ๋ช…๋ น [๋ช…๋ น-๋งค๊ฐœ ๋ณ€์ˆ˜]


   [๋“œ๋ผ์ด๋ธŒ:]๊ฒฝ๋กœ๋ฅผ ๋ฃจํŠธ๋กœ ํ•˜์—ฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ํŠธ๋ฆฌ๋ฅผ ๋”ฐ๋ผ ๋‚ด๋ ค๊ฐ€๋ฉฐ

   FOR ๊ตฌ๋ฌธ์„ ํŠธ๋ฆฌ์˜ ๊ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. /R ์Šค์œ„์น˜ ๋’ค์—

   ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์œผ๋ฉด ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

   ์ง‘ํ•ฉ์— ๋งˆ์นจํ‘œ(.)๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉด ๋””๋ ‰ํ„ฐ๋ฆฌ ํŠธ๋ฆฌ๋งŒ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.


FOR /L %๋ณ€์ˆ˜ IN (์‹œ์ž‘,๋‹จ๊ณ„,๋) DO ๋ช…๋ น [๋ช…๋ น-๋งค๊ฐœ ๋ณ€์ˆ˜]


   ์ง‘ํ•ฉ์€ ๋‹จ๊ณ„๋ณ„๋กœ ์ฆ๊ฐ€/๊ฐ์†Œํ•˜๋Š” ์‹œ์ž‘๋ถ€ํ„ฐ ๋๊นŒ์ง€์˜ ์ผ๋ จ์˜ ์ˆซ์ž์ž…๋‹ˆ๋‹ค.

   ๋”ฐ๋ผ์„œ (1,1,5)๋Š” 1 2 3 4 5๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ (5,-1,1)์€ 5 4 3 2 1์„

   ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.


FOR /F ["์˜ต์…˜"] %๋ณ€์ˆ˜ IN (ํŒŒ์ผ-์ง‘ํ•ฉ) DO ๋ช…๋ น [๋ช…๋ น-๋งค๊ฐœ ๋ณ€์ˆ˜]

FOR /F ["์˜ต์…˜"] %๋ณ€์ˆ˜ IN ("๋ฌธ์ž์—ด") DO ๋ช…๋ น์–ด [๋ช…๋ น-๋งค๊ฐœ ๋ณ€์ˆ˜]

FOR /F ["์˜ต์…˜"] %๋ณ€์ˆ˜ IN ('๋ช…๋ น์–ด') DO ๋ช…๋ น์–ด [๋ช…๋ น-๋งค๊ฐœ ๋ณ€์ˆ˜]


    ๋˜๋Š” usebackq ์˜ต์…˜์ด ์žˆ๋Š” ๊ฒฝ์šฐ:


FOR /F ["์˜ต์…˜"] %๋ณ€์ˆ˜ IN (ํŒŒ์ผ-์ง‘ํ•ฉ) DO ๋ช…๋ น [๋ช…๋ น-๋งค๊ฐœ ๋ณ€์ˆ˜]

FOR /F ["์˜ต์…˜"] %๋ณ€์ˆ˜ IN ('๋ฌธ์ž์—ด') DO ๋ช…๋ น์–ด [๋ช…๋ น-๋งค๊ฐœ ๋ณ€์ˆ˜]

FOR /F ["์˜ต์…˜"] %๋ณ€์ˆ˜ IN (`๋ช…๋ น์–ด`) DO ๋ช…๋ น์–ด [๋ช…๋ น-๋งค๊ฐœ ๋ณ€์ˆ˜]


   ํŒŒ์ผ-์ง‘ํ•ฉ์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ํŒŒ์ผ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ-์ง‘ํ•ฉ์˜ ๊ฐ ํŒŒ์ผ์€

   ๋‹ค์Œ ํŒŒ์ผ๋กœ ์ด๋™ํ•˜๊ธฐ ์ „์— ์—ด๊ธฐ ๋˜๋Š” ์ฝ๊ธฐ ๋“ฑ์˜ ์ž‘์—…์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

   ํŒŒ์ผ์„ ์ฝ์–ด์„œ ๋ฌธ์ž์—ด์„ ํ•œ ํ–‰์”ฉ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ฐ ํ–‰์„ 0๊ฐœ ์ด์ƒ์˜

   ํ† ํฐ์œผ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๊ณผ์ •์œผ๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. For ๋ฃจํ”„์˜ ๋ณธ๋ฌธ์€๋ฐœ๊ฒฌ๋œ ํ† ํฐ ๋ฌธ์ž์—ด์— ์„ค์ •๋œ ๋ณ€์ˆ˜ ๊ฐ’(๋“ค)๊ณผ ํ•จ๊ป˜ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

   ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ /F๋Š” ํŒŒ์ผ์˜ ๊ฐ ํ–‰์œผ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌ๋œ ํ† ํฐ์„ ์ฒซ ๋ฒˆ์งธ ๊ณต๋ฐฑ์—์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๋นˆ ํ–‰์€ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. "์˜ต์…˜" ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•˜์—ฌ

   ๊ธฐ๋ณธ ๊ตฌ๋ฌธ ๋ถ„์„ ๋™์ž‘์„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๊ตฌ๋ฌธ ๋ถ„์„

   ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํ‚ค์›Œ๋“œ๋ฅผ ๊ฐ–๋Š” ์ธ์šฉ ๋ถ€ํ˜ธ๋กœ

   ๋ฌถ์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

   ํ‚ค์›Œ๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.


   eol=c  - ํ–‰ ๋ ์„ค๋ช… ๋ฌธ์ž๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค (ํ•˜๋‚˜๋งŒ)

   skip=n  - ํŒŒ์ผ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์—์„œ ๋ฌด์‹œํ•  ํ–‰์˜ ๊ฐœ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

   delims=xxx  - ๊ตฌ๋ถ„ ๋ฌธ์ž ์ง‘ํ•ฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.  ์ด๊ฒƒ์€ ๊ณต๋ฐฑ ๋˜


๊ณ„์†ํ•˜๋ ค๋ฉด ์•„๋ฌด ํ‚ค๋‚˜ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค . . .


๋„ˆ๋ฌด ๊ธธ์–ด์„œ ์งง๊ฒŒ ๋Š์—ˆ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์‚ฌ์šฉํ•œ ๋ช…๋ น์–ด๋Š” ์œ ๋‹‰์Šค์˜ which java์™€ ๊ฐ™์ด PATHํ™˜๊ฒฝ๋ณ€์ˆ˜์— ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ํ›‘์œผ๋ฉด์„œ ์ œ์ผ ์ฒ˜์Œ ๋งŒ๋‚˜๋Š” java์œ„์น˜๋ฅผ ์ถœ๋ ฅํ•ด์ค๋‹ˆ๋‹ค. ์ฆ‰, ์œˆ๋„์šฐ์šฉ which ๋ช…๋ น์–ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.



์ด์ƒ์ž…๋‹ˆ๋‹ค.




์•„๋ž˜๋Š” ๊ธฐ๋ก์„ ์œ„ํ•ด์„œ ๊ฐœ์ธ์ ์œผ๋กœ ์ž‘์„ฑํ–ˆ๋˜ ๋…ธํŠธ์ž…๋‹ˆ๋‹ค.

์˜คํ”ˆ์†Œ์Šค ์ฑ—๋ด‡ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด์„œ Docker ์„ค์น˜ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•œ ์ดํ›„๋ถ€ํ„ฐ ์ดํด๋ฆฝ์Šค ์‹คํ–‰์ด ์•ˆ๋˜๋Š” ํ˜„์ƒ ๋ฐœ์ƒ
    - ๋‹ค์‹œ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— Oxygen๋ฒ„์ „ ์ธ์Šคํ†จ๋Ÿฌ๋ฅผ ์ด์šฉํ•ด์„œ ์žฌ์„ค์น˜ ํ•œ ๋’ค launchํ•˜๋ฉด ๊ธฐ๋™์ด ๋˜๋‚˜, ์žฌ๋ถ€ํŒ… ํ›„์—๋Š” ์—ญ์‹œ ๋˜ ์•ˆ๋จ
    - Neon ๋ฒ„์ „์ฒ˜๋Ÿผ ํŒจํ‚ค์ง€๋กœ ๋ฐฐํฌ๋˜๋Š” ์ดํด๋ฆฝ์Šค๋Š” ์ƒˆ๋กœ ๋‹ค์šด๋ฐ›์•„์„œ ์‹คํ–‰ํ•ด๋„ ์‹คํ–‰ ์•ˆ๋จ
    - Java๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋‹ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋ฐœ์ƒ
        - Error occurred during initialization of VM
          java/lang/NoClassDefFoundError: java/lang/Object
    - ํ˜„์žฌ jdk1.7๊ณผ 1.8 ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด์žˆ๊ณ  jre์—ญ์‹œ 7, 8 ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด์žˆ์Œ
    - ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์–ด๋Š ์œ„์น˜์˜ ์ž๋ฐ”๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธ
        for %i in (java.exe) do @echo. %~$PATH:i
        - C:\ProgramData\Oracle\Java\javapath\java.exe
    - jdk 1.8์„ ์„ค์น˜ํ•˜๋ฉด ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ์œ„ ๊ฒฝ๋กœ๋กœ ์„ธํŒ…์ด ๋จ
    - Docker๋ฅผ ์„ค์น˜ํ•˜๊ณ ๋‚˜์„œ ์œ„ java๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•จ
    - jdk1.7, jdk1.8 ์˜ java.exe๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ  ์‹คํ–‰์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ
    - jdk1.8์„ ์žฌ์„ค์น˜ํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ java๊ฐ€ ์‹คํ–‰์ด ๋˜๋„๋ก ํ•  ์ˆ˜๋„ ์žˆ์œผ๋‚˜ ์ผ๋‹จ์€ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ํ™•์ธ
    - ํ™˜๊ฒฝ๋ณ€์ˆ˜์—๋Š” JAVA_HOME์— jdk1.8์˜ ํŒจ์Šค๊ฐ€ ์žกํ˜€์žˆ๊ณ  PATH์— %JAVA_HOME%\bin์ด ์žˆ์Œ, ๊ทธ๋ฆฌ๊ณ  ProgramData\OracleJava\javapath๋„ ์žกํ˜€์žˆ์Œ
    - ํ™˜๊ฒฝ๋ณ€์ˆ˜์—์„œ ProgramData\OracleJava\javapath ๊ฒฝ๋กœ๋Š” ์ œ๊ฑฐํ•จ
    - ๋‹ค์‹œ ์ดํด๋ฆฝ์Šค๋ฅผ ์žฌ๊ธฐ๋™ ํ•ด๋ณด๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ๊ธฐ๋™ํ•จ

    - jre1.8์˜ java๋Š” ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰์ด ์•ˆ๋จ -> ์žฌ์„ค์น˜






์•ˆ๋…•ํ•˜์„ธ์š” ์ผ€์ด์น˜์ž…๋‹ˆ๋‹ค.


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


์ตœ๊ทผ์— Node.js ์•ฑ์„ ํ…Œ์ŠคํŠธํ•ด๋ณผ ์ผ์ด ์žˆ์—ˆ๋Š”๋ฐ ๊ณ ์ •์ ์œผ๋กœ ํŠน์ • ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์œˆ๋„์šฐ์—์„œ cmd ์ฐฝ์„ ๋„์›Œ์„œ ์‹คํ–‰์‹œ์ผฐ๋‹ค๊ฐ€ Ctrl + C๋กœ  ํ”„๋กœ๊ทธ๋žจ์„ ์ค‘์ง€์‹œ์ผฐ๋Š”๋ฐ ๋‹ค์‹œ ๊ธฐ๋™์‹œ์ผฐ๋”๋‹ˆ ํฌํŠธ๊ฐ€ ์ด๋ฏธ ์‚ฌ์šฉ์ค‘์ด๋ผ๋ฉด์„œ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ ์ด๋†ˆ์„ ์–ด๋–ป๊ฒŒ ์ฃฝ์—ฌ์•ผ ํ•˜๋‚˜ ์ฐพ์•„๋ดค์Šต๋‹ˆ๋‹ค.


์šฐ์„  ์ œ ํ™˜๊ฒฝ์€ Windows 10์ด๊ตฌ์š” CMD์ฐฝ์„ ๋„์šฐ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๋‚˜์˜ต๋‹ˆ๋‹ค.


์ œ๊ฐ€ ๋ดค๋˜ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋Š” ์•„๋ž˜์™€ ๊ฐ™๊ตฌ์š”


Error: listen EADDRINUSE :::2002


2002๋ฒˆ ํฌํŠธ๊ฐ€ ์ด๋ฏธ ์‚ฌ์šฉ์ค‘์ด๋ผ๋Š” ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค.


๊ทธ๋Ÿผ ๋ˆ„๊ฐ€ ์ด ํฌํŠธ๋ฅผ ์‚ฌ์šฉ์ค‘์ธ์ง€ ์ฐพ์•„๋ณด์ฃ .


cmd ์ฐฝ์— ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.


C:\Users\dev>netstat -ano|find "2002"

  TCP    0.0.0.0:2002         0.0.0.0:0           LISTENING       5096

  TCP    [::]:2002              [::]:0                 LISTENING       5096


์ถœ๋ ฅ๋œ ๋‚ด์šฉ์€ TCP ํ”„๋กœํ† ์ฝœ์—์„œ 2002๋ฒˆ ํฌํŠธ๋กœ ๋ฆฌ์Šค๋‹ํ•˜๊ณ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ID๊ฐ€ 5096๋ฒˆ์ด๋ผ๋Š” ๊ฑธ ๋งํ•ด์ค๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” 5096 ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฃฝ์ด๋ฉด ๋˜๋Š”๊ฑฐ๊ฒ ์ฃ . ์ฃฝ์ด๊ธฐ ์ „์— ์œ„ ๋ช…๋ น์–ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…์„ ์ข€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.


netstat -ano๋Š” netstat ๋ช…๋ น์–ด๋ฅผ a, n, o ์˜ต์…˜์œผ๋กœ ์‹คํ–‰์‹œํ‚ค๋ผ๋Š” ์˜๋ฏธ์ฃ . ์—ฌ๊ธฐ์„œ a, n, o์— ๋Œ€ํ•œ ์„ค๋ช…์€ netstat /? ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


C:\Users\dev>netstat /?


ํ”„๋กœํ† ์ฝœ ํ†ต๊ณ„์™€ ํ˜„์žฌ TCP/IP ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.


NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]


  -a            ๋ชจ๋“  ์—ฐ๊ฒฐ๊ณผ ์ˆ˜์‹  ๋Œ€๊ธฐ ํฌํŠธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  -b            ๊ฐ ์—ฐ๊ฒฐ ๋˜๋Š” ์ˆ˜์‹  ๋Œ€๊ธฐ ํฌํŠธ ์ƒ์„ฑ๊ณผ ๊ด€๋ จ๋œ ์‹คํ–‰ ํŒŒ์ผ์„

                ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ์•Œ๋ ค์ง„ ์‹คํ–‰ ํŒŒ์ผ์ด ์—ฌ๋Ÿฌ ๋…๋ฆฝ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ

                ํ˜ธ์ŠคํŒ…ํ•  ๊ฒฝ์šฐ ์—ฐ๊ฒฐ ๋˜๋Š” ์ˆ˜์‹  ๋Œ€๊ธฐ ํฌํŠธ ์ƒ์„ฑ๊ณผ ๊ด€๋ จ๋œ

                ๊ตฌ์„ฑ ์š”์†Œ์˜ ์‹œํ€€์Šค๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

                ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์—๋Š” ์‹คํ–‰ ํŒŒ์ผ ์ด๋ฆ„์ด ๋Œ€๊ด„ํ˜ธ๋กœ ์•„๋ž˜์—

                ํ‘œ์‹œ๋˜๊ณ  ์œ„์—๋Š” TCP/IP์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€

                ํ˜ธ์ถœ๋œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜

                ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ ๊ถŒํ•œ์ด ์—†์œผ๋ฉด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

  -e            ์ด๋”๋„ท ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ -s ์˜ต์…˜๊ณผ ํ•จ๊ป˜

                ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  -f            ์™ธ๋ถ€ ์ฃผ์†Œ์˜ FQDN(์ •๊ทœํ™”๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„)์„

                ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  -n            ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ˆซ์ž ํ˜•์‹์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  -o            ๊ฐ ์—ฐ๊ฒฐ์˜ ์†Œ์œ ์ž ํ”„๋กœ์„ธ์Šค ID๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  -p proto      proto๋กœ ์ง€์ •ํ•œ ํ”„๋กœํ† ์ฝœ์˜ ์—ฐ๊ฒฐ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. proto๋Š”

                TCP, UDP, TCPv6 ๋˜๋Š” UDPv6 ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. -s ์˜ต์…˜๊ณผ ํ•จ๊ป˜

                ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœํ† ์ฝœ๋ณ„ ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•  ๊ฒฝ์šฐ proto๋Š” IP, IPv6, ICMP,

                ICMPv6, TCP, TCPv6, UDP ๋˜๋Š” UDPv6 ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

  -q            ๋ชจ๋“  ์—ฐ๊ฒฐ, ์ˆ˜์‹  ๋Œ€๊ธฐ ํฌํŠธ ๋ฐ ๋ฐ”์ธ๋”ฉ๋œ ๋น„์ˆ˜์‹  ๋Œ€๊ธฐ TCP

                ํฌํŠธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”์ธ๋”ฉ๋œ ๋น„์ˆ˜์‹  ๋Œ€๊ธฐ ํฌํŠธ๋Š” ํ™œ์„ฑ ์—ฐ๊ฒฐ๊ณผ ์—ฐ๊ฒฐ๋˜๊ฑฐ๋‚˜

                ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  -r            ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  -s            ํ”„๋กœํ† ์ฝœ๋ณ„ ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ IP, IPv6, ICMP,

                ICMPv6, TCP, TCPv6, UDP ๋ฐ UDPv6์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

                -p ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ๊ฐ’์˜ ์ผ๋ถ€ ์ง‘ํ•ฉ์— ๋Œ€ํ•œ ํ†ต๊ณ„๋งŒ

                ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  -t            ํ˜„์žฌ ์—ฐ๊ฒฐ ์˜คํ”„๋กœ๋“œ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  -x            NetworkDirect ์—ฐ๊ฒฐ, ์ˆ˜์‹ ๊ธฐ ๋ฐ ๊ณต์œ  ๋์ ์„

                ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  -y            ๋ชจ๋“  ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ TCP ์—ฐ๊ฒฐ ํ…œํ”Œ๋ฆฟ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

                ๋‹ค๋ฅธ ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  interval      ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ์ „์— ์ง€์ •ํ•œ ์‹œ๊ฐ„(์ดˆ) ๋™์•ˆ ์„ ํƒํ•œ ํ†ต๊ณ„๋ฅผ ๋‹ค์‹œ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

                ํ†ต๊ณ„ ๋‹ค์‹œ ํ‘œ์‹œ๋ฅผ ์ค‘์ง€ํ•˜๋ ค๋ฉด <Ctrl+C>๋ฅผ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค.

                ์ด ๊ฐ’์„ ์ƒ๋žตํ•˜๋ฉด ํ˜„์žฌ ๊ตฌ์„ฑ ์ •๋ณด๊ฐ€

                ํ•œ ๋ฒˆ๋งŒ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.


์ด๋ ‡๊ฒŒ ์‹คํ–‰๋œ ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ดํ”„( | )๋ฅผ ํ†ตํ•ด find ๋ช…๋ น์–ด๋กœ ์ „๋‹ฌํ•˜์—ฌ "2002"๋ฅผ ์ฐพ์œผ๋ผ๊ณ  ํ•˜๊ณ ์žˆ์ฃ . find ๋ช…๋ น์–ด๋Š” ๋ฆฌ๋ˆ…์Šค์˜ grep๊ณผ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค.


find "2002"๋ฅผ ์ œ์™ธํ•œ ์•ž ๋ถ€๋ถ„๋งŒ ์‹คํ–‰์‹œํ‚ค๋ฉด 2002ํฌํŠธ ๋ง๊ณ ๋„  ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ํฌํŠธ๋“ค์— ๋Œ€ํ•œ ๋ชฉ๋ก์ด ํ•จ๊ป˜ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. 


์ž, ๊ทธ๋Ÿผ 5096๋ฒˆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฃฝ์—ฌ๋ณผ๊นŒ์š”?


์œˆ๋„์šฐ์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฃฝ์ผ ๋•Œ๋Š” "์ž‘์—…๊ด€๋ฆฌ์ž"๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ๊ฐ„ํ˜น ์ž‘์—…๊ด€๋ฆฌ์ž์—์„œ ์ฐพ๊ธฐ ํž˜๋“  ๋…€์„๋“ค์ด ์žˆ์ฃ . ๊ทธ๋Ÿด ๊ฒฝ์šฐ cmd์ฐฝ์—์„œ ์ž‘์—…์„ ํ•˜๋ฉด ํ›จ์”ฌ ์ˆ˜์›”ํ•˜๊ฒŒ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฃฝ์ผ ๋•Œ๋Š” taskkill ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ด๋…€์„์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํ•œ๋ฒˆ ๋ณผ๊นŒ์š”?


C:\Users\dev>taskkill /?


TASKKILL [/S ์‹œ์Šคํ…œ [/U ์‚ฌ์šฉ์ž ์ด๋ฆ„ [/P [์•”ํ˜ธ]]]]

         { [/FI ํ•„ํ„ฐ] [/PID ํ”„๋กœ์„ธ์Šค id | /IM ์ด๋ฏธ์ง€ ์ด๋ฆ„] } [/T] [/F]


์„ค๋ช…:

    ์ด ๋„๊ตฌ๋Š” ํ”„๋กœ์„ธ์Šค ID(PID) ๋˜๋Š” ์ด๋ฏธ์ง€ ์ด๋ฆ„์œผ๋กœ ์ž‘์—…์„ ์ข…๋ฃŒํ•˜๋Š” ๋ฐ

    ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ชฉ๋ก:

    /S    ์‹œ์Šคํ…œ           ์—ฐ๊ฒฐํ•  ์›๊ฒฉ ์‹œ์Šคํ…œ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.


    /U    [๋„๋ฉ”์ธ\]์‚ฌ์šฉ์ž  ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ปจํ…์ŠคํŠธ๋ฅผ

                           ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.


    /P    [์•”ํ˜ธ]           ํ•ด๋‹น ์‚ฌ์šฉ์ž ์ปจํ…์ŠคํŠธ์˜ ์•”ํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

                           ์ƒ๋žตํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ฌผ์–ด๋ด…๋‹ˆ๋‹ค.


    /FI   ํ•„ํ„ฐ             ์ž‘์—… ์ง‘ํ•ฉ์„ ์„ ํƒํ•˜๋Š” ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

                           "*"๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ: imagename eq acme*


    /PID  ํ”„๋กœ์„ธ์Šค_ID      ์ข…๋ฃŒํ•  ํ”„๋กœ์„ธ์Šค์˜ PID๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

                           TaskList๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PID๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    /IM   ์ด๋ฏธ์ง€ ์ด๋ฆ„      ์ข…๋ฃŒํ•  ํ”„๋กœ์„ธ์Šค์˜ ์ด๋ฏธ์ง€ ์ด๋ฆ„์„

                           ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์™€์ผ๋“œ์นด๋“œ ๋ฌธ์ž '*'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ

                           ๋ชจ๋“  ์ž‘์—… ๋˜๋Š” ์ด๋ฏธ์ง€ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    /T                     ์ง€์ •๋œ ํ”„๋กœ์„ธ์Šค์™€ ๊ทธ ํ”„๋กœ์„ธ์Šค๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘๋œ

                           ๋ชจ๋“  ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.


    /F                     ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.


    /?                     ์ด ๋„์›€๋ง ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.


ํ•„ํ„ฐ:

    ํ•„ํ„ฐ ์ด๋ฆ„     ์œ ํšจํ•œ ์—ฐ์‚ฐ์ž             ์œ ํšจํ•œ ๊ฐ’

    -----------   ---------------           -------------------------

    STATUS        eq, ne                    RUNNING |

                                            NOT RESPONDING | UNKNOWN

    IMAGENAME     eq, ne                    ์ด๋ฏธ์ง€ ์ด๋ฆ„

    PID           eq, ne, gt, lt, ge, le    PID ๊ฐ’

    SESSION       eq, ne, gt, lt, ge, le    ์„ธ์…˜ ๋ฒˆํ˜ธ.

    CPUTIME       eq, ne, gt, lt, ge, le    CPU ์‹œ๊ฐ„ ํ˜•์‹

                                            hh:mm:ss

                                            hh - ์‹œ๊ฐ„,

                                            mm - ๋ถ„, ss - ์ดˆ

    MEMUSAGE      eq, ne, gt, lt, ge, le    ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ(KB)

    USERNAME      eq, ne                    ์‚ฌ์šฉ์ž ์ด๋ฆ„([domain\]user

                                            ํ˜•์‹)

    MODULES       eq, ne                    DLL ์ด๋ฆ„

    SERVICES      eq, ne                    ์„œ๋น„์Šค ์ด๋ฆ„

    WINDOWTITLE   eq, ne                    ์ฐฝ ์ œ๋ชฉ


    ์ฐธ๊ณ 

    ----

    1) /IM ์Šค์œ„์น˜์— ๋Œ€ํ•œ ์™€์ผ๋“œ์นด๋“œ ๋ฌธ์ž '*'๋Š” ํ•„ํ„ฐ๊ฐ€ ์ ์šฉ๋  ๋•Œ๋งŒ

    ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    2) ์›๊ฒฉ ํ”„๋กœ์„ธ์Šค๋Š” ํ•ญ์ƒ ๊ฐ•์ œ์ ์œผ๋กœ(/F) ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    3) ์›๊ฒฉ ์ปดํ“จํ„ฐ๊ฐ€ ์ง€์ •๋˜๋ฉด "WINDOWTITLE"  ๋ฐ "STATUS" ํ•„ํ„ฐ๋Š”

       ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


์˜ˆ:

    TASKKILL /IM notepad.exe

    TASKKILL /PID 1230 /PID 1241 /PID 1253 /T

    TASKKILL /F /IM cmd.exe /T

    TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"

    TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe

    TASKKILL /S ์‹œ์Šคํ…œ /U domain\username /FI "USERNAME ne NT*" /IM *

    TASKKILL /S ์‹œ์Šคํ…œ /U ์‚ฌ์šฉ์ž ์ด๋ฆ„ /P ์•”ํ˜ธ /FI "IMAGENAME eq note*"


์„ค๋ช…์„ ์ฝ์–ด๋ณด๋‹ˆ ์šฐ๋ฆฌ์—๊ฒŒ ํ•„์š”ํ•œ ๋‚ด์šฉ์ด ๋„ˆ๋ฌด๋‚˜๋„ ์ž˜ ์„ค๋ช…๋˜์–ด์žˆ๋„ค์š”.


๊ทธ๋Ÿผ ์ด์ œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฃฝ์—ฌ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


C:\Users\dev>netstat -ano|find "2002"

  TCP    0.0.0.0:2002           0.0.0.0:0              LISTENING       5096

  TCP    [::]:2002              [::]:0                 LISTENING       5096


C:\Users\dev>taskkill /pid 5096

์˜ค๋ฅ˜: ํ”„๋กœ์„ธ์Šค(PID 5096)๋ฅผ ์ข…๋ฃŒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์›์ธ: ์ด ํ”„๋กœ์„ธ์Šค๋Š” /F ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


C:\Users\dev>taskkill /pid 5096 /f /t

์„ฑ๊ณต: PID 5096์ธ ํ”„๋กœ์„ธ์Šค(PID 11172์ธ ์ž์‹ ํ”„๋กœ์„ธ์Šค)๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๋ณด์‹œ๋ฉด ์ค‘๊ฐ„์— ์˜ค๋ฅ˜๊ฐ€ ํ•œ๋ฒˆ ๋‚˜๋ฉด์„œ /F์˜ต์…˜์„ ์“ฐ๋ผ๊ณ  ๋‚˜์˜ค๋„ค์š”. ์ฐธ๊ณ ์— ์›๊ฒฉ ํ”„๋กœ์„ธ์Šค๋Š” /F ์˜ต์…˜์„ ์ค˜์•ผ ์ข…๋ฃŒ๋œ๋‹ค๊ณ  ๋‚˜์™€์žˆ๋Š”๋ฐ ๊ทธ๊ฑฐ ๋•Œ๋ฌธ์ธ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ F์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํ˜น์‹œ๋‚˜ ํ•ด์„œ ์ž์‹ํ”„๋กœ์„ธ์Šค๊นŒ์ง€ ์ฃฝ์ด๋Š” T์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„!! ๊ทธ๋ฆฌ๊ณ   ์˜ต์…˜์€ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ฌธ์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œˆ๋„์šฐ๋Š” ์˜์–ด ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์„ ํ•˜์ง€ ์•Š์ฃ . 


์ด์ƒ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€ ์“ธ๊ฒŒ์š”. ์˜ค๋Š˜๋„ ์ฆ์ฝ”ํ•˜์„ธ์š”~








MS-DOS 6 ์ปค๋งจ๋“œ ๋ผ์ธ

์š”์ƒˆ๋Š” ๊ฑฐ์˜ ์“ฐ์ด์ง€ ์•Š๊ณ ์žˆ๋Š” Dos ๋ช…๋ น์–ด๋ฅผ ์“ธ ์ผ์ด ์žˆ์–ด์„œ ๊ตฌ๊ธ€๋งํ•ด์„œ ์ผ๋Š”๋ฐ ๊ธฐ๋ก์œผ๋กœ ๋‚จ๊ฒจ๋ด…๋‹ˆ๋‹ค.

 

์•„๋ž˜ ๋ช…๋ น์–ด๋Š”

  1. dir๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ C: ๋“œ๋ผ์ด๋ธŒ ํ•˜์œ„์— ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์„ ๋ฝ‘์€ ๋’ค

  2. findstr์„ ์ด์šฉํ•ด์„œ \bin\ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ชฉ๋ก๋งŒ ์ถ”์ถœํ•œ ๋’ค์—

  3. .svn ์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋ช…์ด ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ๋“ค์€ ์ œ์™ธ์‹œํ‚ค๊ณ 

  4. ๊ทธ๋ ‡๊ฒŒ ๋ฝ‘์€ ๋ช…๋ น์–ด๋ฅผ auxclasspath.txtํŒŒ์ผ๋กœ ์ €์žฅ

์„ ํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. 

 

์กฐ๊ธˆ๋งŒ ๋ฐ”๊พธ๋ฉด ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ์›ํ•˜๋Š” ํŒŒ์ผ๋งŒ ์ถ”์ถœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

C:\> dir /a:d /s/b | findstr "\\bin\\" | findstr /v /i "\.svn" > auxclasspath.txt

 

ํ•˜๋‚˜์”ฉ ๋œฏ์–ด๋ณผ๊นŒ์š”?

 

1) dir /a:d /s/b

- ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

2) findstr "\\bin\\"

- ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ์ค‘์— bin ์ด๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๊ณ ์žˆ๋Š” ๊ฒฝ๋กœ๋งŒ ๋ฝ‘์•„๋ƒ…๋‹ˆ๋‹ค.

( ์ด ๋ช…๋ น์–ด๊ฐ€ ์‹ค์ œ๋กœ ํ•˜๋Š” ์ผ์€ ํŠน์ • ์ŠคํŠธ๋ง์„ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. )

 

3) findstr /v /i "\.svn"  

- ์œ„ ๋””๋ ‰ํ† ๋ฆฌ ์ค‘ .svn ์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋ช…์ด ์‹œ์ž‘ํ•˜๋Š” ๋ชฉ๋ก์€ ์ œ์™ธ์‹œํ‚ค๊ณ  ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

4) > auxclasspath.txt

- ์ง€๊ธˆ๊นŒ์ง€ ๋‚˜์˜จ ๋ชฉ๋ก์„ auxclasspath.txt ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

 

 

dir ๋ช…๋ น์–ด ๋ฌธ๋ฒ• ๋ฐ ์˜ต์…˜ ๋ณด๊ธฐ

 

findStr ๋ช…๋ น์–ด ๋ฌธ๋ฒ• ๋ฐ ์˜ต์…˜ ๋ณด๊ธฐ

 

1. cmd์˜ ๋ฐ”๋กœ๊ฐ€๊ธฐ ์˜ค๋ฅธ์ชฝ ํด๋ฆญ. ์†์„ฑ>์˜ต์…˜>ํ˜„์žฌ ์ฝ”๋“œ ํŽ˜์ด์ง€ ๋ณ€๊ฒฝ

2. cmd์ฐฝ์—์„œ chcp ์‹คํ–‰

MS949๋กœ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•  ๊ฒฝ์šฐ --> chcp 949

utf-8๋กœ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•  ๊ฒฝ์šฐ --> chcp 65001


๊ธฐํƒ€ ๋‹ค๋ฅธ ์ฝ”๋“œ ํŽ˜์ด์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜ ์œ„ํ‚คํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
http://en.wikipedia.org/wiki/Code_page


์„ค์น˜ํ™˜๊ฒฝ

์œˆ๋„์šฐ 8

์ดํด๋ฆฝ์Šค Luna

 

๋ชฉ์ฐจ 

1. SonarQube ์ดํด๋ฆฝ์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜

2. SonarQube Download ๋ฐ ์„œ๋ฒ„ ์‹คํ–‰

3. ๋ถ„์„ํ•˜๊ณ ์žํ•˜๋Š” ํ”„๋กœ์ ํŠธ์™€ SonarQube ํ”„๋กœ์ ํŠธ ์—ฐ๋™ํ•˜๊ธฐ

4. ๋ถ„์„ ๊ฒฐ๊ณผ ๋ณด๊ธฐ

 

 

1. SonarQube ์ดํด๋ฆฝ์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜

ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜๋Š” ์‰ฌ์šฐ๋‹ˆ๊นŒ ์•„๋ž˜ ์˜๋ฌธ ๊ฐ€์ด๋“œ ๋ณด์‹œ๋ฉด์„œ ํ•˜์‹œ๋ฉด ๋ ๊ฒƒ ๊ฐ™๋„ค์š”.

 

SonarQube ๊ณต์‹ ์ดํด๋ฆฝ์Šค ์„ค์น˜ ๊ฐ€์ด๋“œ ๋ฌธ์„œ

http://docs.sonarqube.org/display/SONAR/Installing+SonarQube+in+Eclipse

 

  1. Go to Help > Eclipse Marketplace... and search for "SonarQube"
    or
    Use offline update site: https://bintray.com/artifact/download/sonarsource/Distribution/org.sonar.ide.eclipse.site-3.5.0.20150804-1512-RELEASE.zip
    or
    Go to Help > Install New Software... This should display the Install dialog box. Paste the Update Site URL (http://downloads.sonarsource.com/eclipse/eclipse/) into the field Work with and press Enter. This should display the list of available plugins and components:



  2. Check the component you wish to install (see Features details).
  3. Click Next. Eclipse will then check to see if there is any issue which would prevent a successful installation.
  4. Click Finish to begin the installation process. Eclipse will then download and install the necessary components.
  5. Once the installation process is finished, Eclipse will ask if you want to restart the IDE. It is strongly recommended that you restart the IDE.

 

2. SonarQube Download ๋ฐ ์„œ๋ฒ„ ์‹คํ–‰ 

์•„๋ž˜ ๋งํฌ๋กœ ๊ฐ€์‹œ๋ฉด zip ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

http://www.sonarqube.org/downloads/

 

๋‹ค์šด๋ฐ›์€ zipํŒŒ์ผ์„ ๋ฐ”ํƒ•ํ™”๋ฉด(์›ํ•˜๋Š” ๊ณณ)์— ์••์ถ•์„ ํ’€์–ด์ฃผ์„ธ์š”.

 

ํด๋” ๋“ค์–ด๊ฐ€๋ฉด binํด๋”๊ฐ€ ์žˆ๊ณ  ๊ทธ ์•ˆ์— StartSonar.bat๋ผ๋Š” ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ํŒŒ์ผ์„ ์‹คํ–‰์‹œ์ผœ์„œ ์„œ๋ฒ„๋ฅผ ๋„์›Œ์ฃผ์„ธ์š”.

 

๋งŒ์•ฝ ์„œ๋ฒ„ ์‹คํ–‰์‹œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š”.

 

http://blog.naver.com/stork838/220442651809

 

๋งˆ์ง€๋ง‰์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์ œ๋Œ€๋กœ ์‹คํ–‰ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

http://localhost:9000 ( ๋‹ค๋ฅธ ์„ค์ •์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ์ฃผ์†Œ๋กœ ์ ‘์†์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ )

 

3. ๋ถ„์„ํ•˜๊ณ ์žํ•˜๋Š” ํ”„๋กœ์ ํŠธ์™€ SonarQube ํ”„๋กœ์ ํŠธ ์—ฐ๋™ํ•˜๊ธฐ

a. ์ผ๋‹จ ์„œ๋ฒ„์— ์ ‘์†์ด ์ž˜ ๋˜๋Š”์ง€ ํ™•์ธ์ด ๋๋‹ค๋ฉด admin์œผ๋กœ ๋กœ๊ทธ์ธ ํ•ฉ๋‹ˆ๋‹ค.

( admin / admin ์œผ๋กœ ์ ‘์† ๊ฐ€๋Šฅ )

 

b. Go to Settings -> System -> Provisioning

c. Create new project (Create ๋ฒ„ํŠผ์€ ์šฐ์ƒ๋‹จ์— ์œ„์น˜ํ•ด์žˆ์Šต๋‹ˆ๋‹ค. )

d. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์‹œ key์™€ ํ”„๋กœ์ ํŠธ๋ช…์„ ์ ์ ˆํ•˜๊ฒŒ ์•„๋ฌด๊ฑฐ๋‚˜ ์จ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์ดํด๋ฆฝ์Šค์—์„œ ์—ฐ๋™ํ•  ๋•Œ ์ด ์ด๋ฆ„์ด ์“ฐ์ž…๋‹ˆ๋‹ค.

 

e. ์ดํด๋ฆฝ์Šค์—์„œ ํ”„๋กœ์ ํŠธ์—์„œ ์šฐํด๋ฆญ -> Configure -> Associate with SonaQube

 

f. Sona Project ์ž…๋ ฅ๋ž€์— ์•„๊นŒ ์ƒ์„ฑํ•œ Sona ํ”„๋กœ์ ํŠธ๋ช…์„ ์ž…๋ ฅํ•˜๋ฉด ์ž๋™์™„์„ฑ๊ธฐ๋Šฅ์œผ๋กœ ๋“œ๋ž๋‹ค์šด ์˜ต์…˜์ด ๋ณด์ž…๋‹ˆ๋‹ค.

g. ์†Œ๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•˜๊ณ  ์™„๋ฃŒํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ถ„์„์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

4. ๋ถ„์„ ๊ฒฐ๊ณผ ๋ณด๊ธฐ

๋ถ„์„์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์ดํด๋ฆฝ์Šค ์ฝ˜์†”์ฐฝ์— ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

Retrieve remote issues of project myproject...
Project not found on remote SonarQube server [myproject]      ---- A
Start SonarQube analysis on myproject...
INFO: SonarQube Server 5.1.2
11:20:19.564 INFO  - Incremental mode
11:20:19.935 INFO  - Load global repositories
11:20:20.786 INFO  - Load global repositories (done) | time=857ms
11:20:20.791 INFO  - Server id: 20150806110249
11:20:20.797 INFO  - User cache: C:\Users\user\.sonar\cache
11:20:20.813 INFO  - Install plugins
11:20:20.863 INFO  - Include plugins:
11:20:20.864 INFO  - Exclude plugins: devcockpit, jira, pdfreport, views, report, buildstability, buildbreaker
11:20:20.866 INFO  - Download sonar-core-plugin-5.1.2.jar
11:20:20.946 INFO  - Download sonar-email-notifications-plugin-5.1.2.jar
11:20:21.249 INFO  - Download sonar-java-plugin-3.0.jar
11:20:21.745 INFO  - Download sonar-scm-git-plugin-1.0.jar
11:20:21.963 INFO  - Download sonar-l10n-en-plugin-5.1.2.jar
11:20:21.987 INFO  - Download sonar-scm-svn-plugin-1.0.jar
11:20:23.923 INFO  - Load project repositories
11:20:24.658 INFO  - Load project repositories (done) | time=735ms
11:20:24.659 INFO  - Load project settings
11:20:25.575 INFO  - Apply project exclusions
11:20:25.613 INFO  - -------------  Scan myproject
11:20:25.624 INFO  - Load module settings
11:20:26.068 INFO  - Base dir: E:\ใ…ใ„ดใ…‡ใ„น
11:20:26.068 INFO  - Working dir: E:\ใ…ใ„ดใ…‡ใ„น
11:20:26.072 INFO  - Source paths: src
11:20:26.073 INFO  - Test paths: src
11:20:26.079 INFO  - Binary dirs: build/classes
11:20:26.079 INFO  - Source encoding: UTF-8, default locale: ko_KR
11:20:26.084 INFO  - Index files
11:20:26.098 INFO  - Excluded sources:
11:20:26.099 INFO  -   **/*Test.*
11:20:26.099 INFO  -   **/test/**/*
11:20:26.099 INFO  - Included tests:
11:20:26.099 INFO  -   **/*Test.*
11:20:26.099 INFO  -   **/test/**/*
11:20:27.123 INFO  - 370 files indexed
11:20:27.124 INFO  - 430 files ignored because of inclusion/exclusion patterns
11:20:27.150 INFO  - Quality profile for java: Sonar way
11:20:27.226 INFO  - Sensor JavaSquidSensor
11:20:30.695 INFO  - Java Main Files AST scan...
11:20:30.695 INFO  - 370 source files to be analyzed
11:20:40.706 INFO  - 26/370 files analyzed, current is E:\sdf.java
11:20:50.706 INFO  - 84/370 files analyzed, current is E:\dfg.java
11:21:00.706 INFO  - 187/370 files analyzed, current is E:\fgh.java
11:21:10.708 INFO  - 281/370 files analyzed, current is E:\rtyService.java
11:21:20.711 INFO  - 329/370 files analyzed, current is E:\erwtDao.java
11:21:27.080 INFO  - Java Main Files AST scan done: 56385 ms
11:21:27.080 INFO  - 370/370 source files analyzed
11:21:27.098 INFO  - Java bytecode scan...
11:21:29.109 INFO  - Java bytecode scan done: 2011 ms
11:21:29.109 INFO  - Java Test Files AST scan...
11:21:29.109 INFO  - 0 source files to be analyzed
11:21:29.110 INFO  - Java Test Files AST scan done: 1 ms
11:21:29.111 INFO  - 0/0 source files analyzed
11:21:29.121 INFO  - Package design analysis...
11:21:29.655 INFO  - Package design analysis done: 534 ms
11:21:30.485 INFO  - Sensor JavaSquidSensor (done) | time=63259ms
11:21:30.486 INFO  - Sensor Lines Sensor
11:21:30.576 INFO  - Sensor Lines Sensor (done) | time=90ms
11:21:30.576 INFO  - Sensor SurefireSensor
11:21:30.579 INFO  - parsing E:\sdf\surefire-reports
11:21:30.580 WARN  - Reports path not found: E:\dfg\surefire-reports     ------ B
11:21:30.580 INFO  - Sensor SurefireSensor (done) | time=4ms
11:21:31.576 INFO  - Export issues to E:\dfg\sonar-report.json
11:21:32.193 INFO  - ANALYSIS SUCCESSFUL

 

์œ„ ๋นจ๊ฐ„ ์ค„๋กœ ๋ณด์ด๋Š” ๋ถ€๋ถ„์€ ๋ฌด์‹œํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋ฅผ ์ข€ ๋” ์ฝ์–ด๋ณด์‹œ๋ฉด ๊ทธ ์ด์œ ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

5. ์ˆ˜๋™์œผ๋กœ ๋ถ„์„ํ•˜๊ธฐ 

์ดํด๋ฆฝ์Šค ํ”„๋กœ์ ํŠธ๊ฐ€ Sona ํ”„๋กœ์ ํŠธ์™€ ์—ฐ๋™์ด ๋˜๋ฉด ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ ๋ฉ”๋‰ด์— SonaQube ๋ฉ”๋‰ด๊ฐ€ ๋œจ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ฉ”๋‰ด๋กœ ๋“ค์–ด๊ฐ€๋ฉด Analysis๊ฐ€ ์žˆ์œผ๋‹ˆ ์ด๋ฅผ ์ด์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ฐธ๊ณ ๋กœ ์ €๋Š” ์ง„ํ–‰ํ•˜๋Š” ๋™์•ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”์ฐฝ์—๋Š” ANALYSIS SUCCESSFUL์ด๋ผ๊ณ  ๋–ด์ง€๋งŒ ๋™์‹œ์— ํŒ์—…์ฐฝ์œผ๋กœ

An internal error occurred during: "SonarQube Analysis".
Unable to create markers

๋ผ๊ณ  ๋‚˜์˜ค๋„ค์š”.

 

์›์ธ์„ ์ฐพ์•„์„œ ๋‹ค์‹œ ์ด์–ด์„œ ๊ธ€์„ ์“ฐ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿผ ๋‹ค๋“ค ์ฆํ”„~

 

------------- updated 2015-08-07 -------------

์ดํด๋ฆฝ์Šค์—์„œ๋Š” preview ๋‚˜ incremental ๋ถ„์„๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

http://docs.sonarqube.org/display/SONAR/Working+with+SonarQube+in+Eclipse.

 

๊ทธ ๋ง์ธ ์ฆ‰์Šจ, ๋ถ„์„์ด ๋กœ์ปฌ๋กœ ์ด๋ฃจ์–ด์ง€๊ณ  SonarQube DB์— ์ €์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ง์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž˜์š”.

http://docs.sonarqube.org/display/SONAR/Concepts#Concepts-AnalysisModes

 

SonarQube ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์›นํŽ˜์ด์ง€์—์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ ค๋ฉด SonarQube Runner๋ฅผ ๋‹ค์šด ๋ฐ›์•„์„œ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

http://docs.sonarqube.org/display/SONAR/Analyzing+with+SonarQube+Runner

 

 

5. ์ˆ˜๋™์œผ๋กœ ๋ถ„์„ํ•˜๊ธฐ - 2

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

 

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

๊ทธ ๋ฆฌ๊ณ  ๋‚ด์ปดํ“จํ„ฐ > ์†์„ฑ >  ๊ณ ๊ธ‰์‹œ์Šคํ…œ์„ค์ • > ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋กœ ์ด๋™ํ•˜์…”์„œ ( ์œˆ๋„์šฐ 8 ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. ) ์•„๋ž˜์ฒ˜๋Ÿผ SONAR_RUNNER_HOME ๋ณ€์ˆ˜๋ฅผ ์ƒˆ๋กœ๋งŒ๋“ค๊ธฐ๋ฅผ ์ด์šฉํ•ด์„œ ๋“ฑ๋กํ•ด์ฃผ์‹œ๊ณ , Path์— ์‚ฌ์ง„์— ๋ณด์ด์‹œ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ฑ๋กํ•ด์ฃผ์„ธ์š”.

 

 

 

 

๊ทธ๋ฆฌ๊ณ  ์†Œ๋‚˜ ์„œ๋ฒ„๊ฐ€ ๊ธฐ๋™๋˜์–ด์žˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์—, ๋ถ„์„ํ•˜๊ณ ์žํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ด์ฃผ์„ธ์š”.

์˜ˆ๋ฅผ๋“ค๋ฉด d:\eclipse\workspace\myproject ๊ฐ€ ๋˜๊ฒ ์ฃ ?

 

๊ทธ๋ฆฌ๊ณ  ํŒŒ์ผ์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

sonar-project.properties ๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์•„๋ž˜ ๋‚ด์šฉ์„ ๋„ฃ์–ด์ฃผ์„ธ์š”. ๋ณธ์ธ์˜ ์„ค์ •์— ๋งž๊ฒŒ projectKey์™€ projectName ๊ทธ๋ฆฌ๊ณ  ์ œ์ผ ์•„๋ž˜์˜ ์†Œ์Šค ์ธ์ฝ”๋”ฉ ๊ฐ’์„ ๋ฐ”๊ฟ”์ฃผ์„ธ์š”.

 

 

# must be unique in a given SonarQube instance
sonar.projectKey=myproject

# this is the name displayed in the SonarQube UI
sonar.projectName=myproject project
sonar.projectVersion=1.0
 
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory containing
# the sonar-project.properties file.
sonar.sources=.
 
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8

 

 

์ด์ œ ์ €์žฅ์„ ํ•˜๊ณ  ๋‚˜์™€์„œ cmd์ฐฝ์„ ์—ด์–ด์„œ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์†Œ๋‚˜ ๋Ÿฌ๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ต๋‹ˆ๋‹ค.

 

๊ธฐ๋ณธ์ ์œผ๋กœ sonar-runner ๋ผ๊ณ  ํ•˜๋ฉด ๋˜๋Š”๋ฐ -X ์˜ต์…˜์„ ์ฃผ๋ฉด debug ๋ชจ๋“œ๋กœ ์ง„ํ–‰์ƒํ™ฉ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์•„๋งˆ ํ”„๋กœ์ ํŠธ๊ฐ€ svn๊ณผ ์—ฐ๊ฒฐ๋˜์–ด์žˆ์ง€ ์•Š์€ ์ƒํƒœ๋ผ๋ฉด ( .svn ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ๋””๋ ‰ํ† ๋ฆฌ์— ์—†๋‹ค๋ฉด ) ์‹คํ–‰์ด ์ž˜ ๋ ๊ฒ๋‹ˆ๋‹ค.

 

์‹คํ–‰์ด ์ž˜ ๋˜์—ˆ๋‹ค๋ฉด ๋กœ๊ทธ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— ์•„๋ž˜์ฒ˜๋Ÿผ ๋‚˜์˜ค๊ณ  ์†Œ๋‚˜ ๋Ÿฌ๋„ˆ๋Š” ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

 

INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
Total time: 25.866s
Final Memory: 15M/499M
INFO: ------------------------------------------------------------------------

 

์ด์ œ ์†Œ๋‚˜ํ๋ธŒ ์›น์œผ๋กœ๊ฐ€์„œ ๋ถ„์„๋œ ์ž๋ฃŒ๋ฅผ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

์ด๋Ÿฐ์‹์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ˆ˜์น˜๊ฐ€ ๋ญ˜ ์˜๋ฏธํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์ž๋ฃŒ๋ฅผ ์ข€ ์ฐพ์•„๋ด์•ผ ํ• ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ถ€๋ถ„์€ ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ๊ฐ์ž ์•Œ์•„์„œ ํ•ด๋ณด์‹œ๋ฉด ๋ ๊ฒƒ ๊ฐ™๋„ค์š”.

 

์ฐธ๊ณ ๋กœ ์ €๋Š” svn ์—ฐ๋™ํ•ด๋†“์€ ํ”„๋กœ์ ํŠธ๋„ ์‹œ๋„ํ•ด๋ณด์•˜๋Š”๋ฐ svn ๊ด€๋ จ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ ์—ฐ์ด์–ด์„œ ๊ธ€์„ ๋‚จ๊ธฐ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 ์ด์ƒ ์ผ€์ด์น˜์˜€์Šต๋‹ˆ๋‹ค.

 

์œˆ๋„์šฐ์—์„œ ์†Œ๋‚˜ํ๋ธŒ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ

$SonarQube Home$/bin/windows-x86-64/StartSonar.bat ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด cmd์ฐฝ์— ์•„๋ž˜์ฒ˜๋Ÿผ ์—๋Ÿฌ๊ฐ€ ๋œจ๋Š”๋ฐ์š”


wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Error occurred during initialization of VM
jvm 1    | GC triggered before VM initialization completed. Try increasing NewSize, current value 1536K.
wrapper  | JVM exited while loading the application.
wrapper  | JVM Restarts disabled.  Shutting down.
wrapper  | <-- p="" stopped="" wrapper="">

๊ณ„์†ํ•˜๋ ค๋ฉด ์•„๋ฌด ํ‚ค๋‚˜ ๋ˆ„๋ฅด์‹ญ์‹œ์˜ค . . .



์ฒ˜์Œ์—๋Š” sonar.properties์—์„œ ํ•œ์ฐธ ์ฐพ๋‹ค๊ฐ€ ์–ด๋–ค ๋ถ„์ด ํฌ์ŠคํŒ…ํ•œ ๊ธ€์„ ๋ณด๊ณ  ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.


์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๋‚˜ ๊ฐ€์˜ค๋ฉด
$SonarQube Home$/conf/wrapper.conf ์—์„œ ์•„๋ž˜ ์„ค์ •์„ ์ฐพ์•„์„œ ๊ฐ’์„ ์˜ฌ๋ ค์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.


(default)
wrapper.java.initmemory=3
wrapper.java.maxmemory=32


 

(after changing)

wrapper.java.initmemory=128
wrapper.java.maxmemory=256



๊ทธ๋Ÿผ ์ฆํ”„ ํ•˜์„ธ์š”~ ^-^

์•ˆ๋…•ํ•˜์„ธ์š” ์ผ€์ด์น˜์ž…๋‹ˆ๋‹ค.

 

์˜ค๋Š˜์€ ์ˆ˜๋งŽ์€ ์†Œ์Šค ์ •์  ๋ถ„์„ ํˆด ์ค‘์—์„œ ์„ธ๊ฐ€์ง€ ํˆด์— ๋Œ€ํ•œ ๋น„๊ต๋ฅผ ํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ฏธ ์–ด๋–ค ๋ถ„์ด ๋ถ„์„์„ ํ•ด๋†“์€ ์˜๋ฌธ ์ž๋ฃŒ๊ฐ€ ์žˆ์–ด์„œ ๋ฒˆ์—ญ์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 


   
 Findbugs

 
 PMD
 
 Checkstyle
  ๋ฒ„์ „  3.0.0  5.2.2  6.1.1

  ๋ผ์ด์„ผ์Šค

 Lesser GNU Public License  BSD-style license  Lesser General Public License
  ๋ชฉ์    ์ž ์žฌ์  ๋ฒ„๊ทธ ์ฐพ๊ธฐ
( ์ž๋ฐ” ์†Œ์ŠคํŒŒ์ผ์ด ์•„๋‹Œ  ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ด์šฉ )
   ์ž ์žฌ์ ์ธ ๋ฌธ์ œ๋“ค, ๋ฒ„๊ทธ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ถ€๋ถ„๋“ค,
  ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์ตœ์ ํ™”๋˜์ง€ ์•Š์€ ์ฝ”๋“œ๋“ค ๊ฒ€์ƒ‰
  ์ž๋ฐ” ์†Œ์Šค ํŒŒ์ผ์„ ์ฝ์–ด์„œ ์†Œ์Šค ์ฝ”๋“œ ํ‘œ์ค€์— ์œ„๋ฐ˜๋˜๋Š” ๊ฒƒ๋“ค์„ ๊ฒ€์ƒ‰,
 e.g.  Sun Code Conventions, JavaDoc
 ์žฅ์  - ์‹ค์ œ ๊ฒฐํ•จ์„ ์ž˜ ์ฐพ์•„์คŒ
- ์ฐพ์€ ๊ฒฐํ•จ์ด ์—‰๋šฑํ•œ ๊ฒฐํ•จ์ผ ํ™•๋ฅ ์ด ๋‚ฎ์Œ ( ์ •ํ™•์„ฑ์ด ๋†’์Œ )
- ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ฝ์Œ์œผ๋กœ ์†๋„๊ฐ€ ๋น ๋ฆ„
- ์ข…์ข… ์‹ค์ œ ๊ฒฐํ•จ์„ ์ฐพ์•„์คŒ
- finds bad practices
 - ์ •ํ•ด์ค€ ์ฝ”๋”ฉ ๊ทœ์•ฝ์— ์œ„๋ฐ˜๋˜๋Š” ๊ฒƒ๋“ค์„ ๊ฒ€์‚ฌํ•ด์คŒ. ์ง์ ‘ ์ฝ”๋”ฉ ๊ทœ์•ฝ์„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉ๊ฐ€๋Šฅ.
 ์•ฝ์  - ์ปดํŒŒ์ผ๋œ ํด๋ž˜์Šค ํŒŒ์ผ์—์„œ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ฝ์–ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•˜๋ฏ€๋กœ ๋นŒ๋“œ๊ณผ์ •์ด ํ•„์ˆ˜  - ๋ณต์ œ๋œ ์ฝ”๋“œ๋ฅผ ์ฐพ๋Š” ์†๋„๊ฐ€ ๋Š๋ฆผ  - ์‹ค์ œ ๋ฒ„๊ทธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ
 ๊ทœ์น™ ์ˆ˜  408  234  132
๊ทœ์น™ ์นดํ…Œ๊ณ ๋ฆฌ
 Correctness
 Bad practice
 Dodgy code
 Multithreaded Correctness 
 Performance Malicious 
 Code Vulnerability
 Security Experimental
 Internationalization


 JSP 
 - Basic JSF 
 - Basic JSP
 XSL 
 - XPath in XSL
 Java 

 - Design 
 - Coupling 
 - Jakarta Commons Logging 
 - Basic 
 - Strict Exceptions 
 - Security Code Guidelines 
 - Java Logging 
 - Android -Controversial 
 - Comments 
 - Type Resolution 
 - Empty Code 
 - String and StringBuffer 
 - Code Size 
 - Braces 
 - Unused Code 
 - Unnecessary 
 - J2EE 
 - JavaBeans 
 - Migration 
 - Import Statements 
 - JUnit 
 - Naming 
 - Finalizer 
 - Optimization 
 - Clone Implementation
 Ecmascript
 
 - Basic Ecmascript 
 - Unnecessary 
 - Braces 
 XML
 
 - Basic XML
 Annotations
 Block Checks
 Class Design
 Coding
 Duplicate Code
 Headers
 Imports
 Javadoc Comments
 Metrics
 Miscellaneous
 Modifiers
 Naming Conventions
 Regexp
 Size Violations
 Whitespace

์ถœ์ฒ˜ : http://www.sw-engineering-candies.com/blog-1/comparison-of-findbugs-pmd-and-checkstyle

 

2020๋…„ 5์›” ์—…๋ฐ์ดํŠธ

์‹ค์ œ๋กœ ์„ธ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์„œ ํ…Œ์ŠคํŠธ๋„ ํ•ด๋ณด์•˜๊ณ  FindBugs๋Š” ์‹ค์ œ ์„œ๋น„์Šค์— ๊ธฐ๋Šฅ์œผ๋กœ ์ ์šฉ๋„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์šฐ์„  ์ž ์žฌ์ ์ธ ๋ฒ„๊ทธ ๋ถ„์„์„ ์œ„ํ•ด์„œ๋Š” FindBugs๊ฐ€ ๋‹จ์—ฐ ์ตœ๊ณ ์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ฝ”๋”ฉ์ปจ๋ฒค์…˜์„ ์ •ํ•ด๋†“๊ณ  ํ™•์ธํ•˜๊ธฐ์—๋Š” CheckStyle์ด ์ข‹์Šต๋‹ˆ๋‹ค. 

FindBugs์™€ CheckStyle์€ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์  ์ž์ฒด๊ฐ€ ๋‹ค๋ฅธ ํˆด์ด์—ˆ์Šต๋‹ˆ๋‹ค.

PMD๋Š” ์ด๋„์ €๋„ ์•„๋‹Œ ๊ทธ์ €๊ทธ๋Ÿฐ ํˆด๋กœ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค.

 

 

--- ์ดํ•˜ ์ตœ์ดˆ ๋ฐœํ–‰๊ธ€ ---

์ถ”์ฒœ ์‚ฌํ•ญ

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

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

 

์•„๋ž˜ ๋งํฌ๋Š” FindBugs ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•œ ๋ฉ”๋ฆด๋žœ๋“œ ์ฃผ๋ฆฝ๋Œ€ ๊ต์ˆ˜๋‹˜์˜ 1์‹œ๊ฐ„ ๋ถ„๋Ÿ‰์งœ๋ฆฌ ์„ธ๋ฏธ๋‚˜์ž…๋‹ˆ๋‹ค.

๊ด€์‹ฌ์žˆ์œผ์‹  ๋ถ„๋“ค์€ ๋ณด์‹œ๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™๋„ค์š”. ์ฐธ๊ณ ๋กœ ์–ธ์–ด๋Š” ์˜์–ด์ž…๋‹ˆ๋‹ค.

https://www.youtube.com/watch?v=8eZ8YWVl-2s

 

์ด์ƒ ์ผ€์ด์น˜์˜€์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜๋„ ์ฆํ”„ํ•˜์„ธ์š”~~ ^-^

 

 

 

 

 

 


์•ˆ๋…•ํ•˜์„ธ์š”, ์กฐ๊ธˆ์ „์— ๊น€ํ”„(GIMP) ์ด๋ฏธ์ง€ํˆด์„ ์†Œ๊ฐœํ•ด ๋“œ๋ ธ์—ˆ๋Š”๋ฐ์š”


์ž ๊น ์จ๋ดค๋”๋‹ˆ ์ด๊ฒŒ ๋ฒกํ„ฐ์ด๋ฏธ์ง€๋ฅผ ๊ทธ๋ฆฌ๋Š” ํˆด์€ ์•„๋‹Œ๊ฒƒ ๊ฐ™์•„์„œ

๋ฒกํ„ฐ์ด๋ฏธ์ง€ ํˆด์„ ๋‹ค์‹œ ๊ฒ€์ƒ‰ํ•ด์„œ ์ฐพ์•„๋‚ธ ๋”ฐ๋ˆํ•œ ๋ฒกํ„ฐ์ด๋ฏธ์ง€ ํˆด์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.


๊ทธ ์ด๋ฆ„ํ•˜์•ผ Inkscape ์ž…๋‹ˆ๋‹ค.


์ด ์—ญ์‹œ ์œˆ๋„์šฐ, ๋งฅ, ๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํˆด์ž…๋‹ˆ๋‹ค.


์•„๋ž˜๋Š” ์ž‰ํฌ์Šค์ผ€์ดํ”„์˜ ํ™ˆํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.

๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด์žˆ์–ด์„œ ๋“ค์–ด๊ฐ€๋ฉด ๋ฐ”๋กœ ํ•œ๊ตญ์–ด๋กœ ๋œน๋‹ˆ๋‹ค.

(์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ™ˆํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.)







์ƒ๋‹จ ๋ฉ”๋‰ด์—๋„ ์žˆ๊ณ  ์šฐ์ธก์—๋„ ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์ด ์ž˜ ๋ณด์ด๋„ค์š”.

์ €๋Š” ์šฐ์ธก์— ์ƒˆ ๋ถ€๋ฆฌ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์Šต๋‹ˆ๋‹ค.



OS๋ณ„๋กœ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

์ œ์ผ ์ขŒ์ธก์˜ ํŽญ๊ท„์ด ๋ฆฌ๋ˆ…์Šค์šฉ์ด๊ณ  ๊ฐ€์šด๋ฐ๊ฐ€ ์œˆ๋„์šฐ์šฉ ์ œ์ผ ์šฐ์ธก์ด ๋งฅ์šฉ์ž…๋‹ˆ๋‹ค.


์ „ ์ง€๊ธˆ ์œˆ๋„์šฐ ์ปดํ“จํ„ฐ ์•ž์— ์•‰์•„์žˆ์œผ๋‹ˆ ๊ฐ€์šด๋ฐ ์œˆ๋„์šฐ ๋กœ๊ณ  ๊ทธ๋ฆผ์„ ํด๋ฆญํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.




์œˆ๋„์šฐ๋Š” ๋˜ 32๋น„ํŠธ์™€ 64๋น„ํŠธ๊ฐ€ ์žˆ์œผ๋‹ˆ ํ•œ๋ฒˆ ๋” ์„ ํƒ์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ œ ์ปดํ“จํ„ฐ๋Š” 64๋น„ํŠธ์ด๋ฏ€๋กœ 64๋น„ํŠธ์šฉ ์•„๋ž˜์ชฝ ์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•ด์„œ ์„ค์น˜ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์„œ ์‹คํ–‰์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.



์…‹์—…ํ™”๋ฉด์€ ๋‹ค๊ตญ์–ด์ฒ˜๋ฆฌ๊ฐ€ ์•ˆ๋˜์žˆ๋„ค์š”.



๋ผ์ด์„ผ์Šค ๋™์˜์— ์ฒดํฌ๋ฅผ ํ•˜๊ณ  ๋‹ค์Œ~~




๋ญ ๊ธฐ๋ณธ์„ค์ •์œผ๋กœ ์„ค์น˜ํ• ๊ฑฐ๋ƒ ์•Œ์•„์„œ ์„ ํƒํ• ๊ฑฐ์•ผ ์ „๋ถ€ ๋‹ค ํ• ๊ฑฐ๋ƒ ๋ฌผ์–ด๋ณด๋Š” ํ™”๋ฉด์€ ๋งŽ์ด๋“ค ๋ณด์…จ์ฃ ? ๊นŒ์ด๊บผ ๋Œ€์ถฉ ๊ทธ๋ƒฅ Typical๋กœ ์„ค์น˜ํ•ด๋ด…์‹œ๋‹ค.



Install ํด๋ฆญ! ํด๋ฆญ!




์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!!!! ์šฐ์™€!!!!!

์ด์ œ ๋‚˜๋„ ๊ฒŒ์ž„์ผ€๋ฆญํ„ฐ๋ฅผ ๋ฒกํ„ฐ์ด๋ฏธ์ง€๋กœ ๊ทธ๋ฆด์ˆ˜ ์žˆ๋‹ค!!!

ํฌํ† ์ƒต ์ผ๋Ÿฌ์ŠคํŠธ ํ•„์š”์—†๋‹ค!!! ์šฐํ•˜ํ•˜!!!


์ด์ƒ ์นœ์ ˆํ•œ ์ผ€์ด์น˜์˜€์Šต๋‹ˆ๋‹ค.


^-^ ใ…Žใ…Ž


์ข‹์€ํ•˜๋ฃจ ๋˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„~~



์•ˆ๋…•ํ•˜์„ธ์š” ์ผ€์ด์น˜์ž…๋‹ˆ๋‹ค~


์˜ค๋Š˜์€ ๋ฌด๋ฃŒ ์ด๋ฏธ์ง€ ํŽธ์ง‘ ํˆด์„ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๋ ค ํ•ฉ๋‹ˆ๋‹ค.


์ œ๊ฐ€ ์š”์ƒˆ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์„ ๋…ํ•™์œผ๋กœ ํ•˜๊ณ ์žˆ์Šต๋‹ˆ๋‹ค.


๊ทผ๋ฐ ๊ฒŒ์ž„์ด๋ž€๊ฒŒ ๋ชจ๋“  ํŒŒํŠธ๊ฐ€ ๋‹ค ์ค‘์š”ํ•˜์ง€๋งŒ ๊ทธ ์ค‘์—์„œ๋„ ์‚ฌ๋žŒ๋“ค์˜ ์‹œ์„ ์„ ๋„๋Š” ๋ฉ‹์žˆ๋Š” ๊ทธ๋ž˜ํ”ฝ์ด ์•„๋ฌด๋ž˜๋„ ๊ฐ€์žฅ ์ค‘์š”ํ•˜์ง€ ์•Š๋‚˜ ์‹ถ์Šต๋‹ˆ๋‹ค.


์ „ ๊ฐœ๋ฐœ์ž์ด์ง€ ๋””์ž์ด๋„ˆ๋Š” ์•„๋‹ˆ์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์˜ ์ฒซ์ธ์ƒ์ด ์ค‘์š”ํ•œ๊ฒƒ์ฒ˜๋Ÿผ ๊ฒŒ์ž„์˜ ์ฒซ์ธ์ƒ๋„ ์ค‘์š”ํ•œ๋ฐ ๊ทธ ์ฒซ์ธ์ƒ์€ ๋ฐ”๋กœ ์ด ๊ทธ๋ž˜ํ”ฝ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.


์—ฌ๊ธฐ์„œ ๊ทธ๋ž˜ํ”ฝ์ด๋ผ๋Š”๊ฑด ๋ญ ํ•ด์ƒ๋„๊ฐ€ ์ข‹์€ 3D ๊ทธ๋ž˜ํ”ฝ ์ด๋Ÿฐ๊ฑธ ๋งํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๊ณ ์š” ๊ทธ๋ƒฅ 2D๋ผ๋„ ์ข€ ๋” ๊ท€์—ฝ๊ณ  ์ด์˜๊ณ  ๊น”๋”ํ•œ ๊ทธ๋Ÿฐ ๊ทธ๋ฆผ์„ ๋งํ•˜๋Š” ๊ฑฐ์—์š” ^-^


์„œ๋‘๊ฐ€ ์ข€ ๊ธธ์—ˆ๋„ค์š”.



์ œ๊ฐ€ ์ด๋ฒˆ์— ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๋Š” ํˆด์€ GNU ๋ผ์ด์„ผ์Šค๋ฅผ ๊ฐ–๊ณ ์žˆ๋Š” GIMP (GNU Image Manupulation Program) ๋ผ๋Š” ํˆด์ž…๋‹ˆ๋‹ค.


Mac, Windows, Linux์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋ฉ€ํ‹ฐํ”Œ๋žซํผ ํˆด์ž…๋‹ˆ๋‹ค.


์•„๋ž˜๋Š” GIMP์˜ ํ™ˆํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ( ์•„๋ž˜ ์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜์‹œ๋ฉด ๊น€ํ”„ ํ™ˆํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. )




์—ญ์‹œ Download ๋ฒ„ํŠผ์€ ๋ˆˆ์— ๋„๊ฒŒ ํ•ด๋†“์•˜๋„ค์š”. ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค~~ ๊ทธ๋Ÿผ ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

์ „ ์œˆ๋„์šฐ์—์„œ ํด๋ฆญํ•˜๋‹ˆ๊นŒ ์•„๋ž˜์ฒ˜๋Ÿผ for Windows ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•˜๋„๋ก ๋‚˜์˜ค๋Š”๋ฐ ์•„๋งˆ ๋‹ค๋ฅธ OS ์“ฐ์‹œ๋Š” ๋ถ„๋“ค์€ ํ•ด๋‹น OS์šฉ GIMP ๋‹ค์šด๋กœ๋“œ ๋งํฌ๊ฐ€ ๋‚˜์˜ฌ๊ฒ๋‹ˆ๋‹ค.







์ž, ๊ทธ๋Ÿผ Download ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๋‘๊ฐœ๊ฐ€ ์žˆ๋Š”๋ฐ ์ฃผํ™ฉ์ƒ‰์œผ๋กœ ๋œ ๋ฒ„ํŠผ์„ ์„ ํƒํ•˜์‹œ๋ฉด ๋˜์š”~


๋‹ค์šด๋ฐ›์•„์„œ ์„ค์น˜ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ Setup ์–ธ์–ด๋ฅผ ์„ ํƒํ•˜๋ผ๊ณ  ๋‚˜์˜ค๋Š”๋ฐ ํ•œ๊ตญ์–ด๋Š” ์—†๋„ค์š”.


์ €๋Š” ์˜์–ด๋ฅผ ์ž˜ํ•˜๋‹ˆ๊นŒ ๊ทธ๋ƒฅ ์˜์–ด ์„ ํƒํ•ฉ๋‹ˆ๋‹ค ใ…‹ใ…‹ใ…‹ใ…‹






๊ทธ๋žฌ๋”๋‹ˆ ์•„๋ž˜์ฒ˜๋Ÿผ ์‹œ์›ํ•œ ๋ฐ”๋‹ค์†์—์„œ ์ˆจ๋ชป์‰ฌ๊ณ ์žˆ๋Š”๋ฐ ์›ƒ๊ณ ์žˆ๋Š” ๊ฒ€์€์—ฌ์šฐ๊ฐ™์€ ๋…€์„์ด ๋‚˜์˜ค๋„ค์š”.





๊ทธ๋ƒฅ Install ๋ฒ„ํŠผ ํด๋ฆญ! ํด๋ฆญ!


์•„๋ž˜์ฒ˜๋Ÿผ ์„ค์น˜๊ฐ€ ์‹œ์ž‘์ด ๋ฉ๋‹ˆ๋‹ค...





์•„๋ž˜๋Š” ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋œ ํ™”๋ฉด์ด๊ตฌ์š”





์ด์ œ ์‹คํ–‰์‹œ์ผœ๋ด์•ผ๊ฒ ์ฃ ??




์…‹์—…๋•Œ์—๋Š” ์˜์–ด๋กœ๋งŒ ๋‚˜์™”๋Š”๋ฐ ์…‹์—…ํ•˜๋‹ˆ๊นŒ ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์ ์œผ๋กœ ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ๋ฅผ ํ•ด๋†จ๋Š”์ง€ ํ•œ๊ธ€๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค.






๋ญ”๊ฐ€ ํฌํ† ์ƒต๊ณผ ๋น„์Šทํ•œ ๋ถ„์œ„๊ธฐ๊ฐ€ ์žˆ๋Š”๊ฒƒ ๊ฐ™๋„ค์š”.


์ด์ƒ ์ผ€์ด์น˜์˜€์Šต๋‹ˆ๋‹ค~~


์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.~ ^-^


ํ›„๋ฅ์ง€๊ทผํ•œ ์—ฌ๋ฆ„ ๊ฑด๊ฐ• ์กฐ์‹ฌํ•˜์‹œ๊ตฌ์š”~


๋ชจ๋‘ ์ฆํ”„ํ•˜์„ธ์š”~~~


-------------- updated -------------------

๊น€ํ”„ 2.4 ํ•œ๊ธ€ํŒ ๋ฉ”๋‰ด์–ผ ๋งํฌ ( GIMP Korean Manual )





๋งจ๋‚  ๊นŒ๋จน์–ด์„œ ์•„์˜ˆ ํฌ์ŠคํŒ…ํ•ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ๋˜ ๊นŒ๋จน์„๊นŒ๋ด ใ…œใ…œ


Mac์—์„œ ์Šคํฌ๋ฆฐ์ƒท ์ฐ๋Š” ๋‹จ์ถ•ํ‚ค์ž…๋‹ˆ๋‹ค.


command + shift + 3 : ์ „์ฒดํ™”๋ฉด์„ ์Šคํฌ๋ฆฐ์ƒท 

command + shift + 4 + sapce + windowํด๋ฆญ : ์„ ํƒํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์˜์—ญ์„ ์Šคํฌ๋ฆฐ์ƒท
command + shift + 4 + ๋งˆ์šฐ์Šค๋กœ์˜์—ญ์ง€์ • : ๋งˆ์šฐ์Šค๋กœ์ง€์ •ํ•œ ์˜์—ญ๋งŒ ์Šคํฌ๋ฆฐ์ƒท



์•ˆ๋…•ํ•˜์„ธ์š”~


์˜ค๋Š˜์€ ๋ฌด๋ฃŒ ์‚ฌ์šด๋“œ ์—๋””ํ„ฐ๋ฅผ ํ•˜๋‚˜ ์†Œ๊ฐœํ•  ๊นŒ ํ•ฉ๋‹ˆ๋‹ค.


๋ญ ์ €๋„ ํ•„์š”ํ•ด์„œ ๋‹ค์šด๋ฐ›์•„์„œ ์ž ๊น ์จ๋ณธ๊ฑฐ ๋ง๊ณ ๋Š” ์•„๋Š”๊ฒŒ ์—†์–ด์„œ ์žฅํ™ฉํ•˜๊ฒŒ ์„ค๋ช…๋“œ๋ฆด๊ฑด ์—†๊ณ ์š”


์ง์ ‘ ๋‹ค์šด ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•ด๋ณด์‹œ๋ฉด ๋ ๊ฒƒ ๊ฐ™์•„์š”~


์œˆ๋„์šฐ(Windows), ๋งฅ(Mac), ๋ฆฌ๋ˆ…์Šค(Linux)๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” ๋ฌด๋ฃŒ, ์˜คํ”ˆ ์†Œ์Šค, ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค.


์•„๋ž˜ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€๋กœ ๊ฐ€์‹œ๋ฉด Download ๋งํฌ๊ฐ€ ์—„์ฒญ ์ปค๋‹ค๋ž—๊ฒŒ ์žˆ์–ด์š”.


๊ณต์‹ ํ™ˆํŽ˜์ด์ง€ : http://web.audacityteam.org/


7์›” 22์ผ ํ˜„์žฌ 15๋…„ 7์›” 15์ผ์ž ์ตœ์‹  ๋ฒ„์ „์ด ์˜ฌ๋ผ์™€ ์žˆ๋„ค์š”.







์ถœ์ฒ˜ : http://www-01.ibm.com/support/docview.wss?uid=swg21222490

์ฐธ๊ณ ๋กœ  IBM์—์„œ ์ œ๊ณตํ•˜๋Š” ํž™๋คํ”„ ๋ถ„์„ํˆด์€ ์ด๊ณณ์—์„œ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


MusgGather : Gathering data for OutOfMemoryErrors on AIXยฎ


Problem(Abstract)

If your Java application experiences OutOfMemory(OOM) errors on an AIXยฎ operating system, there are a number of diagnostic data files that are useful for diagnosing the problem. This mustgather document describes about the diagnostic data files to be collected and the procedure to collect the same.

Resolving the problem

The following set of diagnostic data files need to be collected to diagnose an OutOfMemory error in the Java application:
1. Javacores (Multiple javacore files might be required to diagnose native memory issues)
2. Jextracted system cores (At least two system cores might be required to diagnose native memory issues)
3. Heapdumps
4. Snap traces for analyzing native OOM errors
5. Verbose GC logs (native_stderr.log)
6. Process logs (ps)

For these diagnostic data files to be created, check that the system is configured correctly as per setup document.

Please collect the diagnostic data files for an OutOfMemory error in the Java application as per the below steps:

1. Collect the javacore, heap dump and snap trace file generated automatically by Java runtime on an OOM occurrence.

2. For Java heap exhaustion issues, collect the javacore, system core, heap dump and snap trace files generated automatically by using -Xdump option mentioned in setup.

3. For native memory issues, generate at least three Java core, system core, heap dump and snap trace files by using the following command:
kill -3 [PID_of_problem_JVM]

When you observe the application starting to use excessive amounts of memory, start generating these above files at regular intervals.

The time interval between each generation of files depends on how quickly the application encounters native OOM error. For example, if the application takes 30 minutes to produce an native OOM error, issue the kill command at 10-minute intervals.

Please note that all the javacores, system cores, heap dumps and snap traces can be found in the current path and the names of them will follow the below format:
Javacore : javacore.<time stamp>.<id>.txt
Systemcore : core.<time stamp>.<id>.dmp
Snap trace : snap.<time stamp>.<id>.trc
Heap dump : heapdump.<time stamp>.<id>.phd

Run the JExtract tool against the generated system core file using the following command:
<installpath>/jre/bin/jextract [corefile]

Save the resulting archive file, which has a name in the format of core.<time stamp>.<id>.dmp.zip

4. Collect Verbose Garbage Collector data. This data is in the location specified during setup. Alternatively, the data is sent to the stderr output.

5. Collect process size monitoring data. The data is in the location specified during setup.

After collecting all the above diagnostic data files, you can submit them for help with diagnosing the problem.

Additional Information

When diagnosing the native OOM errors deeply, IBM service might ask you to collect additional information as mentioned below:

1. If the problem is suspected to be caused by a leak within the JVM, you can enable the JVM argument: -Xcheck:memory:callsite=<threshold>

This prints an allocation summary for every <threshold> allocations, by tracking calls from the JVM to the operating system memory allocation functions (malloc(), calloc(), free() and so on), along with callsite information showing which area of code requested the memory. Please use this information to track the memory allocated by an area of code that has not been freed, and to monitor how the size of that memory varies over time.

This option writes a summary of all allocations made or freed by the JVM, for every "N" allocations. "N" is typically a number in the range 100000 โ€“ 500000.The output of this option is written to stderr.

Please note the below important considerations for using the Xcheck option:
a) Only available on JDK release 5.0 and above
b) Performance can be badly affected if your threshold is set too low
c) Does not track allocations from outside the JVM

2. If the problem is suspected to be caused by Java Class Library (JCL) memory allocations, you can enable the following option:-Dcom.ibm.dbgmalloc=true

3. If operating system level debugging of native memory leaks is required, you can use the debugging extensions of the malloc subsystem of AIXยฎ. For details about using AIXยฎ debugging extensions, see the related information links.

Related information

Native Profiling on AIX



 putty์—์„œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ SSH ์ฐฝ์„ ์—ด๋ฉด ์œ„์™€ ๊ฐ™์ด ํ•œ๊ธ€์ด ๊นจ์ ธ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿด ๋•Œ์— ํ•œ๊ธ€์ด ๊นจ์ง€์ง€ ์•Š๊ฒŒ ํ•˜๋ ค๋ฉด putty์˜ ๋ฌธ์ž ์ง‘ํ•ฉ(character set) ์„ค์ •์„ ์†๋ณด์•„์•ผ ํ•œ๋‹ค.


 

 

๋จผ์ € locale ๋ช…๋ น์œผ๋กœ SSH์—์„œ ์“ฐ์ด๋Š” ๋ถ€ํ˜ธ ์ข…๋ฅ˜๋ฅผ ์‚ดํ•€๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” UTF-8์ด ์“ฐ์ด๊ณ  ์žˆ๋‹ค.

 


 

 

 putty ์„ค์ฉก์—์„œ Window โ†’ Translation์œผ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ๋ฌธ์ž ์ง‘ํ•ฉ ์„ค์ •์ด ๋ณด์ธ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์ธ 'Use font encoding'์„ ์•ž์—์„œ ๋ณธ UTF-8๋กœ ๋ฐ”๊พผ๋‹ค.

 



 

 

์ด ์„ค์ •์„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋‘๊ณ  ์‹ถ๋‹ค๋ฉด Session ํ•ญ๋ชฉ์—์„œ Default Settings๋กœ ์ €์žฅ(save)ํ•œ๋‹ค.

 



 

 

 

๋ฌธ์ž ์ง‘ํ•ฉ ์„ค์ •์ด ๋งž๊ฒŒ ๋˜์—ˆ๋‹ค๋ฉด ์ด์ฒ˜๋Ÿผ ๊นจ์ง€์ง€ ์•Š์€ ํ•œ๊ธ€์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 


  
์ถœ์ฒ˜ : http://pat.im/860


 


Mac OS X์—์„œ Eclipse Luna์™€ Tomcat์„œ๋ฒ„๋ฅผ ์—ฐ๋™์„ ์‹œํ‚ค๊ณ  ์›นํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

์ด์œ ์ธ์ฆ‰์Šจ ์„œ๋ฒ„๋Ÿฐํƒ€์ž„ํ™˜๊ฒฝ์˜ ์„œ๋ฒ„๋ชฉ๋ก์— ํ†ฐ์บฃ์ด ์•ˆ๋‚˜์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

 

ํ•ด๊ฒฐ์ฑ…์€ ๊ฐ„๋‹จํ•˜๋‹ค.

 

 Help->Install new software-> Work with : ์—๋‹ค๊ฐ€ http://download.eclipse.org/releases/luna  ์ฃผ์†Œ๋ฅผ ์น˜๋ฉด ์•„๋ž˜์ชฝ์— ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๋ชฉ๋ก์ด ์ญˆ์šฐ์šฐ์šฑ ๋œฐ ๊ฒƒ์ด๋‹ค.



๊ทธ๋Ÿฌ๋ฉด ์ œ์ผ ๋ฐ‘์œผ๋กœ ์Šคํฌ๋กคํ•ด์„œ Web, XML, Java EE and ์–ด์ฉŒ๊ตฌ ......์˜ ํ•˜์œ„๋ชฉ๋ก์„ ํŽผ์ณ๋ณด์ž.

๊ทธ๋Ÿฌ๋ฉด ์•„๋ž˜๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋ชฉ๋ก์ด ๋˜ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค.


์ž ์—ฌ๊ธฐ์„œ JST Server Adapters, JST Server Adapters Extensions, JST Server UI, ๊ทธ๋ฆฌ๊ณ 
WST Server Adapters ๋ฅผ ์„ ํƒํ•˜์ž. ์•„๋ž˜๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋ง์ด๋‹ค.



์ด์ œ Next ๋ฅผ ํด๋ฆญํ•˜๊ณ  ๋ผ์ด์„ผ์Šค acceptํ•œ ๋’ค ์„ค์น˜๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ์ดํด๋ฆฝ์Šค๋ฅผ ์žฌ๋ถ€ํŒ…ํ•˜๋ฉด ์„œ๋ฒ„๋Ÿฐํƒ€์ž„ํ™˜๊ฒฝ์— ํ†ฐ์บฃ์ด ๋ชฉ๋ก์— ๋œจ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„๊ฒƒ์ด๋‹ค.

 

๋…ธ๋ ฅํ•˜๋Š” ์ž์—๊ฒŒ ๊ธฐํšŒ๊ฐ€ ์ฃผ์–ด์ง€๋‚˜๋‹ˆ~~

์„ค์น˜๋ฅผ ํ•˜์ง€์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํฌํ„ฐ๋ธ” ๋ฒ„์ „์˜ ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.



1. ์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด์„œ ํฌ๋กฌ ํฌํ„ฐ๋ธ” ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.


http://portableapps.com/apps/internet/google_chrome_portable



2. ์ด๋™ํ•œ ํŽ˜์ด์ง€์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์„ ์ฐพ์•„์„œ ํด๋ฆญํ•˜๊ณ  exeํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.


3. ๋‹ค์šด๋กœ๋“œ๋ฐ›์€ ์„ค์น˜ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด ๋งˆ์น˜ ์ธ์Šคํ†จ๋Ÿฌ๋ฅผ ์‹คํ–‰์‹œํ‚จ๊ฒƒ์ฒ˜๋Ÿผ ์ฐฝ์ด ๋œจ์ง€๋งŒ ์‹ค์ œ๋กœ ์„ค์น˜ํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ๋ƒฅ ํฌ๋กฌ ํฌํ„ฐ๋ธ” ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ์•ˆ์‹ฌํ•˜์‹œ๊ณ  "๋‹ค์Œ"์„ ๋ˆ„๋ฅด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.



4. ๋‹ค์šด๋กœ๋“œ๋ฐ›์€ ํฌ๋กฌ ํฌํ„ฐ๋ธ” ๋ฒ„์ „์„ ์‹คํ–‰์‹œ์ผœ๋ณด์„ธ์š” ^^




Tip. ํฌ๋กฌ๋‚ด์—์„œ ์ด๋Ÿฐ ์ €๋Ÿฐ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜์‹œ๊ณ  ์‚ฌ์šฉํ•˜์‹œ๋‹ค๊ฐ€ ์—…๋ฐ์ดํŠธ ํ•˜์‹œ๋Š” ๊ฒฝ์šฐ์—๋Š” dataํด๋”์˜ profileํด๋”๋‚ด์˜ ํŒŒ์ผ๋“ค์„ ๋ฐฑ์—…ํ–ˆ๋‹ค๊ฐ€ ์ƒˆ ๋ฒ„์ „์˜ ํฌ๋กฌ ํฌํ„ฐ๋ธ”์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ๋’ค์— ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ํ•˜์‹œ๋ฉด ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜์‹œ๋˜ ์„ค์ • ํ™˜๊ฒฝ์„ ๊ทธ๋Œ€๋กœ ์žฌ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.