์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

[Java ์‹ค๋ฌด ํ”„๋กœ์ ํŠธ UIํŽธ] Spring Core + JavaFX ๊ธฐ๋ฐ˜ ์˜ํ™” ์ •๋ณด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ์ž‘

[Java ์‹ค๋ฌด ํ”„๋กœ์ ํŠธ UIํŽธ]์—์„œ๋Š” JavaFX๋ฅผ ํ™œ์šฉํ•ด ์ˆœ์ˆ˜ Java ๊ธฐ์ˆ ๋งŒ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์˜ํ™” ์ •๋ณด ์ œ๊ณต ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด๋ด…๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋Š” ์›น๊ณผ ์Šค๋งˆํŠธ ํฐ ์•ฑ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „, UI ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌยท๋น„๋™๊ธฐ ๋กœ์งยท์‚ฌ์šฉ์ž ์ธํ„ฐ๋ž™์…˜ ํ๋ฆ„์„ Java๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋ฉฐ โ€˜ํ™”๋ฉด๊ณผ ๋กœ์ง์ด ์—ฐ๊ฒฐ๋˜๋Š” ๊ตฌ์กฐโ€™๋ฅผ ๊นŠ์ด ์ดํ•ดํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Spring Core์™€ ์—ฐ๋™ํ•ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ UI๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ์  ์‚ฌ๊ณ ๋ฅผ ํ›ˆ๋ จํ•˜๊ณ , ์™ธ๋ถ€ API๋กœ ์˜ํ™” ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” UI ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฌธ์ œ๋ฅผ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ํ๋ฆ„, ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ, ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์˜ ์›๋ฆฌ๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ , Java ์–ธ์–ด ์ž์ฒด์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ํ•œ ๋‹จ๊ณ„ ๋Œ์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ด ๊ฐ•์˜๋Š” โ€œ์›น์œผ๋กœ ๊ฐ€๊ธฐ ์ „, Java๋กœ UI์˜ ๋ณธ์งˆ๊ณผ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์˜ ํ•ต์‹ฌ์„ ๊ฒฝํ—˜ํ•˜๋Š” ์‹ค์ „ ๋‹จ๊ณ„โ€์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋”ฐ๋ผ์น˜๋Š” ์ˆ˜์—…์ด ์•„๋‹Œ, UI์™€ ๋กœ์ง์˜ ์—ฐ๊ฒฐ ์›๋ฆฌ๋ฅผ ์Šค์Šค๋กœ ์ฒด๋“ํ•  ์ˆ˜ ์žˆ๋Š” ํ•™์Šต ๊ฒฝํ—˜์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์žŠ์ง€๋งˆ์„ธ์š”.

5๋ช… ์ด ์ˆ˜๊ฐ•ํ•˜๊ณ  ์žˆ์–ด์š”.

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

ํ”„๋กœ์ ํŠธ
ํ”„๋กœ์ ํŠธ
์‹ค์ „
์‹ค์ „
์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
๋ฌธ์ œํ•ด๊ฒฐ
๋ฌธ์ œํ•ด๊ฒฐ
ํ”„๋กœ์ ํŠธ
ํ”„๋กœ์ ํŠธ
์‹ค์ „
์‹ค์ „
์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
๋ฌธ์ œํ•ด๊ฒฐ
๋ฌธ์ œํ•ด๊ฒฐ

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • Java์˜ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ๋ณตํ•ฉ์ ์œผ๋กœ ์ด์šฉํ•ด ์ค‘๋ณต๋œ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•

  • HTTP ํ†ต์‹  ํด๋ผ์ด์–ธํŠธ์™€ Adapter ๊ทธ๋ฆฌ๊ณ  Factory๋ฅผ ์กฐํ•ฉํ•œ HTTP ์„œ๋น„์Šค๋ฅผ ์ถ”์ƒํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์™ธ๋ถ€ ์˜ํ™” ์ •๋ณด API๋ฅผ ํ™œ์šฉํ•ด JavaFX UI์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•

  • UI ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ํ™”๋ฉด ๊ฐฑ์‹ , ์‚ฌ์šฉ์ž ์ž…๋ ฅ ํ๋ฆ„์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ๋Šฅ๋ ฅ

  • ๋น„๋™๊ธฐ ํ˜ธ์ถœ(Thread, CompletableFuture, Task, Platform.runLater ๋“ฑ)์„ ์ด์šฉํ•ด UI ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

  • Spring Core ํ™˜๊ฒฝ์—์„œ JavaFX UI ๊ณ„์ธต์„ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • MVC(Model-View-Controller) ํŒจํ„ด์„ JavaFX ํ™˜๊ฒฝ์—์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

  • FXML ๊ธฐ๋ฐ˜ UI ์„ค๊ณ„์™€ Controller ์ฝ”๋“œ์˜ ์—ญํ•  ๋ถ„๋ฆฌ

  • JavaFX ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•ด ์›น UI ๊ฐœ๋ฐœ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์‚ฌ๊ณ  ํ›ˆ๋ จ

  • ์›น์œผ๋กœ ์ด์–ด์ง€๋Š” ํ•ต์‹ฌ ๊ฐœ๋…(์ด๋ฒคํŠธ ๋ฃจํ”„, ๋น„๋™๊ธฐ ํ๋ฆ„, ์ƒํƒœ ๊ด€๋ฆฌ)์„ Java UI๋กœ ์ตํžˆ๊ธฐ

