반응형

  자 여태까지 만들었던 프로젝트를 아마존에 배포할 시간이다.

https://extsdd.tistory.com/113

 

[Spring/eGov ] #8 이클립스에서 마리아DB 데이터 조회하기 / MyBatis / 컨트롤러 Controller / 서비스 / DAO /

https://extsdd.tistory.com/112 [Spring/eGov ] #7 스프링, 전자정부프레임워크 샘플 예제- 마이바티스(MyBatis)로 마리아 DB 연동하기 / https://extsdd.tistory.com/102 [Spring/eGov ] #6 웹 서비스 만들기 2..

extsdd.tistory.com

  여기까지 못따라온 사람은 위 글까지 마치고 오면 될 것 같다.

 

메이븐 프로젝트 / Maven

 

 

  자 지금까지 정자정부프레임워크(스프링)으로 간단한 서비스를 만들었고, 그걸 내 서버에서 돌려봤다. 서버에서 돌리기위해 이클립스상에서 Run을 누르면 JDK환경에서 실행할 수 있는 최소 실행파일만 생성되어 로컬 톰캣에 올라가는 것이지만. 이제 정식으로 내 서비스를 실제 서버에 올리려면 그 서버가 받아 들일 수 있게 만들어야한다.

 

  이게 바로 패키징 과정이라고 하며 Build라고도 부른다. 갤럭시폰을 만들기위해 삼성전자에서 액정 따로 사고, 메인보드사고, 저장장치사고 전선으로 대충 이어서 전원들어오고 작동시켜보면서 테스트는 해보자. 실제로 이런식으로 고객에게 팔지는 않는다. 그걸 다 다듬어서 플라스틱 외관에 담아 우리가 아는 핸드폰의 모양으로 만들어 고객에게 판다. 이거랑 똑같은거다. 소프트웨어도 실제로 완성을 하면 Build 과정을 통해 이걸 다른 JAVA환경에서 실행할 수 있게 만들어 줘야 하는 것이다.

 

 

 

 

 

  메이븐, 많이 들어봤을 것이다. 보통 라이브러리 관리할 메이븐 dependency를 이용해 간단하게 추가하니까 말이다. 맞다 보통 알고있다시피 메이븐이 간단하게 라이브러리 주소만 디펜던시로 걸어주면 알아서 그 라이브러리의 최신본을 따오는 기능을 수행한다. 하지만 더 중요한 기능이 있다.

 

  바로 이 프로젝트를 패키징하여 빌드하고 이 산출물을 통해 배포할 수 있는 배포 툴인건다. 메이븐 프로젝트라는 단어도 들어봤을 것이다. 혹시 그래들이라고도 들어봤나..!? 보통 메이븐과 그래들을 쌍쌍바처럼 같이 다니는걸 들어봤을텐데 이게 다 최종 산출물을 만들어주는 프레임워크의 이름인거다. 자. 결론만 말하자면 이 메이븐이라는 친구가 우리가 EC2서버에서 우리 프로젝트를 돌릴 수있도록 완성품을 만들어주는 역할이라고 생각하면 된다.

 

1. Maven Clean

 

 

 

  자 일단 처음부터 깔끔하게 시작하기 위해 Maven Clean과정을 통해 깔끔하게 없애주자. 본인 프로젝트 오른쪽마우스(1)를 누른뒤 Run As를 누르고(2) Maven clean을 눌러주자(3)

 

 

  여기서 오류나는 사람은 없을꺼고, 보통 다 빌드 성공이 뜰 것이다.

2. Maven Test

 

  자 이제 메이븐을 밀어줬으니 빌드 할 준비가 되었는지 확인하기 위해서 Maven Test를 진행해주자.

 

 

  위 설명대로 이번엔 Maven test를 눌러보자!

 

 

  짜잔~ 빌드 성공

TroubleShooting

 

 

 

  혹시나 저런식으로 JRE, JDK에 관련된 오류가 나타나면 아래 포스팅을 참조해 해결하고오자!

https://extsdd.tistory.com/122

 

[Spring/eGov] 메이븐 빌드 실패 / Failed to execute goal / Perhaps you are running on a JRE rather than a JDK

자 메이븐 빌드를 했는데 위처럼 JRE대신 JDK를 써보라는 오류가 발생했다. 원인은 간단하다. JRE로 빌드를 못한다는거다. JDK로 경로를 다시 잡아주면 된다. 1. Installed JREs 재설정 이클립스 상단 윈�

extsdd.tistory.com

  나도 저 오류가 나타났어 잠시 헤멨었다 ㅎㅎ

 

3. Maven Install

 

  자 다시 본론으로 와서, 이제 진짜 Maven 배포파일을 만들어보자!

 

 

  과정은 똑같고 빌드할 프로젝트를 눌러 Maven Install 버튼을 눌러주자..!

 

 

  그럼 글자들이 쭈루룩 지나가면서 4초만에 완성이 됐다! Build SUCESS!

