๐ ๋ฌดํ ๋ฐ๋ณต๋ฌธ, ์ง์ง ๊ด์ฐฎ์ ๊ฑธ๊น?
"while(true) ๋ญ ์ด๋์, ๊ทธ๋ฅ ๊ณ์ ๋๋ฆฌ๋ฉด ๋๋ ๊ฑฐ ์๋๊ฐ์?"
๋จ์ํ ๊ณ์ ๋ฐ๋ณตํ๋ค๋ ๊ฑด ์ฝ์ง๋ง,
์ปดํจํฐ ์
์ฅ์์๋ ์ด๋ง์ด๋งํ ์์ ์๋ชจ๊ฐ ๋ ์ ์์ด์!
์ง๊ธ๋ถํฐ ๋ฌดํ ๋ฃจํ์ ์ํ์ฑ๊ณผ ๋๋ํ ์ฌ์ฉ๋ฒ์ ํจ๊ป ์ ๋ฆฌํด๋ณผ๊ฒ์ ๐
โ ๏ธ ๋ฌดํ ๋ฃจํ๊ฐ ์์คํ ์ ๋ฏธ์น๋ ์ํฅ
๐งจ ํญ๋ชฉ | ๐ฌ ์ค๋ช |
---|---|
๐ง CPU ํญ์ฃผ | ์กฐ๊ฑด ์์ด ๊ณ์ ๋ฐ๋ณต๋๋ฉด CPU๊ฐ 100%๋ฅผ ํฅํด ๋ฌ๋ฆฝ๋๋ค. ๋ค๋ฅธ ์์ ์ ๋ฒ๋ฒ ์ด๊ณ , ํฌ์ด ๋ฏธ์น ๋ฏ์ด ๋์๊ฐ์. |
๐ ๋ฉ๋ชจ๋ฆฌ ๋์ | ๋ฐ๋ณต๋ฌธ ์์์ ๊ฐ์ฒด๋ฅผ ๊ณ์ ๋ง๋ค๊ฑฐ๋ ๋ฆฌ์คํธ์ ๊ฐ์ ์ถ๊ฐํ๋ฉด, GC๊ฐ ์ฒ๋ฆฌํ ํ๋ ์์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋ ์ฐน๋๋ค. ๊ฒฐ๊ตญ OutOfMemoryError ๊ฐ ํฐ์ง ์๋! |
๐งจ ์ฑ/์์คํ ๋ฉ์ถค | UI๊ฐ ๋ฌดํ ๋ฃจํ์ ๋ฌถ์ด๋ฉด? ์ฌ์ฉ์๋ ์๋ฌด๊ฒ๋ ๋ชปํฉ๋๋ค. ์ ๋ ฅ๋ ํด๋ฆญ๋ ์ ๋จนํ์. (์๋ต ์์!) |
๐ซ ๋น์ ์ ์ข ๋ฃ | ์๋ฌ ์ฒ๋ฆฌ๊ฐ ์๋ ๋ฌดํ ๋ฐ๋ณต์ ๊ฐ์ ์์ธ๋ฅผ ๊ณ์ ๋ฐ์์์ผ ๋ก๊ทธ๊ฐ ๋์น๊ณ , ํ๋ก๊ทธ๋จ์ด ๋ค์ด๋๊ธฐ๋ ํด์. |
๐ ํ์ถ ์กฐ๊ฑด ์์ | ์ค์๋ก ๋น ์ง ์ข ๋ฃ ์กฐ๊ฑด ํ๋๊ฐ ์ ์ฒด ์์คํ ์ ๋ฌด๋๋จ๋ฆด ์ ์์ด์. ๋๋ฒ๊น ? ์ ๋ง ์ด๋ ต์ต๋๋ค. |
๐ก ์์ ์ฝ๋๋ก ๋ณด๋ ์ํํ ๋ฌดํ ๋ฃจํ
while (true) {
System.out.println("๊ณ์ ์ถ๋ ฅ ์ค...");
}
โ
๋จ์ํ์ง๋ง...
โ ๋ฉ์ถ์ง ์์ผ๋ฉด CPU์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ํ๋ ๊ดด๋ฌผ์ด ๋ฉ๋๋ค
๐ฌ ๋ฐ๋ณต๋ฌธ์ ์์ ํ๊ฒ ์ฌ์ฉํ๋ ์ต๊ด
์ต๊ด | ์ค๋ช |
---|---|
โ ๋ช ํํ ์ข ๋ฃ ์กฐ๊ฑด | ๋ฐ๋ณต ํ์๋ ํ์ถ ์กฐ๊ฑด์ ๊ผญ ์์ฑํด ์ฃผ์ธ์. |
โ ์์ ์ฌ์ฉ ์ต์ํ | ๋ฃจํ ์์์ ๊ฐ์ฒด๋ฅผ ์๋ก ๋ง๋ค๊ฑฐ๋, ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณตํด์ ๋ถ๋ฌ์ค์ง ๋ง์ธ์. |
โ
break , return ์ ๊ทน ํ์ฉ |
ํน์ ์กฐ๊ฑด์์ ๋น ์ ธ๋์ฌ ์ ์๋๋ก ํ์ถ๊ตฌ๋ฅผ ๋ง๋ จํด ๋์ธ์. |
โ ๋๋ฒ๊น ์ฉ ๋ก๊ทธ ํ์ฉ | ๋ฌดํ ๋ฃจํ๊ฐ ์์ฌ๋๋ฉด ๋ก๊ทธ๋ฅผ ์ฐ์ด๋ณด๋ ๊ฒ๋ ํฐ ๋์์ด ๋ฉ๋๋ค. |
โ
๋ฐ๋ณต ๊ฐ ํด์ (sleep ) |
์๋ฐ, ํ์ด์ฌ ๋ฑ ๋๋ถ๋ถ์ ์ธ์ด๋ sleep() ์ ๊ณต โ CPU๋ฅผ ์ฌ๊ฒ ํด์ค ์ ์์ด์. |
๐ ์ค๋ ๋๋ฅผ ์ฌ๊ฒ ํ์! sleep()
์ ํ์ฉ
๋ฌดํ ๋ฃจํ๋ ํด์์ด ํ์ํฉ๋๋ค!
๊ณ์ ๋ฐ๋ณตํ๋ฉด ์ง์น๋๊น, ์ ๋นํ ์ฌ์ด๊ฐ๋ฉด์ ๋ฐ๋ณตํ์ธ์ โ
โ ํจํด ์์ (์ธ์ด ๋ ๋ฆฝ)
while (true) {
์์
์ํ
1์ด ์ฌ๊ธฐ (sleep 1000ms)
}
๐ก ์ธ์ด๋ณ sleep
์์
์ธ์ด | ์ฌ์ฉ ์ |
---|---|
Java | Thread.sleep(1000); |
Python | time.sleep(1) |
JavaScript | await new Promise(r => setTimeout(r, 1000)) (async) |
๐งฉ ์ธ์ ์ฐ๋์?
- โ ์๋ฒ์์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ํ ์ฒดํฌํ ๋
- โ ์ ๋๋ฉ์ด์ , ์ฌ๋ผ์ด๋ ๊ฐ์ GUI ์ฒ๋ฆฌํ ๋
- โ ์ผ์, ํ๋์จ์ด ๋ชจ๋ํฐ๋ง ์์๋ ํ์ฉ๋ผ์
๐ sleep ์์ด ๋ฌดํ ๋ฐ๋ณตํ๋ฉด?
์ฆ์ | ์ค๋ช |
---|---|
๐ ์ ๋ ฅ ๋ญ๋น | ๊ณ์ํด์ CPU๊ฐ ์ฌ์ง ์๊ณ ์๋ํด ๋ฐฐํฐ๋ฆฌ ์๋ชจโ |
๐ ํฌ ๊ณผ์ด | ๋ ธํธ๋ถ ํฌ์ด ๋ฏธ์น ๋ฏ์ด ๋์๊ฐ๊ณ ๋ฐ์ด ๋ฐ์ |
๐ต ์์คํ ๋ฒ๋ฒ ์ | ๋ค๋ฅธ ์์ ๊น์ง ๋๋ ค์ง๊ณ , ์ ์ฒด ์์คํ ์ ์ ์ํฅ |
โ ๋ง๋ฌด๋ฆฌ!
"๋ฌดํ ๋ฐ๋ณต์ ์ปดํจํฐ์ ์์ง์ฒ๋ผ ๊ฐ๋ ฅํ์ง๋ง, ํต์ ๋์ง ์์ผ๋ฉด ์ฌ์์ด ๋ ์ ์๋ค!"
ํญ์ ์ข ๋ฃ ์กฐ๊ฑด๊ณผ ํด์์ ๋ฃ์ด์ฃผ์ธ์ ๐
'Programming Mechanisms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ณ์ ์๋์(Shadowing) (0) | 2025.04.04 |
---|---|
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ (0) | 2025.04.01 |