728x90
๋ฐ˜์‘ํ˜•

cs 19

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] JOIN ์ด๋ž€?

JOIN์ด๋ž€? ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด, ์ ์–ด๋„ ํ•˜๋‚˜์˜ ์นผ๋Ÿผ์„ ์„œ๋กœ ๊ณต์œ ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์— ํ™œ์šฉํ•œ๋‹ค. JOIN ์ข…๋ฅ˜ INNER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN FULL OUTER JOIN CROSS JOIN SELF JOIN INNER JOIN ๊ต์ง‘ํ•ฉ์œผ๋กœ, ๊ธฐ์ค€ ํ…Œ์ด๋ธ”๊ณผ join ํ…Œ์ด๋ธ”์˜ ์ค‘๋ณต๋œ ๊ฐ’์„ ๋ณด์—ฌ์ค€๋‹ค. SELECT A.NAME, B.AGE FROM EX_TABLE A INNER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP LEFT OUTER JOIN ๊ธฐ์ค€ํ…Œ์ด๋ธ”๊ฐ’๊ณผ ์กฐ์ธํ…Œ์ด๋ธ”๊ณผ ์ค‘๋ณต๋œ ๊ฐ’์„ ๋ณด์—ฌ์ค€๋‹ค. ์™ผ์ชฝํ…Œ์ด๋ธ” ๊ธฐ์ค€์œผ๋กœ JOIN์„ ํ•œ๋‹ค๊ณ  ์ƒ..

CS/DataBase 2023.09.15

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ํ‚ค(Key)์˜ ๊ฐœ๋… ๋ฐ ์ข…๋ฅ˜

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

CS/DataBase 2023.09.08

[๊ฐœ๋ฐœ์ƒ์‹] API๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

API์™€ UI UI, API๋Š” ๋‘˜๋‹ค Interface์ด๋‹ค. UI = User Interface API = Application programming Interface ์ธํ„ฐํŽ˜์ด์Šค (Interface) ์ธํ„ฐํŽ˜์ด์Šค(interface)๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ๋ผ๋ฆฌ ์ •๋ณด๋ฅผ ๊ตํ•œํ•˜๋Š” ๊ณต์œ  ๊ฒฝ๊ณ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค, ํ„ฐ์น˜ ์Šคํฌ๋ฆฐ๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๋“ค์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹  ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งˆ์šฐ์Šค๋‚˜ ๋งˆ์ดํฌ๋ก  ํฐ๊ฐ€ ๊ฐ™์€ ์žฅ์น˜๋“ค์€ ์˜ค์ง ์‹œ์Šคํ…œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก๋งŒ ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. UI (์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค, User Interface) ์‚ฌ์šฉ์ž์™€ ๊ธฐ๊ณ„๋‚˜ ์‹œ์Šคํ…œ ๊ฐ™์€ ์‚ฌ๋ฌผ์ด ์†Œํ†ตํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๋Š” ๋งค๊ฐœ์ฒด์ด๋‹ค. UI๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์ดํ•˜ ์•ฑ)์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž(user) ๊ฐ€ ์‹œ์Šคํ…œ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ..

[์ž๋ฃŒ๊ตฌ์กฐ] ์Šคํƒ(Stack)๊ณผ ํ(Queue)

์Šคํƒ (Stack) ์ด๋ž€? ์Šคํƒ(Stack)์€ ์Œ“์•„ ์˜ฌ๋ฆฐ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ์Šคํƒ(Stack)์€ ์ฑ…์„ ์Œ“๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์•„ ์˜ฌ๋ฆฐ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰, ํ›„์ž…์„ ์ถœ(LIFO, Last In First Out) ๋ฐฉ์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์Šคํƒ์˜ ํŠน์ง• ์Šคํƒ์€ ์‹œ๊ฐ„ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๊ฐ€ ์Œ“์ด๊ฒŒ ๋˜๋ฏ€๋กœ, ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œ๋œ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์•„๋ž˜์—์„œ ์œ„๋กœ ์Œ“์ด๋Š” ํ˜•์‹์ด๋‹ค. ๊ฐ€์žฅ ์ตœ๊ทผ(๋งˆ์ง€๋ง‰)์— ๋“ค์–ด์˜จ ์ž๋ฃŒ๋ฅผ top์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์Šคํƒ ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๋Š”, top ์„ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๋Š” ํ•œ ๊ณณ(top)์—์„œ๋งŒ ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋œ๋‹ค. ๊ฐ€์žฅ ์œ„์ชฝ(์ตœ์‹ )์˜ ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ํ›„์ž…์„ ์ถœ(LIFO, Last In First Out)์˜ ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ..

