panchok_admin_front panchok_scm_front ==>vite.js 프레임웍을 사용하는 react js web fo_front ==>vue js사용하는 web panchok_admin_api panchok_api panchok_batch ==>springboot Rest API방식 gradle 프로젝트 보통 vue, react - springboot 조합인 경우 개발환경에서는 springboot을 먼저 띄워 rest api 서버역할하고 vue, react web application을 도스창에서 실행해서 browser page(App.vue, App.js) <-> vue / react application <-> springboot application 3개 각각 통신함 이때 springboot 은 별도 포트를 가지고 application.properties application.yml에 server.port 로 지정하고 vue나 react는 vue.config.js, vite.config.ts에 server/port로 설정한다 브라우저는 react나 vue에서 설정한 포트로 localhost:8080 이렇게 url을 치면 page를 오픈함 각 연동기능 확인방법 * 스프링의 경우 junit으로 springboot환경 단위테스트로 하나씩 기능확인가능 * vue의 경우 url(http://localhost:8080)을 열면 main.js이 먼저 실행되고 App.vue -> main.vue 순으로 호출됨 main.js를 보면 App.vue, store, router등 몇가지 호출을 하는데 App.vue SPA(single page application)구조에서 base가 되는 메인 컴포넌트 store: App.vue 인스턴스가 관리하는 데이터관리소기능 router: 메뉴기능으로 single page상에서 메인컴포넌트위에 로드되는 자식컴포넌트들을 네비게이트 react와 vue는 브라우저 dev tool상에서 디버깅되는데 브라우저 extension인 react dev tool, vue dev tool을 extension 설치하면 개별 기능 확인가능 ** vue상에서 배너 목록이 뜨는과정: 1. 최초로 띄우면 App.vue상에 로딩되고 main.vue가 로딩 2. main.vue 컴포넌트의 created 이벤트가 실행(OnCreated) 3. created -> init() -> getBannerList 실행 4. getBannerList는 /api/main/main.js에 선언된 getBannerList함수를 호출 5. main.js의 getBannerList는 /utils/request.js의 service를 실행(request라 선언했는데 실제로는 axios 컴포넌트를 service라는 이름으로 선언한 놈) ** request를 async방식으로 호출하면 axios의 http 호출이 이루어지고 request.js(아직 알필요는 없지만)안에 보면 http request, response마다 기본적으로 해줘야 할 오류처리나 헤더의 인증(accesstoken)등을 해줌 6. http호출하는 놈인 /api/main/main.js 의 함수선언을 보면 export function getBannerList(data) { return request({ url: '/main/getAllBannerList', method: 'post', data, }); } data를 /fo_api/main/getAllBannerList (스프링부트 아마 panchok_api로 보임) ** react에서 GetSellerListRequest를 호출하는 과정 1. 최초 vite.config.ts에서 선언된 포트인 3000번으로 브라우저상에서 localhost:3000을 호출하면 2. index.html이 호출되고 3. main.tsx가 실행 4. index.html에 id="root"로 선언된 div 돔으로 App.tsx 메인컴포넌트를 호출함 react