[๋„คํŠธ์›Œํฌ] ์†Œ์ผ“(SOCEKT) ํ†ต์‹ , 3-way handshake์˜ ๊ฐœ๋…

[๋„คํŠธ์›Œํฌ] ์†Œ์ผ“(SOCEKT) ํ†ต์‹ , 3-way handshake์˜ ๊ฐœ๋…

1. ์†Œ์ผ“(Socket)์ด๋ž€ ์†Œ์ผ“์€ ๋–จ์–ด์ ธ ์žˆ๋Š” ๋‘ ํ˜ธ์ŠคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•ด ์ฃผ๋Š” ๋„๊ตฌ๋กœ์จ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•œ๋‹ค. TCP/IP ๊ธฐ๋ฐ˜ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์—์„œ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์˜ ์•ค๋“œํฌ์ธํŠธ์ด๋ฉฐ ์•ค๋“œํฌ์ธํŠธ๋Š” IP, Port์กฐํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ชฉ์ ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ์ง€ํ–ฅ์„ฑ ํ†ต์‹ ์œผ๋กœ ์ง€์†์ ์œผ๋กœ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์†Œ์ผ“์€ ์„œ๋ฒ„ ์†Œ์ผ“๊ณผ ํด๋ผ์ด์–ธํŠธ ์†Œ์ผ“์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ๋‹ค์Œ์€ ์†Œ์ผ“ ๊ฐ„ ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์ง€๋Š” ๊ณผ์ •์ด๋‹ค. 1-1. ์„œ๋ฒ„ ์†Œ์ผ“ ํด๋ผ์ด์–ธํŠธ์—์„œ ์—ฐ๊ฒฐ์š”์ฒญ์ด ์˜ค๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ์—ฐ๊ฒฐ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ํด๋ผ์ด์–ธํŠธ์™€ ์—ฐ๊ฒฐ์„ ๋งบ๊ณ  ์ƒˆ๋กœ์šด ์†Œ์ผ“์„ ๋งŒ๋“ ๋‹ค. ...

[Spring] ์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜์˜ ๊ฐœ๋… ๋ฐ ์ ์šฉ (@Transactional ์‚ฌ์šฉ๋ฒ•)

[Spring] ์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜์˜ ๊ฐœ๋… ๋ฐ ์ ์šฉ (@Transactional ์‚ฌ์šฉ๋ฒ•)

ํŠธ๋žœ์žญ์…˜์ด๋ž€? [Postgresql] - [PostgreSQL] ํŠธ๋žœ์žญ์…˜(Transaction)์˜ ๊ฐœ๋… ๋ฐ ์‚ฌ์šฉ ์Šคํ”„๋ง์—์„œ ์ œ๊ณตํ•˜๋Š” ํŠธ๋žœ์žญ์…˜ โ—† ๋™๊ธฐํ™” (Synchronization) ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ Connection ๊ฐ์ฒด๋ฅผ ํŠน๋ณ„ ์ €์žฅ์†Œ์— ๋ณด๊ด€ํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์ž‘์—… ์“ฐ๋ ˆ๋“œ๋งˆ๋‹ค Connection ๊ฐ์ฒด๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ์— ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ๋„ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ JDBC๊ฐ€ ์•„๋‹Œ Hiberate ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด JDBC ์ข…์†์ ์ธ ํŠธ๋žœ์žญ์…˜ ๋™๊ธฐํ™” ์ฝ”๋“œ๋“ค์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ Hibernate๋Š” Connection์ด ์•„๋‹ˆ๋ผ Session ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๋ถ€๋ถ„์„ ์ถ”์ƒํ™”ํ•œ ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. ...

[์šด์˜์ฒด์ œ(OS)] ์Šค๋ ˆ๋“œ (Thread), ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ(Multithreaded Programming)๋ž€?

[์šด์˜์ฒด์ œ(OS)] ์Šค๋ ˆ๋“œ (Thread), ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ(Multithreaded Programming)๋ž€?

๋‘ ๊ฐœ์˜ ์‹คํ–‰ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์„œ ์œ„์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋ชจ์Šต 1. Thread๋ž€? CPU ์ˆ˜ํ–‰์˜ ๊ธฐ๋ณธ๋‹จ์œ„์ด๋ฉฐ ํŠนํžˆ ํ”„๋กœ์„ธ์Šค ์•ˆ์˜ ํ๋ฆ„์˜ ๋‹จ์œ„์ด๋‹ค. ์Šค๋ ˆ๋“œ๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ํ™˜๊ฒฝ์„ Task๋ผ๊ณ  ํ•˜๋ฉฐ Thread ID, Program counter, register set, Stack space๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๊ฐ๊ฐ์˜ ์Šค๋ ˆ๋“œ๋Š” ๋ ˆ์ง€์Šคํ„ฐ ์ƒํƒœ์™€ ์Šคํƒ์„ ๊ฐ–๋Š”๋‹ค. Code, Data ์„น์…˜์ด๋‚˜ ์šด์˜์ฒด์ œ ์ž์›๋“ค์€ ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ ๊ณต์œ ํ•œ๋‹ค.ย ์Šค๋ ˆ๋“œ์˜ ์ข…๋ฅ˜ ์Šค๋ ˆ๋“œ๋Š” ์ง€์› ์ฃผ์ฒด์— ๋”ฐ๋ผ 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. User Threads ์œ ์ € ์Šค๋ ˆ๋“œ๋Š” ์‚ฌ์šฉ์ž ์ˆ˜์ค€์˜ ์Šค๋ ˆ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์Šค๋ ˆ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์Šค๋ ˆ๋“œ์˜ ์ƒ์„ฑ ๋ฐ ์Šค์ผ€์ฅด๋ง ๋“ฑ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋™์ผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์Šค๋ ˆ๋“œ๊ฐ€ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‚ฌ์šฉ์ž ์Šค๋ ˆ๋“œ ์ค‘ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๋“ฑ์œผ๋กœ ์ค‘๋‹จ๋˜๋ฉด ๋‚˜๋จธ์ง€ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ฐ™์ด ์ข…๋ฃŒ๋œ๋‹ค. (์ปค๋„์ด ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€ ์Šค๋ ˆ๋“œ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜์—ฌ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ๋Œ€๊ธฐ์ƒํƒœ๋กœ ์ „ํ™˜์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ) ์Šค๋ ˆ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” POSIX, Pthreads, Win32 threads, Java threads ๋Œ€ํ‘œ์ ์ด๋‹ค Kernel Threads ...

