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

์ „์ฒด ๊ธ€250

[๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜] Chapter9. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์กฐ๋ฆฝํ•˜๊ธฐ 9. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์กฐ๋ฆฝํ•˜๊ธฐ 1. ์กฐ๋ฆฝ๊นŒ์ง€ ์‹ ๊ฒฝ ์จ์•ผ ํ•˜๋Š” ์ด์œ  ์ฝ”๋“œ์˜ ์˜์กด์„ฑ์€ ํ•ญ์ƒ ์•ˆ์ชฝ์œผ๋กœ, ๋„๋ฉ”์ธ ์ฝ”๋“œ ๋ฐฉํ–ฅ์œผ๋กœ ํ–ฅํ•ด์•ผ ์•ˆ์ „ํ•จ. ์„ค์ • ์ปดํฌ๋„ŒํŠธ (configuration component)๊ฐ€ ํ•„์š” ์•„ํ‚คํ…์ฒ˜์— ์ค‘๋ฆฝ์  ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์„ ์œ„ํ•ด ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์˜์กด์„ฑ์„ ๊ฐ€์ง ์„ค์ • ์ปดํฌ๋„ŒํŠธ์˜ ์—ญํ•  ์›น ์–ด๋Œ‘ํ„ฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ HTTP ์š”์ฒญ์ด ์‹ค์ œ๋กœ ์›น ์–ด๋Œ‘ํ„ฐ๋กœ ์ „๋‹ฌ๋˜๋„๋ก ๋ณด์žฅ ์œ ์Šค์ผ€์ด์Šค ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์›น ์–ด๋Œ‘ํ„ฐ์— ์œ ์Šค์ผ€์ด์Šค ์ธ์Šคํ„ด์Šค ์ œ๊ณต ์˜์†์„ฑ ์–ด๋Œ‘ํ„ฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์œ ์Šค์ผ€์ด์Šค์— ์˜์†์„ฑ ์–ด๋Œ‘ํ„ฐ ์ธ์Šคํ„ด์Šค ์ œ๊ณต ์˜์†์„ฑ ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅ ์ด๋Ÿฌํ•œ ์ž‘์—…์€ ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์„ ์œ„๋ฐ˜ํ•˜๋Š”๊ฒŒ ๋งž๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ๋“  ๋ถ€ํ’ˆ์„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ. 2. ํ‰๋ฒ”ํ•œ ์ฝ”๋“œ๋กœ ์กฐ๋ฆฝํ•˜๊ธฐ package com.book.. 2022. 11. 11.
[์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ] ch.7 ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ - ์—ฐ์Šต & ์‹ฌํ™” ๋ฌธ์ œ ์—ฐ์Šต ๋ฌธ์ œ 1. ์†Œ์Šค์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ์— ๋ฒˆ์—ญํ•˜์ง€ ์•Š๊ณ  ํ•œ ํ–‰์”ฉ ๋ฒˆ์—ญํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ฌด์—‡์ด๋ผ ํ•˜๋Š”๊ฐ€? ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ฐฉ์‹ 2. ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ C๋‚˜ ์ž๋ฐ”๋กœ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ปดํŒŒ์ผํ•˜๋ฉด ์ผ์ฐจ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ์ฝ”๋“œ๋Š” ๋ฌด์—‡์ธ๊ฐ€? ๋ชฉ์ ์ฝ”๋“œ 3. ์ปดํŒŒ์ผํ•  ๋•Œ ์ฝ”๋“œ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์™€ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ฌด์—‡์ด๋ผ ํ•˜๋Š”๊ฐ€? ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (DLL) 4. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ •์ฑ… ์ค‘ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฝ‰ ์ฐผ์„ ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‚ด๋ณด๋‚ผ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ธ๊ฐ€? ์žฌ๋ฐฐ์น˜ ์ •์ฑ… 5. 32bit CPU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋Š” ์–ผ๋งˆ์ธ๊ฐ€? 4GB ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ ํฌ๊ธฐ : 32GB ํ‘œํ˜„ ๋ฒ”์œ„ : 0 ~ 232 ์ด๋ฏ€๋กœ ์ด ํฌ๊ธฐ 232byte = 32G.. 2022. 11. 6.
[์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ] ch.6 ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™” - ์—ฐ์Šต & ์‹ฌํ™” ๋ฌธ์ œ ์—ฐ์Šต ๋ฌธ์ œ 1. 2๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์„œ๋กœ์˜ ์ž‘์—…์ด ๋๋‚˜๊ธฐ๋งŒ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ์ž‘์—…์„ ๋” ์ด์ƒ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ๋ฅผ ๋ฌด์—‡์ด๋ผ ํ•˜๋Š”๊ฐ€? ๊ต์ฐฉ ์ƒํƒœ (dead lock) 2. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋–ค ์ž์›์„ ์‚ฌ์šฉ ์ค‘์ด๊ณ  ์–ด๋–ค ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉํ–ฅ์„ฑ์ด ์žˆ๋Š” ๊ทธ๋ž˜ํ”„? ์ž์› ํ• ๋‹น ๊ทธ๋ž˜ํ”„ (resource allocation graph) 3. ๋„ค ๊ฐ€์ง€ ๊ต์ฐฉ ์ƒํƒœ ํ•„์š”์กฐ๊ฑด์— ๋Œ€ํ•œ ์„ค๋ช… ์ƒํ˜ธ ๋ฐฐ์ œ (mutual exclusion) : ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ž์›์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๊ณต์œ ํ•  ์ˆ˜ ์—†๋Š” ๋ฐฐํƒ€์  ์ž์›์ด์–ด์•ผ ํ•จ. ๋น„์„ ์  (non-preemption): ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉ์ค‘์ธ ์ž์›์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋นผ์•—์„ ์ˆ˜ ์—†๋Š” ๋น„์„ ์  ์ž์›์ด์–ด์•ผ ํ•œ๋‹ค. ์ ์œ ์™€ ๋Œ€๊ธฐ (hold and wait): ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋–ค ์ž์›์„ ํ• ๋‹น .. 2022. 11. 6.
[์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ] ch.5 ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™” - ์—ฐ์Šต & ์‹ฌํ™” ๋ฌธ์ œ ์—ฐ์Šต ๋ฌธ์ œ 1. ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ „์†ก ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋™์‹œ ์ „์†ก์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  ํŠน์ • ์‹œ์ ์— ํ•œ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์‹  ๋ฐฉ์‹? ๋ฐ˜์–‘๋ฐฉํ–ฅ ํ†ต์‹  2. ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ์‚ดํŽด๋ณด๊ธฐ ์œ„ํ•ด ๋ฐ˜๋ณต๋ฌธ์„ ๋ฌดํ•œ ์‹คํ–‰ํ•˜๋ฉฐ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ? ๋ฐ”์œ ๋Œ€๊ธฐ (busy waiting) ์ž์› ๋‚ญ๋น„์˜ ์˜ˆ์‹œ 3. ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์—์„œ ๋Œ€๊ธฐ๊ฐ€ ์—†๋Š” ํ†ต์‹ ๊ณผ ๋Œ€๊ธฐ๊ฐ€ ์žˆ๋Š” ํ†ต์‹ ์˜ ์˜ˆ ๋Œ€๊ธฐ x : ์ „์—ญ ๋ณ€์ˆ˜, ํŒŒ์ผ ๋ฐฉ์‹ ๋Œ€๊ธฐ o : ํŒŒ์ดํ”„, ์†Œ์ผ“ ๋ฐฉ์‹ 4. ํŒŒ์ดํ”„๋ฅผ ์ด์šฉํ•˜์˜ ํ†ต์‹ ํ•  ๋•Œ ํŒŒ์ดํ”„๋ฅผ 2๊ฐœ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ? ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ๊ฐ ํ•˜๋‚˜์˜ ํŒŒ์ดํ”„๋ฅผ ์ฝ๊ณ  ์“ด๋‹ค. 5. ๊ณต์œ  ์ž์›์„ ๋ณ‘ํ–‰์ ์œผ๋กœ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š” ์ƒํ™ฉ? ๊ฒฝ์Ÿ ์กฐ๊ฑด (race condition) 6. ๊ณต์œ  ์ž์›์˜ ์ ‘๊ทผ ์ˆœ์„œ์— ๋”ฐ๋ผ ์‹คํ–‰ .. 2022. 11. 4.
[์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ] ch.4 CPU ์Šค์ผ€์ค„๋ง - ์—ฐ์Šต & ์‹ฌํ™” ๋ฌธ์ œ ์—ฐ์Šต ๋ฌธ์ œ 1. ํ”„๋กœ๊ทธ๋žจ์ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜๋ ค๋ฉด ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ๋ฌด์—‡์„ ๋ฐ›๋Š”์ง€? ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก(Process Control Block) 2. ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ์ค‘ CPU๋ฅผ ํ• ๋‹น๋ฐ›๊ธฐ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ ์ค€๋น„ ์ƒํƒœ(Ready Status) 3. ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ์ค‘ ์ž…์ถœ๋ ฅ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋™ํ•˜๋Š” ์ƒํƒœ ๋Œ€๊ธฐ ์ƒํƒœ(Blocking Status) 4. CPU ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ค€๋น„ ์ƒํƒœ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ CPU๋ฅผ ํ• ๋‹นํ•˜๋Š” ์ž‘์—… ์‹คํ–‰ ์ƒํƒœ(Runnung Status) 5. ์œ ๋‹‰์Šค์—์„œ Ctrl+Z ๋ฅผ ๋ˆŒ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋˜๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ์–ด๋–ค ์ƒํƒœ๋กœ ๋ฐ”๋€Œ๋Š”์ง€? ํœด์‹ ์ƒํƒœ(Pause Status) 6. ์‹คํ–‰ ์ƒํƒœ์—์„œ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚˜๊ฐ€๊ณ  ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด์˜ค๋Š” ์ƒํ™ฉ ๋ฌธ๋งฅ ๊ตํ™˜(Context Switchin.. 2022. 11. 4.
[์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ] ch.3 ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ - ์—ฐ์Šต & ์‹ฌํ™” ๋ฌธ์ œ ์—ฐ์Šต ๋ฌธ์ œ 1. ํ”„๋กœ๊ทธ๋žจ์ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜๋ ค๋ฉด ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ๋ฌด์—‡์„ ๋ฐ›๋Š”์ง€? ํ”„๋กœ์„ธ์Šค ์ œ์–ด ๋ธ”๋ก(Process Control Block) 2. ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ์ค‘ CPU๋ฅผ ํ• ๋‹น๋ฐ›๊ธฐ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ ์ค€๋น„ ์ƒํƒœ(Ready Status) 3. ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ์ค‘ ์ž…์ถœ๋ ฅ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋™ํ•˜๋Š” ์ƒํƒœ ๋Œ€๊ธฐ ์ƒํƒœ(Blocking Status) 4. CPU ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ค€๋น„ ์ƒํƒœ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ CPU๋ฅผ ํ• ๋‹นํ•˜๋Š” ์ž‘์—… ์‹คํ–‰ ์ƒํƒœ(Runnung Status) 5. ์œ ๋‹‰์Šค์—์„œ Ctrl+Z ๋ฅผ ๋ˆŒ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋˜๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ์–ด๋–ค ์ƒํƒœ๋กœ ๋ฐ”๋€Œ๋Š”์ง€? ํœด์‹ ์ƒํƒœ(Pause Status) 6. ์‹คํ–‰ ์ƒํƒœ์—์„œ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚˜๊ฐ€๊ณ  ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋“ค์–ด์˜ค๋Š” ์ƒํ™ฉ ๋ฌธ๋งฅ ๊ตํ™˜(Context Switchin.. 2022. 11. 2.
[์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ] ch.2 ์ปดํ“จํ„ฐ์˜ ๊ตฌ์กฐ์™€ ์„ฑ๋Šฅ - ์—ฐ์Šต & ์‹ฌํ™” ๋ฌธ์ œ ์—ฐ์Šต ๋ฌธ์ œ 1. CPU์˜ ๊ตฌ์„ฑ? ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์žฅ์น˜ ์‚ฐ์ˆ ๋…ผ๋ฆฌ ์—ฐ์ƒ ์žฅ์น˜ ์ œ์–ด ์žฅ์น˜ ๋ ˆ์ง€์Šคํ„ฐ 2. ํฐ๋…ธ์ด๋งŒ ๊ตฌ์กฐ์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํŠน์ง• ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์•ผ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์  3. ๋ฒ„์Šค์˜ ์ข…๋ฅ˜ ์ œ์–ด ๋ฒ„์Šค ์ œ์–ด์žฅ์น˜์™€ ์—ฐ๊ฒฐ๋œ ๋ฒ„์Šค ์ฃผ๋กœ ์ œ์–ด ๋ช…๋ น์„ ์ „๋‹ฌ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ž‘์—… ์™„๋ฃŒ, ์˜ค๋ฅ˜ ์‹ ํ˜ธ ๋“ฑ๋“ฑ ์ฃผ์†Œ ๋ฒ„์Šค ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ์™€ ์—ฐ๊ฒฐ ์œ„์น˜ ์ •๋ณด(์ฃผ์†Œ)๋ฅผ ์ „๋‹ฌ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฒ„์Šค ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ ๋ ˆ์ง€์Šคํ„ฐ์™€ ์—ฐ๊ฒฐ ์–‘๋ฐฉํ–ฅ 4. ๋‹จ๋ฐฉํ–ฅ ๋ฒ„์Šค ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์‹ ํ˜ธ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์Šค ์‹ ํ˜ธ๋ฅผ "์ค„" ๊ฒฝ์šฐ์— ์‚ฌ์šฉ 5. ๋‹ค์Œ ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ (PC) ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ์ œ์–ด์žฅ์น˜์— ์•Œ๋ ค์คŒ ์ฃผ์†Œ๋ฅผ ์นด๋ฆฌํ‚ค๋ฏ€๋กœ ๋ช…๋ น์–ด ํฌ์ธํ„ฐ(Instruction .. 2022. 11. 1.
[๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜] Chapter6. ์˜์†์„ฑ ์–ด๋Œ‘ํ„ฐ ๊ตฌํ˜„ํ•˜๊ธฐ CH 6. ์˜์†์„ฑ ์–ด๋Œ‘ํ„ฐ ๊ตฌํ˜„ํ•˜๊ธฐ 1. ์˜์กด์„ฑ ์—ญ์ „ ์„œ๋น„์Šค๊ฐ€ ์˜์†์„ฑ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํฌํŠธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ˜ธ์ถœ ์œก๊ฐํ˜• ์•„ํ‚คํ…์ฒ˜์—์„œ ์˜์†์„ฑ ์–ด๋Œ‘ํ„ฐ๋Š” ์ฃผ๋กœ ์•„์›ƒ๊ณ ์ž‰ ์–ด๋Œ‘ํ„ฐ => ์•ฑ์—์„œ ํ˜ธ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ, ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋Š” ์—†๋‹ค. ํฌํŠธ๋Š” ์•ฑ๊ณผ ์˜์†์„ฑ ์‚ฌ์ด์˜ ๊ฐ„์ ‘์  ๊ณ„์ธต ์˜์†์„ฑ ๋ฌธ์ œ์— ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ๋„๋ฉ”์ธ ์ฝ”๋“œ ๊ฐœ๋ฐœ ๋ชฉ์  ์˜์†์„ฑ ๊ณ„์ธต์— ์ฝ”๋“œ ์˜์กด์„ฑ์„ ์—†์•ฐ ์ด๋Ÿด ๊ฒฝ์šฐ, ์˜์†์„ฑ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋”๋ผ๋„ ์ฝ”์–ด ์ฝ”๋“œ์— ์˜ํ–ฅ์ด ์—†์Œ ๋Ÿฐํƒ€์ž„์—๋„ ์—ฌ์ „ํžˆ ์•ฑ์ด ์˜์†์„ฑ ์ฝ”๋“œ์— ์˜์กดํ•˜๊ณ  ์žˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์•ฝ์„ ๋งŒ์กฑํ•˜๋Š” ํ•œ ์˜์†์„ฑ ์ฝ”๋“œ ์ˆ˜์ •์€ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค. 2. ์˜์†์„ฑ ์–ด๋Œ‘ํ„ฐ์˜ ์ฑ…์ž„ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค. ์ฃผ๋กœ ๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ, DB ์—ฐ์‚ฐ ์ „์šฉ ๊ฐ์ฒด ์ž…๋ ฅ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌ๋งท์œผ๋กœ ๋งคํ•‘ํ•œ๋‹ค. JPA Entity ๊ฐ์ฒด ๋งคํ•‘ JPA๋ฅผ ์ œ์™ธํ•œ ๊ธฐ์ˆ ๋„ ๊ณ ๋ ค .. 2022. 10. 31.
[๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜] Chapter5. ์›น ์–ด๋Œ‘ํ„ฐ ๊ตฌํ˜„ํ•˜๊ธฐ CH.5 ์›น ์–ด๋Œ‘ํ„ฐ ๊ตฌํ˜„ํ•˜๊ธฐ 1. ์˜์กด์„ฑ ์—ญ์ „ Web Adaptor = Incomming Adaptor ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์š”์ฒญ ๋ฐ›์Œ => ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”์–ด ํ˜ธ์ถœ => ๋ฌด์Šจ ์ผ์„ ํ•ด์•ผํ• ์ง€ ์•Œ๋ ค์คŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์€ ์›น ์–ด๋Œ‘ํ„ฐ๊ฐ€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ํฌํŠธ๋ฅผ ์ œ๊ณต ์„œ๋น„์Šค๋Š” ํฌํŠธ ๊ตฌํ˜„ & ์›น ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์ด ํฌํŠธ๋ฅผ ํ˜ธ์ถœ ์ œ์–ด ํ๋ฆ„ ์™ผ์ชฝ => ์˜ค๋ฅธ์ชฝ ์›น ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์œ ์Šค์ผ€์ด์Šค๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ„์ ‘ ๊ณ„์ธต์„ ๋„ฃ์Œ ํฌํŠธ (๊ฐ„์ ‘ ๊ณ„์ธต)๋Š” ์™ธ๋ถ€์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์— ๋Œ€ํ•œ ๋ช…์„ธ์„œ ์–ด๋–ค ํ†ต์‹ ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Œ. Outgoing Port ์ด ํฌํŠธ๋Š” ์›น ์–ด๋Œ‘ํ„ฐ์—์„œ ๊ตฌํ˜„ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”์–ด์—์„œ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค. ์›น ์–ด๋Œ‘ํ„ฐ๋Š” ์ธ์ปค๋ฐ & ์•„์›ƒ๊ณ ์ž‰ ์–ด๋Œ‘ํ„ฐ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. 2. ์›น ์–ด๋Œ‘ํ„ฐ์˜ ์ฑ…์ž„ ๊ฑฐ์‹œ์  ๊ด€์  HTTP ์š”์ฒญ.. 2022. 10. 30.
์Šคํ„ฐ๋”” ๊ฒฐ์„ฑ ๊ฐ™์€ ๊ธธ์„ ๊ฐ€๊ณ  ์žˆ๋Š” ๊ณ ๋“ฑํ•™๊ต ๋™์ฐฝ๊ณผ ๊ทธ ํ›„๋ฐฐ์™€ ์ œ๊ฐ€ ๋ญ‰์ณ์„œ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. โ€‹ ์ง€๊ธˆ์€ ์ทจ์—…์ด ์ตœ์šฐ์„ ์ธ์ง€๋ผ โ€‹ ์ œ๊ฐ€ ์ง€๊ธˆ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์ค€๋น„ (์•Œ๊ณ ๋ฆฌ์ฆ˜) ์ž์†Œ์„œ์™€ ํฌํŠธํด๋ฆฌ์˜ค ์ˆ˜์ • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ๋ฐฐํฌ ์ค€๋น„ ๋ฉด์ ‘ ์งˆ๋ฌธ ์šฉ CS ๊ณต๋ถ€ ๋ฐ ๊นƒํ—™ ์ •๋ฆฌ โ€‹ ์ด ์™ธ์—๋„ ์„ ํƒ์„ ๋” ํ•  ์ˆ˜ ์žˆ์„๊ฒŒ ์—†์„๊นŒํ•˜๋‹ค๊ฐ€ ์‹œ๊ฐ„์„ ๋บ๊ธฐ์ง€ ์•Š๊ณ  ๋” ๊ณต๋ถ€ํ•œ ํ”์ ์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์„ ์œ ์šฉํ•œ ์ฑ…๋“ค์„ ์งฌ์งฌํžˆ ๋ณด๊ธฐ๋กœ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ณผ์ •์—์„œ ํ˜ผ์ž ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๊ฐ™์ด ์ฝ์–ด ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  ๊ฐ์ž ๋Š๋‚€ ๊ฒƒ์„ ๋ฐ”ํƒ•์œผ๋กœ ์˜๊ฒฌ ๊ณต์œ  ๋ฐฉ์‹์œผ๋กœ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด ๋” ํšจ์œจ์ ์ด๋ž€ ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. โ€‹ ๊ณ ๋“ฑํ•™๊ต ์นœ๊ตฌ ์ค‘์— ์—ด์‹ฌํžˆ ํ•˜๋Š” ์นœ๊ตฌ๊ฐ€ ์žˆ๊ธธ๋ž˜ ์Šคํ„ฐ๋”” ์ œ์•ˆ์„ ํ–ˆ๊ณ , ์–ด์ œ ์Šคํ„ฐ๋”” ๊ด€๋ จ ๊ตฌ์ฒด์ ์ธ ์ผ์ •์„ ์žก์œผ๋ฉฐ ๊นƒํ—™ Orga.. 2022. 10. 30.
[Set & List] ์„ฑ๋Šฅ ์ฐจ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๋ฉฐ ๋ฐฑ์ค€์„ ํ’€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. https://www.acmicpc.net/problem/1920 1920๋ฒˆ: ์ˆ˜ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1 โ‰ค N โ‰ค 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], โ€ฆ, A[N]์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M(1 โ‰ค M โ‰ค 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M๊ฐœ์˜ ์ˆ˜๋“ค์ด ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ด ์ˆ˜๋“ค www.acmicpc.net ๋ฐ”๋กœ ์ด ๋ฌธ์ œ์ธ๋ฐ์š”? ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์ด๊ณ  ์‰ฝ๊ฒŒ ํ’€์—ˆ๋Š”๋ฐ, ๊ณ„์† ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋‚ฌ์—ˆ์Šต๋‹ˆ๋‹ค.. ์›์ธ์ด ๋ฌด์—‡์ธ๊ณ , ํ•˜๊ณ  ๋ดค์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ ์ž…๋ ฅํ•œ ์ˆซ์ž ๋งŒํผ ์ •์ˆ˜๋ฅผ ๋ฐ›์•„์„œ ์ž๋ฃŒ๊ตฌ์กฐ์— ์ €์žฅํ•˜๊ณ  contains๋กœ ๋น„๊ตํ•  ์ƒ๊ฐ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ์ •์ˆ˜์ด๋ฏ€๋กœ Integer๋กœ ์ œ๋„ค๋ฆญ์„ ์„ ์–ธํ–ˆ๋Š”๋ฐ, ์ด๊ฒŒ ๋ณ€ํ™˜๊ณผ.. 2022. 10. 29.
[๊ฐ์ƒ๋ฌธ] Effective Java๋ฅผ ์ฝ๊ณ  ๋‚˜์„œ ์ฑ…์„ ์ฝ์€ ์ด์œ  ์ž๋ฐ” ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ํ•œ๋ฒˆ ์ฏค ๋„์ „ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ์ฑ… ์ค‘์— ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”๋‹ค. ์›Œ๋‚™ ์–ด๋ ต๊ธฐ๋กœ๋„ ์†Œ๋ฌธ์ด ๋‚ฌ๊ณ , ๊ทธ ๋งŒํผ ์ž๋ฐ”์˜ ์ •์ˆ˜๋ผ๊ณ  ๋ถˆ๋ฆฌ์šฐ๊ธธ๋ž˜ ์ž๋ฐ” ์„œ์  ์ค‘ ๊ฐ€์žฅ ๊ฐ€์น˜๊ฐ€ ๋†’๊ฒŒ ๋Š๊ปด์กŒ์—ˆ๋‹ค. โ€‹ ๋ฐฑ์—”๋“œ ์ฑŒ๋ฆฐ์ง€ ๊ต์œก์„ ๋“ค์œผ๋ฉฐ ๋ฉ˜ํ† ๋‹˜์ด ์ˆ˜ ๋งŽ์€ ๊ต์œก ์˜์ƒ๊ณผ ์ฑ…๋“ค์„ ์ถ”์ฒœํ•ด์ฃผ์…จ๋Š”๋ฐ, ๊ทธ ์ค‘์— ์–ธ์–ด ์‹ค๋ ฅ์˜ ๊ธฐ์ค€์ด ๋˜๋Š” ์ฒ™๋„๊ฐ€ ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”๋ผ๊ณ  ํ•˜์…จ๋‹ค. ์ฑ… ์ฝ์„ ์‹œ๊ฐ„ ์—†๋‹ค๋Š” ํ•‘๊ณ„๋กœ ๋ฏธ๋ฃจ๊ณ  ๋ฏธ๋ฃจ๋‹ค๊ฐ€ ๋ฐ”๋กœ ์ง€๋ฅด๊ธฐ๋กœ ๊ฒฐ์‹ฌํ–ˆ๋‹ค. โ€‹ ์ƒˆ ์ฑ…์„ ์‚ฌ๊ธฐ์—๋Š” ๊ฐ€๊ฒฉ์ด ๋ถ€๋‹ด์Šค๋Ÿฝ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฒˆ ๊ธฐํšŒ์— ๋‹น๊ทผ ๋งˆ์ผ“์„ ์ด์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋‹คํ–‰ํžˆ ๊ฐ€๊นŒ์šด ๋™๋„ค์— ํŒ๋งค์ž ๋ถ„์ด ๊ณ„์…”์„œ ๋น„๋ฐ”๋žŒ์„ ๊ฐ€๋ฅด๋ฉฐ ๊ฑฐ๋ž˜ ์žฅ์†Œ๋กœ ๊ฐ”๋‹ค. ๋„ค๊ณ ๊นŒ์ง€ ํ•ด์ฃผ์‹œ๊ณ  ๊ฐœ๋ฐœ์ž ์ทจ์ค€ ์‘์›๊นŒ์ง€ ํ•ด์ฃผ์…”์„œ ๋‚˜์˜ ์ฒซ ๋‹น๊ทผ ๊ฑฐ๋ž˜์— ๋งค์šฐ ๋”ฐ์Šคํ•จ์„ ๋Š๊ผˆ๊ณ , ์Šคํƒ€ํŠธ๊ฐ€ ์ข‹์„.. 2022. 10. 26.
[Refactor] ํŒจํ‚ค์ง€ ๊ตฌ์กฐ์™€ ์˜์กด์„ฑ ๋‘ ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ ์ž‘์„ฑ์ด ๊ฑฐ์˜ ๋๋‚ฌ๊ณ , ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์„ ์•ž๋‘๋ฉฐ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์•˜๋‹ค. ๊ฐ€์žฅ ํฐ ๊ณจ์ž๋Š” ์•„๋ฌด๋ž˜๋„ ์ฐธ์กฐ ๊ด€๊ณ„์ด๋‹ค. ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋ฅผ Layered์—์„œ ์•ฝ๊ฐ„์˜ DDD(์• ๋งคํ•˜์ง€๋งŒ ใ…Žใ…Ž) ๋ฅผ ๊ณ๋“ค์ธ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค. ๊ทธ ๊ณผ์ •์—์„œ ํŒจํ‚ค์ง€ ๊ฐ„ ์˜์กด์„ฑ์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผํ•ด๋ณด๊ณ  ์ž‘๋ช…ํ•˜๋Š” ๊ฒƒ๊ณผ ์„ค๊ณ„ํ•˜๋Š” ์‹œ๊ฐ„์ด ์ •๋ง ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค. ์ฝ”๋”ฉ์„ ๊ณต๋ถ€ํ•˜๋ฉด ํ•  ์ˆ˜๋ก ์ž‘์€ ๊ฒƒ์— ์‹œ๊ฐ„์„ ์˜ค๋ž˜ ๋“ค์ด๊ฒŒ ๋˜๋Š” ๊ฑธ ๋Š๋‚€๋‹ค. ์–ด์ œ๋Š” ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ์ง“๋Š”๋ฐ ๋ฐ˜๋‚˜์ ˆ์ด ๊ฑธ๋ ธ๋‹ค. ํšŒ์‚ฌ์—์„œ๋Š” ๋ณ€์ˆ˜๋ช… ์ง“๋Š” ๊ฑธ๋กœ๋„ ํšŒ์˜๋ฅผ ํ•œ๋‹ค๊ณ  ํ•˜๋‹ˆ ์•ฝ๊ฐ„ ์‹ค๊ฐ์ด ๋‚˜๊ธฐ๋„ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋””ํ…Œ์ผํ•˜๊ฒŒ ์ฑ„์›Œ๋‚˜๊ฐ€๋ฉด ๊ทธ ๋งŒํผ ๋‚ด ์‹ค๋ ฅ์ด ๋œ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ์ตœ์ƒ์œ„ ๊ตฌ์กฐ auth : ์ธ์ฆ, ์ธ๊ฐ€ ์ฒ˜๋ฆฌ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์ด์šฉ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊นŒ์ง€ ๋„๋‹ฌํ•˜์ง€ ์•Š๋Š” ํ•„ํ„ฐ ์œ„์ฃผ์ด๊ธฐ ๋•Œ๋ฌธ์— .. 2022. 10. 14.
[6์ฃผ์ฐจ] (Led Matrix) Capston Challenge ๋ฌธ์ œ 1 ๋งˆ์ง€๋ง‰ ํ–‰๋งŒ์„ On ๋ฌธ์ œ ์ดํ•ด ์• ๋…ธ๋“œ ํƒ€์ž…์„ ์ด์šฉ row : high, col : low ์ผ๋•Œ led on ๋˜๋Š” ๊ฒƒ์„ ๋ช…์‹ฌํ•˜์ž ์ฝ”๋“œ int pin[17] = { -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37 }; int col[8] = { pin[9], pin[10], pin[11], pin[12], pin[13], pin[14], pin[15], pin[16] }; int row[8] = { pin[1], pin[2], pin[3], pin[4], pin[5], pin[6], pin[7], pin[8] }; void setup() { // put your setup code here, to run once: for (in.. 2022. 10. 13.
[5์ฃผ์ฐจ] (Timer Counter Interrupt) Capston Challenge ๋ฌธ์ œ 2-1 LED, Buzzer ์‚ฌ์šฉ 2์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ๊ต๋Œ€๋กœ ์ ๋ฉธ ์Šค์œ„์น˜๊ฐ€ ๋ˆŒ๋ฆด ๊ฒฝ์šฐ Buzzer ๋™์ž‘ delay() ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฌธ์ œ ์ดํ•ด ๋ฌธ์ œ ๊ทธ๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ ์ฝ”๋“œ int switch_state; int int_sw = 2; int LED1 = 22; int LED2 = 24; int BUZZER = 8; int LED1_state = HIGH; int LED2_state = LOW; void setup() { pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(BUZZER, OUTPUT); } void loop() { flush(); switch_state = digitalRead(2); if (switch_state == HIGH) { d.. 2022. 10. 9.
๋ฐ˜์‘ํ˜•