728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 105

[๋ฐฑ์ค€] 14500 ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ (ํŒŒ์ด์ฌ)

๊ณจ๋“œ โ…ฃ https://www.acmicpc.net/problem/14500 14500๋ฒˆ: ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ํด๋ฆฌ์˜ค๋ฏธ๋…ธ๋ž€ ํฌ๊ธฐ๊ฐ€ 1×1์ธ ์ •์‚ฌ๊ฐํ˜•์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ด์–ด์„œ ๋ถ™์ธ ๋„ํ˜•์ด๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์€ ์„œ๋กœ ๊ฒน์น˜๋ฉด ์•ˆ ๋œ๋‹ค. ๋„ํ˜•์€ ๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์˜ ๋ณ€ www.acmicpc.net ๐Ÿ“„ ๋ฌธ์ œ ํฌ๊ธฐ๊ฐ€ N×M์ธ ์ข…์ด ์œ„์— ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ โ˜…ํ•˜๋‚˜๋ฅผ ๋†“์œผ๋ ค๊ณ  ํ•œ๋‹ค. ์ข…์ด๋Š” 1×1 ํฌ๊ธฐ์˜ ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ์นธ์—๋Š” ์ •์ˆ˜๊ฐ€ ํ•˜๋‚˜ ์“ฐ์—ฌ ์žˆ๋‹ค. ์ •์‚ฌ๊ฐํ˜• 4๊ฐœ๋ฅผ ์ด์–ด ๋ถ™์ธ ํด๋ฆฌ์˜ค๋ฏธ๋…ธ๋Š” ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ๋ผ๊ณ  ํ•˜๋ฉฐ, 5๊ฐ€์ง€๊ฐ€ ๋ชจ์–‘์ด ์žˆ๋‹ค. ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ๋Š” ๋ฐ˜๋“œ์‹œ ํ•œ ์ •์‚ฌ๊ฐํ˜•์ด ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ์นธ์„ ํฌํ•จํ•˜๋„๋ก ๋†“์•„์•ผ ํ•˜๋ฉฐ, ํšŒ์ „์ด๋‚˜ ๋Œ€์นญ์„ ์‹œ์ผœ๋„ ๋œ๋‹ค. ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ํ•˜๋‚˜๋ฅผ ์ ์ ˆํžˆ ๋†“์•„์„œ ํ…ŒํŠธ๋กœ๋ฏธ..

[์†Œํ”„ํ‹ฐ์–ด] ์ง€์šฐ๋Š” ์†Œ์ˆ˜๋ฅผ ์ข‹์•„ํ•ด (ํŒŒ์ด์ฌ)

