Banner

My Tech Blog (Java)

โœ… 1. Runtime.addShutdownHook()Runtime.addShutdownHook()๋Š” ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ข…๋ฃŒ๋  ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๊ธฐ ์ง์ „์— ํŠน์ • ์ž‘์—…(ํŒŒ์ผ ์ €์žฅ, ๋ฆฌ์†Œ์Šค ์ •๋ฆฌ ๋“ฑ)์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. โœ… 2. JVM ์ข…๋ฃŒ ์ด๋ฒคํŠธ๋ž€?์—ฌ๊ธฐ์„œ ์ •์ƒ ๋˜๋Š” ๋น„์ •์ƒ ์ข…๋ฃŒ์˜ ์ •์˜๋Š” ๋ช…์„ธ์„œ์— ๋‚˜์™€ ์žˆ๋‹ค. ์ž๋ฐ”์˜ ๊ฐ€์ƒ ๋จธ์‹ ์€ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์•„ ์ข…๋ฃŒํ•œ๋‹ค.์ •์ƒ ์ข…๋ฃŒํ”„๋กœ๊ทธ๋žจ์ด ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋  ๋•ŒSystem.exit()๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋น„์ •์ƒ ์ข…๋ฃŒCtrl + C(์‚ฌ์šฉ์ž ์ธํ„ฐ๋ŸฝํŠธ)์‚ฌ์šฉ์ž ๋กœ๊ทธ์˜คํ”„ ๋˜๋Š” ์‹œ์Šคํ…œ ์ข…๋ฃŒ ๋“ฑ ์‹œ์Šคํ…œ ์ด๋ฒคํŠธโš ๏ธ ํ•˜์ง€๋งŒ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.kill -9 (๊ฐ•์ œ ์ข…๋ฃŒ)OutOfMemoryError ๋ฐœ์ƒ๐Ÿ“Œ ..
๐Ÿ‘พ ๋ฌธ์ œ์ ์ฝ”ํ…Œ ๋ฌธ์ œ ํ’€๋‹ค๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ ์ฝ”๋“œ์™€ ๋‚ด ์ฝ”๋“œ์˜ ์ฐจ์ด์  ๋‚ด๊ฐ€ ์“ด ์ฝ”๋“œ (ํ•˜์ˆ˜์˜ ์ฝ”๋“œ)Arrays.sort(targets, (o1, o2) -> o1[1] - o2[1]); ๋‚จ์ด ์“ด ์ฝ”๋“œ (๊ณ ์ˆ˜์˜ ์ฝ”๋“œ)Arrays.sort(targets, (a, b) -> Integer.compare(a[1], b[1])); ์™œ ์ด ๋ถ„์€ Integer.compare() ๋ฉ”์„œ๋“œ๋ฅผ ์ผ์„๊นŒ?๐Ÿง ์›์ธ`Arrays.sort(targets, (o1, o2) -> o1[1] - o2[1])` ๋ฐฉ์‹์€ ๋‘ ์ •์ˆ˜์˜ ๋บ„์…ˆ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ ฌ ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐฉ์‹์€ ์•ฝ๊ฐ„์˜ ๋ฌธ์ œ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์œ„ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด intํ˜•์˜ ๋บ„์…ˆ ์—ฐ์‚ฐ ๊ณผ์ •์—์„œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ(overflow)๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, o1[..
1. Spring MVC ํŒจํ„ด์ด๋ž€?Spring MVC๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ์ด๋‹ค. Spring MVC๋Š” ์„œ๋ธ”๋ฆฟ(Servlet) API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ, ์ด ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ชจ๋“ˆํ™”ํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค.์šฐ์„  Spring MVC ์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์–ด ๊ธฐ๋ณธ์ ์ธ MVCํŒจํ„ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์ด MVCํŒจํ„ด์—์„œ ๋ฐœ์ „ํ•œ ๊ฒƒ์ด Spring MVC ์ด๋‹ค. MVC ํŒจํ„ด์€ ํฌ๊ฒŒ 3๊ฐ€์ง€ ์ฃผ์š” ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ๐Ÿฉ MVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ํŽ˜์ด์ง€, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ์ด ๋‘˜์„ ์ค‘๊ฐ„์—์„œ ์ œ์–ดํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๊ฐ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์„œ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์‹œ์Šคํ…œ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์šฐ๋ฉฐ, ์ค‘๋ณต์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๊ณ , ์• ํ”Œ๋ฆฌ์ผ€..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹n๋ช…์˜ ์„ ์ˆ˜๊ฐ€ ์žˆ์„ ๋•Œ, ๊ฐ ์„ ์ˆ˜๋Š” ๋ชจ๋“  ๋‹ค๋ฅธ ์„ ์ˆ˜์™€ ๊ฒฝ๊ธฐ๋ฅผ ํ•˜์—ฌ n-1๋ฒˆ์˜ ์ŠนํŒจ๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.์ฆ‰, ์ „์ฒด ์ŠนํŒจ ๊ฒฐ๊ณผ๋งŒ ์žˆ์œผ๋ฉด ๊ฐ ์„ ์ˆ˜์˜ ์ƒ๋Œ€์  ์œ„์น˜๋ฅผ ์ •ํ™•ํžˆ ํŒ๋‹จํ•ด์„œ ์ˆœ์œ„๋ฅผ ํ™•์ • ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ŠนํŒจ๋ฅผ ํ†ตํ•ด ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด ๋ชจ๋“  ์„ ์ˆ˜๋“ค ๊ฐ„์˜ ์ง์ ‘์ ์ธ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์„ ์ˆ˜ i์™€ ์„ ์ˆ˜ j๊ฐ€ ๊ฒฝ๊ธฐ๋ฅผ ํ•˜์—ฌ ์ŠนํŒจ๊ฐ€ ๊ฒฐ์ •๋˜๋ฉด, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.  ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ(Floyd-Warshall) ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ชจ๋“  ์Œ ์ตœ๋‹จ ๊ฒฝ๋กœ(all-pairs shortest path)๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ๋…ธ๋“œ ์Œ์— ๋Œ€ํ•ด ๊ฐ€์žฅ ์งง์€ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ๋…ธ๋“œ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋ชจ๋“  ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ..
1. ๋ฐ์ดํ„ฐ ์ „์†ก ๊ทœ์น™ 3๊ฐ€์ง€1-1. ์–ด๋””๋กœ (form ํƒœ๊ทธ์˜ action ์†์„ฑ)- ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋ชฉ์ ์ง€(servlet)๋ฅผ ์ง€์ •ํ•œ๋‹ค. - action ์†์„ฑ์— ์„œ๋ธ”๋ฆฟ URL ํŒจํ„ด์„ ์ž‘์„ฑํ•œ๋‹ค.์—ฌ๊ธฐ์„œ /MyServlet์€ ์„œ๋ธ”๋ฆฟ์˜ URL ๋งคํ•‘ ๊ฐ’์ด๋‹ค. ์„œ๋ธ”๋ฆฟ์˜ URL์€ @WebServlet์ด๋‚˜ web.xml์—์„œ ์„ค์ •๋œ๋‹ค. web.xml ๊ฒฝ๋กœWebContent/WEB-INF/web.xml ๋˜๋Š” src/main/webapp/WEB-INF/web.xml (ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ)1-2. ์–ด๋–ค ๊ฐ’์„ (input ํƒœ๊ทธ์˜ name)- input ํƒœ๊ทธ์— name ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์„œ๋ฒ„๋กœ ์ „์†กํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค. - ์„œ๋ฒ„์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๊ธฐ ์œ„ํ•ด name ์†์„ฑ์ด ํ•„์š”ํ•œ ๊ฒƒ. - Servlet ์—์„œ ๊ฐ’์„..
1. ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์ด๋ž€? URL์˜ ๋’ค์— ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ๋ฒ•์ด๋‹ค. ์›น๊ฐœ๋ฐœ์—์„œ ์›นํŽ˜์ด์ง€๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ  GET๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์“ฐ์ธ๋‹ค. POST๋ฐฉ์‹์€ ๋ณด์•ˆ์ˆ˜์ค€์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์•„์„œ URL ์— ๋„˜์–ด๊ฐ€๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.  URL์˜ ๋์— ?๋กœ ์‹œ์ž‘ํ•˜๊ณ , ๊ทธ ๋’ค์— ํ‚ค-๊ฐ’ ์Œ์ด ์ด์–ด์ง€๋Š” ๊ตฌ์กฐ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์— ์ถ”๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. ๊ฒ€์ƒ‰์ฟผ๋ฆฌ๋‚˜ ํ•„ํ„ฐ๋ง์— ์‚ฌ์šฉ๋œ๋‹ค.  ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰์ฐฝ์— '๋ฑ์Šค'๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์—”ํ„ฐ ์น˜๋ฉด ์ผ์–ด๋‚˜๋Š” ์ผ โ–ผ URL ์— ?๊ฐ€ ์ƒ๊ธฐ๋ฉด์„œ ๋‚ด๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด '๋ฑ์Šค'๊ฐ€ ๋์— ์ถ”๊ฐ€๋œ๋‹ค ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰์ฐฝ์— '์†ํฅ๋ฏผ'์„ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด?์•„๋ž˜์ฒ˜๋Ÿผ ์ฃผ์†Œ์ฐฝ์—์„œ url ๋’ค์— ? ์™€ ๊ฐ์ข… ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ™๋Š”๋‹ค.2. ๊ตฌ์กฐhttps://www...
๋ฌธ์ œ1. web.xml ์ด ์ฝ”๋“œ ์—๋””ํ„ฐ ํ˜•์‹์œผ๋กœ ์—ด๋ฆฌ์ง€ ์•Š์•„์„œ ์ˆ˜์ •์ด ์–ด๋ ค์šด ๋ฌธ์ œ2. Maven Project ์—์„œ pom.xml ํŒŒ์ผ์ด Maven POM Editor ๋กœ ์—ด๋ฆฌ๋Š” ๋ฌธ์ œ Eclipse Dynamic Web Project์—์„œ `jsp`ํŒŒ์ผ ๋˜๋Š” `xml` ํŒŒ์ผ์„ ์—ด์—ˆ๋Š”๋ฐ ํ…์ŠคํŠธ๋ฅผ ํŽธ์ง‘ ํ•  ์ˆ˜ ์žˆ๋Š” ์—๋””ํ„ฐ๋กœ ์—ด๋ฆฌ์ง€ ์•Š๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด Node ๋ž‘ Content ๊ตฌ์กฐ๋กœ ์—ด๋ฆฌ๋Š” ๋ฌธ์ œ ๋˜ Maven ํ”„๋กœ์ ํŠธ์—์„œ pom.xml ํŒŒ์ผ์ด xml ํ…์ŠคํŠธ ์—๋””ํ„ฐ ๋Œ€์‹  Maven POM Editor๋กœ ์—ด๋ฆฌ๋Š” ํ˜„์ƒ ๋‚˜๋Š” ์ด๊ฒŒ ๋” ์•Œ์•„๋ณด๊ธฐ ํž˜๋“ค๊ณ  ๋ช…ํ™•ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ xml ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์ผ๋ฐ˜ text Editor ๋กœ ์—ด๋ ค์„œ ํƒœ๊ทธ ์ธ์‹์ด ์•ˆ ๋˜๋Š” ๊ฒฝ์šฐ๋„ ๊ฐ™์€ ํ•ด๊ฒฐ๋ฒ•์„ ์“ฐ๋ฉด..
1. SOAP๋ž€?SOAP์˜ ํ’€๋„ค์ž„์€ “Simple Object Access Protocol” ์ด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋น„์Šค ๊ฐ„์˜ ์—ฐ๋™์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœํ† ์ฝœ HTTP, HTTPS, SMTP ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ XML ๊ธฐ๋ฐ˜์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ๊ตํ™˜ํ•˜๋Š” ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ด๋‹ค.  2. ํƒ„์ƒ ๋น„ํ™”๊ณผ๊ฑฐ์—๋Š” DCOM(Distributed Component Object Model)์ด๋‚˜ CORBA(Common Object Request Broker Architecture) ๊ฐ™์€ ๊ธฐ์ˆ ๋กœ ์›๊ฒฉ ํ†ต์‹ ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ํ˜ธํ™˜์„ฑ๊ณผ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ํŠนํžˆ, DCOM๊ณผ CORBA๋Š” ์ฃผ๋กœ TCP ๊ธฐ๋ฐ˜ ํ†ต์‹ ์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์ด๋Š” ๋ฐฉํ™”๋ฒฝ์—์„œ ์ฐจ๋‹จ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋‹ค. ์ด๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด, ๋” ๋ฒ”์šฉ์ ์ด๊ณ  ํ˜ธํ™˜์„ฑ ๋†’์€ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ–ˆ..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'Java' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก
์ƒ๋‹จ์œผ๋กœ