교육

개발 환경 구성 및 빌드 / 배포

ByeongJun 2023. 4. 5. 15:18
반응형

[목차를 클릭하면 해당 위치로 바로 이동]                    프로그램 설치          Maven          형상관리          Jenkins

 

전자정부 표준프레임워크

※ 프레임워크는 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조(틀)

  • 대한민국 공공부문 정보화 사업시 플랫폼 별 표준화된 프레임워크
  • 공공사업에 적용되는 개발 프레임워크의 표준정립으로 응용 소프트웨어 표준화, 품질 및 재사용성 향상을 목표
  • 정보시스템 개발을 위해 필요한 기능 미리 아키텍처를 미리 만들어 제공하여 효율적인 어플리케이션 구축 지원
  • 비즈니스 로직 개발에만 전념 가능
  • 개방형 표준 준수 (오픈소스 기반의 범용화되고 공개된 기술의 활용으로 특정 사업자에 대한 종속성 배제)
  • 업무의 단순화 / 성능 및 품질 보장 / 공통컴포넌트 재사용으로 중복 예산 절감 + 무상제공 / 납기 보장

 

적용 가능 시스템 조건

  • WAS가 존재하는 경우 (Tomcat)
  • 전자정부 표준프레임워크 개발환경 (3.8 이상에서는 JDK 1.8 이상 필요) 

 

 

 

Spring과 Spring Boot 차이

Spring

경량 애플리케이션 프레임워크이며 Struts, JSP, Hibernate 등과 같은
다양한 프레임워크에 대한 지원을 제공하고 애플리케이션을 빌드하는 데 사용

Spring Boot

스프링- REST API 개발에 주로 사용되는 기반 프레임워크
내장형 Tomcat 포함되어 편리성

 

 


필수 프로그램 (JDK, Tomcat)

 

JDK 1.8 설치 (환경변수 등록 / 설치 확인 방법)

GitHub - ojdkbuild/ojdkbuild: Community builds using source code from OpenJDK project Community builds using source code from OpenJDK project - GitHub - ojdkbuild/ojdkbuild: Community builds using source code from OpenJDK project github.com java-1.8.0-open

3mmmeee.tistory.com

 

표준프레임워크(eGovFrameDev) 설치 / 이클립스 설정 파일에 JVM 지정하는 방법 / 톰캣(Apache Tomcat) 설

개발환경 - 3.x 다운로드 | 표준프레임워크 포털 eGovFrame 처리중입니다. 잠시만 기다려주십시오. www.egovframe.go.kr 표준프레임워크 포털 접속 후 [첨부파일] 다운로드 이클립스 설정 파일에 JVM 지정

3mmmeee.tistory.com

 


Maven

Apache Software Foundation에서 개발되고 있는 소프트웨어 프로젝트 관리 툴

  • 전체적인 프로젝트 관리
  • 이미 구현된 goal의 수행
  • 프로젝트 전체 정보를 정의
  • 빌드 생명주기, 표준화된 디렉토리 레이아웃
  • 플러그인 및 저장소를 재활용

 

장점

  • 편리한 의존 관계 라이브러리 관리 기능
  • 모든 프로젝트가 일관된 디렉토리 구조와 빌드 프로세스 유지
  • 전사적으로 사용할 프로젝트 템플릿을 만들어 배포 가능
  • 빌드 및 배포의 간편화

 

pom.xml (Project Object Model)

메이븐의 설정 정보를 저장하는 xml 파일

의존관계를 관리하는 것이 주요 역할 

 

하나의 자바 프로젝트에 빌드 툴로 maven을 설정하면

프로젝트 최상위 디렉토리에 'pom.xml'이라는 파일이 생성되었다.

 

프로젝트 내 빌드 옵션을 설정하는 부분으로

<project>...</project>로 둘러싸여 있으며 여러 정보를 나타내며 설정할 수 있다.

 

 

 

인터넷 통신이 가능할 때만 라이브러리를 받아 올 수 있는 Maven 단점을 보완하기 위해서는 

라이브러리 관리할 수 있는 Tool 중에 Nexus 사용 

 

참고

 

[Maven] Nexus란?

Nexus란? Sonatype 에서 만든 저장소 관리자 프로젝트 다양한 Format의 사설 저장소를 만들 수 있으며 메인 저장소를 Cache 할 수 있는 기능 또한 제공하여 저장소를 관리할 수 있도록 도와주는 관리자

dev-youngjun.tistory.com

 

Ant

  • 각 프로젝트마다 빌드 스크립트 개발 (정형화된 소스 정도의 개념)
  • 프로젝트 특화된 target
  • 빌드 프로세스만 정의
  • 복잡한 빌드 스크립트
  • 점진적으로 개발 속도 저하 (복잡해지는 script)

 

 

 