๋‚œ์ด๋„ : โ˜…โ˜…โ˜…โ˜…โ˜† https://softeer.ai/practice/info.do?idx=1&eid=582 Softeer ์—ฐ์Šต๋ฌธ์ œ๋ฅผ ๋‹ด์„ Set์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”. ์ทจ์†Œ ํ™•์ธ softeer.ai ๐Ÿ“„ ๋ฌธ์ œ ์—ฌ๋Ÿฌ ์ฒด์œก๊ด€์„ ๊ฑฐ์ณ ์ฒด์œก๊ด€ ๋ฐฐ์ง€๋ฅผ ์–ป์€ ํ›„ ๋งˆ์ง€๋ง‰ ํฌ์ผ“๋ชฌ ๋ฆฌ๊ทธ์—์„œ ์‚ฌ์ฒœ์™•๊ณผ ์ฑ”ํ”ผ์–ธ์—๊ฒŒ ๋„์ „ํ•ด์•ผ ํ•˜๋Š” ์ž„๋ฌด ๊ฐ๊ฐ์˜ ์ฒด์œก๊ด€์—๋Š” ์ฒด์œก๊ด€ ๊ด€์žฅ๋“ค์ด ์žˆ๊ณ  ๊ทธ ๊ด€์žฅ๋“ค์„ ์ด๊ฒจ์•ผ ์ฒด์œก๊ด€ ๋ฐฐ์ง€๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๊ด€์žฅ๋“ค์„ ์ด๊ธฐ๊ธฐ ์œ„ํ•ด์„  ๊ทธ ๊ด€์žฅ๋“ค์ด ๊ฐ–๊ณ  ์žˆ๋Š” ๋ ˆ๋ฒจ(level)๋ณด๋‹ค ๋†’์•„์•ผ ํ•œ๋‹ค. ์ฒด์œก๊ด€ ๊ด€์žฅ๋“ค์€ ์ฒด์œก๊ด€ ์˜ค๋Š” ๊ธธ์— ๋ ˆ๋ฒจ ์ œํ•œ์„ ๋‘์—ˆ๋‹ค. ‘X๋ ˆ๋ฒจ ์ดํ•˜ ์ง€์›์ž๋Š” ์˜ค์ง€ ๋งˆ์‹œ์˜ค.’ ์ง€์šฐ๋Š” ์ž์‹ ์ด ํฌ์ผ“๋ชฌ ๋ฆฌ๊ทธ์— ๋‚˜๊ฐ€๊ธฐ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ๋ ˆ๋ฒจ์ด ์•Œ๊ณ  ์‹ถ์–ด์กŒ๋‹ค. ์ง€์šฐ๋Š” ์ž์‹ ์˜ ๋ ˆ๋ฒจ๋„ ์†Œ์ˆ˜(Prime Number)์— ๋งž์ถฐ์„œ ํฌ..

[์†Œํ”„ํ‹ฐ์–ด] [์ธ์ฆํ‰๊ฐ€(3์ฐจ) ๊ธฐ์ถœ] ๊ต์ฐจ๋กœ (ํŒŒ์ด์ฌ)

๋‚œ์ด๋„ : โ˜…โ˜…โ˜…โ˜†โ˜† https://softeer.ai/practice/info.do?idx=1&eid=803 Softeer ์ž์œจ์ฃผํ–‰์ฐจ๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ต์ฐจ๋กœ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ƒํ™ฉ์„ ์ƒ๊ฐํ•˜์—ฌ ๋ณด์ž. ์ด ๋ฌธ์ œ์—์„œ ๋‹ค๋ฃจ๋Š” ๊ต์ฐจ๋กœ์—์„œ๋Š” ์ง์ง„๋งŒ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ๋„ค ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ๋งŒ ๊ต์ฐจ๋กœ softeer.ai ๐Ÿ“„ ๋ฌธ์ œ ์ž์œจ์ฃผํ–‰์ฐจ๊ฐ€ ๊ต์ฐจ๋กœ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ƒํ™ฉ A, B, C, D ๊ฐ ๋„๋กœ์˜ ๋งจ ์•ž์— ์žˆ๋Š” ์ž๋™์ฐจ๋Š” ์ž์‹ ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฅธ์ชฝ์— ์œ„์น˜ํ•œ ๋„๋กœ์— ์ฐจ๋Ÿ‰์ด ์žˆ์œผ๋ฉด 1์ดˆ ๋™์•ˆ ์ถœ๋ฐœํ•˜์ง€ ์•Š๊ณ , ์ฐจ๋Ÿ‰์ด ์—†์œผ๋ฉด ์ฆ‰์‹œ ๊ต์ฐจ๋กœ๋ฅผ ํ†ต๊ณผํ•œ๋‹ค. (๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ์— ์ฐจ๊ฐ€ ์žˆ์œผ๋ฉด ์ถœ๋ฐœํ•˜์ง€ ์•Š๊ณ  1์ดˆ ๊ธฐ๋‹ค๋ฆผ) A ์œ„์น˜์— ์žˆ๋Š” ์ฐจ๋Ÿ‰์˜ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋„๋กœ๋Š” D B ์œ„์น˜์— ์žˆ๋Š” ์ฐจ๋Ÿ‰์˜ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋„๋กœ๋Š” A C ์œ„์น˜์— ์žˆ๋Š” ์ฐจ๋Ÿ‰์˜ ์˜ค๋ฅธ..

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

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

