๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java 25

์ œ์ด์ฟผ๋ฆฌ(jQuery)๋ž€?

jQuery ๋ž€?์›น ๊ฐœ๋ฐœ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, HTML ๋ฌธ์„œ ์กฐ์ž‘๊ณผ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ˆ˜ํ–‰  jQuery ํ™œ์šฉ ์˜ˆ์‹œ jQuery ํŠน์ง•- ์›น์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ๊ฐ„ํŽธํ™” (๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(DOM) ์กฐ์ž‘, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ์• ๋‹ˆ๋ฉ”์ด์…˜, AJAX ๋“ฑ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ)- ๋ณต์žกํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑ - jQuery์˜ ๋ชจ๋“  ๊ตฌ๋ฌธ์€ jQuery๋กœ ์‹œ์ž‘, ๊ตฌ๋ฌธ์„ ๋‹จ์ˆœํ™” ํ•˜๊ธฐ ์œ„ํ•ด jQuery ๋Œ€์‹  $๋กœ ์‚ฌ์šฉ  jQuery ์„ ํƒ์ž ์ข…๋ฅ˜- ๊ธฐ๋ณธ ์„ ํƒ์ž$("*") : ๋ชจ๋“  ์š”์†Œ๋ฅผ ์„ ํƒ$(".class") : ์ง€์ •ํ•œ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง€๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ์„ ํƒ $("#id") : ์ง€์ •ํ•œ ID ์†์„ฑ์„ ๊ฐ€์ง€๋Š” ํ•˜๋‚˜์˜ ์š”์†Œ๋ฅผ ์„ ํƒ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ / ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript)๊ฐ์ฒด ๊ธฐ๋ฐ˜์˜ ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.์ด ์–ธ์–ด๋Š” ์›น ๋ธŒ๋ผ์šฐ์ € ๋‚ด์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‚ด์žฅ ๊ฐ์ฒด์—์„œ๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.๋˜ํ•œ, Node.js์™€ ๊ฐ™์€ ๋Ÿฐํƒ€์ž… ํ™˜๊ฒฝ๊ณผ ๊ฐ™์ด ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—๋„ ์‚ฌ์šฉ๋œ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด(= ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด)์‘์šฉ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ œ์–ดํ•˜๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋…๋ฆฝํ•˜์—ฌ ์‚ฌ์šฉ๋˜๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์˜ ์–ธ์–ด์™€ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์‚ฌ์šฉ๋˜์–ด ์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋™์ž‘์„ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์— ๋งž๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.- ๋น„(้ž)์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด     : C, C++, Java ๋“ฑ => ์ปดํŒŒ์ผ ๋œ ํ›„ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ํ•˜๋‚˜์˜ ์™„์ „ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ- ์Šคํฌ๋ฆฝํŠธ์–ธ์–ด    : ์ž..

HTTP ํ”„๋กœํ† ์ฝœ

HTTP(Hypertext Transfer Protocol) ์ด๋ž€? ์›น์—์„œ ๋ฐ์ดํ„ฐ(HTML๋ฌธ์„œ, ์ด๋ฏธ์ง€, ๋™์˜์ƒ, ์˜ค๋””์˜ค, ํ…์ŠคํŠธ..)๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„ - ํด๋ผ์ด์–ธํŠธ ๋ชจ๋ธ์„ ๋”ฐ๋ฅด๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ๋กœ TCP๊ธฐ๋ฐ˜์˜ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์„œ๋ฒ„ - ํด๋ผ์ด์–ธํŠธ ๋ชจ๋ธํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์š”์ฒญ(request)๋ฅผ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๋กœ ์‘๋‹ต(response)ํ•œ๋‹ค. HTTP ์š”์ฒญ๊ณผ ์‘๋‹ตHTTP ์š”์ฒญ์—๋Š” ํ—ค๋”์— ์›น์‚ฌ์ดํŠธ ๋„๋ฉ”์ธ์˜ ํ˜ธ์ŠคํŠธ, ์–ธ์–ด, ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ € ๋“ฑ ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.์š”์ฒญ์— ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋ฉด ์„œ๋ฒ„๋Š” HTTP ์ƒํƒœ์ฝ”๋“œ, ํ—ค๋”์— ํด๋ผ์ด์–ธํŠธ์—์„œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.๋งˆ์ง€๋ง‰์œผ๋กœ ์‘๋‹ต์˜ Body๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ์ด๋‹ค. HTTP์™€ HTTPS์˜ ์ฐจ์ด์ HTTP ํ†ต..

