[๋„คํŠธ์›Œํฌ] UDP์™€ TCP
Computer Science/๋„คํŠธ์›Œํฌ 2020. 6. 24. 14:20

UDP(User Datagram Protocol) ๊ฐœ์š” UDP๋ž€? ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค : ์—ฐ๊ฒฐ์„ ์œ„ํ•ด ํ• ๋‹น๋˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ๊ฒฝ๋กœ๊ฐ€ ์—†์–ด ๊ฐ๊ฐ์˜ ํŒจํ‚ท์ด ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์ „์†ก๋จ ๋…๋ฆฝ์ ์ธ ํŒจํ‚ท : ๊ฐ๊ฐ์˜ ํŒจํ‚ท์€ ๋…๋ฆฝ์ ์ธ ๊ด€๊ณ„๋ฅผ ์ง€๋‹ˆ๊ฒŒ ๋จ ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ์Œ : ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์ •๋ณด๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฐ›๋Š”๋‹ค๋Š” ์‹ ํ˜ธ์ ˆ์ฐจ๊ฐ€ ์—†์–ด ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Œ ์ฒดํฌ์„ฌ : UDPํ—ค๋”์˜ CheckSum ํ•„๋“œ๋ฅผ ํ†ตํ•ด ์ตœ์†Œํ•œ์˜ ์˜ค๋ฅ˜๋งŒ ๊ฒ€์ถœํ•จ ์†๋„๊ฐ€ ๋น ๋ฆ„ : TCP์™€ ๋‹ค๋ฅด๊ฒŒ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ์„ ์œ„ํ•œ ์ ˆ์ฐจ๊ฐ€ ์—†๋‹ค๋ณด๋‹ˆ ์†๋„๊ฐ€ ๋น ๋ฆ„ ์‹ค์‹œ๊ฐ„ ์„œ๋น„์Šค : ์‹ ๋ขฐ์„ฑ๋ณด๋‹ค๋Š” ์—ฐ์†์„ฑ์ด ์ค‘์š”ํ•œ ์„œ๋น„์Šค์— ์ฃผ๋กœ ์‚ฌ์šฉ๋จ ์ „์†ก ํ˜ธ์ŠคํŠธ์˜ ํ๋ฆ„ ์ „์†ก ํ˜ธ์ŠคํŠธ์—์„œ ์ „์†กํ•˜๊ธฐ ์ „์— ํŒจํ‚ท์— ๋ชฉ์ ์ง€ ์ฃผ์†Œ์™€ ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ ์†Œ์ผ“์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จ์‹œํ‚ด ์ „์†ก ํ˜ธ์ŠคํŠธ์—์„œ ์†ก์‹  ํ”„๋กœ์„ธ์Šค๋ฅผ ..

[JAVA] Comparable vs Comparator
JAVA/Java Programming 2020. 6. 22. 23:40

Comparable ๊ฐœ๋… Comparable์ด๋ž€? Comparable์€ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ปฌ๋ ‰์…˜์„ ์ •๋ ฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๊ณ  ์žˆ์Œ Comparable์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค๋Š” ๊ฐ™์€ ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋ผ๋ฆฌ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค๋“ค์ž„ Comparable์„ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋“ค์€ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ ํ•„์ˆ˜์ ์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋Š” CompareTo() Comparator ๊ฐœ๋… Comparator๋ž€? Comparable์ด ๊ฐ์ฒด๋ฅผ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ด์ค€๋‹ค๋ฉด ์–˜๋Š” ์ •๋ ฌ ๊ธฐ์ค€์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ ์ฆ‰, Comparable์—์„œ ๊ตฌํ˜„ํ•œ ๊ธฐ๋ณธ ์ •๋ ฌ๊ธฐ์ค€ ์™ธ์— ๋‹ค๋ฅธ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๊ณ ์žํ•  ๋•Œ ์‚ฌ์šฉํ•จ Ex) ์ด๋ฏธ ๊ตฌํ˜„๋œ ์˜ค๋ฆ„์ฐจ์ˆœ์ด ์•„๋‹Œ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ Comparable, Comparator์„ ์ด์šฉํ•œ Colle..

[JAVA] Wrapper Class
JAVA/์•Œ์•„๋‘๋ฉด ์ข‹์„ ์ง€์‹ 2020. 6. 22. 22:19

