🐳
Engineering Wiki
  • 🖐️Welcome
  • 📚백엔드 로드맵
    • 메인페이지
  • Spring
    • spring boot
      • security
        • security 기본
        • filter
        • JWT
      • 스프링 핵심 원리
        • 객체지향 설계와 스프링
        • 스프링IoC컨테이너와 bean
      • IntelliJ
        • Spring boot 생성 및 git clone
        • Spring boot 프로젝트 생성
      • vscode
        • Spring boot 프로젝트 생성
      • scheduling
        • 스케쥴링 설정시 에러 상황
      • paging
      • 에러 핸들링
        • ErrorCode생성 및 ExceptionHandler로 에러처리
        • Security & JWT 에러처리
        • spring cloud sleuth
      • 로그 핸들링
        • logback
        • HttpRequestServlet 래핑
      • gradle
        • hidetake.ssh 키파일 설정
      • maven
        • maven tomcat
      • lib
        • lombok
        • tiles
      • API 부하테스트 툴 K6
      • JPA
        • Mybatis / JPA 차이
      • Mybatis
    • spring batch
      • batch
        • Spring Batch 기본개념
  • FRONT
    • vue
      • Spring boot & Vue.js 설치 및 연동
      • Spring boot & Vue.js 웹개발 세팅
      • vue의 기본구조 실행순서
      • SPA 이해
  • JAVA
    • 환경설정
    • 자바의 정석
      • generics
  • DATABASE
    • mongoDB
      • 정규표현식을 사용해 대소문자 구분없이 검색
      • mongoDB export import
      • MAC 설치 및 실행
    • MYSQL
      • dbeaver 데이터 내보내기 불러오기
      • [에러] 스프링 mysql 8 연결 에러
      • MAC M1 mysql 설치
      • GROUP BY 정리
      • 테이블 명세서 빠르게 생성
  • AWS
    • IAM
    • 설치&명령어
      • eb 설치 & 명령어
      • CLI 설치 & 명령어
    • sam
      • SAM 개념
      • SAM Lambda S3이벤트 트리거, MongoDB 접근코드
      • SAM intellij 배포
    • peering
      • mongodb atlas AWS vpc peering
      • MongoDB & Lambda VPC peering ,endpoint설정
    • 쉘스크립트
      • 도커 컨테이너 중단시 슬랙 리포팅 및 재실행
  • DOCKER
    • 설치&명령어
      • Docker 기초
      • Docker Container 유용한 명령어
    • MAC관련 문제
      • 이미지 빌드 관련 문제상황
      • MAC M1 도커 실행 원리
      • [에러] docker: Error response from daemon: Mounts denied:
  • ELK
    • 세팅
      • 로드벨런서에 logstash 세팅
      • Elastic Beanstalk + Elastic Cloud + docker 설정
      • ElasticCloud + filebeat + logstash + docker 설정 (버전8.5.0)
      • ELK 적용 사례, 로그수집(filebeat/logstash) 설명
    • logstash
      • Logstash는 로그를 왜 message라는 field로 저장할까?
      • logstash health check
    • filebeat
      • filebeat 아키텍쳐
  • unity
    • 유니티 기본
      • 캐릭터 이동
      • 카메라
  • WORDPRESS
    • 워드프레스 기본
  • git
    • GIT 개념
      • 라이프사이클
    • 명령어
      • defult 브랜치 main 으로 변경
      • 첫번째 커밋 삭제(브런치삭제) 후 원격저장소에 강제 push
      • git 원격저장소에 remote 방법(vscode로 진행)
      • git gh
      • git reset
      • git rebase
  • MAC
    • 개발 환경세팅
      • 맥 초기 개발세팅
    • 유용한내용
      • app store 다운로드 없이 웹에서 Xcode 다운
      • ubuntu iso 설치 usb 만들기
      • 응용프로그램 에러
      • 잠김 파일
  • CS
    • data structure & algorism
      • 자료구조의 정의 및 종류
  • 방통대
    • 대학수학의 이해
      • 1강. 수학의 기초(1)
    • 딥러닝
      • 1강.신경망의 개요
  • NODE
    • 개발기록
      • 인스타그램 API 활용하여 게시물 슬랙에 리포팅
Powered by GitBook
On this page
  • 세팅
  • 설치
  • Vue CLI 이란
  • 프록시 설정
  1. FRONT
  2. vue

Spring boot & Vue.js 설치 및 연동

세팅

  • Spring boot 3.2

  • Java 17

  • gradle - groovy

  • vue2

  • 종속성설치시 사용할 패키지 관리자 npm

설치

  • homebrew로 node npm설치

brew install node
  • 버전 확인

node -v
npm -v 

터미널에서 아래 명령 실행, npm으로 vue-cli 글로벌하게 설치

npm으로 Vue-cli를 global(-g)하게 설치한다는 뜻이다.

글로벌하게 Vue-cli를 설치해두면 이 프로젝트 외 다른 프로젝트에서도 Vue-cli를 사용할 수 있다. vue2로 선택했다.

Vue CLI 이란

  • 기본 vue 개발 환경을 설정해주는 도구

  • 기본적인 vue 프로젝트 세팅을 해주기 때문에 폴더 구조, ESLint, build, webpack 설정 등에 대한 고민을 덜 수 있음

npm install -g @vue/cli
  • 아래 명령어로 vue-cli에서 미리 세팅된 몇가지 템플릿을 사용해 frontend 라는 vue project를 생성해준다.

  • vue-cli 3.0 부터는 프로젝트 생성시 의존된 라이브러리도 함께 생성된다.

// spring boot project 루트에서 진행
vue create frontend
  • frontend 폴더로 이동, 서버시작

package.json에 scripts 라는 부분이 보일 것이다.

이 scripts를 통해 npm run으로 실행시킬 수 있는 명령어를 정의/설정해줄 수 있다.

serve, build, lint 가 있는데 각각 소스코드를 실행, 빌드, 소스코드검사 실행을 의미함

serve —open 이런식으로 수정해서 실행하면 바로 브라우저가 열리게 할수도 있음

서버를 종료하려면 Ctrl + c 누르면됨

cd frontend
npm run serve

만약 기존 프로젝트를 받아와서 실행한다면 아래 명령을 실행해

기존에 깔려있거나 업데이트 되어있는 패키지를 재실행한다.

npm ci

프록시 설정

개발 서버가 2개라 port번호도 2개로 나눠지는데 실제 배포환경에선 vue로 작성한 코드들은 빌드되어 정적인 자원으로 바뀌고(webpack에의해) 요청받는 서버는 스프링 하나가됨

개발을 편하게 하기 위해 vue서버에 프록시 설정을 하여 스프링으로 오게될 요청들을 모두 vue서버에서 받아 스프링으로 보내는 설정을 해준다. vue가 8081포트고 스프링이 8080이면 8081포트로 스프링부트 api를 요청했을때 프록시 설정에 의해 8080포트로 보내준다는 말이다.

그리고 그 정적인 자원은 타겟 디렉토리 설정에 의해 resources/static 으로 이동시킨다. 그렇지 않으면 빌드시마다 이동시켜줘야 해서 번거롭다.

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  outputDir: "../src/main/resources/static", // 빌드 타겟 디렉토리
  devServer: {
    proxy: {
      '^/api': {
        // '/api' 로 들어오면 포트 8080(스프링 서버)로 보낸다
        target: 'http://localhost:8080',
        changeOrigin: true
      }
    }
  }
})
PreviousvueNextSpring boot & Vue.js 웹개발 세팅

Last updated 2 years ago

참고

HowToCreateProject · kimmy100b/spring-boot-vue Wiki