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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ246

[์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์šด์˜์ฒด์ œ] 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.
[2์ฃผ์ฐจ] (External Interrupt) Caston Challenge 4 โ€ป Caston Challenge 2๋ฒˆ, 3๋ฒˆ ๋ฌธ์ œ๋Š” ํ•˜๋“œ์›จ์–ด์  ๊ตฌ์„ฑ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ - ์Šค์œ„์น˜ 1์€ Falling Edge๋กœ - ์Šค์œ„์น˜ 2๋Š” Rising Edge๋กœ ์„ค์ • - AVR ๋ช…๋ น์–ด(PORT ์ž…์ถœ๋ ฅ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Interrupt ์‹คํ—˜ - ์Šค์œ„์น˜ 1 Debounce ํšŒ๋กœ๋ฅผ ์„ค๊ณ„ - ์Šค์œ„์น˜ 2 ์ผ๋ฐ˜ ํšŒ๋กœ๋กœ ์„ค๊ณ„ - ์Šค์œ„์น˜ 1 LED 4๊ฐœ๊ฐ€ LSB ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ๋ˆ„์ ํ•˜์—ฌ On, LCD์—๋Š” 1ํ–‰์—๋Š” “Falling Edge” Displayํ•˜๊ณ , 2ํ–‰์—๋Š” ํ˜„์žฌ LED๊ฐ€ ๋ช‡๊ฐœ On ๋˜์—ˆ๋Š”์ง€ ๊ฐœ์ˆ˜๋ฅผ Display - ์Šค์œ„์น˜ 2 LED 4๊ฐœ๊ฐ€ MSB ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ด๋™ํ•˜๋ฉด์„œ On, LCD์—๋Š” 1ํ–‰์—๋Š” “Rising Edge”๋ผ๊ณ  Display, 2ํ–‰์—๋Š” MSB ๊ธฐ์ค€์œผ๋กœ ์ฒซ๋ฒˆ์งธ LED๋ฅผ 1์ด๋ผ๊ณ  ํ–ˆ์„.. 2022. 10. 5.
[Redisson] ํŠธ๋žœ์žญ์…˜ ๋ฌธ์ œ ๋ฐœ์ƒ ๋ฐ ํ•ด๊ฒฐ ์ง€๋‚œ ํฌ์ŠคํŠธ [Redisson]์„ ์ด์šฉํ•œ ๋ถ„์‚ฐ Lock ๊ตฌํ˜„ & ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋‚ด ํ”„๋กœ์ ํŠธ์˜ Payment๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ ์ค‘์— ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ์ง๋ฉดํ–ˆ์—ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฐ”๋กœ ๋™์‹œ์„ฑ ๋ฌธ์ œ! ์Šคํ”„๋ง๋ถ€ํŠธ์˜ ๋‚ด์žฅ ์„œ๋ฒ„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ†ฐ์บฃ, ์–ธ๋”ํ† ์šฐ ๋“ฑ๋“ฑ์˜ WAS๋กœ ๋Œ์•„๊ฐ€๋Š”๋ฐ ์ด sweeeetgoguma.tistory.com ์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ Redisson์„ ์ด์šฉํ•˜์—ฌ ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋ฆฌํŒฉํ† ๋ง์ด ๊ฑฐ์˜ ๋๋‚˜๊ฐ€ ์กฐํšŒ API๋ฅผ ๊ตฌ์ฒดํ™”ํ•˜์—ฌ ๋ช‡ ๊ฐœ ์ถ”๊ฐ€ํ•˜๋˜ ๋„์ค‘, ์Šค๋ ˆ๋“œ 100๊ฐœ์˜ ๋™์‹œ ์š”์ฒญ์„ ์ง์ ‘์ ์œผ๋กœ ๋ฐ›๋Š” ๊ณผ์ •์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์–ด์กŒ๋‹ค. ๊ทธ๋ž˜์„œ ์‹คํ—˜ํ•ด๋ดค๋‹ค. ๊ฒฐ๊ณผ๋Š”?? ์ฒ˜์ฐธํ•˜๋‹ค.. ๋ฌด์—‡์ด ๋ฌธ์ œ์˜€์„๊นŒ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ์”นํ˜”๋‹ค. @GetMapping("/test") public void t.. 2022. 10. 1.
[Redisson]์„ ์ด์šฉํ•œ ๋ถ„์‚ฐ Lock ๊ตฌํ˜„ & ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋‚ด ํ”„๋กœ์ ํŠธ์˜ Payment๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ ์ค‘์— ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ์ง๋ฉดํ–ˆ์—ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฐ”๋กœ ๋™์‹œ์„ฑ ๋ฌธ์ œ! ์Šคํ”„๋ง๋ถ€ํŠธ์˜ ๋‚ด์žฅ ์„œ๋ฒ„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ†ฐ์บฃ, ์–ธ๋”ํ† ์šฐ ๋“ฑ๋“ฑ์˜ WAS๋กœ ๋Œ์•„๊ฐ€๋Š”๋ฐ ์ด WAS๋Š” ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. A๋ผ๋Š” ์ƒํ’ˆ (์žฌ๊ณ  3๊ฐœ) ์„ [๊ฐ€]๊ตฐ์ด 2๊ฐœ ๊ตฌ๋งคํ•˜๋ ค ํ•œ๋‹ค. ๋™์‹œ์— [๋‚˜]๊ตฐ์ด 2๊ฐœ ๊ตฌ๋งคํ•˜๋ ค ํ•œ๋‹ค. ๋ฏธ์„ธํ•˜๊ฒŒ ๋‚˜๋งˆ 0.00001์ดˆ์˜ ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฒฐ๊ตญ ๊ฐ๊ฐ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ฐ™์€ ์ƒํ’ˆ์˜ ์žฌ๊ณ ๋ฅผ ์กฐํšŒํ•œ๋‹ค. ์›๋ž˜๋Œ€๋กœ๋ผ๋ฉด ํ•œ ๋ช…์€ ๋ชป ์‚ฌ์•ผ ์ •์ƒ์ด๋‹ค. ์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด ๋ญ๊ฐ€ ์žˆ์„๊นŒ? 1. Synchronized ์ž๋ฐ”๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. Thread-Safe ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์ข‹์•„๋ณด์ด๋‚˜, ์„œ๋ฒ„๊ฐ€ ์ฆ์„ค๋  ๊ฒฝ์šฐ ์˜๋ฏธ๊ฐ€ ์—†์–ด์ง„๋‹ค. 2. Database Lock D.. 2022. 9. 27.
๊ฒฐ์ œ API ๋ฆฌํŒฉํ† ๋ง - [2] (feat. WebClient) https://sweeeetgoguma.tistory.com/entry/%EA%B2%B0%EC%A0%9C-API-%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81-1-feat-%EC%A0%84%EB%9E%B5-%ED%8C%A8%ED%84%B ๊ฒฐ์ œ API ๋ฆฌํŒฉํ† ๋ง - [1] (feat. ์ „๋žต ํŒจํ„ด) ๊ฒฐ์ œ API๋ฅผ ๋ฆฌํŒฉํ† ๋ง ์‹œ์ž‘ํ•˜๋ฉฐ ์™ธ๋ถ€ API๋ฅผ ์—ฐ๋™ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•ด๋ดค๋‹ค. ๊ธฐ์กด์—๋„ ์นด์นด์˜คํŽ˜์ด๋ฅผ ์ด์šฉํ–ˆ์—ˆ๊ณ , ์ง€๊ธˆ๋„ ์นด์นด์˜คํŽ˜์ด๋ฅผ ์ด์šฉํ•  ๊ฒƒ์ด์ง€๋งŒ, ์ถ”๊ฐ€์ ์œผ๋กœ ๋‹ค๋ฅธ ๊ฒฐ์ œ API๋ฅผ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ sweeeetgoguma.tistory.com ์ง€๋‚œ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค~ ์‹ค์ œ ๊ฒฐ์ œ API๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” httpClient ๊ธฐ๋ฐ˜์˜ ๋ชจ๋“ˆ์ด ํ•„์š”ํ•˜๋‹ค. ๊ธฐ์กด์—๋Š” ๋™๊ธฐ๋ฐฉ์‹, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋ฅผ ์ด์šฉ.. 2022. 9. 22.
๊ฒฐ์ œ API ๋ฆฌํŒฉํ† ๋ง - [1] (feat. ์ „๋žต ํŒจํ„ด) ๊ฒฐ์ œ API๋ฅผ ๋ฆฌํŒฉํ† ๋ง ์‹œ์ž‘ํ•˜๋ฉฐ ์™ธ๋ถ€ API๋ฅผ ์—ฐ๋™ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•ด๋ดค๋‹ค. ๊ธฐ์กด์—๋„ ์นด์นด์˜คํŽ˜์ด๋ฅผ ์ด์šฉํ–ˆ์—ˆ๊ณ , ์ง€๊ธˆ๋„ ์นด์นด์˜คํŽ˜์ด๋ฅผ ์ด์šฉํ•  ๊ฒƒ์ด์ง€๋งŒ, ์ถ”๊ฐ€์ ์œผ๋กœ ๋‹ค๋ฅธ ๊ฒฐ์ œ API๋ฅผ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ์„ ๋งŒํ•œ ์ƒํ™ฉ์„ ์ƒ๊ฐํ•ด๋ดค๋‹ค. ์Šคํ”„๋ง์„ ์ฒ˜์Œ ๊ณต๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ ์ฝ์—ˆ๋˜ ์ฑ…์ธ ๊ฐœ๊ตฌ๋ฆฌ (์Šคํ”„๋ง ์ž…๋ฌธ์„ ์œ„ํ•œ ๋ญ์‹œ๊ธฐ..) ์ฑ…์—์„œ ์Šคํ”„๋ง์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋””์ž์ธ ํŒจํ„ด๋“ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ ๋•Œ๋Š” ๋””์ž์ธ ํŒจํ„ด์ด๋ž€ ๊ฒƒ์— ๋Œ€ํ•ด ๊ฐ์ด ์ž˜ ์˜ค์ง€ ์•Š์•˜๋Š”๋ฐ, ์ง์ ‘ ์ ์šฉํ•  ๊ธฐํšŒ์™€ ์ƒํ™ฉ์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋ณธ๋‹ค. ๊ณ„์† ๋ฉด์ ‘ ์งˆ๋ฌธ ๋Œ€๋น„ํ•ด ์•ต๋ฌด์ƒˆ์ฒ˜๋Ÿผ ๋‹ฌ๋‹ฌ ์™ธ์šฐ๊ณ  ๋‹ค๋‹ˆ๋˜ ๋„์ค‘ ์ง์ ‘ ์ ์šฉํ•  ๊ธฐํšŒ๊ฐ€ ๋”ฑ ์ƒ๊ฒผ๊ณ , ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋ฐœ 2์›์น™์ธ OCP์— ์ฐฐ๋–ก์ผ ๊ฒƒ์ด๋ผ๋Š” ๋จธ๋ฆฌ ์†์˜ ์™ธ์นจ์ด ์šธ๋ ธ๋‹ค. ๊ทธ๋Œ€๋กœ ์ ์šฉํ•ด๋ณด์•˜๋‹ค. ๊ธฐ์กด ํ”Œ๋กœ์šฐ ์ปจํŠธ๋กค๋Ÿฌ ์„œ๋น„์Šค(์นด์นด.. 2022. 9. 20.
๋ฐ˜์‘ํ˜•