Wrapper Class ๊ฐœ๋… Wrapper Class๋ž€? Java์—์„œ๋Š” ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜(Primitive Type)์™€ ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜(Reference Type)๊ฐ€ ์กด์žฌํ•จ ๊ทธ๋Ÿฐ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜์—๋„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜๋ฅผ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ ์ด๋•Œ ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜๋ฅผ ๊ฐ์ฒด๋กœ ํฌ์žฅํ•ด์ฃผ๋Š” ํด๋ž˜์Šค๋ฅผ Wrapper Class๋ผ๊ณ  ํ•จ Wrapper ํด๋ž˜์Šค๋Š” ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ์œ„ํ•ด ์ •์˜๋œ ํด๋ž˜์Šค๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ, ์ธ์Šคํ„ด์Šค์— ์ €์žฅ๋œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ ๋‹จ์ง€, ๊ฐ’์„ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค์˜ ๊ฐ’๋งŒ์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Œ Ex) Integer data = new Integer(123); Wrapper Class์˜ ์ข…๋ฅ˜ ๋ฐ•์‹ฑ(Boxing)๊ณผ ์–ธ๋ฐ•์‹ฑ(UnBoxing) ๋ฐ•์‹ฑ๊ณผ ์–ธ..

[์ •๋ ฌ] Quick Sort
Computer Science/์•Œ๊ณ ๋ฆฌ์ฆ˜ 2020. 6. 22. 18:45

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

[HTTP] ํ”„๋ก์‹œ ์„œ๋ฒ„(์›น ์บ์‹œ ์„œ๋ฒ„)
Computer Science/๋„คํŠธ์›Œํฌ 2020. 6. 16. 23:06

ํ”„๋ก์‹œ ์„œ๋ฒ„ ๊ฐœ๋… ํ”„๋ก์‹œ ์„œ๋ฒ„(์›น ์บ์‹œ)๋ž€? ํ”„๋ก์‹œ ์„œ๋ฒ„๋Š” ์›์ถœ์ฒ˜์˜ ์›น ์„œ๋ฒ„๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ HTTP ์š”๊ตฌ๋ฅผ ์ถฉ์กฑ์‹œํ‚ค๋Š” ๋„คํŠธ์›Œํฌ ๊ฐœ์ฒด ํ”„๋ก์‹œ ์„œ๋ฒ„๋Š” ์ž์ฒด ์ €์žฅ ๋””์Šคํฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์ตœ๊ทผ ํ˜ธ์ถœ๋œ ๊ฐ์ฒด์˜ ์‚ฌ๋ณธ์„ ์ €์žฅ ๋ฐ ๋ณด์กดํ•จ ํ”„๋ก์‹œ ์„œ๋ฒ„ ์‘๋‹ต ๊ณผ์ • ๋ธŒ๋ผ์šฐ์ €์™€ ํ”„๋ก์‹œ ์„œ๋ฒ„๊ฐ€ TCP ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  HTTP ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. ํ”„๋ก์‹œ ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋ฐ”๋กœ ์‘๋‹ตํ•˜๊ณ  ์—†์œผ๋ฉด ์„œ๋ฒ„์—๊ฒŒ TCP ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•œ๋‹ค. ํ”„๋ก์‹œ ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น ๊ฐ์ฒด์˜ ์š”์ฒญ์„ ์„œ๋ฒ„์— ์ „์†กํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ํ”„๋ก์‹œ ์„œ๋ฒ„๋กœ ๊ฐ์ฒด๋ฅผ ๋‹ด์€ ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค. ๊ฐ์ฒด๋ฅผ ํ”„๋ก์‹œ ์„œ๋ฒ„์— ์ €์žฅํ•˜๊ณ  ์ด๋ฏธ ์—ฐ๊ฒฐ๋˜์—ˆ๋˜ TCP ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๊ฐ์ฒด๋ฅผ ์‘๋‹ตํ•œ๋‹ค. ๋งŒ์•ฝ ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ ๋‚ด์šฉ์ด ์ตœ์‹ ์ด ์•„๋‹ˆ๋ผ๋ฉด? ์กฐ๊ฑด๋ถ€ GET ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉํ•จ If-Modified..