โญ [Java ์‹ค๋ฌด ํ”„๋กœ์ ํŠธ UIํŽธ] Spring Core + JavaFX ๊ธฐ๋ฐ˜ ์˜ํ™” ์ •๋ณด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ์ž‘

โ€œJava๋กœ ์ง์ ‘ UI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•ด ๋ณด๋ฉฐ, ์™ธ๋ถ€ API ์—ฐ๋™๊ณผ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ด์šฉํ•œ UI ์ตœ์ ํ™”๊นŒ์ง€ ํ•œ ๋ฒˆ์— ์ตํžˆ๋Š” ์‹ค์ „ ํ”„๋กœ์ ํŠธ!โ€


์ด๋ฒˆ ๊ฐ•์˜๋Š” Java์™€ Spring Core, ๊ทธ๋ฆฌ๊ณ  JavaFX๋ฅผ ํ™œ์šฉํ•ด ์˜ํ™” ์ •๋ณด ์ œ๊ณต์„ ์œ„ํ•œ ๋ฐ์Šคํฌํƒ‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง์ ‘ ๊ตฌํ˜„ํ•ด ๋ณด๋Š” ์‹ค์ „ํ˜• ํ”„๋กœ์ ํŠธ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.


์›น์ด๋‚˜ ๋ชจ๋ฐ”์ผ UI๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์—, Java๋งŒ์œผ๋กœ UI ํ๋ฆ„๊ณผ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ๋น„๋™๊ธฐ ๊ตฌ์กฐ, API ๊ธฐ๋ฐ˜ ํ™”๋ฉด ๋ Œ๋”๋ง์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

JavaFX ์Šคํ‚ฌ์„ ๊นŠ๊ฒŒ ์ตํžˆ๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด ์•„๋‹ˆ๋ผ, Java ๊ฐœ๋ฐœ์ž๋กœ์„œ UI ๊ธฐ์ˆ ๋กœ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๊ฐœ๋…๊ณผ ์‹ค์ „ ๊ตฌํ˜„ ๋Šฅ๋ ฅ์„ ๋น ๋ฅด๊ฒŒ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด ์ด ๊ฐ•์˜์˜ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.


2๋ถ€์—์„œ ๋„๋ฉ”์ธ ์ค‘์‹ฌ์˜ ์ฝ˜์†”์šฉ ์ฃผ๋ฌธ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•ด ๋ณด์•˜๋‹ค๋ฉด, ์ด๋ฒˆ 3๋ถ€์—์„œ๋Š” ์™ธ๋ถ€ API ์—ฐ๋™, ํ™”๋ฉด ์ „ํ™˜, ์ด๋ฏธ์ง€ ๋กœ๋”ฉ ์ตœ์ ํ™”, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๊ฐ™์€ UI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณธ์งˆ์„ ์ง์ ‘ ์ฒด๋“ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜์—์„œ๋Š” Spring Core์™€ JavaFX๋ฅผ ์ด์šฉํ•ด ๋‚˜๋งŒ์˜ ์˜ํ™” ์ •๋ณด ์ œ๊ณต์„ ์œ„ํ•œ ๋ฐ์Šคํฌํƒ‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

โญ Java ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ 3๋ถ€๋Š” ์™œ JavaFX๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?

JavaFX๋Š” ์‹ค๋ฌด์—์„œ ๋„๋ฆฌ ์“ฐ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ด๋ฒˆ ๊ฐ•์˜์—์„œ JavaFX๋ฅผ ์„ ํƒํ•œ ์ด์œ ๋Š” ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ‘‰ โ€œJava ๊ฐœ๋ฐœ์ž๋กœ ์ž…๋ฌธํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์›น ๋ฐ ๋ชจ๋ฐ”์ผ UI ๊ธฐ์ˆ ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๋ฐฐ์šฐ๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ด๋‹ค.โ€