CS/Data Structure 2023.08.04

[์šด์˜์ฒด์ œ] ์šด์˜ ์ฒด์ œ๋ž€?

์šด์˜ ์ฒด์ œ(OS, Operating System) ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํ“จํ„ฐ๋ฅผ ํŽธ๋ฆฌํ•˜๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด ์šด์˜์ฒด์ œ๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์ž์›๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ•˜๋“œ์›จ์–ด ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ์จ ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์œ ์šฉํ•œ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ด์ค€๋‹ค. ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ๋ฐ”๋กœ ์œ„์— ์„ค์น˜๋˜์–ด ์‚ฌ์šฉ์ž ๋ฐ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•˜๋“œ์›จ์–ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณ„์ธต ์ฆ‰, ์ค‘๊ฐœ์ž ์—ญํ• ์„ ๋‹ค. ์šด์˜์ฒด์ œ์˜ ๋ชฉ์  1. ์ปดํ“จํ„ฐ์˜ ํ•˜๋“œ์›จ์–ด ๊ด€๋ฆฌ ์ปดํ“จํ„ฐ์—๋Š” ์ˆ˜ ๋งŽ์€ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์กด์žฌํ•œ๋‹ค. CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ, ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค, ๋ชจ๋‹ˆํ„ฐ, ๋„คํŠธ์›Œํฌ ๋“ฑ์ด ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ์ž˜ ๊ด€๋ฆฌํ•ด์ฃผ์–ด์•ผ ์ปดํ“จํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์šด์˜์ฒด์ œ์˜ ์„ฑ๋Šฅ์ด ์ข‹์„์ˆ˜๋ก ์ปดํ“จํ„ฐ์˜..

[๋„คํŠธ์›Œํฌ] Blocking I/O & Non-Blocking I/O

I/O (Input / Output) I/O ์ž‘์—…์€ Kernel level์—์„œ๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, Process, Thread๋Š” ์ปค๋„์—๊ฒŒ I/O๋ฅผ ์š”์ฒญํ•ด์•ผ ํ•œ๋‹ค. ์–ด๋– ํ•œ ๊ธฐ๊ธฐ(๋””๋ฐ”์ด์Šค)๋ฅผ ํ†ตํ•ด ์ž…์ถœ๋ ฅ์ด ์ด๋ฃจ์–ด์ง€๋Š” ์ž‘์—…์„ ๋ชจ๋‘ I/O๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰, ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก, ์ปจ์†” ์ถœ๋ ฅ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ฒƒ๋„ ํฌํ•จ๋œ๋‹ค. ์ด๋Ÿฌํ•œ I/O๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์— ๊ฐ€์žฅ ๋งŽ์€ ์˜ํ–ฅ์„ ๋ผ์นœ๋‹ค. I/O์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์‹œ๊ฐ„์€ CPU๋ฅผ ์‚ฌ์šฉํ•œ ์‹œ๊ฐ„๊ณผ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ์ค‘์— ๋Œ€๊ธฐ ์‹œ๊ฐ„์— ์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์— I/O๊ฐ€ ๋งŽ์•„์ง„๋‹ค๋Š ๊ฒƒ์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์—ฐ์‚ฐ์„ ํ•  ๋•Œ๊นŒ์ง€ CPU๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ๋ชปํ•˜๊ณ  ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง„๋‹ค๋Š” ์˜๋ฏธ์ด๊ณ , ์ด๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฒ˜๋ฆฌ ์†๋„ ์ €ํ•˜๋กœ ์ด์–ด์ง„๋‹ค. ๋”ฐ๋ผ์„œ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•ด์•ผํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” I/O๊ฐ€ ํฐ ..

