deploy
배포(Deploy)
- 개발자가 로컬 PC에서 개발하고 테스트 진행 후 문제가 없으면 실서버에 반영하는 것
빌드(Build)
- 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 그 결과
- 컴파일 된 코드를 실제 실행할 수 있는 상태로 만드는 일
- 개발한 어플리케이션을 실행 가능한 배포 파일 형태(jar,war)로 변환하는 것
빌드 도구(Build Tool)
- 소스 코드에서 실행 가능한 애플리케이션 생성을 자동화하는 프로그램
- Ex. Maven, Gradle
STS에서 Maven build 하는 방법
빌드에 앞서 해당프로젝트에 오류가 없는지 확인 한다. 문제가 없다면
프로젝트 우클릭 > Run As 클릭 > 5. Maven build 클릭
Gols(목표) 입력 > Run 클릭
이 과정을 통해 콘솔창에서 확인 해야하는 것 : Build Success
Build Success를 확인 > 프로젝트 내 target 폴더 우클릭 > Refresh
새로고침하면 다음과 같은 SNAPSHOT.jar 파일을 확인할 수 있다.
단독으로 배포, 단독 실행이 가능한 .jar 파일이 생성된다.
deploy 테스트
- 위의 과정을 통해 생성된 SNAPSHOT.jar 파일을 실행을 원하는 폴더로 따로 옮겨준다.
- 테스트를 위해 C: 내에 deploytest 폴더를 따로 만들어 옮겨 주었다.
- 폴더 내에서 cmd를 검색한다.
- cmd 내 하얗게 드래그 쳐져있는 부분과같이 입력한다.
java -jar crud-0.0.1-SNAPSHOT.jar
동작에 문제가 없다면 다음과같은 화면이 뜨면서 나의 포트번호 (8001)도 함께 확인할 수 있다.
배포한 프로그램을 실행 후 종료하는 법
- ctrl + c 누름
- 종료가 되었다면 다음과같은 화면이 뜬다.
백그라운드에서 역시 잘 동작됨을 확인한다.
동작중인 포트를 종료하는 방법으로는 포트를 킬해주는 방법이 있다.
cmd 창에 jsp를 입력해주면 스냅샷 파일앞에 다섯자리 번호가 뜬다.
포트번호는 저마다 다르다.
cmd > jsp 입력
차례로 cmd 창에 [taskkill -f /PID 검색해서 나온 포트번호]를 입력해 종료가 된 모습을 확인할 수 있다.
taskkill -f /PID 번호다섯자리
build한 .jar 파일 바로가기 만들기
매번 위와같은 과정을 거치는게 번거롭다면 바로가기를 만들어서 쉽게 실행할 수 있다.
바탕화면에 바로가기를 만든다.
새로만들기 > 바로가기
- 바로가기의 항목 위치를 입력해야하는데 위에서 옮겨둔 SNAPSHOT.jar 파일의 폴더명과 파일명을 정확히 입력해준다.
- 나의 디바이스 내 폴더명에 맞게 작성했으니 작성자마자 아래 빨간줄(폴더경로)을 제외한 입력란은 상이할 것이다.
- 오타에 유의하면서 항목위치 입력란에 다음과같이 작성해준다.
C:\Windows\System32\cmd.exe /k "javaw -jar C:\dev\deploytest\crud-0.0.1-SNAPSHOT.jar"
바로가기명은 임의로 작성해준다.
바로가기 생성 시 바탕화면에서 다음과같은 아이콘을 확인할 수 있다.
이때 주소창에 다음 포트번호를 치고 들어가면 브라우저에서 아래와 같은 화면을 통해 잘 구동하고있음을 확인할 수 있다.
윈도우 시작과 동시에 동작하게 하기
- 윈도우 + r 을 눌러 실행창을 실행한다.
윈도우키 + R
- 엔터를 치면 뜨는 시작프로그램 파일에 앞서 만든 바로가기 파일을 담아둔다.
- pc가 켜지면 항상 이 프로세스가 동작하게 된다.
- 그러나 이 방법은 이미 프로그램이 동작중이라는 이유로 테스트중에 오류를 야기시킬 가능성이 많으므로 꼭 필요한 경우가 아니라면 지양하려 한다.
(+)
만약 앞서 설정한 포트 번호 8001을 바꾸고 싶다면
프로젝트 우클릭 > Run As를 통해 들어간 경로에서 chap01을 삭제하면 된다.
지금까지의 테스트는 Windows OS에서의 테스트로 GUI 환경이었지만 일반적인 배포 운영 환경은 Linux로 CLI 환경이다.
앞서 배포한 파일은 기본적으로는 외부에서 접근이 불가능하다.
공유가 할당해주는 내부 아이피를 사용하고있기 때문인데 외부에서 내부아이피로 접속요청을 하고자 한다면 누구에게 할당할 것인지를 설정 해주어야 외부 접속이 가능하다.
포트 포워딩
포트 포워딩을 해주면 실행시킨 jar 파일을 외부에서도 접속하도록 할 수 있다.
- 아이피를 기억해서 요청하기 힘들다면 도메인을 사용할 수 있다.
- iptime에서 제공하는 DDNS 설정으로 도메인을 만들거나 무료 도메인을 발급 받을 수도 있으나 매번 쳐야하는 주소가 아이피 만큼이나 복잡하다는 단점이 있다.
- 단순명료한 도메인이 필요하다면 유료로 도메인 등록 대행 기관을 통해 도메인을 발급 받아 관리할 수 있다.
가비아: 대한민국 도메인 점유율 1위
대한민국 100만 도메인 등록 업체
domain.gabia.com
예시로 아무 주소나 쳐 보았다. 주소에 따라 가격대별로 상이한 모습니다.
AWS(Amarzon Web Service)
개개인의 pc를 서버로서 물리적으로 사용할 수는 있으나 이 방법은 해당 pc가 꺼지는 순간 서비스가 종료된다.
때문에 하드웨어의 제약 없이 애플리케이션을 배포하기 위해 클라우드 환경을 활용하는 경우가 많다.
클라우드 환경의 종류는 다음과 같은 것들이 있다.
- EC2 : 서버용 컴퓨터 제공
- RDS : 데이터베이스 서버 제공
- Route53 : 도메인 주소 제공
다만 이 방법은 만드는 것은 무료이지만 접속량에 대해 과금이 발생할 수 있다는 점에 유의한다.
'Programming > DOCKER' 카테고리의 다른 글
도커컨테이너관리하기 (0) | 2022.05.03 |
---|---|
도커 이미지 관리하기 (0) | 2022.05.03 |
도커의 구조와 특징 (0) | 2022.05.02 |
도커 (docker) 설치하기 (0) | 2022.05.02 |
docker를 사용하는 이유 (0) | 2022.05.02 |