React, Vue.js, Next.js ๊ฐ™์€ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๋Š”
๋Ÿฌ๋‹ ์ปค๋ธŒ๊ฐ€ ๋†’๊ณ , Java ๊ฐœ๋ฐœ์ž๊ฐ€ Java๋ฅผ ํ•™์Šตํ•˜๋ฉด์„œ ๋™์‹œ์— ๋ฐฐ์šฐ๊ธฐ์—๋Š” ๋ถ€๋‹ด์ด ํฝ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๊ณ  ์›น UI ์ชฝ์˜ ํ๋ฆ„์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ์—†๋‹ค๋ฉด ๋ฐ˜์ชฝ์งœ๋ฆฌ Java ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

JavaFX๋Š” Java ๊ฐœ๋ฐœ์ž๋กœ ์ž…๋ฌธํ•˜๋Š” ๋‹จ๊ณ„์—์„œ ์ด๋Ÿฌํ•œ UI์ชฝ ํ๋ฆ„์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๊ณ ์˜ ๊ธฐ์ˆ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.


โœ” UI ๊ตฌ์กฐ ์„ค๊ณ„์˜ ํ•ต์‹ฌ์„ Java๋กœ ์ตํžŒ๋‹ค

  • ํ™”๋ฉด ์ „ํ™˜ ๊ตฌ์กฐ

  • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง

  • ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ

  • ์ƒํƒœ ๊ด€๋ฆฌ

  • ํ™”๋ฉด ๊ทธ๋ฆฌ๊ธฐ(Rendering) ํ๋ฆ„

์ด ๋ชจ๋“  ๊ฒƒ์€ ์›น UI์—์„œ๋„ ๋˜‘๊ฐ™์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ์ˆ ๋งŒ ๋‹ค๋ฅผ ๋ฟ, โ€œ๊ฐœ๋…โ€์€ ๊ทธ๋Œ€๋กœ์ž…๋‹ˆ๋‹ค.


โœ” ์™ธ๋ถ€ API ๊ธฐ๋ฐ˜ UI ๊ฐœ๋ฐœ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ํ•ด๊ฒฐํ•ด ๋ณธ๋‹ค

์™ธ๋ถ€ API ํ†ต์‹ ์„ ํ†ตํ•ด ์ „๋‹ฌ๋ฐ›์€ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ UI์— ๋ฐ˜์˜ํ•˜๋Š” ์‹ค ์„œ๋น„์Šค ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ฒฝํ—˜ํ•ฉ๋‹ˆ๋‹ค.


โœ” ๋ถˆํŽธํ•œ ๊ธฐ์ˆ ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๊ณผ์ •์—์„œ ์„ฑ์žฅํ•œ๋‹ค

JavaFX๋Š” ์›น์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ตœ์‹  UI ํ”„๋ ˆ์ž„์›Œํฌ ๋งŒํผ ํŽธํ•˜์ง€๋„ ์•Š๊ณ , ์„ฑ๋Šฅ ๋˜ํ•œ ๋›ฐ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค
โ€œ์™œ UI๋Š” ๋น„๋™๊ธฐ๊ฐ€ ์ค‘์š”ํ• ๊นŒ?โ€
โ€œ์™œ ์ด๋ฏธ์ง€ ๋กœ๋”ฉ์„ ์Šค๋ ˆ๋“œ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ• ๊นŒ?โ€


๋“ฑ์˜ ์ด๋Ÿฐ ๋ณธ์งˆ์ ์ธ ๋ถ€๋ถ„์„ ๊นŠ๊ฒŒ ์ดํ•ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ฐ”๋กœ Java ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ 3๋ถ€๋ฅผ ์ œ์ž‘ํ•˜๊ฒŒ ๋œ ํ•ต์‹ฌ ์ด์œ ์ž…๋‹ˆ๋‹ค.

