728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 104

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

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

[๋ฐฑ์ค€] 13249 ๊ณต์˜ ์ถฉ๋Œ (ํŒŒ์ด์ฌ)

๊ณจ๋“œ โ…ค https://www.acmicpc.net/problem/13249 13249๋ฒˆ: ๊ณต์˜ ์ถฉ๋Œ ๋ฌด๊ฒŒ๊ฐ€ ๋ชจ๋‘ ๊ฐ™๊ณ , ํฌ๊ธฐ๊ฐ€ 0์ธ ๊ณต N๊ฐœ๊ฐ€ ์ผ์ง์„  ์œ„์— ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ตด๋Ÿฌ๊ฐ€๋Š” ๊ณต๊ณผ ์™ผ์ชฝ์œผ๋กœ ๊ตด๋Ÿฌ๊ฐ€๋Š” ๊ณต์ด ๊ฐ™์€ ์†๋„๋กœ ์ถฉ๋Œํ•˜๋ฉด, ์†๋„๋Š” ๋ณ€ํ•˜์ง€ ์•Š๊ณ  ๊ณต์˜ ์ง„ํ–‰ ๋ฐฉํ–ฅ๋งŒ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค. www.acmicpc.net ๐Ÿ“„ ๋ฌธ์ œ ๋ฌด๊ฒŒ๊ฐ€ ๋ชจ๋‘ ๊ฐ™๊ณ , ํฌ๊ธฐ๊ฐ€ 0์ธ ๊ณต N๊ฐœ๊ฐ€ ์ผ์ง์„  ์œ„์— ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ตด๋Ÿฌ๊ฐ€๋Š” ๊ณต๊ณผ ์™ผ์ชฝ์œผ๋กœ ๊ตด๋Ÿฌ๊ฐ€๋Š” ๊ณต์ด ๊ฐ™์€ ์†๋„๋กœ ์ถฉ๋Œํ•˜๋ฉด, ์†๋„๋Š” ๋ณ€ํ•˜์ง€ ์•Š๊ณ  ๊ณต์˜ ์ง„ํ–‰ ๋ฐฉํ–ฅ๋งŒ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค. ๊ณต N๊ฐœ์˜ ์œ„์น˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ํšจ๋นˆ์ด๋Š” ๊ณต N๊ฐœ์˜ ์ง„ํ–‰ ๋ฐฉํ–ฅ(์˜ค๋ฅธ์ชฝ, ์™ผ์ชฝ)์„ ๊ฐ™์€ ํ™•๋ฅ ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค. ์‹œ๊ฐ„ 0์ผ ๋•Œ, ํšจ๋นˆ์ด๋Š” ๊ณต์„ ๊ฒฐ์ •ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋™์‹œ์— 1์ดˆ์— 1๋งŒํผ ์ด๋™ํ•˜๋Š” ์†๋„๋กœ ๊ตด..

[์Šคํ”„๋ง] ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (AOP)

AOP์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (OPP, Object-oriented Programming) ๊ณตํ†ต์˜ ๋ชฉ์ ์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋™์ž‘์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋กœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ์ฒด๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•จ์œผ๋กœ์จ ๊ธฐ๋Šฅ์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ์žฅ์ ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ(SoC, Seperation of Concerns)์˜ ๋””์ž์ธ ์›์น™์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•œ๋‹ค. Spring MVC์—์„œ๋Š” @Controller, @Service, @Repository์™€ ๊ฐ™์ด ๊ด€์‹ฌ์‚ฌ๋ณ„๋กœ ๊ณ„์ธต์„ ๋‚˜๋ˆ  ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ๋Š” ๋ชจ๋“ˆํ™”์˜ ํ•ต์‹ฌ์ด ๋œ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•œ๊ณ„ ์  ํŠน์ • ๊ด€์‹ฌ์‚ฌ ์—…๋ฌด ์ฝ”๋“œ์— ํŠธ๋žœ์žญ์…˜, ๋กœ๊น…, ๋ณด์•ˆ ๋“ฑ์€ ํ•„์ˆ˜์ ์ธ ๋ถ€๊ฐ€๊ธฐ๋Šฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฌด ๊ธฐ๋Šฅ๊ณผ๋Š” ..

Programming/Spring 2023.06.29

[๊ฐœ๋ฐœ์ƒ์‹] ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (OOP)

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋ช…๋ น์–ด์˜ ๋ชฉ๋ก์œผ๋กœ ๋ณด๋Š” ์‹œ๊ฐ์—์„œ ๋ฒ—์–ด๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ๋œ ๋‹จ์œ„, ์ฆ‰ "๊ฐ์ฒด"๋“ค์˜ ๋ชจ์ž„์œผ๋กœ ํŒŒ์•…ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. - ์œ„ํ‚คํ”ผ๋””์•„ - ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ๋ฐ(Object-Oriented Programming)์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ค‘ ํ•˜๋‚˜๋กœ, ์ƒํƒœ(state)์™€ ํ–‰์œ„(behave)๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ์ฒด๋“ค๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ์„ค๊ณ„, ๊ฐœ๋ฐœ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ์‰ฝ๊ฒŒ ๋งํ•ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. '๊ฐ์ฒด' ๋ผ๋Š” ๋ง์€ Object๋ฅผ ์ง์—ญํ•œ ๋ง์ธ๋ฐ, ์‰ฝ๊ฒŒ ๋งํ•ด ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ทธ๋ฃนํ•‘ ํ•œ ๊ฐœ๋…์ด๋‹ค. ์ฆ‰, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ..

[๋„คํŠธ์›Œํฌ] 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

[๋„คํŠธ์›Œํฌ] HTTP์™€ HTTPS์˜ ์ฐจ์ด์ 

