SpringBoot & React Project & typeScript
π₯οΈ νλ‘μ νΈ μκ°
E1μ 보기μ BS 3ν UDA μμ€ν
κ΄λ¦¬ νλ‘μ νΈ μ
λλ€.
Springboot μ react & typescriptλ₯Ό ν΅ν΄ κ°λ°μ μ§ννμκ³ ubuntu serverμ jenkins μλ²λ₯Ό μ€μΉνμ¬ docker composeλ₯Ό ν΅ν΄ λ°°ν¬λ₯Ό νμμ΅λλ€
node v22.17.1
react v18.2.1
typescirpt v5.9.2
spring boot v3.4.7
jenkins v2.516.1
redis v8.2.1
docker v27.5.1
IDE : Visual Studio Code
Database : mysql 8.0
π οΈ μ£Όμ λΌμ΄λΈλ¬λ¦¬
ꡬλΆ
ν¨ν€μ§/κΈ°μ λͺ
λ²μ
μνκ΄λ¦¬
Zustand
5.0.4
λ²λ€λ¬
Vite
7.0.4
νμ
TypeScript
5.9.2
λΌμ°ν
react-router-dom
7.6.3
UI
Material-UI,antd
7.2.0, 5.26.4
그리λ
wijmo
5.20251.40
κΈ°ν
axios
1.10.0
νμ§
ESLint, Prettier
9.x, 3.x
ꡬλΆ
ν¨ν€μ§/κΈ°μ λͺ
λ²μ
μΈμ¦
jsonwebtoken
0.11.5
μμ
μ
λ‘λ & λ€μ΄λ‘λ
apache poi
5.2.5
쿼리
mybatis
3.0.4
κ²½λ‘ λ³μΉ (Path Aliases)
// tsconfig.json & vite.config.js
{
"@/*" : [ "src/*" ] ,
"@pages/*" : [ "src/pages/*" ] ,
"@component/*" : [ "src/components/*" ] ,
"@api/*" : [ "src/api/*" ] ,
"@data/*" : [ "src/data/*" ] ,
"@assets/*" : [ "src/assets/*" ] ,
"@utils/*" : [ "src/utils/*" ] ,
"@store/*" : [ "src/store/*" ] ,
"@hooks/*" : [ "src/hooks/*" ] ,
"@router/*" : [ "src/router/*" ] ,
"@layout/*" : [ "src/layout/*" ]
}
1. μλμ²λΌ gitμ cloneνκ±°λ zipμΌλ‘ λ€μ΄λ‘λ
$ git clone https://github.com/e1-mslee/reactProject.git
bs3_study
ββ backend
β ββ .mvn
β β ββ wrapper
β β ββ maven-wrapper.properties
β ββ Dockerfile
β ββ HELP.md
β ββ mvnw
β ββ mvnw.cmd
β ββ pom.xml
β ββ src
β ββ main
β β ββ java
β β β ββ com
β β β ββ e1
β β β ββ backend
β β β ββ auth
β β β β ββ TokenProvider.java
β β β ββ BackendApplication.java
β β β ββ config
β β β β ββ RedisConfig.java
β β β β ββ SecurityConfig.java
β β β β ββ WebConfig.java
β β β ββ Controller
β β β β ββ ApiController.java
β β β β ββ AuthController.java
β β β β ββ KjoApiController.java
β β β ββ dto
β β β β ββ CustomUserDetails.java
β β β β ββ UserDto.java
β β β β ββ UserEntity.java
β β β ββ filter
β β β β ββ JwtAuthenticationFilter.java
β β β ββ mapper
β β β β ββ ApiMapper.java
β β β β ββ KjoApiMapper.java
β β β β ββ UserMapper.java
β β β ββ service
β β β β ββ ApiService.java
β β β β ββ CustomUserDetailsService.java
β β β β ββ KjoApiService.java
β β β ββ serviceimpl
β β β ββ ApiServiceImpl.java
β β β ββ KjoApiServiceImpl.java
β β ββ resources
β β ββ application.properties
β β ββ logback-spring.xml
β β ββ mybatis
β β β ββ sql
β β β ββ kjo
β β β β ββ kjoApi.xml
β β β ββ lms
β β β ββ api.xml
β β ββ static
β β ββ templates
β ββ test
β ββ java
β ββ com
β ββ e1
β ββ backend
β ββ BackendApplicationTests.java
ββ docker-compose.yml
ββ frontend
β ββ .dockerignore
β ββ .env
β ββ .env.production
β ββ default.conf
β ββ Dockerfile
β ββ eslint.config.js
β ββ index.html
β ββ package-lock.json
β ββ package.json
β ββ public
β β ββ favicon.ico
β β ββ font
β β ββ NotoSansCJKkr-Black.otf
β β ββ NotoSansCJKkr-Bold.otf
β β ββ NotoSansCJKkr-DemiLight.otf
β β ββ NotoSansCJKkr-Light.otf
β β ββ NotoSansCJKkr-Medium.otf
β β ββ NotoSansCJKkr-Regular.otf
β β ββ NotoSansCJKkr-Thin.otf
β β ββ NotoSansMonoCJKkr-Bold.otf
β β ββ NotoSansMonoCJKkr-Regular.otf
β β ββ Roboto-Regular.ttf
β ββ README.md
β ββ src
β β ββ .prettierignore
β β ββ .prettierrc.yml
β β ββ api
β β β ββ api.ts
β β β ββ Auth.ts
β β β ββ lmsApi.ts
β β β ββ lmsDocApi.ts
β β β ββ lmsHeaderApi.ts
β β β ββ lmsPopApi.ts
β β β ββ types.ts
β β ββ App.css
β β ββ App.tsx
β β ββ assets
β β β ββ Logo.png
β β ββ components
β β β ββ BaseButton.jsx
β β ββ data
β β β ββ data.ts
β β β ββ menuItems.tsx
β β ββ hooks
β β β ββ useRemoveWijmoLink.ts
β β ββ index.css
β β ββ layout
β β β ββ Footer.tsx
β β β ββ Header.tsx
β β β ββ Sidebar.tsx
β β ββ main.tsx
β β ββ pages
β β β ββ Home.tsx
β β β ββ kjo
β β β β ββ kjo.css
β β β β ββ Kjo.tsx
β β β β ββ kjoHeaderPopup.tsx
β β β β ββ KjoPop.tsx
β β β ββ lms
β β β β ββ Lms.css
β β β β ββ Lms.tsx
β β β β ββ LmsDoc.tsx
β β β β ββ LmsHeader.tsx
β β β β ββ LmsPop.tsx
β β β ββ Login.css
β β β ββ Login.tsx
β β β ββ Notfound.tsx
β β ββ router
β β β ββ routes
β β β ββ MainRoute.tsx
β β β ββ PopupRoute.tsx
β β ββ store
β β β ββ commonStore.ts
β β β ββ kjo
β β β β ββ kjoHeaderStore.ts
β β β β ββ kjoPopupStore.ts
β β β β ββ kjoStroe.ts
β β β ββ lms
β β β ββ lmsDocStore.ts
β β β ββ lmsHeaderStore.ts
β β β ββ lmsPopStore.ts
β β β ββ lmsStore.ts
β β ββ utils
β β ββ openPop.ts
β β ββ tableUtils.ts
β ββ tsconfig.json
β ββ vite-env.d.ts
β ββ vite.config.js
ββ Jenkinsfile
ββ README.md
ββ table.sql
ββ UDA μμ€ν
κ΄λ¦¬.pptx
2. frontend ν΄λ κ²½λ‘λ‘ μ΄λ ( package.jsonμ΄ μλ ν΄λ) ν npm μ€μΉ
$ cd /frontend
$ npm install
3. frontend ν΄λμμ react μ€ν
4. backend ν΄λμμ Springboot μ€ν (BackendApplication.java)
Jenkins νμ΄νλΌμΈ ν΅ν μλν λ°°ν¬
νκ²½λ³ λΉλ λ° λ°°ν¬ μ€ν¬λ¦½νΈ
jwtμ ν΅ν΄ access tockenκ³Ό refresh tockenμ ν΅ν΄ μΈμ¦(redis μλ²λ₯Ό ν΅ν λκΈ°ν)
μ΄ν μμΈν μ€ν λ΄μ©μ React_Springboot κ°λ°νκ²½_λ©λ΄μΌ_μ΄λ―Όμ.pptx μ°Έμ‘°