08.UI
์ํํธ์จ์ด๋ฅผ ์ ์ฌ์ฉํ๊ธฐ ์ํด ์ฌ์ฉ์๋ ๊ฐ ๊ธฐ๋ฅ์ด๋ ํ๋ฉด์ด ์ ๊ณตํ๋ ์ผ๋ฐ์ ์ธ ์ ์ฐจ์ ์ต์ํด ์ง๋ ์๊ฐ์ด ํ์ํ๊ณ , ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ์ด ์๊ฐ์ ๋จ์ถํ๊ธฐ ์ํด ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ฒ์ ์์ฐ์ค๋ฝ๊ฒ ์๋ดํ๋ ๋ฐฉํฅ์ผ๋ก ์ค๊ณํด์ผ ํ๋ค.
์ด๋ฒคํธ ์์ฑ์์ ์ด๋ฐ ์ ๊ทผ๋ฒ์
Task Based User Interface๋ผ๊ณ ํ๋ค.
์ด๋ฒคํธ ์์ฑ์ ์ ์ฉํ๋ ์ํํธ์จ์ด์์ ๊ณ ๋ คํด์ผ ํ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค
.
๐๐ป CRUD UI
์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ์ฌ์ฉ์๊ฐ ๋ฌด์์ ํ ์ ์๋์ง ๋ช ํํ๊ฒ ํด ์ํํธ์จ์ด๋ฅผ ์ข ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ์ ๋ํด์ผ ํ๋ค
๊ธฐ๋ณธ์ ์ผ๋ก ๋ชฉ๋ก๊ณผ ์์ธ๋ฅผ ์ ๊ณตํ๋
CRUD UI๋ ๋ชจ๋ ํญ๋ชฉ์ ๋์ดํ ์์ธ ํ๋ฉด์ ์ ๊ณต
.
๐๐ป Task Based UI
ํ์คํฌ ๊ธฐ๋ฐ UI๋ CRUD UI์ ๋น์ทํ์ง๋ง ์กฐ๊ธ ๋ค๋ฅด๊ฒ ์ ๊ทผ
ํ์คํฌ ๊ธฐ๋ฐ UI๋ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณต
์ปค๋งจ๋์ ์ด๋ฒคํธ๋ผ๋ ์๊ฐ์์ ์ด๋ฒคํธ ์์ฑ๊ณผ ๊ฐ์ฅ ์ ์ด์ธ๋ฆฌ๋ ์ ๊ทผ๋ฒ
.
๐๐ป ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์ปค๋งจ๋
ํ์คํฌ ๊ธฐ๋ฐ UI๋ ์นดํธ์ ๋ด๊ธด ์ํ์ ์๋๊ณผ ์ต์ ๋ณ๊ฒฝ์ ๊ฐ๋ณ์ ์ธ ์ปค๋งจ๋๋ก ๋ถ๋ฆฌํ๊ณ ๋ฐฑ์๋์ ์์ฒญ์ ์ ๋ฌํ๊ณ Cart ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ์์ ์ฒ๋ฆฌ
์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋น๋๊ธฐ ์๋น์ค
์์คํ ์ ์ฌ์ฉ์์๊ฒ ์์ฒญํ ๋น์ฆ๋์ค ํธ๋์ญ์ ์ด ์๋ฃ๋์์์ ๋ฐ๋์ ์ ๊ณตํด์ผ ํ๊ณ , ๋ค์ฏ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๊ฐ
ํ๋ฉด ๋นํ์ฑํ ํ ์๋ก๊ณ ์นจ
์ฌ์ฉ์๊ฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํ๋ฉด์ ๋นํ์ฑํํ๊ณ ๋ช ๋ น์ ์๋ฃ ์ฌ๋ถ๋ฅผ ํ์
์ดํ ์ง์ ๋ ์๊ฐ ๋์ ๋๊ธฐํ ํ ํ๋ฉด์ ๋ค์ ๋ก๋ํด์ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฐ์ดํธ

ํ์ธ(์๋ฃ) ํ๋ฉด
์ฌ์ฉ์์๊ฒ 'ํ์ธ'๋๋ '๊ฐ์ฌํฉ๋๋ค' ํ๋ฉด์ ๋จผ์ ํ์
๋น์ฆ๋์ค ํธ๋์ญ์ ์ ์๋ฃํ๋ ์ผ๋ฐ์ ์ธ ์ง์ฐ ์๊ฐ์ ํ ๋นํ๊ณ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ํ๋ฉด์ผ๋ก ์ด๋ํ์ ๋ ์ต์ ์ํ๋ฅผ ํ์
ex. ์๋ฃ -> ๋ด์ญ ๋ณด๊ธฐ ๋ฒํผ ํด๋ฆญ -> ๋ด์ญ