CS/Network 2023.07.06

[๋„คํŠธ์›Œํฌ] Blocking/Non-blocking & Synchronous/Asynchronous

๋™๊ธฐ/๋น„๋™๊ธฐ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ผ์ƒ ์ƒํ™œ์—์„œ ๋งŽ์ด ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ๋ง์ด๋‹ค. Blocking๊ณผ Synchronous, ๊ทธ๋ฆฌ๊ณ  Non-blocking๊ณผ Asysnchronous๋ฅผ ์„œ๋กœ ๊ฐ™์€ ๊ฐœ๋…์ด๋ผ๊ณ  ์ฐฉ๊ฐํ•˜๊ธฐ ์‰ฝ๋‹ค. ๊ฐ์ž ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š”์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ดํŽด๋ณด์ž. 2๋Œ€2 ๋งคํŠธ๋ฆญ์Šค๋กœ ์ •๋ฆฌ๋œ ๊ทธ๋ฆผ์ด๋‹ค. ๊ทธ๋ฆผ์„ ๋ณด๋ฉด Blocking ์ด๋ฉด ๋ฐ˜๋“œ์‹œ Sync ๊ฐ€ ์•„๋‹ˆ๊ณ , Non-blocking ์ด๋ฉด ๋ฐ˜๋“œ์‹œ async ๋„ ์•„๋‹ˆ๋‹ค. ์ฆ‰, Blocking / Non-blocking ๊ณผ Sync / Async ๋Š” ๋‹ค๋ฅธ ๊ฐœ๋…์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. Blocking / Non-blocking ๊ณผ Sync / Async ๋Š” '๊ด€์ '์„ ์–ด๋–ป๊ฒŒ ๋‘๋Š๋ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค. ๋ธ”๋กœํ‚น Blocking A ํ•จ์ˆ˜๊ฐ€ B ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ํ•  ๋•Œ, B ํ•จ์ˆ˜๊ฐ€ ์ž์‹ ์˜ ์ž‘์—…์ด ์ข…๋ฃŒ..

CS/Network 2023.07.05

[๋„คํŠธ์›Œํฌ] ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ (Load Balancing)

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

CS/Network 2023.07.04

[๊ฐœ๋ฐœ์ƒ์‹] ๋””์ž์ธ ํŒจํ„ด

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

[๋„คํŠธ์›Œํฌ] TLS/SSL HandShake

TLS / SSL ์ด๋ž€? SSL(Secure Sockets Layer)์€ ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ๋กœ์„œ, ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ, ์ธ์ฆ, ๋ฌด๊ฒฐ์„ฑ ์„ ์ธํ„ฐ๋„ท ํ†ต์‹ ์— ์ œ๊ณตํ•œ๋‹ค. SSL/TLS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์›น์‚ฌ์ดํŠธ์˜ URL์—๋Š” "HTTP" ๋Œ€์‹  "HTTPS" ๊ฐ€ ์žˆ๋‹ค. SSL ์ด๋ž€ ๋ช…์นญ์€ TLS(Transport Layer Security)๋กœ ๋ฐœ์ „ํ–ˆ๋‹ค. ์ตœ๊ทผ ๋ช…์นญ: TLS(Transport Layer Security) ๊ณผ๊ฑฐ ๋ช…์นญ: SSL(Secure Sockets Layer) SSL์˜ ์ธ์ง€๋„๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— TLS์„ SSL๋กœ ๋ถ€๋ฅด๋ฉฐ ์‚ฌ์šฉํ•œ๋‹ค. Certificate Authority(CA)๋ผ ๋ถˆ๋ฆฌ๋Š” ์„œ๋“œ ํŒŒํ‹ฐ๋กœ๋ถ€ํ„ฐ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ์„ ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ฃผ๋กœ ์ „์†ก๊ณ„์ธต๊ณผ ์‘์šฉ๊ณ„์ธต ์‚ฌ์ด์—์„œ ๋ณด์•ˆ์กฐ์น˜๋ฅผ ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. SSL (..

CS/Network 2023.06.28
728x90
๋ฐ˜์‘ํ˜•