์ œ๋„ค๋ฆญ(Generics) ์ด๋ž€? (+Wrapper ํด๋ž˜์Šค, ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ)

์ž๋ฐ”์—์„œ ์ œ๋„ค๋ฆญ์€ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐํƒ€์ž…์„ ์™ธ๋ถ€์—์„œ ์ง€์ •ํ•˜๋Š” ๊ฒƒ!์ฆ‰, ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ ์‹œ ๋ฏธ๋ฆฌ ํƒ€์ž…์ด ์ง€์ •๋œ๋‹ค. ์‚ฌ์šฉ์ด์œ ? ํƒ€์ž… ์•ˆ์ „์„ฑ ๋ฆฌ์ŠคํŠธ ๊ฐ์ฒด๋ฅผ ์˜ˆ๋ฅผ ๋“ค๋ฉด..ArrayList List = new ArrayList(); // ๋’ท์ชฝ์˜ ์ œ๋„ค๋ฆญ์˜ ํƒ€์ž…์€ ์ƒ๋žต ๊ฐ€๋Šฅ๋ฆฌ์ŠคํŠธ ํด๋ž˜์Šค ์ž๋ฃŒํ˜•์˜ ํƒ€์ž…์€ String์œผ๋กœ ์ง€์ •๋˜์–ด, ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋งŒ ๋ฆฌ์ŠคํŠธ์— ์ ์žฌ ๊ฐ€๋Šฅํ•จ! ์šฐ๋ฆฌ๊ฐ€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ์ง€์ •ํ•ด์ฃผ๋“ฏ, ์ œ๋„ค๋ฆญ์€ ๊ฐ์ฒด(Object)์— ํƒ€์ž…์„ ์ง€์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ์ œ๋„ค๋ฆญ ํƒ€์ž…์˜ ์ข…๋ฅ˜=> ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์„ ์–ธ๋˜๋Š” ๋ฐฉ์‹์ด์ง€ ๋ฌด์กฐ๊ฑด ์ง€์ผœ์•ผํ•˜๋Š” ๊ทœ์น™์€ ์•„๋‹˜ : Type : Key : Value : Element : Number : Result, , … ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ..

ํ”„๋กœ์„ธ์Šค(Process) vs ์Šค๋ ˆ๋“œ(Thread) ๋ž€?

ํ”„๋กœ์„ธ์Šค(Process)- cpu์— ์˜ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์ ธ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ (์ผ๋ จ์˜ ๋ช…๋ น์–ด๋“ค์˜ ์ง‘ํ•ฉ)- ์ž์‹ ๋งŒ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํฌํ•จํ•œ ๋…๋ฆฝ์ ์ธ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.- ์ž๋ฐ” JVM์€ ์ฃผ๋กœ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰๋˜๋ฉฐ ๋™์‹œ์— ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค. ์Šค๋ ˆ๋“œ(Thread)- ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ๋ถ€๋ถ„์„ ๋‹ด๋‹นํ•˜์—ฌ ์‹ค์งˆ์ ์œผ๋กœ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š” ๋‹จ์œ„- ๋ช…๋ น์–ด๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋‚˜์˜ ํ๋ฆ„- ์ž๋ฐ”์—์„œ๋Š” JVM์— ์˜ํ•ด ๊ด€๋ฆฌ๋œ๋‹ค.- ํ”„๋กœ์„ธ์Šค๋‹น ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.- ๋‹จ์ผ ์Šค๋ ˆ๋“œ / ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ- ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๊ฐ๊ฐ Stack๋งŒ ๋”ฐ๋กœ ํ• ๋‹น๋ฐ›๊ณ , Code, Data, Heap ์˜์—ญ์€ ๊ณต์œ    ์Šค๋ ˆ๋“œ ์˜ˆ์ œ: ์ธ์ฆ ๋ฉ”์ผ ๋ฐœ์†ก ์š”์ฒญ ๋ฉ”์„œ๋“œpublic MailAuthI..