์์ ๊ฒฐ๊ณผ ํ์
์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ์์ฒญ์ด ์ ์๋์๋ค๋ ์๋ต์ ๋ฐ์ผ๋ฉด ์๋ก์ด ์ฝ๊ธฐ ๋ชจ๋ธ์ ์ํ ์์ ๊ฐ๋ฅ
์๋ต์ ๋ฐ์์ ๋ ํ๋ฉด ๋ณ๊ฒฝ์ ์์ธกํ ์ ์์ผ๋ฏ๋ก ์๋ฒ๊ฐ ์ ๊ณตํ๋ ์กฐํ API๋ฅผ ํธ์ถํ์ง ์๊ณ ํ๋ก ํธ์์ ํ๋ฉด์ ์ง์ ๋ ๋๋ง
๊ตฌํ์ ์๊ฐ์ด ์กฐ๊ธ ๋ ๊ฑธ๋ฆฌ์ง๋ง ํจ์ฌ ๋ ์์ฐ์ค๋ฌ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณต
ex. ์๋ก์ด ๋ฉ์์ง ํธ์

์ด๋ฒคํธ ๋ฌด์
์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ์์ฒญ์ ๋ณด๋ธ ํ ํ๋ฉด์ ๋นํ์ฑํ์ํค๊ณ ๊ธฐ๋ํ๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ ๋๊น์ง ์ ์ง
๋น์ฆ๋์ค ํธ๋์ญ์ ์ ์๋ฃํใ ๋ฉด ๋ฐฑ์๋๋ ํ๋ก ํธ์ ์๋ฃ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ํ๋ก ํธ๋ ํ๋ฉด์ ๋ค์ ํ์ฑํ์ํค๊ฑฐ๋ ์ง์ ํ์ด์ง๋ก ์ด๋
์ด๋ฒคํธ๋ ๋ค๋ฅธ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๊ณผ ๋น๊ตํ์ ๋ ์ค๋ฒ ํค๋๊ฐ ์์ผ๋ฏ๋ก ์ค์ํ ์ ๋ฐ์ดํธ๊ฐ ๊ผญ ํ์ํ ์๊ตฌ์ฌํญ์ธ์ง ํ์ธ์ด ํ์
๋ํ์ ์ธ ๊ตฌํ ๊ธฐ์ ์ด WebSocket, SSE(Server0Side Events)

ํ์ด๋จธ์ ํด๋ง
ํ๋ฉด์ ๋นํ์ฑํ์ํค๋ ๋ฐฉ๋ฒ์ ๋์ผํ์ง๋ง ์๋ฒ์์ ์๋ฃ ์ด๋ฒคํธ๋ฅผ ์์ ํ ๋๊น์ง ๋๊ธฐํ์ง ์๊ณ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์์ ํ์ด๋จธ๋ฅผ ์ด์ฉํด ์ฅ์ ์ผ๋ก ์ฒ๋ฆฌ ์ํ๋ฅผ ํ์ธ
์ฒ๋ฆฌ๋ฅผ ์๋ฃํ์ผ๋ฉด ํ๋ฉด์ ๋ค์ ํ์ฑํ์ํค๊ฑฐ๋ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋
ํธ์์ ๋น๊ต ์ ๊ตฌํ ๋์๋๊ฐ ๋ฎ์ ๋ง์ด ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด์ง๋ง ์๋ฒ๋ก ์์ฒญ์ด ๋ง์ ๋จ์ ์ด ์กด์ฌ

๋ง์ดํฌ๋ก ํ๋ก ํธ์๋
๋ง์ดํด ๊ธฐ์ด์ค์ ํ๋ก ํธ์๋ ์งํ ๊ณผ์ ๊ณผ ํจ๊ป ์ด์์ ์ธ ๋ฐฐํฌ ๋จ์
ํ๋ก ํธ์๋ ๊ตฌ์ฑ๊ณผ ๋ฐฐํฌ ๋จ์์ ๋ณํ ๊ณผ์

๋ง์ดํฌ๋ก ํ๋ก ํธ์๋๋ ๋จ์ํ ์ปดํฌ๋ํธ ์กฐํฉ์ ๋จธ๋ฌผ๋ฉด์ ๊ฑฐ๋ํ ๋ชจ๋ ธ๋ฆฌ์ ํ๋ก ํธ๋ฅผ ๋ง๋ค์ง ์๊ณ ํ์ดํผ๋งํฌ๋ฅผ ์ฌ์ฉํด ์๋ก ์ฐ๊ฒฐํ์ดํผ๋งํฌ๋ก ์์ ๋ง์ดํฌ๋ก ํ๋ก ํธ์๋๋ฅผ ์ฐ๊ฒฐํ๋ฉด ๋ฐฑ์๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋ก ํธ์๋๋ ๋ ์์ ๋จ์๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌ ๊ฐ๋ฅ
ํ๋ก ํธ์๋๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌํ ์ ์๋ค๋ฉด ๋ฐฑ์๋์ ํ๋ก ํธ์๋๋ฅผ ํ๋์ ๋ฐฐํฌ ๋จ์๋ก ๊ตฌ์ฑํด ๋ ๋์ ์์ง๋์ ๋ฎ์ ๊ฒฐํฉ๋๋ฅผ ๊ฐ์ง ์์คํ ์ ๊ตฌ์ถ
๋ง์ดํฌ๋ก ํ๋ก ํธ์๋์ ํ์ดํผ๋งํฌ