[AWS] RDS ์ ์ • ์ธ์Šคํ„ด์Šค ์„ ํƒ, ๋น„์šฉ ์ตœ์ ํ™”

[AWS] RDS ์ ์ • ์ธ์Šคํ„ด์Šค ์„ ํƒ, ๋น„์šฉ ์ตœ์ ํ™”

1. RDS๋ž€? RDS๋Š” ํด๋ผ์šฐ๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‰ฝ๊ฒŒ ์„ค์ •, ์šด์˜ ๋ฐ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์™„์ „๊ด€๋ฆฌํ˜• ์˜คํ”ˆ์†Œ์Šค ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋‹ค.ย ์˜จ๋””๋งจ๋“œ, ํ˜น์€ ์˜ˆ์•ฝํ˜• ์ธ์Šคํ„ด์Šค ๊ตฌ๋งค๋กœ ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์˜ ์„ค์ •์— ๋”ฐ๋ผ ๊ธˆ์•ก์ด ๋‹ฌ๋ผ์ง„๋‹ค. 2. RDS ๋น„์šฉ์„ ๊ฒฐ์ •ํ•˜๋Š” ์š”์†Œ DB ์ธ์Šคํ„ด์Šค ๊ฐ€์šฉ์‹œ๊ฐ„ - 1์ดˆ ๋‹จ์œ„๋กœ ์ฒญ๊ตฌ๋˜๋ฉฐ 1ํšŒ ์ตœ์†Œ 10๋ถ„ ๊ณผ๊ธˆ ์Šคํ† ๋ฆฌ์ง€ (์›”๋ณ„ GB๋‹น) - DB์ธ์Šคํ„ด์Šค์— ํ”„๋กœ๋น„์ €๋‹ ํ•œ ์Šคํ† ๋ฆฌ์ง€ ์šฉ๋Ÿ‰ ์›”๋ณ„ I/O - ์ด ์Šคํ† ๋ฆฌ์ง€ I/O ์š”์ฒญ ์ˆ˜ ๋ฐฑ์—… ์Šคํ† ๋ฆฌ์ง€ - ์ž๋™ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—… ๋ฐ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šค๋ƒ…์ƒท๊ณผ ์—ฐ๊ฒฐ๋œ ์Šคํ† ๋ฆฌ์ง€ ๋ฐ์ดํ„ฐ ์ „์†ก - RDS์—์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ํ‹ฐ์–ด๋ณ„ ๊ณ„์‚ฐ์€ ์—ฌ๊ธฐ์„œ ๊ฐ€๋Šฅ (PostgreSQL ๊ธฐ์ค€) ...

[PostgreSQL] ์ฟผ๋ฆฌ ์„ฑ๋Šฅํ–ฅ์ƒ (์‹คํ–‰๊ณ„ํš ๋ณด๋Š” ๋ฒ•, ์ƒ์„ธ ํ™•์ธ๋ฐฉ๋ฒ•, Explain์˜ ์–ด๋–ค ์ง€ํ‘œ๋ฅผ ๋ด์•ผํ• ๊นŒ?)

[PostgreSQL] ์ฟผ๋ฆฌ ์„ฑ๋Šฅํ–ฅ์ƒ (์‹คํ–‰๊ณ„ํš ๋ณด๋Š” ๋ฒ•, ์ƒ์„ธ ํ™•์ธ๋ฐฉ๋ฒ•, Explain์˜ ์–ด๋–ค ์ง€ํ‘œ๋ฅผ ๋ด์•ผํ• ๊นŒ?)

1. ์‹คํ–‰ ๊ณ„ํš ํ™•์ธ --Synopsis EXPLAIN [ ( option [, ...] ) ] ์ฟผ๋ฆฌ๋ฌธ EXPLAIN [ ANALYZE ] [ VERBOSE ] ์ฟผ๋ฆฌ๋ฌธ option ์ž๋ฆฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค: ANALYZE [ boolean ] VERBOSE [ boolean ] COSTS [ boolean ] BUFFERS [ boolean ] TIMING [ boolean ] FORMAT { TEXT | XML | JSON | YAML } * ์ดํ›„ ์„ค๋ช…์—์„œ ์‚ฌ์šฉ๋  ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋Š” ์•„๋ž˜์˜ "7. ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ" ๋ถ€๋ถ„ ์ฟผ๋ฆฌ ํ™•์ธ ...