๐ŸŽ ์ตœ์ข…์ ์œผ๋กœ ์–ด๋–ค ์—ญ๋Ÿ‰์„ ๊ฐ€์ง€๊ฒŒ ๋ ๊นŒ?

  • โญ Java์˜ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ๋ณตํ•ฉ์ ์œผ๋กœ ์ด์šฉํ•ด ์ค‘๋ณต๋œ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ณตํ†ตํ™” ๊ธฐ๋ฒ•์„ ์ตํžˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • โญ CompletableFuture ๋“ฑ์„ ์ด์šฉํ•ด UI์—์„œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ์™€ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ์›น UI ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ๊ธฐ ์ „์— โ€œUI๋ž€ ๋ฌด์—‡์ธ๊ฐ€?โ€๋ฅผ Java๋กœ ๋จผ์ € ์ดํ•ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • JavaFX๋กœ UI๋ฅผ ์™„์„ฑํ•˜๋ฉด React, Android UI, HTML/CSS/JS ๋“ฑ ๋‹ค๋ฅธ UI ๊ธฐ์ˆ ๋กœ ํ™•์žฅํ•˜๊ธฐ ํ›จ์”ฌ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

  • โญ Spring Core + UI ์กฐํ•ฉ์˜ ์ „์ฒด์ ์ธ ์‘์šฉ ํ๋ฆ„์„ ๊ฒฝํ—˜ํ•˜๋ฉฐ ์‹ค์ „ ๊ฐœ๋ฐœ์ž๋กœ์˜ ๋‹ค์Œ ๋ ˆ๋ฒจ๋กœ ์˜ฌ๋ผ์„ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿงฑ ๊ฐ•์˜ ํŠน์ง•

  • ํ”„๋กœ์ ํŠธ ๊ธฐ๋ฐ˜ ์‹ค์Šต ์ค‘์‹ฌ:
    ๋‹จ์ˆœ ๋”ฐ๋ผํ•˜๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ, ์ฃผ์–ด์ง„ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์ˆ˜๊ฐ•์ƒ์ด ๋จผ์ € ๊ณ ๋ฏผํ•˜๊ณ  ๊ตฌํ˜„ํ•ด ๋ณด๋Š” ์‹ค์Šต ์ค‘์‹ฌ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค.

  • ์‚ฌ์ „ ํ•™์Šต โ†’ ์ง์ ‘ ๊ตฌํ˜„ โ†’ ๊ตฌํ˜„ ์„ค๋ช… ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰:
    ๊ฐ•์˜์—์„œ ํ•„์š”ํ•œ ๊ธฐ์ˆ ์ด ์žˆ์œผ๋ฉด ๋ณ„๋„ ์ˆ˜์—…์œผ๋กœ ๊ฐœ๋…์„ ๋จผ์ € ์งš๊ณ ,
    ์ˆ˜๊ฐ•์ƒ์ด ๋จผ์ € ๊ตฌํ˜„ํ•œ ๋’ค, ๊ฐ•์‚ฌ ๋ฒ„์ „์˜ ์ฝ”๋“œ์™€ ์„ค๋ช…์œผ๋กœ ๋น„๊ต ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

  • ์‹ค๋ฌด ์ง€ํ–ฅ ์„ค๊ณ„:
    ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„๋ถ€ํ„ฐ ๊ตฌ์กฐํ™”, ๊ตฌํ˜„, ํ…Œ์ŠคํŠธ๊นŒ์ง€์˜ ์ „ ๊ณผ์ •์„ ์‹ค๋ฌด ํ๋ฆ„์— ๋งž๊ฒŒ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿงฐ ์‚ฌ์šฉ ๊ธฐ์ˆ  ์Šคํƒ

  • Java 17+

  • Spring Framework Core

  • JavaFX 21


  • JUnit ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ


  • ๋ ˆ์ด์–ด๋“œ ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ

๐Ÿ‘จโ€๐Ÿซ ์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœ๋“œ๋ ค์š”

โœ” Java ๋ฌธ๋ฒ•๊ณผ Spring Core๋ฅผ ํ•™์Šตํ–ˆ์ง€๋งŒ

UI๊ฐ€ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณธ ๊ฒฝํ—˜์ด ์—†๋Š” ๋ถ„


โœ” ํ”„๋ŸฐํŠธ์—”๋“œ ๊ธฐ์ˆ ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์—

UI ๊ตฌ์กฐ์™€ ์ด๋ฒคํŠธ ํ๋ฆ„์„ Java๋กœ ๋จผ์ € ์ฒด๋“ํ•˜๊ณ  ์‹ถ์€ ๋ถ„


โœ” UI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ์™œ ์ค‘์š”ํ•œ์ง€ ์•Œ๊ณ  ์‹ถ์€ ๋ถ„


โœ” API ๊ธฐ๋ฐ˜์˜ ์‹ค์ œ UI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๋ฉฐ

ํ”„๋กœ์ ํŠธ ๊ตฌํ˜„ ์—ญ๋Ÿ‰์„ ๋Œ์–ด์˜ฌ๋ฆฌ๊ณ  ์‹ถ์€ Java ๊ฐœ๋ฐœ์ž


โœ” Java ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ 2๊นŒ์ง€ ํ•™์Šตํ•˜๊ณ 

๋” โ€œ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธโ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„

โค๏ธ ๊ฐ•์‚ฌ์˜ ์ง„์‹ฌ