ํ๋ก ํธ์๋ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ฉด dist ๋๋ ํ ๋ฆฌ์ ๋ฒ๋ค ํ์ผ์ธ css, js, html, svg๋ฅผ ์์ฑ
์ด ๋ฒ๋ค ํ์ผ์ /resources/public์ ๋ณต์ฌํด ๋ฐฑ์๋์ ํ๋ก ํธ์๋๋ฅผ ํ๋์ ๋ฐฐํฌ ๋จ์๋ก ๋ง๋ค ์ ์์
๊ธ๋ก๋ฒ CSS์ ๋ฎ์ด์ฐ๊ธฐ

.
1๏ธโฃ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ปดํฌ๋ํธ
๋ง์ดํฌ๋ก ํ๋ก ํธ์๋๋ ํ์ด์ง์์ ์ํ ์ ๋ณด๋ฅผ ํ๋ฒ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋จ์ผ ์์ฑ์ด๋ ๊ด๋ จ ์์ฑ์ ๊ทธ๋ฃน ๋จ์๋ก ๋ณ๊ฒฝ
๋ณ๊ฒฝ ์์ฒญ์ ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ๋ฅผ ์์ ํ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ์ง์ ์ฒ๋ฆฌ
๋ง์ดํฌ๋กํ๋ก ํธ์๋๋ ๋ณ๊ฒฝ ์์ฒญ๋ฟ ์๋๋ผ ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ๋ ์์ธ ์ปดํฌ๋ํธ๋ ์ ๊ทธ๋ฆฌ๊ฒ์ดํธ๋ฅผ ์์ ํ ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ์ ๊ณตํ๊ณ ๋ณตํฉ ํ๋ฉด์ ์ปดํฌ๋ํธ๋ฅผ ์ํฌํธํด์ ๊ตฌ์ฑ
ํ์ด์ง์ ์ปดํ ๋ํธ ์กฐํฉ

.
2๏ธโฃ ์ปดํฌ๋ํธ์ ์ด๋ฒคํธ ํ๋ก๊ทธ๋๋ฐ
์ด๋ฒคํธ๋ก ๊ฒฐํฉ๋ ์ ๊ฑฐ

ํจ์ ์์กด์ฑ์ ์ด๋ฒคํธ๋ก ๋ณ๊ฒฝํ์ ๋ ์ปดํฌ๋ํธ๊ฐ ํ๋ ฅ
์๋จ ์ปดํฌ๋ํธ์์ ์ํ์ ๋ฑ๋กํ๋ฉด ์น ๋ธ๋ผ์ฐ์ ์ ์ด๋ฒคํธ๋ฅผ ๋ฐํํ๊ณ ์ด๋ฒคํธ๋ฅผ ์์ ํ ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ๋ชฉ๋ก์ ๊ฐฑ์
๋ง์ดํฌ๋ก์๋น์ค์ ํ์ ๊ด๋ฆฌ
๋ฐฑ์๋์ ํ๋ก ํธ์๋๋ฅผ ๋จ์ผ ๋ฐฐํฌ ๋จ์๋ก ํตํฉํ๊ธฐ ์ํด ํ์ ๊ด๋ฆฌ ๋๊ตฌ์์ ํ๋ก ํธ์ ๋ฐฑ์๋๋ฅผ ํ๋์ ํ๋ก์ ํธ๋ก ๊ตฌ์ฑ
์น ์ปดํฌ๋ํธ๋ fragment ๋๋ ํ ๋ฆฌ๋ก ๊ตฌ์ฑ

์ง์์ ์ธ ํตํฉ๊ณผ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ์์
fragment์frontend๋ฅผ ์์๋๋ก ๋น๋ํ๊ณ , ๋ฒ๋ค ํ์ผ์ backend ํ๋ก์ ํธ์/resources/public์ผ๋ก ๋ณต์ฌํ ํ ๋ฐฑ์๋๋ฅผ ๋น๋์น ์ปดํฌ๋ํธ๋
/resources/public/fragment์ ๋ฌ ๋ค๋ฅธ ์๋น์ค๊ฐ ์คํ ์๊ฐ์ ์ฐธ์กฐํ ์ ์๊ฒ ํจdeploy๋๋ ํ ๋ฆฌ๋ ๋์ปค ์ด๋ฏธ์ง ์์ฑ ๋ฐ ํธ์, ์ฟ ๋ฒ๋คํฐ์ค ๋ฐฐํฌ ๋ฑ CI/CD์ ํ์ํ ํ์ผ์ ํฌํจ
์์ฝ
Last updated