4. 배포파일 확인

 

 

 

  빌드후 달라진 점이라면 target 폴더에 .war 파일이 생성됐다..! 이게 배포파일이고 이걸 톰캣 폴더에 갔다놓고 재부팅하면! 내가만든 서비스가 시작된다!

 

  저 배포파일의 위치를 잠깐 알아둬야하는데

 

 

  해당 .war 파일을 오른쪽마우스 클릭후 Properties를 눌러주자.

 

 

  저기 로케이션에 나온 경로를 복사해두던지 아님 어디 메모장 같은데 메모를 해놓는다.

5. FileZilla SFTP를 이용한 배포

 

  배포방법에는 수많은 종류가 있다. GIT으로 EC2 인스턴스에 소스를 받아서 Maven Wrapper로 그 자리에서 빌드하는 방법이 있고, 비슷하게 그래들로 하는 방법도 있고, 젠킨스 같은 툴을써서 배포를 더 쉽게하는 방법이 있지만, 나는 소스 수정이 많지 않아 가장 직관적인 방법은 FTP로 직접 배포파일을 쏘기로 했다. ㅎㅎ..

 

https://extsdd.tistory.com/121?category=853192

 

[아마존 AWS EC2] EC2 서버 FileZilla로 FTP 접속하기 / Root 계정 접속 / 파일질라 / SFTP

이제 우리가 만든 EC2 인스턴스에 FTP 접속을 시도해보자. FTP 접속 툴로는 대학교때무터 자주 썼던 파일질라로 정했다. 먼저 알아두자면 FTP란 FIle Transafer Protocol 로써 장비간 파일을 주고받는 프로

extsdd.tistory.com

  자 일단 선행되어야 할 것이 있다면, FIleZilla를 다운 및 설치 후, Root 계정으로 EC2 인스턴스에 붙는 과정을 진행해야한다. 위 포스팅을 보면 나와있으니 따라하고 오면 된다.

 

 

  자 시작해보자.

  1. 먼저 화면의 좌측이 내 실제 컴퓨터다. 저기 1번 박스에 위에서 아까 복붙해놓은 .war파일의 경로를 쳐서 찾아가던지, 디렉토리를 눌러서 찾아가던지 알아서 완성된 .war파일이 있는곳까지 가라.

 

  2. 우측화면은 EC2 인스턴스다. 본인들이 설치한 톰캣폴더의 webapps폴더까지 들어가라, 내 포스팅을 보고한 사람들은 아마 폴더를 server에 만들었을 것이다.

 

  3. 우리 컴퓨터에 있는 .war파일을 오른쪽마우스 눌러주자.

  4. 당연히 업로드 버튼을 눌러준다.

 

 

  오오... 퍼센트가 다 차서 전송이 완료되면 우측 EC2 인스턴스에서도 우리가 만든 .war파일을 볼 수 있다.

6. 톰캣 재부팅

 

  이제 톰캣 재부팅을 하면 저 .war파일을 서버가 돌리기 시작한다.

 

 

  우리 서버로 돌아가서 일단 SU 권한으로 접속후 본인들이 만들어놓은 아파치 톰캣폴더의 bin 폴더까지 이동해보자.

cd /server/apache-tomcat-8.5.55/bin

 

  나 같은 경우에는 위 주소에 톰캣을 설치해놨기 때문에 내 포스팅을 보고 온사람들은 위 명령어를 입력하면 톰캣의 bin까지 올 수 있다.

 

 

 

./shutdown.sh

 

  bin폴더까지 왔으면 위 명령어를 이용해 서버를 꺼주자.

 

 

 

./startup.sh

 

  다시 톰캣 시작명령어를 치고 톰캣이 부팅되면, 아까 넣어놨던 .war파일을 인식해 돌리게 된다.

 

7. 결과 확인

 

http://본인AWS아이피주소:8080/CP_service-1.0.0/reqUrl.do?reqParam=3

 

  위 경로를 찍어보자, 주소중 "본인AWS아이피주소" 이칸에 본인 EC2 IP주소를 넣으면 된다. 그리고 :8080은 톰캣 포트고 뒤에 CP_service-1.0.0 이란게 붙었는데 이건 우리가 만든 배포파일인 .war의 이름이기도 하다. 이거 안보이게 하는법은 나중에하도록하고 우리가 전에 만들었던 변수에따라 url을 리다이렉션 해주는 서비스가 정상적으로 작동하는지 확인하자!

 

 

  아마 위와같은 창이 뜨면 성공인거다!. 엥? 에러가발생했는데 왜 성공이야? 할 수 있지만, 이 에러는 우리가 EC2 서버에 설치한 마리아DB에 테이블이랑 데이터를 넣지 않아서 그런거다. 일단 저 화면이 나오는거 자체만으로 WAS는 문제 없이 돌고있다는 것이다. 왜냐하면 내가 만든 reqUrl.do라는 요청에 어떻게든 반응은 나타내고 있으니까! 오늘은 여기까지하고, 다음에 한번 마리아 DB에 값을 넣고, 테스트해보도록 하자.

 

