์ ์ฒด ๊ธ
-
[์ํํธ์จ์ด๊ณตํ] TDD์ BDDComputer Science/Software Engineering 2024. 1. 17. 10:00
TDD TDD(Test-Driven Development, ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ)๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ค ํ๋๋ก, ์ ๊ฐ๋ฐ ํ ํ ์คํธ ๋ฐฉ์์ด ์๋๋ผ ์ ํ ์คํธ ํ ๊ฐ๋ฐ ๋ฐฉ์์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ์ ๋งํ๋ค. ์ฆ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ ํ ํ ์คํธ๋ฅผ ํต๊ณผํ๊ธฐ ์ํ ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐฉ์์ด๋ค. ๋ฐ๋ณต ํ ์คํธ๋ฅผ ์ํ ์ํํธ์จ์ด ๋ฐฉ๋ฒ๋ก ์ผ๋ก ์์ ๋จ์์ ํ ์คํธ๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ํต๊ณผํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ์ฌ ๊ตฌํํ๋ค. TDD๋ฅผ ์ด์ฉํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ 1. ํ ์คํธ ์ผ์ด์ค ์์ฑ ๋ง๋ค๊ณ ์ถ์ ๊ธฐ๋ฅ์ ์ ๊ฒํ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ์ด๋ ์์ง ๊ธฐ๋ฅ ์ฝ๋๋ฅผ ๊ตฌํํ์ง ์์์ผ๋ฏ๋ก ํ ์คํธ ๊ฒฐ๊ณผ๋ ์คํจ๋ก ๋ฐํ๋๋ค. ์คํจํ๋ ํ ์คํธ๋ฅผ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์๋ฌด ๊ฐ์ด๋ ๋ฐํํ๋๋ก ํ๋ ๊ฒ์ด๋ค. 2. ํ ์คํธ ์ผ์ด์ค๋ฅผ ํต๊ณผํ๋ ์ฝ๋ ์..
-
[Java] Virtual Thread์ ๋ํด์์นดํ ๊ณ ๋ฆฌ ์์ 2024. 1. 10. 12:22
2023๋ 9์ 19์ผ์ ๋ฆด๋ฆฌ์ฆ๋ Java 21 ๋ Java 8 ์ดํ ์ธ๋ฒ์งธ LTS ๋ฒ์ ์ด๋ค(11, 17, 21). ์ด ๋ฒ์ ์์๋ ๋ง์ ์ฌ๋๋ค์ด ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ๊ฐ์ ์ค๋ ๋ ๋ผ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์๋ค. Virtual Thread ๊ฐ์์ค๋ ๋๋ ์ ํต์ ์ธ Java ์ค๋ ๋์ ๋ํ์ฌ ์๋กญ๊ฒ ์ถ๊ฐ๋๋ ๊ฒฝ๋ ์ค๋ ๋์ด๋ค. ๊ฒฝ๋ ์ค๋ ๋ ๋ชจ๋ธ์ด๋ ๊ธฐ์กด ์ธ์ด์ ์ค๋ ๋ ๋ชจ๋ธ๋ณด๋ค ๋ ์์ ๋จ์๋ก ์คํ ๋จ์๋ฅผ ๋๋ ์ปจํ ์คํธ ์ค์์นญ ๋น์ฉ๊ณผ Blocking ํ์์ ๋ฎ์ถ๋ ๊ฐ๋ ์ด๋ค. Project Loom์ ๊ฒฐ๊ณผ๋ฌผ๋ก ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ผ๋ก OS ์ค๋ ๋๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์ง ์๊ณ JVM ์์ฒด์ ์ผ๋ก ๋ด๋ถ ์ค์ผ์ค๋ง์ ํตํด์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ๋์ ์ค๋ ๋๋ฅผ ์ ๊ณตํ๋ค. Project Loom์ด๋? ๊ฒฝ๋ ์ค๋ ๋๋ฅผ Java์ ์ถ๊ฐํ๊ธฐ ์ํด์ ๊ฐ์ ์ค๋ ๋๋ฅผ ๋น๋กฏํ..
-
[์ด์์ฒด์ (OS)] ํ๋ก์ธ์ค์ ์ค๋ ๋, Context Switch๋?Computer Science/Operating System 2024. 1. 10. 09:30
ํ๋ก์ธ์ค (Process) ํ๋ก์ธ์ค : ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ ํ๋ก์ธ์ค Context ํ๋ก์ธ์ค์ context๋ ํฌ๊ฒ 3๊ฐ์ง๋ก ๋ถ๋ฅํ ์ ์๋ค. ํ๋์จ์ด context : CPU ์ํ์ํ๋ฅผ ๋ํ๋ด๋ ๊ฒ์ผ๋ก PC(Program Counter)์ ๊ฐ์ข ๋ ์ง์คํฐ์ ์ ์ฅํ๊ณ ์๋ ๊ฐ๋ค ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ : ์ฝ๋(code), ๋ฐ์ดํฐ(data), ์คํ(stack)์ผ๋ก ๊ตฌ์ฑ๋ ํ๋ก์ธ์ค๋ง์ ๋ ์์ ์ธ ์ฃผ์ ๊ณต๊ฐ ์ปค๋ ์์ context : ํ๋ก์ธ์ค ๊ด๋ฆฌ๋ฅผ ์ํ ์๋ฃ๊ตฌ์กฐ์ธ PCB(Process Control Block)์ Kernel stack(์ปค๋ ๋ด์ ์ฃผ์) ์ปค๋? ๋ฆฌ๋ ์ค ๊ตฌ์ฑ์์ ์ค ํต์ฌ ๊ตฌ์ฑ ์์. ํ๋์จ์ด์ ํ๋ก์ธ์ค ์ด์ฉ์ ์ํ ์ธํฐํ์ด์ค. ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ (Big Endian) OS Code ์คํ ๋ช ๋ น์ ..
-
[MongoDB] MongoDB๋?Computer Science/Database 2024. 1. 3. 01:11
๊ธฐ์กด์ ์ฌ์ฉํ๋ RDB๋ ๋น์ Disk Storage๊ฐ ๋งค์ฐ ๊ณ ๊ฐ์ ์ ํ์ด๋ผ ๋ฐ์ดํฐ ์ค๋ณต์ ์ค์ด๋๋ฐ ์ง์คํ๋ค. ๋ฐฉ๋ํ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์ ์ฑ๋ฅ ํฅ์์ด ํ์ํ์ง๋ง ์์ง์ ํ์ฅ์ ๊ฒฝ์ฐ ๋น์ฉ์ด ๋ง์ด ์๋ชจ๋๊ณ , ์ํ์ ํ์ฅ์ ๊ฒฝ์ฐ ๊ด๊ณ ํ ์ด๋ธ์ ๋ชจ๋ ๋์ผํ ์๋ฒ์ ๋ณด๊ดํด์ผํ๊ธฐ์ ํ์ฅ์ด ์ด๋ ค์ ๋ค. ์ดํ Disk Storage๊ฐ ๋์ด์ ํฐ ์ด์๊ฐ ์๋๊ฒ ๋๋ฉด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ฅ์ฑ๊ณผ ์ฑ๋ฅ์ ์ํด NoSQL์ด ๋ฑ์ฅํ๋ค. NoSQL์ RDB๊ฐ ํ์ง ๋ชปํ๋ ๊ฒ๋ค์ ํด๊ฒฐํ๋ฉฐ ๋ค์ํ ์ฅ์ ์ ์ ๊ณตํ๋ค. ๋ฐ์ดํฐ ๊ฐ์์ฑ์ด ์ข๊ณ Join์์ด ์กฐํํ ์ ์์ด ์ฝ๊ธฐ ์ฑ๋ฅ, ์๋ต ์๋๊ฐ ๋น ๋ฅด๋ค. ์คํค๋ง๊ฐ ์ ์ฐํด์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฅผ ์์ฉํ ์ ์๋ค. Scale-Out์ด ๊ฐํธํ๋ค. ์ญ์ ๊ทํ์ ๋ฐ๋ผ ๋ฐ์ดํฐ ์ค..
-
[IPC] IPC(Inter-Process Communication)๋?Computer Science 2023. 12. 28. 16:31
IPC IPC๋ Inter-Process Communication์ ์ฝ์๋ก ํ๋ก์ธ์ค ๊ฐ ํต์ ์ ๋งํ๋ค. ํ๋ก์ธ์ค๋ ๋ ๋ฆฝ๋ ์คํ ๊ฐ์ฒด๋ก์ ์๋ก ๋ ๋ฆฝ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํฅ์ ๋ฐ์ง ์๋๋ค. ๋์ ์๋ก ๊ฐ ํต์ ์ ์ํด ์ปค๋ ์์ญ์์ IPC๋ผ๋ ๋ด๋ถ ํ๋ก์ธ์ค ๊ฐ ํต์ ์ ์ ๊ณตํ๋ค. ์ปค๋ ์ด์์ฒด์ ์์ฒด๋ ์ํํธ์จ์ด์ด๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ผ ์ฌ์ฉํ ์ ์๋ค. ํ์ง๋ง ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฝ์ผ๋ก ์ด์์ฒด์ ์ค ํ์ํ ๋ถ๋ถ ๋ง์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๊ณ ๊ทธ๋ ์ง ์์ ๋ถ๋ถ์ ํ์ํ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค ์ฌ์ฉํ๊ฒ ๋๋ค. ์ด๋ ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ ์ด์์ฒด์ ์ ๋ถ๋ถ์ ์ปค๋์ด๋ผ๊ณ ํ๋ค. ๋ณดํต์ ์ด์์ฒด์ ๋ผ๊ณ ํ๋ฉด ์ปค๋์ ๋งํ๋ค. ์ปค๋์ ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ ๋ถ๋ถ์ผ๋ก์จ ์ด์์ฒด์ ์ ํต์ฌ์ ์ธ ๋ถ๋ถ์ด๋ค. ํ๋ก์ธ์ค VS ์ค๋ ๋ ํ๋ก์ธ์ค๋ ์ปดํจํฐ์์..