์ต๋ช… ํด๋ž˜์Šค(์ต๋ช… ๊ฐ์ฒด) ๋ž€?

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

์Šคํƒœํ‹ฑ (static) ์ด๋ž€?

static : ์ •์ , ๊ณ ์ •๋œ ์ด๋ž€ ์˜๋ฏธ์ž๋ฐ”์—์„œ์˜ static ํ‚ค์›Œ๋“œ๋ž€? ํด๋ž˜์Šค, ์ •์  ๋ฉค๋ฒ„ => static ๋ณ€์ˆ˜, static ๋ฉ”์„œ๋“œ Static์˜ ํŠน์ง•- ๋ฉ”๋ชจ๋ฆฌ์— ๊ณ ์ •์ ์œผ๋กœ ํ• ๋‹น- ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ - static ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์‚ฌ์šฉ ๋ถˆ๊ฐ€- ํ•œ๋ฒˆ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ static ์˜์—ญ์— ์ ์žฌ๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ ํ•ด์ œ๋จ => GC๊ฐ€ ํ•„ํ„ฐ๋ง ํ•˜์ง€ ๋ชปํ•จ public class Ex { public void test() { System.out.println("์ถœ๋ ฅ๋ ๊นŒ?"); } public static void main() { // test(); // ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ , ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ! }}  => ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ ์ด์œ ..

๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜ vs ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜

๋ณ€์ˆ˜๋ž€?: ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„๋ฐ์ดํ„ฐํƒ€์ž…(์ž๋ฃŒํ˜•) ์ด๋ž€?: ์ ์žฌํ•  ๋ฐ์ดํ„ฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ €์žฅ๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์—์„œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ๋ช…์‹œ์ ์œผ๋กœ ์•Œ๋ ค์ฃผ๋Š” ํ‚ค์›Œ๋“œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ํฌ๊ฒŒ ๊ธฐ๋ณธํ˜• ํƒ€์ž… / ์ฐธ์กฐํ˜• ํƒ€์ž…์œผ๋กœ ๊ตฌ๋ถ„๋จ! ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• 8๊ฐ€์ง€ 1 (byte)248์ •์ˆ˜ํ˜•byteshortintlong์‹ค์ˆ˜ํ˜•  floatdouble๋ฌธ์žํ˜• char  ๋…ผ๋ฆฌํ˜•boolean    ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• ํŠน์ง•- null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. (๊ธฐ๋ณธ๊ฐ’์ด ์ •ํ•ด์ ธ ์žˆ์Œ)- ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ๋™์‹œ์— ๋ฉ”๋ชจ๋ฆฌ ์ƒ์„ฑ- ๋ชจ๋“  ๊ฐ’ ํƒ€์ž…์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์Šคํƒ(Stack)์— ์ €์žฅ๋จ์ฐธ์กฐ ์ž๋ฃŒํ˜•๋ฐฐ์—ด ํƒ€์ž… / ์—ด๊ฑฐ ํƒ€์ž… / ํด๋ž˜์Šค / ์ธํ„ฐํŽ˜์ด์Šค ์ฐธ์กฐ ์ž๋ฃŒํ˜• ํŠน์ง•- ๊ธฐ๋ณธํ˜•๊ณผ ๋‹ฌ๋ฆฌ ์‹ค์ œ ๊ฐ’์ด ์ €์žฅ๋˜์ง€ ์•Š๊ณ , ์ž๋ฃŒ๊ฐ€ ์ €์žฅ๋œ ๊ณต๊ฐ„์˜ '์ฃผ์†Œ'๋ฅผ ์ €์žฅ..

JAVA๋ž€? ์ž๋ฐ”์˜ ๊ตฌ๋™ ์›๋ฆฌ (JVM์˜ ํŠน์ง•)

์ž๋ฐ”๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด !! ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ๋™์›๋ฆฌ 1. ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค (.java ํ™•์žฅ์ž์˜ ์†Œ์ŠคํŒŒ์ผ)2. ์ปดํŒŒ์ผ๋Ÿฌ(java.exe)๊ฐ€ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. (.class ํ™•์žฅ์ž์˜ ํด๋ž˜์Šค ํŒŒ์ผ)3. ๋Ÿฐ์ฒ˜(java.exe)๋กœ ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ (JVM)์„ ๊ตฌ๋™์‹œํ‚จ๋‹ค.4. ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ (JVM)์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๋ฉฐ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ๋‹ค.( * bytecode๋Š” ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ๋ณ€ํ™˜๋œ ์ฝ”๋“œ. JVM๋งŒ ์„ค์น˜ ๋˜์–ด ์žˆ์œผ๋ฉด bytecode๋Š” ์–ด๋–ค ์šด์˜์ฒด์ œ์—์„œ๋ผ๋„ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค. )   ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ (JVM)  * ๊ตฌ์„ฑ ์š”์†Œ 1. ํด๋ž˜์Šค ๋กœ๋”(Class Loader) : ํ•„์š”ํ•œ ํด๋ž˜์Šค ํŒŒ์ผ์„ ์ฐพ๊ณ  ๋™์ ์œผ๋กœ ๋กœ๋“œํ•˜์—ฌ ์‹คํ–‰ ์‹œ์— ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ๋กœ๋“œ๋œ ..

์ฟ ํ‚ค(Cookie) vs ์„ธ์…˜(Session)

์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ†ต์‹ ์„ ํ•  ๋•Œ ์š”์ฒญ(Request)/์‘๋‹ต(Response)์„ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.์ด ๋•Œ ํ†ต์‹ ์ด ์—ฐ์†์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๊ณ  ํ•œ ๋ฒˆ ํ†ต์‹ ์ด ๋˜๋ฉด ๋Š์–ด์ง„๋‹ค.๋”ฐ๋ผ์„œ, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ๊ณ„์† ์ธ์ฆ์„ ํ•ด์ค˜์•ผํ•œ๋‹ค.์ด๋Ÿฌํ•œ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด '์ฟ ํ‚ค์™€ ์„ธ์…˜'์ด๋‹ค. ์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ์ฐจ์ด์ ์€ ํฌ๊ฒŒ ์ƒํƒœ ์ •๋ณด์˜ ์ €์žฅ ์œ„์น˜ ์ด๋‹ค.์ฟ ํ‚ค๋Š” 'ํด๋ผ์ด์–ธํŠธ(=๋กœ์ปฌPC)'์— ์ €์žฅํ•˜๊ณ , ์„ธ์…˜์€ '์„œ๋ฒ„'์— ์ €์žฅํ•œ๋‹ค.  ์ฟ ํ‚ค(Cookie)์„ธ์…˜(Session)์ €์žฅ์œ„์น˜ํด๋ผ์ด์–ธํŠธ(=์ ‘์†์ž PC)์›น ์„œ๋ฒ„ (ex. ํ†ฐ์บฃ HttpSession)๋งŒ๋ฃŒ์‹œ์ ์ฟ ํ‚ค ์ €์žฅ์‹œ ์„ค์ •(๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„, ๋งŒ๋ฃŒ์‹œ์ ์ด ์ง€๋‚˜์ง€ ์•Š์œผ๋ฉด ์ž๋™ ์‚ญ์ œ ๋˜์ง€ ์•Š์Œ)๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ์‹œ ์‚ญ์ œ(๊ธฐ๊ฐ„ ์ง€์ • ๊ฐ€๋Šฅ)์šฉ๋Ÿ‰์ œํ•œ์ด 300๊ฐœ, ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ๋‹น 20๊ฐœ, ํ•˜๋‚˜์˜..