#AWS #EC2 #스프링 #전자정부프레임워크 #메이븐 #프로젝트 #배포 #파일질라 #Maven #Filezilla #Build #install #빌드 #인스톨

 

반응형
  1. 찰도마도 2021.11.05 06:46

    많은 도움 되었습니다. 정말 감사합니다.

반응형

 

 

 

  자 메이븐 빌드를 했는데 위처럼 JRE대신 JDK를 써보라는 오류가 발생했다.

 

  원인은 간단하다. JRE로 빌드를 못한다는거다. JDK로 경로를 다시 잡아주면 된다.

 

1. Installed JREs 재설정

 

 

 

  이클립스 상단 윈도우 버튼(1)을 누른뒤 Preferences버튼을(2) 눌러주자!

 

 

  1. 자바 탭을 누른다.

  2. Installed JREs 탭을 누른다.

  3. 여기를 보면 지금 Path가 JRE로 잡혀있다.. 분명... 나랑 환경설정하면서 JDK도 설치했는데 왜..! JRE로 잡고 있는거야 ㅡㅡ.... 그래서.. 수동으로 Path를 잡아줘야한다.

  4. Add 버튼을 눌러주자.

 

 

  1. 창이나오면 Standard VM으로 나와있을텐데 그냥 두면된다.

  2. 바로 Next를 눌러 넘어가주자.

 

 

  1. 자 여기서 JDK 경로를 잡아달라고 하는데 메뉴명을보면 JRE home이다. 뭐야 ㅡㅡ JDK를 잡으라는거야 JRE를 잡으란거야 생각이 들 것이다. 왜냐면 나도그랬으니까. 이건 JDK폴더 안에 있는 JRE폴더를 잡아주면 된다. 1번 박스에 나온 경로대로 보통 C드라이브-프로그램파일-JAVA폴더를 가면 JDK폴더가 있을것이다. 그폴더를 열어서 그 폴더 내부에 있는 JRE폴더로 잡아주자.

 

  혹시나 JDK가 없는거 같다!! 하는사람은

https://extsdd.tistory.com/49

 

[스프링/전자정부 프레임워크 입문] #3 개발환경 셋팅 / JDK1.8 / 전자정부 프레임워크 설치

1. JDK 설치 2. 전자정부 프레임워크 설치 1. JDK 설치 1. JDK 설치 비전공자들을 위해 JDK가 무엇인지 간단하게 알아보자. 전편 글들을 읽으면 분명 우리가 사용하려고하는 프레임워크는 JAVA 플랫폼 ��

extsdd.tistory.com

  위 포스팅을 참조해 JDK를 설치하면 되겠다.

 

  2. 다시 본론으로 돌아와서, JDK폴더안에있는 JRE경로를 잡아주면 자동으로 2번 박스에 jar파일들이 잡힌다. 뭐 신경쓸건 없다. 그냥 아~ 제대로 인식하는구나~ 하면된다.

  3. Finish버튼을 눌러주자.

 

 

  1. 뚜둔! 이제야 jdk Path가 생겼다 새로 생긴 jdk경로에 체크박스를 해주고 (체크박스 꼭 해야함!)

  2. Apply를 눌러주자!

  3. 이제 Installed JREs 설정은 끝났다. 저 탭 옆에 있는 화살표를 눌러주자.

2. Execution Envirionment 재설정

 

 

 

  1. 마지막 설정이다 아까 설정했던 Installed JREs 하위에 있는 Execution Envirionment 탭을 눌러주자.

  2. 자기가 설치한 JDK의 버전을 따라가면되는데 난 JDK1.8이니 JavaSE-1.8을 선택!

  3. 그럼 아까 추가한 JDK Path를 체크해주자!

  4. 이제 진짜 끝! APply and Close를 눌러주자!

3. 결과 확인

 

 

 

  자 메이븐 빌드가 제대로 되는지 보기위해 일단 백지부터 시작하기 위해서 Maven Clean을 진행해주자

 

 

  일단 Clean은 완료!

 

 

  이제 우리가 추가한 JDK를 제대로 인식하는지 보기위해서 Maven test를 돌려보자!

 

 

 

  우왕..! 빌드 성공!! 아까 문제가 됐던 JRE, JDK 경로 오류는 나타나지 않는다!

 

#스프링 #전자정부프레임워크 #메이븐 #빌드 #실패 #Maven #Build #Failed

 

반응형
  1. 조동동고 2020.09.24 15:06 신고

    정말 잘보고있습니다 감사합니다 도움이 많이 되었습니다.

  2. 월국토공 2020.11.13 12:15

    전자정부 프레임웤 설명한 자료 중에서는 가장 쉽게 설명해 놓으셨네요.
    기본적인 사항을 이해하는데 도움이 많이 되었습니다.
    감사합니다.

  3. 호야 2021.01.19 22:29

    정말 많은 도움이되었습니다.
    감사합니다^^

+ Recent posts