Files
sdl_base/doc/설치/빌드&배포.adoc
T
2026-05-29 17:49:25 +09:00

131 lines
3.7 KiB
Plaintext

= 빌드&배포
== Vite Bundling
SDL6 UI는 서비스 하기 위해 Bundling이 필요하다.
각 배포 대상에 따른 설정 파일은 .env.test , .env.development, .env.production 파일을 참고한다.
..env.production 예시
[source, properties]
----
# default env
VITE_NODE_ENV=production
VITE_API_URL=http://sdl.sec.samsung.net/administrator
VITE_DIST_PATH=../src/main/webapp/pp
# CONTEXT_PATH value must be end with '/'
VITE_WEB_CONTEXT_PATH=/
----
package.json 에 정의된 script에 따라 설정 파일이 적용된다.
.package.json
[source, json]
----
"scripts": {
"local": "vite --mode test",
"dev": "vite --mode development",
"prod": "vite --mode production",
"build": "vite build --mode production",
"build-test": "vite build --mode test",
"build-dev": "vite build --mode development",
"build-prod": "vite build --mode production",
"preview": "vite preview --mode production",
"preview-test": "vite preview --mode test",
"preview-dev": "vite preview --mode development",
"preview-prod": "vite preview --mode production",
"lint": "eslint src/**/*.{vue,js}"
},
----
*npm run local* 명령어를 실행할 경우 .env.test 파일이 적용되며, vite-dev-server가 실행된다.
vite-dev-server는 front-end 코드가 실시간으로 반영되므로 개발 시 편리하다.
*npm run preview* 명령어를 통해 빌드 된 결과물을 preview 서버를 통해 확인 할 수 있다.
반드시 *VITE_DIST_PATH* 에 Build 결과물이 존재해야 구동된다.
== SonarQube Scanner 를 통한 소스코드 정적 분석
* 먼저 SonarQube Scanner 를 설치한다.
----
npm install sonar-scanner -g
----
* 사용법 (Command Line)
----
cd sdl-base <1>
sonar-scanner -Dsonar.host.url=SonarQube서버URL -Dsonar.projectKey=프로젝트Key -Dsonar.projectName=프로젝트명 -Dsonar.projectVersion=프로젝트버전 -Dsonar.login=아이디 -Dsonar.password=패스워드 -Dsonar.sources=frontend/src <2>
----
<1> 분석하고자 하는 프로젝트로 이동한다.
<2> 설정한 파라미터값으로 실행한다.
.파라미터 설명
[width="100%",options="header"]
|=====
| key | value(예) | 설명 | 비고
| sonar.host.url
| \http://guide.sonarqube.sec.samsung.net
| SonarQube 서버 URL
| 필수
| sonar.projectKey
| my:project
| 분석하고자 하는 프로젝트의 고유한 키 값
| 필수
| sonar.projectName
| "my project for test"
| 프로젝트 이름
|
| sonar.projectVersion
| 1.0
| 프로젝트 버전
|
| sonar.login
| user01
| SonarQube 서버 로그인 ID
| 필수
| sonar.password
| passwd01
| SonarQube 서버 로그인 패스워드
| 필수
| sonar.sources
| frontend/src
| 소스파일이 위치한 디렉토리
|
|=====
NOTE: sonar-scanner 파라미터 관련 자세한 내용은 https://docs.sonarqube.org/latest/analysis/analysis-parameters/[공식문서^]를 참조한다.
== Front-end 빌드
운영시스템에 배포 하기 위해서 cmd창에서 *npm run-script build* 명령어를 실행한다.
빌드 결과는 .env 파일의 *VITE_DIST_PATH* 경로에 생성된다.
image::build_01.png[build_01,800,600]
image::build_02.png[]
== Back-end 빌드
Back-end는 Maven을 이용해 Build 하고 있다. maven 명령어를 이용해 빌드한다.
패키징 시 배포 대상별로 Profile을 적용 할 수 있다.
----
mvn clean package -Pprod
----
-Pprod 옵션을 경우 src/main/resource-prod 아래의 설정파일들이 적용되어 패키징 된다.
image::build_03.png[build_03,800,600]
IMPORTANT: SDL 6.0은 Spring Profile이 적용되어 서버 실행시 -Dspring.profiles.active=local과 같은 옵션을 필요로 한다.