โป ๋ณธ ํ๋ก์ ํธ๋ ๊ธฐ์กด JSP ๋ทฐ ๋ฐฉ์์์ ๋ฒ์ด๋ BackEnd์ FrontEnd๋ฅผ ๋ถ๋ฆฌํ๊ธฐ ์ํ ์์ ํ์ผ๋ก ์ฐธ๊ณ ๋ง ํ์๊ธธ ๋ฐ๋๋๋ค.
๋จ์ ํํ์ด์ง ๊ธฐ๋ฅ ๊ตฌํ ์ ํ์์ ์ธ ๋ถ๋ถ๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ๊ฒฝ๋ํ ๋ ์คํํ๊ฒฝ ์ ๊ณต
๋ฉ์ธ ํ์ด์ง, ์ฌ์ฉ์ ๊ด๋ฆฌ, ๊ณต์ง์ฌํญ ๊ด๋ฆฌ, ๊ฒ์ํ ๊ด๋ฆฌ, ์๋ด ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณต
- ์ต์ด ๊ด๋ฆฌ์ ๊ณ์ ์ค์ ์ [ ๋ก๊ทธ์ธ๊ณ์ : admin , ๋ก๊ทธ์ธ์ํธ : 1 ] ๋ก ์ค์ ๋์ด ์๋ค.
- ๋ฉ์ธ ํ๋ฉด ์ฐ์ธก ์๋จ์ ํ์๊ฐ์ ๋ฒํผ์ ํตํด ์ฌ์ฉ์ ๊ณ์ ์ ์์ฑ ๊ฐ๋ฅํ๋ค.
- ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ด๋ ์์ ๋ฉ๋ด๋ฅผ ์ค๋ฌด์ ์ผ๋ก ์ถ๊ฐ ์ปค์คํฐ๋ง์ด์งํ์ฌ ํ์ฉํ ์ ์๋ค.
- ์ต์ด ๊ด๋ฆฌ์ ๊ณ์ ์ ํตํ ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ๋ค.
- ํ์๊ฐ์ ๋ฒํผ์ ํตํด ์์ฑํ ์ฌ์ฉ์ ๊ณ์ ์ ํตํ ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ๋ค. (์ฌ์ฉ์ ๊ณ์ ์ ์ผ๋ถ ๋ฉ๋ด ์ ๊ทผ์ด ์ ํ๋๋ค)
- ๋ก๊ทธ์ธ ์ฐฝ ํ๋จ์ ์์ ๋ก๊ทธ์ธ ๋ฒํผ์ผ๋ก ๋ค์ด๋ฒ ๋ฐ ์นด์นด์ค ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ๋ค. ์ด ๊ฒฝ์ฐ์ ๊ถํ์ ์ฌ์ฉ์ ๊ณ์ ๊ณผ ๋์ผํ๋ค.
- ์์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ์ํด์๋ ์ฌ์ ์ ๋ค์ด๋ฒ ๊ฐ๋ฐ์ ์ผํฐ ๋ฐ ์นด์นด์ค ๊ฐ๋ฐ์ ์ผํฐ ์์ Client ID์ Client Secret์ ๋ฐ๊ธ ๋ฐ์ ํ Callback URL์ ํ๋ก ํธ์๋์ ๋ฐฑ์๋ ํ๊ฒฝ ์ค์ ํ์ผ์ ๋ฑ๋กํด์ผ ํ๋ค.
- ํ๋ก ํธ์๋ ํ๊ฒฝ ์ค์ ํ์ผ์ ๋ณธ ์ ํ๋ฆฌ์ผ์ด์
์
.env.development
(๊ฐ๋ฐ ํ๊ฒฝ) ๋ฐ.env.production
(๋น๋ ์ ์ฌ์ฉ) ์ ์ฐธ๊ณ ํ๋ค. - ๋ฐฑ์๋ ํ๊ฒฝ ์ค์ ํ์ผ์ ์ฌํ ํํ์ด์ง Backend ์
application.properties
๋ฅผ ์ฐธ๊ณ ํ๋ค. - ๋ค์ด๋ฒ ์์ ๋ก๊ทธ์ธ์ ๋ํ ์์ธ ์ฌํญ์ ๋ค์ด๋ฒ ๋ก๊ทธ์ธ API ๋ฌธ์ ๋ฅผ ์ฐธ์กฐ ๊ฐ๋ฅํ๋ค.
- ์นด์นด์ค ์์ ๋ก๊ทธ์ธ์ ๋ํ ์์ธ ์ฌํญ์ ์นด์นด์ค ๋ก๊ทธ์ธ API ๋ฌธ์ ๋ฅผ ์ฐธ์กฐ ๊ฐ๋ฅํ๋ค.
- ํด๋น ํ๋ฉด ๋ฐ ์ธ๋ถ ๋ฉ๋ด ํ๋ฉด์ ๊ตฌ์ฑ์ ์ํ ์ํํ์ด์ง๊ฐ ์ ๊ณต๋๋ฉฐ ๊ธฐ๋ฅ์ ๊ตฌํ๋์ง ์์ ์ํ์ ๋๋ค.
- ์ธ๋ถ๋ฉ๋ด : ์ฌ์ดํธ์๊ฐ, ์ฐํ, ์กฐ์ง์๊ฐ, ์ฐพ์์ค์๋ ๊ธธ
- ๊ธฐ๋ฅ์ค๋ช : ์์ ๋ฉ๋ด์ ํด๋นํ๋ ํญ๋ชฉ์ผ๋ก ์ํ ํ์ด์ง ํํ๋ก ์กด์ฌํ๋ค.
- ํ์ฉ๋ฐฉ๋ฒ : ๊ฐ ์ํ ํ์ด์ง์ ๋ํ ์ฝํ ์ธ ๋ฅผ ์๋ก ๊ตฌ์ฑํ์ฌ ํ์ฉํ ์ ์๋ค.
- ํด๋น ํ๋ฉด ๋ฐ ์ธ๋ถ ๋ฉ๋ด ํ๋ฉด์ ๊ตฌ์ฑ์ ์ํ ์ํํ์ด์ง๊ฐ ์ ๊ณต๋๋ฉฐ ๊ธฐ๋ฅ์ ๊ตฌํ๋์ง ์์ ์ํ์ ๋๋ค.
- ์ธ๋ถ๋ฉ๋ด : ์ฃผ์์ฌ์ ์๊ฐ, ๋ํ์๋น์ค ์๊ฐ
- ๊ธฐ๋ฅ์ค๋ช : ์์ ๋ฉ๋ด์ ํด๋นํ๋ ํญ๋ชฉ์ผ๋ก ์ํ ํ์ด์ง ํํ๋ก ์กด์ฌํ๋ค.
- ํ์ฉ๋ฐฉ๋ฒ : ๊ฐ ์ํ ํ์ด์ง์ ๋ํ ์ฝํ ์ธ ๋ฅผ ์๋ก ๊ตฌ์ฑํ์ฌ ํ์ฉํ ์ ์๋ค.
- ํด๋น ํ๋ฉด ๋ฐ ์ธ๋ถ ๋ฉ๋ด ํ๋ฉด์ ๊ตฌ์ฑ์ ์ํ ์ํํ์ด์ง๊ฐ ์ ๊ณต๋๋ฉฐ ๊ธฐ๋ฅ์ ๊ตฌํ๋์ง ์์ ์ํ์ ๋๋ค.
- ์ธ๋ถ๋ฉ๋ด : ์๋ฃ์ค, ๋ฌป๊ณ ๋ตํ๊ธฐ, ์๋น์ค์ ์ฒญ
- ๊ธฐ๋ฅ์ค๋ช : ์์ ๋ฉ๋ด์ ํด๋นํ๋ ํญ๋ชฉ์ผ๋ก ์ํ ํ์ด์ง ํํ๋ก ์กด์ฌํ๋ค.
- ํ์ฉ๋ฐฉ๋ฒ : ๊ฐ ์ํ ํ์ด์ง์ ๊ธฐ๋ฅ์ ์ถ๊ฐ ๊ฐ๋ฐ ํ ๊ตฌ์ฑํ์ฌ ํ์ฉํ ์ ์๋ค.
- ์ธ๋ถ๋ฉ๋ด : ์ค๋์ํ์ฌ, ๊ธ์ฃผ์ํ์ฌ, ๊ณต์ง์ฌํญ, ์ฌ์ดํธ๊ฐค๋ฌ๋ฆฌ
- ๊ธฐ๋ฅ์ค๋ช : ๊ณตํต์ปดํฌ๋ํธ ์ผ์ ๊ด๋ฆฌ(๋ถ์์ผ์ )์ ๊ฒ์ํ ๊ธฐ๋ฅ์ ์ปค์คํฐ๋ง์ด์งํ์ฌ ์ฌ์ฉํ๋ค.
- ํ์ฉ๋ฐฉ๋ฒ : ๊ด๋ฆฌ์๊ฐ ๋ฑ๋กํ ์ผ์ ์ ๋ณด๋ฅผ ์กฐํํ๊ฑฐ๋ ๊ฒ์๋ฌผ์ ์กฐํํ ์ ์๋ค.
- ์ธ๋ถ๋ฉ๋ด : ์ผ์ ๊ด๋ฆฌ, ๊ฒ์ํ์์ฑ๊ด๋ฆฌ, ๊ฒ์ํ์ฌ์ฉ๊ด๋ฆฌ, ๊ณต์ง์ฌํญ๊ด๋ฆฌ, ์ฌ์ดํธ๊ฐค๋ฌ๋ฆฌ๊ด๋ฆฌ, ์ฌ์ดํธ๊ด๋ฆฌ์ ์ํธ๋ณ๊ฒฝ, ํ์๊ด๋ฆฌ
- ๊ธฐ๋ฅ์ค๋ช : ๊ณตํต์ปดํฌ๋ํธ ์ผ์ ๊ด๋ฆฌ(๋ถ์์ผ์ )๊ณผ ๊ฒ์ํ ๊ธฐ๋ฅ์ ์ปค์คํฐ๋ง์ด์งํ์ฌ ์ฌ์ฉํ๋ค.
- ํ์ฉ๋ฐฉ๋ฒ : ๊ด๋ฆฌ์๋ก ๋ก๊ทธ์ธ ํ ํ ์ผ์ ์ ๋ณด๋ฅผ ๋ฑ๋กํ๊ฑฐ๋ ๊ฒ์๋ฌผ์ ๋ฑ๋กํ ์ ์๋ค. (๊ฒ์ํ ์ค์ ๊ฐ๋ฅ)
ํ๋ก์ ํธ์์ ์ฌ์ฉ๋ ํ๊ฒฝ ํ๋ก๊ทธ๋จ ์ ๋ณด๋ ๋ค์๊ณผ ๊ฐ๋ค.
ํ๋ก๊ทธ๋จ ๋ช | ๋ฒ์ ๋ช |
---|---|
Node.js | v18.12.0 |
NPM | v8.19.2 |
์ฌํ ํํ์ด์ง Backend ์์ค๋ฅผ ๋ฐ์ ๊ตฌ๋ํ๋ค.
์๋ 1 ~ 3์ ๊ณผ์ ์ ๋ฐ๋ผ์ ์งํํ๋ค.
Git์์ ๋ณต์ ํ์ฌ ์ค์น ์ 1-1. ์ ์ฐธ๊ณ ํ๋ค.
Git์์ clone ํ๋ค.
# ํ๋ก์ ํธ ์ ์ฅ์๋ฅผ ๋ก์ปฌ๋ก ๋ณต์
git clone https://github.com/[๊ณ์ ๋ช
]/egovframe-template-simple-react.git
# ๋ณต์ ๋ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ก ์ด๋
cd egovframe-template-simple-react
# node modules๋ฅผ ์ค์นํด ์ค๋ค.
npm install
๊ตฌ๋๋ BackEnd ์๋ฒ์ URL์ ๋ณธ ์ดํ๋ฆฌ์ผ์ด์ ์ .env.development ํ์ผ์ VITE_EGOV_CONTEXT_URL์ ์ค์ ํด ์ค๋ค. (๋จ, ๊ฐ๋ฐํ๊ฒฝ์์๋ ์ฌ์ฉํ๋ ํ๊ฒฝ๋ณ์ ์ ๋ณด๋ .env.development, build ์ ์ฌ์ฉํ๋ ํ๊ฒฝ๋ณ์๋ .env.production ์ ๊ธฐ์ ํด ์ค๋ค.)
# .env.development ์์
VITE_APP_EGOV_CONTEXT_URL=localhost:8080
# ํ
์คํธ์ฉ ๋ฆฌ์กํธ ์๋ฒ๋ฅผ ์คํํ ๋ ์๋ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
npm run dev
# ๋น๋ํ ๋์๋ ์๋ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
npm run build
# ๋ก์ปฌ์์ ๋ฏธ๋ฆฌ๋ณด๊ธฐํ ๋๋ ์๋ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
npm run preview
# ํ
์คํธ ๋์ ํ์ผ ๊ฒฝ๋ก๋ vite.config.js์ ๋ช
์๋์ด ์์ผ๋ฉฐ ๋ํดํธ๋ก EgovMain.jsx์ ํ
์คํธ๋ฅผ ์คํํ๋ค.
# watch ๋ชจ๋๋ก ํ
์คํธ๋ฅผ ์คํํ ๊ฒฝ์ฐ์๋ ์๋ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
npm run test
# ์ผํ์ฑ ํ
์คํธ๋ฅผ ์คํํ ๊ฒฝ์ฐ์๋ ์๋ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
npm run test:run
๋ณด๋ค ์์ธํ ์ค๋ช ์ ์๋์ ๋ฌธ์๋ฅผ ํ์ธํ๋ค.