์ด ๊ฐ•์˜๋Š” ๋‹จ์ˆœํžˆ โ€˜์ฝ”๋“œ ๋”ฐ๋ผ์น˜๊ธฐโ€™์—์„œ ๋ฒ—์–ด๋‚˜, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๋‚˜๋งŒ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์™„์„ฑํ•˜๋Š” ๊ฒฝํ—˜์„ ๋“œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ฌด๋ฆฌ ์ข‹์€ ๊ธฐ์ˆ ์ด๋ผ๋„ ๋‚˜ ์Šค์Šค๋กœ ๊ณ ๋ฏผํ•˜๋ฉฐ ํ™œ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋ฉด 'ํ™”๋ คํ•œ ๋ถˆ๊ฝƒ ์ถ•์ œ๋ฅผ ๋„‹์„ ์žƒ๊ณ  ๋ฐ”๋ผ๋งŒ ๋ณผ๋ฟ ๊ฐ๋™์ ์ธ ๊ทธ ๋А๋‚Œ์„ ๋ฐ–์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋Š”๊ฒƒ'๊ณผ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”.


์ฝ”๋“œ๋ฅผ ์ณ๋‹ค๋งŒ ๋ณด๊ณ  ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์‹ค๋ฌด์—์„œ ์—ฌ๋Ÿฌ๋ถ„๋“ค ์Šค์Šค๋กœ โ€˜์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒโ€™์ด ๋˜๊ธฐ ์œ„ํ•œ ์ฒซ๊ฑธ์Œ์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ๋๊นŒ์ง€ ๋„์™€๋“œ๋ฆด๊ฒŒ์š”.

Java ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๊ฟˆ์„ ํฌ๊ธฐํ•˜์ง€ ๋งˆ์‹œ๊ณ , ๋งˆ์ง€๋ง‰๊นŒ์ง€ ์ตœ์„ ์„ ๋‹คํ•ด ๊ผญ ๊ฐœ๋ฐœ์ž๋กœ ์ž…๋ฌธํ•  ์ˆ˜ ์žˆ๊ธธ ๊ธฐ์›ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

โœ… ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‚˜์š”?

Q. 1๋ถ€, 2๋ถ€ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ ์ด ๊ฐ•์˜๋งŒ ๋“ค์–ด๋„ ๊ดœ์ฐฎ์„๊นŒ์š”?

๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋งŒ 1๋ถ€, 2๋ถ€์˜ ์ฝ˜์†” ํ™˜๊ฒฝ๊ณผ ๋‹ค๋ฅด๊ฒŒ UI/UX ๊ธฐ์ˆ ์ด ํฌํ•จ๋˜์–ด ์žˆ๊ณ , Java์˜ ๋™์‹œ์„ฑ๊ณผ ๊ด€๋ จ๋œ ๋‚ด์šฉ๋“ค์ด ๋‹ค์ˆ˜ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Java์˜ Thread๋ฅผ ๋ฏธ๋ฆฌ ํ•™์Šตํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Q. JavaFx๋ฅผ ์–ผ๋งˆ๋‚˜ ์•Œ์•„์•ผ ์ด๋ฒˆ ๊ฐ•์˜์˜ ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ• ๊นŒ์š”?

์ด๋ฒˆ ๊ฐ•์˜์—์„œ๋Š” JavaFX๋ฅผ ์ด์šฉํ•ด์„œ ์•„์ฃผ ๋ณต์žกํ•œ UI๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๊ฑด ์•„๋‹™๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ JavaFX์˜ ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๋งŒ ํ•™์Šตํ•œ๋‹ค๋ฉด UI ๋ถ€๋ถ„์€ ์ถฉ๋ถ„ํžˆ ๋”ฐ๋ผ์˜ฌ ์ˆ˜ ์žˆ์„๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•ด์š”.

Q. JavaFX๋Š” ์‹ค์ œ ๊ฐœ๋ฐœ ํ˜„์žฅ์—์„œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•˜์…จ๋Š”๋ฐ ์™œ UI ๊ธฐ์ˆ ๋กœ JavaFX๋ฅผ ์‚ฌ์šฉํ•˜๋‚˜์š”?
์˜ค๋กœ์ง€ Java๋ผ๋Š” ์–ธ์–ด์˜ ๊ธฐ๋ณธ๊ธฐ์— ์ง‘์ค‘ํ•ด์„œ Java์˜ ์—ญ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š”๋ฐ ํฌ์ปค์Šค๋ฅผ ๋งž์ถ”์—ˆ๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ์š”.

์ด ๊ฐ•์˜๋ฅผ ์ฒ˜์Œ ์ œ์ž‘ํ•  ๋•Œ์˜ ๋ชฉํ‘œ๋„ 'Java๋ผ๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์–ธ์–ด์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์—ญ๋Ÿ‰์„ ํƒ„ํƒ„ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๊ธฐ' ์˜€๋Š”๋ฐ ๊ฐœ๋ฐœ ํŒจ๋Ÿฌ๋‹ค์ž„์ด ๊ธ‰๊ฒฉํ•˜๊ฒŒ ๋ณ€ํ•˜๊ณ  ์žˆ๋Š” ํ˜„์žฌ์—๋„(AI ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ..) ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์›์กฐ ์–ธ์–ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” Java์˜ ๊ธฐ๋ณธ๊ธฐ๊ฐ€ ๋” ํƒ„ํƒ„ํ•ด์•ผ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ UI ์ชฝ์˜ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์ด๋‚˜ ์–ธ์–ด๋Š” ๋ฐฐ์ œ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