형상관리

소스를 관리하는 툴 (소프트웨어의 변경사항을 체계적으로 추적하고 통제)

 

 

 

깃허브(GitHub) 

서버 저장소와 개발자 저장소 독립적 commit history 관리

다양한 기능 제공

다소 난이도가 있는 편 

 

SVN (SubVersion)

오픈소스 버전관리 시스템 

 

용어

저장소 (Repository)
모든 프로젝트의 프로그램 소스 및 리소스와 변경사항들이 저장되는 공간
네트워크를 통해서 여러 사람이 접근 가능

체크아웃 (Checkout)
저장소에서 소스를 받아오는 것

커밋 (Commit)
로컬 PC의 소스의 수정 / 파일추가 / 삭제 등의 변경사항을 연결된 저장소에 저장하여 갱신

업데이트 (Update)
저장소의 소스 및 리소스를 로컬 PC로 가져오는 작업
(Override Update 경우 내가 작업한 내용 덮어서 업데이트 진행) 

리비전 (Revision)
저장소에 저장된 파일들의 버전
소스 파일 등을 수정하여 커밋하게 되면 (Number 발생) 일정한 규칙에 의해 숫자가 증가
(프로젝트 단위가 아니라 전체 단위로써 뭐든지 커밋하면 발생)

임포트 (Import)
아무것도 들어있지 않은 저장소에 소스 및 리소스를 넣는 작업

익스포트 (Export)
체크아웃과는 달리 버전 관리 파일들(.svn)을 뺀 순수한 소스 파일 및 리소스를 받아오는 작업

 

 

 

SVN

 

Subversion for Windows

Download Subversion for Windows for free. Command line tools, Language bindings, and Apache httpd modules. Win32 build of Subversion. These binaries are built using Visual C++ 6.0 Should work on all flavours of Windows from Win2000 to Win8 and 2008 Server

sourceforge.net

 

C:\SVN>svnadmin create --fs-type fsfs education

 

 

[SubVersion] 설치

 

 

 

 

 

지금까지 SVN 여기 걸로 쓴다고 repository처럼 만들어주는 작업 

 

 

 

 

 

 

Downloads · TortoiseSVN

download TortoiseSVN

tortoisesvn.net

 

 

 

 

다른 프로그램에서 사용할 때 svn 가져올 때 오류 방지를 위한 설정

 

 

svn://127.0.0.1/education

 

 

 

 


Jenkins

 

Jenkins download and deployment

Jenkins download and deployment The Jenkins project produces two release lines: Stable (LTS) and regular (Weekly). Depending on your organization's needs, one may be preferred over the other. See the links below for more information and recommendations abo

www.jenkins.io

(Jenkins는 Jenkins 2.357 및 LTS 2.361.1부터 Java 11 또는 17 필요)

 

Tomcat과 Port Number가 충돌하는 것을 방지하기 위해 바꿔줬다.

 

 

http://localhost:9090/
경로로 접속하면 아래와 같은 화면이 나온다. 


복사 + 붙여넣기로 이동하면 메모장이 하나 뜨는데 
Admin password에 그대로 붙여넣기 해준다. 

설치 후 http://localhost:9090/ 접속해서 로그인 

 

더보기

 

 

SVN, Jenkins는 저도 처음 배우는 거라 '그냥 이런 걸 배웠다' 느낌으로 급하게 작성된 글입니다.

정보를 찾으려다 재수없게 제 블로그에 들어온 분들에게 심심한 Apple을 드립니다. 

 

 

 

 

 

svn 서비스 시작

window 관리도구 > 서비스 > Subversion_server > 시작(s)

 

 

copy target\*.war C:\education
(target 파일을 'education' 폴더 아래 저장한다는 명령어)

 

 

 

 

여기 밑으로는 버전 문제로 인해 실습 중 원활한 진행이 힘들었던 내용 기록

 

Dashboard > [Jenkins 관리]

 

스크롤 밑으로 쭉 내려서 [플러그인 관리] 선택 

 

'고급' 탭에서 [플러그인 올리기]

 

아래 경로로 들어가 echarts-api.hpi 다운로드 

 

 

ECharts API

Provides <a href="https://echarts.apache.org/en/index.html" target="_blank" rel="nofollow noopener noreferrer">ECharts</a> for Jenkins Plugins, a JavaScript visualization tool to create intuitive, interactive, and highly-customizable charts.

plugins.jenkins.io

(2023.04.05 내용)

 

 

 


CI (Continuous Integration) 지속적인 통합

  • CI 핵심은 자동화
  • 코드가 commit 되었는지 검출
  • build 후 생성된 실행 가능한 파일에 대한 테스트 실행
  • Remote 서버에 배포

 

CD (Continuous Delivery) 지속적인 배포

  • 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법

 

 

 

반응형