[์ž๋ฐ”] ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฐจ์ด

์ถ”์ƒํด๋ž˜์Šค ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ƒ์†์„ ํ†ตํ•ด์„œ ์ž์† ํด๋ž˜์Šค์—์„œ ์™„์„ฑํ•˜๋„๋ก ์œ ๋„ํ•˜๋Š” ํด๋ž˜์Šค์ด๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์„ฑ ๋•Œ๋ฌธ์— ๋ฏธ์™„์„ฑ ์„ค๊ณ„๋„๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค. ์ถ”์ƒํด๋ž˜์Šค๋Š” ์ƒ์†์„ ์œ„ํ•œ ํด๋ž˜์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ๊ฐ์ฒด(์ธ์Šคํ„ด์Šค)๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค. ์ƒ์†์„ ํ†ตํ•ด์„œ ์ž์†ํด๋ž˜์Šค์— ์˜ํ•ด์„œ๋งŒ ์™„์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค. ์ถ”์ƒ ํด๋ž˜์Šค๋Š” ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๋ฅผ 0๊ฐœ ์ด์ƒ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ผ๋ฐ˜ ํด๋ž˜์Šค์™€ ๋ณ„ ๋‹ค๋ฅผ ๊ฒƒ์ด ์—†๋‹ค. class ์•ž์— "abstract" ์˜ˆ์•ฝ์–ด๋ฅผ ๋ถ™์—ฌ ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ์ถ”์ƒ ํด๋ž˜์Šค์ž„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋˜ํ•œ ๋ฉ”์„œ๋“œ๋„ "abstract" ์˜ˆ์•ฝ์–ด๋ฅผ ๋ถ™์—ฌ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค. abstract class ํด๋ž˜์Šค์ด๋ฆ„ { ... public abstract void ๋ฉ”์„œ๋“œ์ด๋ฆ„(); }โ€‹ ์ถ”์ƒํด๋ž˜์Šค์˜ ํŠน์ง• ์ถ”์ƒ ํด๋ž˜์Šค๋Š” ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ..

Programming/Java 2023.07.13

[์ž๋ฐ”] ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading)๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ(Overriding)์˜ ์ฐจ์ด์ 

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

Programming/Java 2023.07.09

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

[์Šคํ”„๋ง] MVC, MVP, MVVM ๋””์ž์ธ ํŒจํ„ด

MVVM์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” MVC -> MVP -> MVVM ์ˆœ์„œ๋Œ€๋กœ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. MVC ํŒจํ„ด ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ MVC๋ž€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ฑ๊ณต์ ์ด๋ฉฐ ํšจ๊ณผ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ชจํ˜•์— ๊ด€๋ จ ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•๋ก  ๋˜๋Š” ์„ค๊ณ„ ๋ฐฉ์‹์ค‘ ํ•˜๋‚˜๋กœ์จ, ๋ชฉ์  ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์— ์œ ์šฉํ•œ ๊ฒƒ์€ ๋ฌผ๋ก , ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ํ˜„์ €ํ•˜๊ฒŒ ์ค„์—ฌ์ฃผ๋Š” ํ˜•์‹์ด๋ผ๊ณ  ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ‰๊ฐ€ํ•˜๊ณ  ์žˆ๋‹ค. Model, View, Controller์˜ ์•ฝ์ž๋กœ User – View – Controller – Model – Controller – View User์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. MVC ํŒจํ„ด์€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ๊ฐ์  ๋ถ€๋ถ„๊ณผ ๊ฐ€ ์ด๋ฉด์˜ ๋™์ž‘๊ณผ ์ œ์–ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„(๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๋ผ ํ•œ๋‹ค)์„ ๋ถ„๋ฆฌ..

Programming/Spring 2023.07.03
728x90
๋ฐ˜์‘ํ˜•