์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(WAS)
ยท
๐Ÿ‘ฉ‍๐Ÿ’ปDeveloper ๐Ÿ’ก/๐Ÿ’พBack-end๐Ÿ•Š๏ธ
1. ์›น ์„œ๋ฒ„ (Web Server): "ํ™€ ๋งค๋‹ˆ์ €"์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋งŒ๋‚˜๋Š” ์ฐฝ๊ตฌ์ž…๋‹ˆ๋‹ค. (์ด๋ฏธ์ง€ ์† web server)์ฃผ์š” ์—ญํ• : ์†๋‹˜์ด ์˜ค๋ฉด ๋ฐ˜๊ฐ‘๊ฒŒ ๋งž์ดํ•˜๊ณ , ๋ฉ”๋‰ดํŒ(HTML)์ด๋‚˜ ์ด๋ฏธ ์ธ์‡„๋œ ํ™๋ณด์ง€(์ด๋ฏธ์ง€, PDF)๋ฅผ ๋ฐ”๋กœ ๊ฑด๋„ค์ค๋‹ˆ๋‹ค.ํ•˜๋Š” ์ผ: 1. ์†๋‹˜์ด ์ฐพ๋Š” ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ๋ฌธ์„œ๋ฅผ ์ฐพ์•„์„œ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. 2. ์ฐพ๋Š” ๊ฒŒ ์—†์œผ๋ฉด "๊ทธ๋Ÿฐ ๋ฉ”๋‰ด ์—†์Šต๋‹ˆ๋‹ค(404 ์—๋Ÿฌ)"๋ผ๊ณ  ์•Œ๋ ค์ค๋‹ˆ๋‹ค. 3. ๋ณต์žกํ•œ ์š”๋ฆฌ(๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง)๊ฐ€ ํ•„์š”ํ•˜๋ฉด **์ฃผ๋ฐฉ(WAS)**์œผ๋กœ ์ฃผ๋ฌธ์„ ๋„˜๊น๋‹ˆ๋‹ค.2. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ (WAS): "์ฃผ๋ฐฉ (์ปจํ…Œ์ด๋„ˆ + ์š”๋ฆฌ์‚ฌ)"๋‹จ์ˆœํžˆ ๋ฌธ์„œ๋ฅผ ์ฃผ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ๋ญ”๊ฐ€ ๊ณ„์‚ฐํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋•Œ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค. (์ด๋ฏธ์ง€ ์† web application server)์ฃผ์š” ์—ญํ• : ์ฃผ๋ฌธ์„ ๋ฐ›์•„ ์‹์žฌ๋ฃŒ(DB)๋ฅผ..
Servlet & JSP ์ž…๋ฌธ (MVCํŒจํ„ด)
ยท
๐Ÿ‘ฉ‍๐Ÿ’ปDeveloper ๐Ÿ’ก/๐Ÿ—ปData๐Ÿ”๏ธ
MVC ํŒจํ„ด์˜ ์—ญ์‚ฌ์›น ๊ฐœ๋ฐœ์˜ ์—ญ์‚ฌ๋Š” ๊ฒฐ๊ตญ **"์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ๋น ๋ฅด๊ณ  ํŽธํ•˜๊ฒŒ ํ™”๋ฉด์„ ๋ณด์—ฌ์ค„ ๊ฒƒ์ธ๊ฐ€?"**์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์˜ ๊ณผ์ •์ž…๋‹ˆ๋‹ค.1. ํ๋ฆ„ ํ•œ๋ˆˆ์— ๋ณด๊ธฐ (์ž‘๋™ ์ˆœ์„œ)์‚ฌ์šฉ์ž (์˜ˆ๋‚˜๋‹˜): React ํ™”๋ฉด์—์„œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.ํด๋ผ์ด์–ธํŠธ (React): "์–ด์ด ๋ฐฑ์—”๋“œ! ๋ถ€์‚ฐ ๋ฐ์ดํ„ฐ ์ข€ ์ค˜!"๋ผ๊ณ  ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๋•Œ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์ด RESTful ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. (๊ณผ๊ฑฐ์—” SOAP๋ฅผ ์ผ์ง€๋งŒ ๋„ˆ๋ฌด ๋ฌด๊ฑฐ์›Œ์„œ ์ด์ œ ์•ˆ ์จ์š”!)๋ฐฑ์—”๋“œ (Spring Boot): ์š”์ฒญ์„ ๋ฐ›๊ณ  DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด ์˜ˆ์˜๊ฒŒ ๊ฐ€๊ณตํ•ฉ๋‹ˆ๋‹ค.์‘๋‹ต: Spring Boot๊ฐ€ RESTful ๊ทœ์น™์— ๋งž์ถฐ ๋ฐ์ดํ„ฐ(JSON)๋ฅผ React์—๊ฒŒ ๋˜์ ธ์ค๋‹ˆ๋‹ค.ํ‘œํ˜„ (React): ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ํ™”๋ฉด์˜ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ƒฅ- ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๊ธฐ์ˆ ๋น„์œ ์‹ค์ œ ํ•˜๋Š”..
Java Stream(์ŠคํŠธ๋ฆผ) ์™„์ „ ์ •๋ฆฌ
ยท
๐Ÿ‘ฉ‍๐Ÿ’ปDeveloper ๐Ÿ’ก/๐Ÿ’พBack-end๐Ÿ•Š๏ธ
๋ฐฐ์—ด/์ปฌ๋ ‰์…˜์„ “๊ฐ™์€ ๋ฐฉ์‹”์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ด์œ  + filter/map/sorted/forEach/sum/count/reduce๊นŒ์ง€0) ์ŠคํŠธ๋ฆผ(Stream)์ด ๋ญ์•ผ?์Šฌ๋ผ์ด๋“œ ์š”์•ฝ์„ ์•„์ฃผ ์‰ฝ๊ฒŒ ํ’€๋ฉด ์ด๊ฑฐ์•ผ:์ŠคํŠธ๋ฆผ(Stream) = “์—ฌ๋Ÿฌ ์ž๋ฃŒ(๋ฐฐ์—ด, ๋ฆฌ์ŠคํŠธ ๋“ฑ)๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ(์—ฐ์‚ฐ)์„ ๋ชจ์•„๋‘” ํ๋ฆ„(ํŒŒ์ดํ”„๋ผ์ธ)”์ค‘์š”ํ•œ ํฌ์ธํŠธ:๋ฐฐ์—ด์ด๋“  ์ปฌ๋ ‰์…˜์ด๋“  ๋˜‘๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ“์ž๋ฃŒ ๊ตฌ์กฐ(๋ฐฐ์—ด/๋ฆฌ์ŠคํŠธ)๊ฐ€ ๋ญ๋ƒ”๋ณด๋‹ค “์–ด๋–ค ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  ์‹ถ๋ƒ”์— ์ง‘์ค‘ํ•˜๊ฒŒ ํ•ด์คŒ๋ฐ˜๋ณต๋ฌธ์„ ์ง์ ‘ ๋Œ๋ฆฌ๋Š” ๋Œ€์‹ , ์ŠคํŠธ๋ฆผ์ด ๋‚ด๋ถ€์ ์œผ๋กœ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์„œ ์ฒ˜๋ฆฌํ•จ(๋‚ด๋ถ€ ๋ฐ˜๋ณต)โœ… ๋น„์œ ๋ฐฐ์—ด/๋ฆฌ์ŠคํŠธ = ์žฌ๋ฃŒ๊ฐ€ ๋‹ด๊ธด ๋ฐ•์Šค์ŠคํŠธ๋ฆผ = ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ(์ž‘์—… ๋ผ์ธ)filter, map, sorted ๊ฐ™์€ ๊ฑด “์ž‘์—… ๊ธฐ๊ณ„”๋งˆ์ง€๋ง‰์— forEach, sum, co..
JAVA ์Šค๋ ˆ๋“œ(Thread) ์™„์ „ ์ •๋ฆฌ
ยท
๐Ÿ‘ฉ‍๐Ÿ’ปDeveloper ๐Ÿ’ก/๐Ÿ’พBack-end๐Ÿ•Š๏ธ
thread๋Š” ํ•˜๋‚˜์˜ ์ฝ”๋“œ ์‹คํ–‰ ํ๋ฆ„. RPG๊ฒŒ์ž„์—์„œ, ํ•œ๋ช…์˜ ์บ๋ฆญํ„ฐ๊ฐ€ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ ๊ฐ™์€ ๋А๋‚Œ. ์ž๋ฐ” ์Šค๋ ˆ๋“œ(Thread) ์™„์ „ ์ •๋ฆฌ: ํ”„๋กœ์„ธ์Šค vs ์Šค๋ ˆ๋“œ, ๋ฉ”์ธ์Šค๋ ˆ๋“œ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ, Runnable/Thread ์ฝ”๋“œ๊นŒ์ง€1) ํ”„๋กœ์„ธ์Šค(Process)๋ž€?์šด์˜์ฒด์ œ(OS)์—์„œ **“์‹คํ–‰ ์ค‘์ธ ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜”**์„ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ํ•ด์š”.์šฐ๋ฆฌ๊ฐ€ ํฌ๋กฌ์„ ์ผ ๋‹ค → OS๊ฐ€ ํฌ๋กฌ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ/์ž์›์„ ํ• ๋‹น๊ทธ ์ƒํƒœ์—์„œ ํฌ๋กฌ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” “์‹คํ–‰ ๋‹จ์œ„”๊ฐ€ ๋ฐ”๋กœ ํ”„๋กœ์„ธ์Šคโœ… ๋น„์œ ํ”„๋กœ์„ธ์Šค = ํ•˜๋‚˜์˜ ๊ฐ€๊ฒŒ(๋งค์žฅ)๋งค์žฅ์—๋Š” “๊ณต๊ฐ„(๋ฉ”๋ชจ๋ฆฌ)”, “๋ฌผ๊ฑด(์ž์›)”, “์ง์›(์‹คํ–‰ ํ๋ฆ„)”์ด ํ•„์š”ํ•˜์ฃ .๊ฐ€๊ฒŒ๊ฐ€ ํ•˜๋‚˜ ์—ด๋ฆฌ๋ฉด(= ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ) ๊ฐ€๊ฒŒ ์šด์˜์— ํ•„์š”ํ•œ ์ž์›์ด ํ†ต์งธ๋กœ ๋ฐฐ์ •๋ผ์š”.2) ์Šค๋ ˆ๋“œ(Thread)๋ž€?์Šค๋ ˆ๋“œ๋Š” ์‚ฌ์ „..
Java ์ œ๋„ค๋ฆญ(Generic) ์™„์ „ ์ •๋ณต
ยท
๐Ÿ‘ฉ‍๐Ÿ’ปDeveloper ๐Ÿ’ก/๐Ÿ’พBack-end๐Ÿ•Š๏ธ
Java ์ œ๋„ค๋ฆญ(Generic) ์™„์ „ ์ •๋ณต (์ •์˜ ~ ์ปฌ๋ ‰์…˜๊นŒ์ง€, ์ฝ”๋“œ ํ•œ ์ค„์”ฉ ์„ค๋ช…)1. ์ œ๋„ค๋ฆญ(Generic)์ด๋ž€?์ž๋ฐ”์—์„œ ๋ณ€์ˆ˜/๋งค๊ฐœ๋ณ€์ˆ˜/๋ฐ˜ํ™˜๊ฐ’์€ ๋ชจ๋‘ ์ž๋ฃŒํ˜•(Type) ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ์‹ค์ œ ๊ฐœ๋ฐœ์—์„œ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ “๋™์ž‘์€ ๋˜‘๊ฐ™์€๋ฐ ๋‹ค๋ฃจ๋Š” ํƒ€์ž…๋งŒ ๋‹ค๋ฅธ” ์ƒํ™ฉ์ด ์ •๋ง ๋งŽ์Šต๋‹ˆ๋‹ค.ํ”„๋ฆฐํ„ฐ์— ์žฌ๋ฃŒ๋ฅผ ๋„ฃ๊ณ  ๊บผ๋‚ด๊ธฐ (Powder / Plastic)๋ฆฌ์ŠคํŠธ์— ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊บผ๋‚ด๊ธฐ (String / Integer)์–ด๋–ค ๊ฐ์ฒด๋ฅผ ๋‹ด๋Š” ๋ฐ•์Šค(Box) ๋งŒ๋“ค๊ธฐ์ด๋•Œ ํƒ€์ž…๋งˆ๋‹ค ํด๋ž˜์Šค๋ฅผ ๋งค๋ฒˆ ์ƒˆ๋กœ ๋งŒ๋“ค๋ฉด ์ฝ”๋“œ๊ฐ€ ์ค‘๋ณต๋˜๊ณ , Object๋กœ ํ†ตํ•ฉํ•˜๋ฉด ๊บผ๋‚ผ ๋•Œ๋งˆ๋‹ค ํ˜•๋ณ€ํ™˜(์บ์ŠคํŒ…)์ด ํ•„์š”ํ•˜๊ณ  ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ ์œ„ํ—˜์ด ์ปค์ง‘๋‹ˆ๋‹ค.โœ… ๊ทธ๋ž˜์„œ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด ์ œ๋„ค๋ฆญ(Generic) ์ž…๋‹ˆ๋‹ค.์ œ๋„ค๋ฆญ(Generic) ์ด๋ž€“ํด๋ž˜์Šค/๋ฉ”์†Œ๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ž๋ฃŒํ˜•์„ ๋‚˜์ค‘..
Java 8. Interface
ยท
๐Ÿ‘ฉ‍๐Ÿ’ปDeveloper ๐Ÿ’ก/๐Ÿ’พBack-end๐Ÿ•Š๏ธ
์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ตฌํ˜„์ฝ”๋“œ๋‚˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋™์‹œ์— ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ์ธํ„ฐํŽ˜์ด์Šค์— ์ด๋ฆ„์ด ๊ฐ™์€ ๋ฉ”์†Œ๋“œ๊ฐ€ ์„ ์–ธ๋˜์—ˆ๋‹ค๊ณ  ํ•ด๋„ ๊ตฌํ˜„์€ ํด๋ž˜์Šค์—์„œ ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ, ์–ด๋–ค ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผํ•˜๋Š”์ง€ ๋ชจํ˜ธํ•˜์ง€ ์•Š๋‹ค. ๋‘ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ Customerํด๋ž˜์Šค๋Š” Buyํ˜• ์ด๊ธฐ๋„ํ•˜๊ณ , Sellํ˜•์ด๊ธฐ๋„ ํ•˜๋‹ค. “Buyํ˜•์ด์ž Sellํ˜•์ด๋‹ค” = Customer๋Š” ๋‘ ์—ญํ• ์„ ๋‹ค ๊ฐ€์ง„๋‹คCustomer ๊ฐ์ฒด๋Š” ์ด๋Ÿฐ ๋А๋‚Œ์ด์•ผ:**ํ•œ ์‚ฌ๋žŒ(๊ฐ์ฒด)**์ด“๊ตฌ๋งค์ž ์—ญํ• (Buy)”๋„ ํ•  ์ˆ˜ ์žˆ๊ณ “ํŒ๋งค์ž ์—ญํ• (Sell)”๋„ ํ•  ์ˆ˜ ์žˆ์Œ๊ทธ๋ž˜์„œ ์•„๋ž˜๊ฐ€ ๊ฐ€๋Šฅํ•ด:์™œ Buy buyer = customer; ํ•˜๋ฉด buy๋งŒ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•ด?์—ฌ๊ธฐ๊ฐ€ ํ™”๋ฉด์˜ ํ•ต์‹ฌ ๋ฌธ์žฅ์ด์•ผ:“customer๋ฅผ Buy ์ธํ„ฐํŽ˜์ด์Šค ํ˜• ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•˜๋ฉดํ˜•๋ณ€ํ™˜์ด ..
Java ์ƒ์†:๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ
ยท
๐Ÿ‘ฉ‍๐Ÿ’ปDeveloper ๐Ÿ’ก/๐Ÿ’พBack-end๐Ÿ•Š๏ธ
1) Customer ํด๋ž˜์Šค (๋ถ€๋ชจ/๊ธฐ๋ณธ ๊ณ ๊ฐ) ํ•„๋“œ(๋ฉค๋ฒ„๋ณ€์ˆ˜) ์˜๋ฏธcustomerID, customerName, customerGrade→ ๊ณ ๊ฐ์˜ ๊ธฐ๋ณธ ์ •๋ณดbonusPoint→ ๋ˆ„์  ํฌ์ธํŠธ (๊ตฌ๋งคํ•  ๋•Œ๋งˆ๋‹ค ์Œ“์ž„)bonusRatio→ ๊ตฌ๋งค๊ธˆ์•ก์˜ ๋ช‡ %๋ฅผ ํฌ์ธํŠธ๋กœ ์ ๋ฆฝํ• ์ง€ ๋น„์œจprotected๊ฐ€ ์™œ ์ค‘์š”?protected๋Š” ์ƒ์†๋ฐ›์€ ์ž์‹ ํด๋ž˜์Šค(VIPCustomer) ์—์„œ๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ด.๊ทธ๋ž˜์„œ VIPCustomer์—์„œ customerGrade="VIP" ๊ฐ™์€ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ด์ง. ์ƒ์„ฑ์ž ์˜๋ฏธ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ๊ณ ๊ฐ ๊ธฐ๋ณธ๊ฐ’ ์„ธํŒ…๊ธฐ๋ณธ ๋“ฑ๊ธ‰์€ "SILVER"SILVER๋Š” ํฌ์ธํŠธ ์ ๋ฆฝ๋ฅ  1% (0.01)โœ… ์ฆ‰, new Customer(10010, "๋ฐ•์ƒˆ๋กœ์ด") ํ•˜๋ฉด๋ฐ•์ƒˆ๋กœ์ด๋Š” ์ž๋™์œผ๋กœ SILVER / 1% ์ ๋ฆฝ์ด ๋จ. ca..