JavaFX๋ฅผ ์‚ฌ์šฉํ•ด ๋ด„์œผ๋กœ์จ UI์˜ ๊ฐœ๋ฐœ ํŒจํ„ด์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๊ณ , ๋™์‹œ์— Java๋งŒ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— Java ๊ธฐ๋ณธ ์—ญ๋Ÿ‰์„ ๋” ํƒ„ํƒ„ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ^^

Q. ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ AI๋ฅผ ์ด์šฉํ•ด์„œ ์ˆ˜ํ–‰ํ•ด๋„ ๋ ๊นŒ์š”?
AI๋ฅผ ํ™œ์šฉํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ž‘ํ•˜๋Š” ๋ฐฉ์‹์€ ๊ธฐ์—…์—์„œ๋„ ์ด์ œ๋Š” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐ›์•„๋“ค์ด๊ณ  ์žˆ๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ChatGPT๋‚˜ ์ œ๋ฏธ๋‚˜์ด ๊ฐ™์€ AI๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒŒ ์˜คํžˆ๋ ค ์ด์ƒํ•˜์ง€ ์•Š์„๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ, ๊ฐ•์˜์— ๋‚˜์™€์žˆ๋Š” ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ AI์—๊ฒŒ "์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ค˜"๋ผ๊ณ  ์š”๊ตฌํ•˜๋Š” ๊ฑด ์—ฌ์ „ํžˆ ๋ฐ”๋žŒ์งํ•œ ๋ฐฉํ–ฅ์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜์‹œ๋ ค๋Š” ๋ถ„๋“ค์€ ์ž…๋ฌธ ๋˜๋Š” ์ดˆ๊ธ‰์— ๊ฐ€๊นŒ์šด ๋ถ„๋“ค์ด ๋Œ€๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐ๋˜๋Š”๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด ๋‚ด ์‚ฌ๊ณ ์™€ ๊ตฌํ˜„ ์—ญ๋Ÿ‰์— ์•„์ง ์ž์‹ ์ด ์—†๋Š” ์ƒํƒœ์—์„œ AI์—๊ฒŒ ๋„ˆ๋ฌด ๋งŽ์ด ์˜์กดํ•œ๋‹ค๋ฉด ์˜คํžˆ๋ ค ๋‚ด ์—ญ๋Ÿ‰์„ ๊ฐ‰์•„๋จน๋Š” ์ƒํ™ฉ์— ๋งž๋‹ฅ๋œจ๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”.

๐Ÿ’ก์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS)

    • PC ํ™˜๊ฒฝ์˜ OS๋ผ๋ฉด ์–ด๋–ค OS๋“  ์ƒ๊ด€ ์—†์Šต๋‹ˆ๋‹ค.

    • ๋‹ค๋งŒ JDK 17 ์ด์ƒ์ด ์„ค์น˜ ๊ฐ€๋Šฅํ•ด์•ผํ•˜๋ฉฐ, IntelliJ IDE๊ฐ€ ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ๋ฌด๋ฆฌ ์—†์„ ์ •๋„์˜ ์ปดํ“จํŒ… ํŒŒ์›Œ(CPU, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ)๋ฅผ ๊ฐ–์ถ”๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ ๋„๊ตฌ

    • JDK 17(์ตœ์†Œ ์‚ฌ์–‘)

    • JavaFx 2.1 ์ด์ƒ

    • IntelliJ IDE

      • ๊ฐ•์˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” IntelliJ IDE๋Š” Ultimate ๋ฒ„์ „์ด์ง€๋งŒ ๋ฌด๋ฃŒ ๋ฒ„์ „์ธ Community ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์…”๋„ ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

      • IntelliJ IDE๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ์ž˜ ๋‹ค๋ฃจ๋Š” ์ฝ”๋“œ ํŽธ์ง‘ ํˆด(Visual Studio Code ๋“ฑ)์ด ์žˆ๋‹ค๋ฉด ์‚ฌ์šฉํ•˜์…”๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.

    • Spring Boot 3.x ์ด์ƒ

      • ๊ฐ•์˜์—์„œ๋Š” Spring Boot 3.5.7 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Spring 3.x ๋ฒ„์ „์ด๋ฉด ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋Š”๋ฐ ๋ฌธ์ œ์—†์Šต๋‹ˆ๋‹ค.


    • Gradle 7.3(์ตœ์†Œ ์‚ฌ์–‘) ์ด์ƒ

      • JDK 17์— ํ˜ธํ™˜๋˜๋Š” Gralde ๋ฒ„์ „์ด 7.3์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‘˜ ์‚ฌ์ด์˜ ๋ฒ„์ „์„ ๋งž์ถ”์–ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

      • ๋ฒ„์ „ ํ˜ธํ™˜์„ฑ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด Java Compatibility๋ฅผ ์ฐธ๊ณ ํ•˜์…”์„œ ๊ฐ€๊ธ‰์  ๋ฒ„์ „์„ ๋งž์ถฐ์ฃผ์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    • JUnit 5(์ตœ์†Œ ์‚ฌ์–‘) ์ด์ƒ

