๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ264

[Network] Sync/Async์™€ Blocking/Non-blocking Blocking/Non-blocking๊ณผ Sync/Async๋Š” ๋น„์Šทํ•˜๊ฒŒ ๋ณด์ด์ง€๋งŒ, ๋‹ค๋ฅธ ๊ฐœ๋…์ด๋‹ค. ๊ต‰์žฅํžˆ ํ—ท๊ฐˆ๋ ค์„œ,,!! ๋‘˜์„ ์ •ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ •๋ฆฌํ•ด๋ณด๋ คํ•œ๋‹ค. ๐Ÿ“Ž ๊ฐœ๋… ๋น„๊ต Sync/Async์™€ Blocking/Non-blocking์€ ๋ชจ๋‘ ํ”„๋กœ์„ธ์Šค๋ฅผ ์šด์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. Sync/Async "ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜ํ–‰ ์ˆœ์„œ ๋ณด์žฅ์— ๋Œ€ํ•œ ๋งค์ปค๋‹ˆ์ฆ˜" Sync : ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์ˆœ์„œ์— ๋งž๊ฒŒ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌ Async : ํ•˜๋‚˜์˜ ์š”์ฒญ์ด ๋๋‚˜๊ธฐ๋„ ์ „์—, ๋‹ค๋ฅธ ์š”์ฒญ๋“ค์„ ๋™์‹œ์— ์ฒ˜๋ฆฌ Blocking/Non-Blocking "ํ”„๋กœ์„ธ์Šค์˜ ์œ ํœด ์ƒํƒœ์— ๋Œ€ํ•œ ๊ฐœ๋…" Blocking : ๋‹ค๋ฅธ ์ฃผ์ฒด์˜ ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ์ž์‹ ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ Non-Blocking : ๋‹ค๋ฅธ ์ฃผ์ฒด์˜ ์ž‘์—…์— ๊ด€๋ จ ์—†์ด ์ž์‹ ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ (Bloc.. 2022. 10. 21.
[Network] SSL/TLS SSL/TLS์— ๋Œ€ํ•œ ๊ฐœ๋… ๋ฐ ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. ๐Ÿ“Ž SSL/TLS ๊ฐœ๋… SSL์€ 1995๋…„ Netscape ์‚ฌ์˜ ์›น ๋ธŒ๋ผ์šฐ์ € ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ๋กœ ์ฒ˜์Œ ๋“ฑ์žฅํ•˜์˜€๊ณ , 1999๋…„ IETF์— ์˜ํ•ด SSL 3.1์„ ํ‘œ์ค€ํ™”ํ•œ TLS ๋ฒ„์ „ 1.0์ด ๋ฐœํ‘œ๋˜์—ˆ๋‹ค. ๐Ÿ‘‰ SSL๊ณผ TSL์€ ํ†ต์ƒ์ ์œผ๋กœ ๊ฐ™์€ ์˜๋ฏธ๋กœ ์“ฐ์ธ๋‹ค. SSL/TLS์„ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ํ•˜๋Š” HTTP๋ฅผ HTTPS๋ผ๊ณ  ํ•œ๋‹ค. ๋Œ€์นญํ‚ค, ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ๋‹ค. ๐Ÿ“ ๋Œ€์นญํ‚ค, ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹ (1) ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๋Š” ํ‚ค๊ฐ€ ๋™์ผํ•˜๋‹ค. ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์— ๋น„ํ•ด ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ, ์ฒ˜์Œ ํ‚ค๋ฅผ ๊ตํ™˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ํ‚ค ํƒˆ์ทจ์— ์˜ํ•œ ๋ณด์•ˆ ์•ฝ์ ์ด ์กด์žฌํ•œ๋‹ค. (2) ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๋Š”.. 2022. 10. 13.
[Network] TCP์˜ 3-Way HandShake์™€ 4-Way HandShake ์˜ค๋Š˜์€ TCP์˜ ์—ฐ๊ฒฐ ์„ค์ •, ๊ทธ๋ฆฌ๊ณ  ํ•ด์ œ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋™์ž‘์— ๋Œ€ํ•˜์—ฌ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. ๊ฐ ๋™์ž‘์˜ ์ง„ํ–‰ ๊ณผ์ •๊ณผ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด๋ณด์•˜๋‹ค. ๐Ÿ“Ž TCP์˜ 3-Way HandShake ๊ฐœ๋… TCP ํ†ต์‹ ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. ์–‘์ชฝ ๋ชจ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๊ณ , ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ์‹œ์ž‘ ์ „ ๋‹ค๋ฅธ ํ•œ ์ชฝ์ด ์ค€๋น„๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. TCP/IP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด์„œ ํ†ต์‹ ์„ ํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์ „์— ์ •ํ™•ํ•œ ์ „์†ก์„ ๋ณด์žฅํ•˜๊ณ ์ž ์ƒ๋Œ€ ์ปดํ“จํ„ฐ์™€ ์‚ฌ์ „์— ์„ธ์…˜์„ ์ˆ˜๋ฆฝํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค. ๋™์ž‘ ๋ฐฉ์‹ [ Step 1 ] Client๋Š” Server์™€ ์ปค๋„ฅ์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด SYN(x)์„ ๋ณด๋‚ธ๋‹ค. ์ด ๋•Œ Client๋Š” CLOSED.. 2022. 10. 13.
[Java Algorithm] ํšŒ์ „ ์ดˆ๋ฐฅ BOJ #15961 ๋ฌธ์ œ https://www.acmicpc.net/problem/15961 15961๋ฒˆ: ํšŒ์ „ ์ดˆ๋ฐฅ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ํšŒ์ „ ์ดˆ๋ฐฅ ๋ฒจํŠธ์— ๋†“์ธ ์ ‘์‹œ์˜ ์ˆ˜ N, ์ดˆ๋ฐฅ์˜ ๊ฐ€์ง“์ˆ˜ d, ์—ฐ์†ํ•ด์„œ ๋จน๋Š” ์ ‘์‹œ์˜ ์ˆ˜ k, ์ฟ ํฐ ๋ฒˆํ˜ธ c๊ฐ€ ๊ฐ๊ฐ ํ•˜๋‚˜์˜ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ๋‹จ, 2 ≤ N ≤ 3,000,000, 2 ≤ d ≤ 3,000, 2 www.acmicpc.net ๋‚ด ๋ฌธ์ œ ํ’€์ด import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int n, d, k, c; // ์ ‘์‹œ ์ˆ˜, ์ดˆ๋ฐฅ ์ข…๋ฅ˜, ์—ฐ์†ํ•ด์„œ ๋จน๋Š” ์ ‘์‹œ ์ˆ˜, ์ฟ ํฐ static int s.. 2022. 10. 11.
[Java Algorithm] ์Šค๋„์ฟ  BOJ #2239 ๋ฌธ์ œ https://www.acmicpc.net/problem/2239 2239๋ฒˆ: ์Šค๋„์ฟ  ์Šค๋„์ฟ ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์ˆซ์ž ํผ์ฆ์ด๋‹ค. 9×9 ํฌ๊ธฐ์˜ ๋ณด๋“œ๊ฐ€ ์žˆ์„ ๋•Œ, ๊ฐ ํ–‰๊ณผ ๊ฐ ์—ด, ๊ทธ๋ฆฌ๊ณ  9๊ฐœ์˜ 3×3 ํฌ๊ธฐ์˜ ๋ณด๋“œ์— 1๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ˆซ์ž๊ฐ€ ์ค‘๋ณต ์—†์ด ๋‚˜ํƒ€๋‚˜๋„๋ก ๋ณด๋“œ๋ฅผ ์ฑ„์šฐ๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค www.acmicpc.net ๋‚ด ๋ฌธ์ œ ํ’€์ด import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class Main { static int[][] map = new int[9][9]; static List empty = new ArrayList(); .. 2022. 10. 4.