HTTP๋Š” ์•”ํ˜ธํ™”๊ฐ€ ์ถ”๊ฐ€๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์— ์ทจ์•ฝํ•œ ๋ฐ˜๋ฉด HTTPS๋Š” ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, HTTPS๋Š” ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™” ๊ณผ์ •์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฆ˜์€ ๊ฑฐ์˜ ํฐ ์ฐจ์ด๋ฅผ ๋ชป๋Š๋ผ์ง€๋งŒ HTTP๋ณด๋‹ค ์†๋„๊ฐ€ ๋Š๋ฆฌ๊ณ  ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๊ณ  ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€๋น„์šฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HTTP (Hyper Text Transfer Protocol) ์ธํ„ฐ๋„ท ์ƒ์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์ž์›์„ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์“ฐ๋Š” ํ†ต์‹  ๊ทœ์•ฝ์ด๋‹ค. ์ฆ‰, ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ ๋ชจ๋ธ์„ ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๋“ค ์‚ฌ์ด์— ํ†ต์‹ ์„ ์ฃผ๊ณ  ๋ฐ›๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ธํ„ฐ๋„ท์—์„œ ํ•˜์ดํผํ…์ŠคํŠธ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ์œ„ํ•œ ํ†ต์‹ ๊ทœ์•ฝ์ด๋‹ค. ์š”์ฒญ(Request)๊ณผ ์‘๋‹ต(Response)์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ..

CS/Network 2023.06.27

[๋„คํŠธ์›Œํฌ] ๋Œ€์นญํ‚ค์™€ ๊ณต๊ฐœํ‚ค

๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์€ ์•”๋ณตํ˜ธํ™”์— ์‚ฌ์šฉํ•˜๋Š” ํ‚ค๊ฐ€ ๋™์ผํ•œ ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์€ ์•”๋ณตํ˜ธํ™”์— ์‚ฌ์šฉํ•˜๋Š” ํ‚ค๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. (๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”๋ผ๊ณ ๋„ ํ•œ๋‹ค.) ๋Œ€์นญํ‚ค(Symmetric Key) ์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™”์— ๊ฐ™์€ ์•”ํ˜ธํ‚ค(๋Œ€์นญํ‚ค)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•˜๋‚˜์˜ ํ‚ค๋ฅผ ์–‘์ชฝ(client & server)๊ฐ€ ๊ฐ™์ด ์‚ฌ์šฉํ•œ๋‹ค. ๋Œ€์นญํ‚ค๋Š” ์•”๋ณตํ˜ธํ™”ํ‚ค๊ฐ€ ๋™์ผํ•˜๋ฏ€๋กœ ํ•ด๋‹น ํ‚ค๋ฅผ ์•„๋Š” ์‚ฌ๋žŒ์ด ๋ฌธ์„œ๋ฅผ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์žฅ์  ๋™์ผํ•œ ํ‚ค๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์— ๋น„ํ•ด ์•”ํ˜ธํ™” ๋ฐ ๋ณตํ˜ธํ™” ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ๋น„๊ต์  ๊ฐ„ํŽธํ•˜๋‹ค. ๋‹จ์  ์•”ํ˜ธํ™” ํ†ต์‹ ์„ ํ•˜๋Š” ์‚ฌ์šฉ์ž๋ผ๋ฆฌ ๊ฐ™์€ ๋Œ€์นญํ‚ค๋ฅผ ๊ณต์œ ํ•ด์•ผ๋งŒ ํ•œ๋‹ค. (ํ‚ค๋ฅผ ๊ตํ™˜ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ) ์ด๊ฒŒ ์™œ ๋‹จ์ ? ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ง์ ‘ ๋งŒ๋‚˜์„œ ์ „๋‹ฌํ•˜์ง€ ์•Š๋Š” ํ•œ, ..

CS/Network 2023.06.26

[๊ฐœ๋ฐœ์ƒ์‹] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„

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

[๊ฐœ๋ฐœ์ƒ์‹] ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฐจ์ด์ 

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

[๋„คํŠธ์›Œํฌ] UDP

UDP ํ†ต์‹ ์ด๋ž€? User Datagram Protocol์˜ ์•ฝ์ž๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ๋น„์—ฐ๊ฒฐํ˜•, ์‹ ๋ขฐ์„ฑ ์—†๋Š” ์ „์†ก ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ๋ฉด์„œ ์ „์†ก์„ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์†ก ๊ณ„์ธต์ด๋‹ค. Transport layer์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. TCP์™€ UDP๋Š” ์™œ ๋‚˜์˜ค๊ฒŒ ๋๋Š”๊ฐ€? IP์˜ ์—ญํ• ์€ Host to Host (์žฅ์น˜ to ์žฅ์น˜)๋งŒ์„ ์ง€์›ํ•œ๋‹ค. ์žฅ์น˜์—์„œ ์žฅ์น˜๋กœ ์ด๋™์€ IP๋กœ ํ•ด๊ฒฐ๋˜์ง€๋งŒ, ํ•˜๋‚˜์˜ ์žฅ๋น„์•ˆ์—์„œ ์ˆ˜๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ํ†ต์‹ ์„ ํ•  ๊ฒฝ์šฐ์—๋Š” IP๋งŒ์œผ๋กœ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค. ๋˜ํ•œ, IP์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ICMP์—์„œ ์•Œ๋ ค์ค€๋‹ค. ํ•˜์ง€๋งŒ ICMP๋Š” ์•Œ๋ ค์ฃผ๊ธฐ๋งŒ ํ•  ๋ฟ ๋Œ€์ฒ˜๋ฅผ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— IP๋ณด๋‹ค ์œ„์—์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผ ํ•œ๋‹ค. 1๋ฒˆ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ๋‚˜์˜ค๊ฒŒ..

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