๐ŸŽ“ ํ•™์Šต ์ž๋ฃŒ

์œ ์˜์‚ฌํ•ญ

  • ๊ฐ•์˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ•™์Šต ์ž๋ฃŒ ๋ฐ ์ฝ”๋“œ๋ฅผ ๋ธ”๋กœ๊ทธ ๋“ฑ ๊ฐœ์ธ ๊ณต๊ฐ„์—์„œ ์‚ฌ์šฉํ•˜์‹œ๋ ค๋ฉด ๊ฐ•์˜ ์ œ๋ชฉ ๋ฐ ๊ฐ•์‚ฌ ์ด๋ฆ„์„ ๊ธฐ์žฌํ•˜์‹œ๊ณ  ๊ฐ•์˜ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์™ธ์— ๋ฌด๋‹จ ๋ฐฐํฌ๋Š” ํ—ˆ์šฉ๋˜์ง€ ์•Š์œผ๋‹ˆ ์–‘ํ•ด ๋ถ€ํƒ๋“œ๋ฆด๊ฒŒ์š”.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • Java ๋ฌธ๋ฒ•๊ณผ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์„ ์ตํ˜”์ง€๋งŒ, UI ์ด๋ฒคํŠธ ํ๋ฆ„๊ณผ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•œ ๋ถ„

  • Java ๋ฌธ๋ฒ•๊ณผ Spring Core๋ฅผ ํ•™์Šตํ–ˆ์ง€๋งŒ UI๊ฐ€ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณธ ๊ฒฝํ—˜์ด ์—†๋Š” ๋ถ„

  • ์›น ๊ฐœ๋ฐœ์— ์•ž์„œ UI ๋™์ž‘ ์›๋ฆฌ์™€ ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ž™์…˜ ๊ตฌ์กฐ๋ฅผ Java๋กœ ์ดํ•ดํ•ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„

  • JavaFX๋ฅผ ํ†ตํ•ด ๋ฐ์Šคํฌํ†ฑ UI ๊ฐœ๋ฐœ์„ ๊ฒฝํ—˜ํ•˜๋ฉฐ, ํ”„๋ก ํŠธ์—”๋“œ ๊ฐ๊ฐ์„ ์ตํžˆ๊ณ  ์‹ถ์€ ๋ถ„

  • Spring Core๋ฅผ ํ•™์Šตํ–ˆ์ง€๋งŒ UI ๊ณ„์ธต๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ์—ฐ๊ฒฐ ๊ตฌ์กฐ๋ฅผ ์—ฐ์Šตํ•ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„

  • 2๋ถ€(ํ‘ธ๋“œํŠธ๋Ÿญ ํ‚ค์˜ค์Šคํฌ) ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๊ณ  UI ํ™˜๊ฒฝ์œผ๋กœ ํ™•์žฅ๋œ ์‹ค์ „ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„

  • ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ Java ์ฝ”๋“œ๋กœ ์ง์ ‘ ์ฒดํ—˜ํ•ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„

  • ํ–ฅํ›„ ์›น ํ”„๋ก ํŠธ์—”๋“œ๋‚˜ Java ๊ฐœ๋ฐœ์ž๋กœ ์ง„์ž…ํ•˜๊ธฐ ์ „, UIยทUX ํ๋ฆ„์˜ ๋ณธ์งˆ์„ ์ดํ•ดํ•˜๊ณ  ์‹ถ์€ ๋ถ„

  • API ๊ธฐ๋ฐ˜์˜ ์‹ค์ œ UI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๋ฉฐ ํ”„๋กœ์ ํŠธ ๊ตฌํ˜„ ์—ญ๋Ÿ‰์„ ๋Œ์–ด์˜ฌ๋ฆฌ๊ณ  ์‹ถ์€ Java ๊ฐœ๋ฐœ์ž

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Java ๋ฌธ๋ฒ•๊ณผ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP) ๊ธฐ๋ณธ ๊ฐœ๋…

  • Spring Core ๊ธฐ๋ณธ ์‚ฌ์šฉ ๊ฒฝํ—˜ (Bean ๋“ฑ๋ก, DI, ์„ค์ • ํด๋ž˜์Šค ๋“ฑ)

  • REST API ํ˜ธ์ถœ ๋ฐ JSON ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ดํ•ด

  • ์Šค๋ ˆ๋“œ(Thread) ๋˜๋Š” ๋น„๋™๊ธฐ(Async) ์ฒ˜๋ฆฌ ํ๋ฆ„์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ๊ฐœ๋…

  • GUI ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ๊ด€์‹ฌ

  • 2๋ถ€(ํ‘ธ๋“œ ํŠธ๋Ÿญ ํ‚ค์˜ค์Šคํฌ) ๊ฐ•์˜ ์ˆ˜๊ฐ• ๋˜๋Š” ์œ ์‚ฌํ•œ ์ฝ˜์†” ํ”„๋กœ์ ํŠธ ๊ตฌํ˜„ ๊ฒฝํ—˜

