๋น ๋ฅธ ์์ฝ
์ด ํ์์์๋ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์์ฑ, ์ด๋ฒคํธ ์ฒ๋ฆฌ ๊ตฌํ ๋ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์์
๋ฑ JavaFX ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ๋ค์ํ ์ธก๋ฉด์ ๋ค๋ฃจ์์ต๋๋ค. ์ฐธ๊ฐ์๋ค์ ํ ์ผ ๋ชฉ๋ก, ๊ฒ์ํ ๋ฐ ๋ชฉ๋ก ๋ณด๊ธฐ์ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ตฌ์ถํ๋ ๋์ ์ฝ๋ฉ ๋ฌธ์ ์ ๊ณผ ๋๋ฒ๊น
๊ธฐ์ ์ ๋
ผ์ํ์ต๋๋ค. ํ์ ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํตํฉ์ ํด๊ฒฐํ๊ณ ํ๋ก์ ํธ์ ํฅํ ๊ฐ์ ์ ๊ณํํ์ต๋๋ค.
๋ค์ ๋จ๊ณ
โข ๊ฐ๋ฐํ: ๊ฒ์๋ฌผ ๋ชฉ๋ก ๋ฐ์ดํฐ ์ ์ฅ์ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค.
โข ๊ฐ๋ฐํ: ๊ฒ์ํ ํ๋ก๊ทธ๋จ์ ํ
์ด๋ธ ๋ณด๊ธฐ ๊ธฐ๋ฅ์ ๋ง๋ญ๋๋ค.
โข ๊ฐ๋ฐํ: ์ฝ์
๊ธฐ๋ฅ์ด ์๋ ์ฐ๊ธฐ ํ๋ฉด ๊ธฐ๋ฅ์ ๋ง๋ญ๋๋ค.
โข ๊ฐ๋ฐํ: ๊ฒ์ํ ํ๋ก๊ทธ๋จ์ ๊ฒ์๋ฌผ ์ญ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค.
โข ๊ฐ๋ฐํ: ๋ชฉ๋ก ์ ํ ๋ฐ ์ญ์ ์์
์ ๋ํ ์ ์ ํ ์ด์ ๊ด๋ฆฌ๋ฅผ ์ค์ ํฉ๋๋ค.
โข ๊ฐ๋ฐํ: ๊ฒ์๋ฌผ์ ๋ํ ๋ณด๊ธฐ ์นด์ดํฐ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค.
โข ๊ฐ๋ฐํ: SimpleDateFormat๋ฅผ ์ฌ์ฉํ์ฌ ๋ฑ๋ก ๋ ์ง์ ๋ํ ๋ ์ง ์์์ ๊ตฌํํฉ๋๋ค.
โข ๊ฐ๋ฐ ํ: ์ํ ์์ง์ ์ปจํธ๋กค์ ๋ํ ํค๋ณด๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํฉ๋๋ค.
์์ฝ
JavaFX Circle Movement ๋ฐ๋ชจ๋ฅผ ์ฌ์ฉํ์ธ์.
๋ฐํ์๋ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง ๊ฐ๋จํ JavaFX ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ ๋ชจ์๊ณผ 4๊ฐ์ ๋ฐฉํฅ ๋ฒํผ(์, ์๋, ์ผ์ชฝ, ์ค๋ฅธ์ชฝ)์ด ์๋ ๋ฉ์ธ ํ๋ฉด์ ๋ง๋ญ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์คํผ์ปค๋ ๋ฒํผ์ ๋๋ฅด๊ฑฐ๋ ํ์ดํ ํค๋ฅผ ์ฌ์ฉํ ๋ ์์ ์์ง์ด๋ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค. ๊ทธ๋ค์ FXML ํ์ผ์ ์ค์ ํ๊ณ ์ปจํธ๋กค๋ฌ ํด๋์ค๋ฅผ ์์ฑํ๋ฉฐ ์์ ์์ง์ ๋ก์ง์ ๊ตฌํํ๋ ๊ณผ์ ์ ์ค๋ช
ํฉ๋๋ค. ๋ฐ๋ชจ์๋ ์์ ์์น๋ฅผ ์ด๊ธฐํํ๊ณ , ๋ฒํผ ๋๋ฌ ์๋ก์ด ์ขํ๋ฅผ ๊ณ์ฐํ๋ฉฐ, ํ๋ฉด์์ ์์ ์์น๋ฅผ ์
๋ฐ์ดํธํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค.
JavaFX ํค๋ณด๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ ์์ต์
ํ ๋ก ์ JavaFX๋ฅผ ์ฌ์ฉํ์ฌ Java ์ ํ๋ฆฌ์ผ์ด์
์์ ํค๋ณด๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ๋ฐํ์๋ ํ๋ฉด์์ ๊ฐ์ฒด๋ฅผ ์ด๋์ํค๊ธฐ ์ํด ํค๋ณด๋ ์ด๋ฒคํธ๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ๋ฉฐ ์ ์ ํ ์ด๋ฒคํธ ๋ฑ๋ก ํ์ด๋ฐ์ ์ค์์ฑ์ ๊ฐ์กฐํฉ๋๋ค. ์ฃผ์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์ค์ ํ๊ณ , ์ด์ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๋ฉฐ, ์ฝ๋ ๊ตฌ์กฐ๋ฅผ ์์ ํ์ฌ ์ฅ๋ฉด ์์ฑ ํ ์ด๋ฒคํธ๊ฐ ๋ฑ๋ก๋๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๋ฐํ์๋ ๋ํ ์ด๊ธฐ ๊ตฌํ์ ๋ฌธ์ ๋ฅผ ๋ค๋ฃจ๊ณ ์ฝ๋๋ฅผ ๋ฆฌํฉํฐ๋งํ์ฌ ๊ธฐ๋ฅ์ ํฅ์์ํค๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
๋จ์ฑ ์ง์ฌ์์ ํผ๋์ค๋ฌ์ด ๋ํ
ํธ๋์คํฌ๋ฆฝํธ๋ ๋ช
ํํ ์ฃผ์ ๋ ์ผ๊ด๋ ํ ๋ก ์ด ์๋ ํผ๋์ค๋ฌ์ด ๋ํ๋ก ๋ณด์
๋๋ค. ๋จํธ์ ์ธ ๋ฌธ์ฅ, ๊ฒ์ผ๋ก ๋ณด๊ธฐ์๋ ๊ด๋ จ ์๋ ์ง์ , ๊ทธ๋ฆฌ๊ณ "๋จ์ฑ ์ง์์ผ ๊ด๋ฆฌ์ธ"์ ๋ํ ๋ฐ๋ณต์ ์ธ ์ธ๊ธ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๋งฅ๋ฝ๊ณผ ์ผ๊ด๋ ๋ํ๊ฐ ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ์ด ํธ๋์คํฌ๋ฆฝํธ ์ธ๊ทธ๋จผํธ์ ๋ด์ฉ, ๊ฒฐ์ ๋๋ ํ๋ ํญ๋ชฉ์ ๋ํ ์๋ฏธ ์๋ ์์ฝ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
ํ๋ฉด ๋ฐ ์ปจํธ๋กค๋ฌ ๊ฐ๋ฐ ์งํ ์ํฉ
๋ฏธํ
์์ Aloha๋ ํ๋ก์ ํธ์ฉ ํ๋ฉด ๋ฐ ์ปจํธ๋กค๋ฌ ๊ฐ๋ฐ์ ๋ํด ๋
ผ์ํ์ต๋๋ค. ๊ทธ๋ค์ ๋ชฉ๋ก ๋ณด๊ธฐ๋ฅผ ๋ง๋ค๊ณ ํ
์คํธ ํ๋๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ ํญ๋ชฉ์ ์ถ๊ฐํ๊ณ ์ญ์ ํ๋ ๋ฒํผ๋ค์ ๊ตฌํํ์ต๋๋ค. ํ์ ๋ํ ์ปจํธ๋กค๋ฌ๋ฅผ ์์
ํ์ฌ ๋ฉ์ธ ์ปจํธ๋กค๋ฌ๋ฅผ ์ค์ ํ๊ณ ์ฅ๋ฉด์ ๋ง๋ค์์ต๋๋ค. ์ฝ๋์์ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ง ํด๊ฒฐํ ์์์์ต๋๋ค. ๋ํ๋ ํ๋ก์ ํธ ์งํ ์ํฉ๊ณผ ๋ค์ ๋จ๊ณ์ ๋ํ ํ ๋ก ์ผ๋ก ๋๋ฌ์ต๋๋ค.
JavaFX ListView ๊ตฌํ ๋ฐ ๋๋ฒ๊น
ํ ๋ก ์ JavaFX ์ ํ๋ฆฌ์ผ์ด์
์ ์ฝ๋ฉ ๋ฐ ๋๋ฒ๊น
์ ์ค์ ์ ๋ก๋๋ค. ๋ฐํ์๋ ListView์ ๊ด๋ จ๋ ์ด๋ฒคํธ, ์๋ฅผ ๋ค์ด ํญ๋ชฉ ์ ํ๊ณผ ๋ณ๊ฒฝ ๋ฆฌ์์ปค๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช
ํฉ๋๋ค. ๋ฐ์ดํฐ ์ด๊ธฐํ ๋ฐ UI ์
๋ฐ์ดํธ ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์ฝ๋ ๊ตฌ์กฐ์ ๋ณ์ ์ ์ธ์ ์กฐ์ ํ์ฌ ํด๊ฒฐํ๋ ค๊ณ ํฉ๋๋ค. ๋ฐํ์๋ ๋ํ ListView์์ ํญ๋ชฉ์ ์ ํํ๊ณ ํ์ํ๋ ์ด๋ฒคํธ๋ฅผ ์์ฑํ๊ณ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ๋ชฉ๋ก์ ํญ๋ชฉ์ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
ํ ์ผ ๋ชฉ๋ก ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๋ฌธ์
ํ์์์ Aloha๋ ํ ์ผ ๋ชฉ๋ก ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ๋ํด ๋
ผ์ํ์ต๋๋ค. ๋ ๋ฒ ํด๋ฆญํ๊ณ ๋ชฉ๋ก์ ํญ๋ชฉ์ ์ถ๊ฐํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฐ ์
๋ ฅ ๊ฒ์ฆ์ ๋ํ ํ ๋ก ์ด ์ด์ด์ก์ต๋๋ค. Aloha๋ ๋ํ ๋ชฉ๋ก์์ ํญ๋ชฉ์ ์ญ์ ํ๊ณ ์ด์ ๋ชจ๋ธ ์์ฑ์ ๊ตฌํํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ํ์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ํ๋ก๊ทธ๋จ ๊ธฐ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋
ธ๋ ฅํ์ต๋๋ค.
๋ช
ํํ ์ฃผ์ ๊ฐ ์๋ ํผ๋์ค๋ฌ์ด ๋ํ
ํธ๋์คํฌ๋ฆฝํธ๋ ๋ช
ํํ ์ฃผ์ ๋ ์ผ๊ด๋ ํ ๋ก ์ด ์๋ ํผ๋์ค๋ฌ์ด ๋ํ์ฒ๋ผ ๋ณด์
๋๋ค. ๋จํธ์ ์ธ ๋ฌธ์ฅ, ๋ฐ๋ณต๋๋ ๊ตฌ๋ฌธ ๋ฐ ๊ฒ๋ณด๊ธฐ์๋ ๊ด๋ จ์๋ ์ฝ๋ฉํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์๋ฏธ ์๋ ์ฝํ
์ธ ์ ๋งฅ๋ฝ์ด ๋ถ์กฑํ์ฌ ์ฃผ์ด์ง ์ง์นจ์ ์ถฉ์กฑํ๊ฑฐ๋ ์ด ํธ๋์คํฌ๋ฆฝํธ ์ธ๊ทธ๋จผํธ์์ ์ค์ํ ์ ๋ณด๋ฅผ ํฌ์ฐฉํ๋ ์์ฝ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
JavaFX ๊ฒ์ํ ํ๋ก๊ทธ๋จ ์์ฑ
๋ฐํ์๋ JavaFX๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ํ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๊ทธ๋ค์ ๊ฒ์๋ฌผ ๋ชฉ๋ก์๋ณด๊ณ ์ข
๋ฃํ๊ธฐ์ํ ๋ฒํผ์ด์๋ ๋ฉ์ธ ํ๋ฉด์ ์ค๊ณํ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฒ์๋ฌผ ๋ชฉ๋ก์ ๋ํ ๋ณ๋์ ํ๋ฉด์ ๋ง๋ญ๋๋ค. ์ด ํ๋ฉด์๋ ๋ฒํธ, ์ ๋ชฉ, ์ ์, ๋ฑ๋ก ๋ ์ง ๋ฐ ์กฐํ ์๋ฅผ ์ํ ์ด์ด ์๋ ํ
์ด๋ธ ๋ณด๊ธฐ๊ฐ ํฌํจ๋ฉ๋๋ค. ์คํผ์ปค๋ ๋ ์ด์์์ ์ค์ ํ๊ณ ์ด ๋๋น๋ฅผ ์กฐ์ ํ๋ฉฐ ์ฐ๊ธฐ ๋ฒํผ์ ์ถ๊ฐํฉ๋๋ค. ๋ํ ๋ค์ํ ์์์ ID๋ฅผ ํ ๋นํ๊ณ ํด๋น ์ปจํธ๋กค๋ฌ๋ฅผ ๋ง๋ญ๋๋ค. ๋ฐํ์๋ ๊ฒ์๋ฌผ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ค์ ํ๊ณ , ์ ์ ํ ์์ฑ์ ๊ฐ์ง Board ํด๋์ค๋ฅผ ๋ง๋ค๊ณ Lombok์ ์ฌ์ฉํ์ฌ ์์ฑ์๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ชฉ๋ก ์ปจํธ๋กค๋ฌ์์ ์์
์ ์์ํ์ฌ ํ
์ด๋ธ ๋ณด๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
JavaFX ํ
์ด๋ธ ๋ทฐ ๊ตฌํ
์ด ํ์๋ ์ฝ๋ฉ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์์
์ ์ค์ ์ ๋ก๋๋ค. ์ฐธ๊ฐ์๋ค์ JavaFX๋ฅผ ์ฌ์ฉํ์ฌ ํ
์ด๋ธ ๋ณด๊ธฐ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋
ผ์ํ๋ฉฐ, ๊ทธ ์์ ์์ฑ ๊ฐ ๊ณต์ฅ๊ณผ ์
๊ฐ ๊ณต์ฅ ์ค์ ๋ ํฌํจ๋ฉ๋๋ค. ๊ทธ๋ค์ ๋ํ ๊ฒ์ํ ์๋น์ค๋ฅผ ๋ง๋ค๊ณ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํฉ๋๋ค. ์ด ๊ทธ๋ฃน์ ์ต๋ 100๊ฐ์ ํญ๋ชฉ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ๊ฒ์๋ฌผ ์์ฑ ๋ฐ ํ์ ๊ธฐ๋ฅ์ ํ์ฅํ ๊ณํ์
๋๋ค. ํ ๋ก ์ ๋ค๊ฐ์ค๋ ์์
์ ๋ํ ๊ฐ๋ตํ ์ธ๊ธ๊ณผ ์ง๊ธ๊น์ง ์ด๋ฃจ์ด์ง ์ง์ ๊ฒํ ๋ก ๋ง๋ฌด๋ฆฌ๋ฉ๋๋ค.