์•ˆ๋…•ํ•˜์„ธ์š”
Kevin์ž…๋‹ˆ๋‹ค.

6,481

๋ช…

์ˆ˜๊ฐ•์ƒ

256

๊ฐœ

์ˆ˜๊ฐ•ํ‰

109

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

8

๊ฐœ

๊ฐ•์˜

- ์ฃผ๋ ฅ ์–ธ์–ด ๋˜๋Š” ๊ธฐ์ˆ  : Java, Spring Framework, RxJava, Reactor, Spring WebFlux

- (์ฃผ)์ฝ”๋“œ์Šคํ…Œ์ด์ธ (https://www.codestates.com)์—์„œ Senior Educational Software Engineer(Backend)๋กœ ํ™œ๋™
(From 2022.03 To 2024.01.31)

- ํ”„๋ฆฌ๋žœ์„œ ๊ฐœ๋ฐœ์ž ๋ฐ ๊ฐ•์‚ฌ๋กœ ํ™œ๋™(From 2024.02)

- ์ €์„œ

์•ˆ๋…•ํ•˜์„ธ์š”? Kevin์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ^^

์ธํ”„๋Ÿฐ์—์„œ ์ด๋ ‡๊ฒŒ ๊ฐ•์‚ฌ๋กœ์„œ ์—ฌ๋Ÿฌ๋ถ„๋“ค์„ ๋งŒ๋‚˜๊ฒŒ ๋˜์–ด์„œ ๋„ˆ๋ฌด ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ๋ถ„์•ผ๋“  ๋งˆ์ฐฌ๊ฐ€์ง€๊ฒ ์ง€๋งŒ ํŠนํžˆ๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋Š” ๋Š์ž„์—†์ด ๋ณ€ํ™”ํ•˜๋Š” ํŠธ๋ Œ๋“œ์— ๋’ค์ฒ˜์ง€์ง€ ์•Š๋„๋ก ํ•ญ์ƒ ์ž๊ธฐ ์ž์‹ ์„ ๊ฐˆ๊ณ  ๋‹ฆ๋Š”๊ฒƒ์ด ๊ฐœ๋ฐœ์ž๋กœ์จ ์‚ด์•„๋‚จ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ ํ•ญ์ƒ ๋ฐฐ์šฐ๋Š” ์ž์„ธ๋กœ ์ฆ๊ฒ๊ฒŒ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž ์ค‘ ํ•œ ๋ช…์ž…๋‹ˆ๋‹ค.

์ œ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ง€์‹๊ณผ ๊ฒฝํ—˜์ด ๋‹ค๋ฅธ ๋ถ„๋“ค์—๊ฒŒ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉด์„œ ์ธํ”„๋Ÿฐ์—์„œ ๊ฐ•์ขŒ๋ฅผ ์‹œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์•ž์œผ๋กœ ์ˆ˜๊ฐ•์ƒ๋ถ„๋“ค์—๊ฒŒ ํ˜„์‹ค์ ์œผ๋กœ ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ๊ฐ•์ขŒ๋กœ ๊พธ์ค€ํžˆ ์ฐพ์•„๋ต™๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

์งˆ๋ฌธ์ด๋‚˜ ์˜๊ฒฌ์€ ์–ธ์ œ๋“ ์ง€ ํ™˜์˜ํ•˜๋‹ˆ, ์ด๋ฉ”์ผ(it.village.host@gmail.com)๋กœ ํŽธํ•˜๊ฒŒ ์–˜๊ธฐํ•ด์ฃผ์„ธ์š”.

 

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

36๊ฐœ โˆ™ (6์‹œ๊ฐ„ 29๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!

Kevin๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

๋น„์Šทํ•œ ๊ฐ•์˜

๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

์–ผ๋ฆฌ๋ฒ„๋“œ ํ• ์ธ ์ค‘ (8์ผ ๋‚จ์Œ)

โ‚ฉ23,100

30%

โ‚ฉ33,000