개발일지/2023_한이음

[spring boot] aws 백엔드 배포하기(1. jar파일로 빌드)

기억지기 개발자 2023. 8. 3. 00:32

🏕️상황

원래는 7월에는 배포를 진행할 예정이었는데, 여차저차 미뤄지게 되었다. 

그래서 한이음 팀장님이 더 이상 미뤄지면 안 될 거 같다고 얘기하기도 했고, 나의 경험 측면에서도 하루빨리 서버 배포를 해보는 것이 도움이 될 거 같다는 생각에 당장 배포를 제1의 목표로 가지게 되었다.

 

하지만 맨날 로컬 환경에서 기능 개발이나 해봤지.. 이쪽 aws, 서버 세계는 이번이 완전 처음이라 두려움이 앞섰다.

  • 멘토분과 멘토링을 통해 서버 배포 진행 :
     - 장점 
         1. 내가 편하다.
         2. 몰라서 헤매는 과정 없이 빠르게 배포를 할 수 있다.
     -단점
         1. 내 실력 향상엔 내가 직접 하는 것보단 좋지 않다.
         2. 그 과정을 내가 직접 하지 않았기 때문에 추후 유지/보수에 오히려 어려움이 생길 수 있다.
         3. 멘토님과 진행 과정에서 중간에 오류가 발생하면 멘토분의 시간을 많이 뺏게 되고, 결국 멘토링 시간의 부족으             로 또 서버 배포가 늦어질 수 있다.
  • 내가 스스로 서버 배포 진행 :
    - 장점
         1. 실력 향상에 훨씬 좋다. 🔜 가장 중요한 부분ㅎㅎ
    - 단점 
         1. 내가 모르는 부분이 많기 때문에 헤매다가 배포가 늦어질 수  있다.
         2. 혹시라도 aws쪽을 잘못 건드리기라도 했다가 문제가 생길 수도 있다. 

멘토님께 "스스로 욕심은 나지만 걱정되는 사안이 많다"라고 말씀드리니 이미 EC2 인스턴스는 생성된 상태라서 이후 작업은 내가 시도해 봐도 좋을 거 같다고 말씀하셨다. 그래서 내가 하기로 마음먹었다!!! 


🗝️과정/해결

멘토분께서 [jar파일로 빌드한 후에 서버에 올려서 테스트]를 먼저 해보라고 하셔서 처음으로 jar 파일로 빌드를 해보았다.

 

1. cd C:\23_HF319

cmd에서 프로젝트가 있는 경로로 이동한다.

2. gradlew build

Gradle 빌드 도구를 사용하여 프로젝트를 빌드하는 명령어

3. cd build/libs

현재 작업 디렉토리를 프로젝트의 build/libs 디렉토리로 변경하는 명령어

4. java -jar highway-spring-0.0.1-SNAPSHOT.jar

libs 내에 생성된 jar파일을 실행하는 명령어

[java -jar 'jar파일명'] 이 기본 명령어이고, jar 파일명은 해당 프로젝트 내에 libs 폴더에 들어가서 확인할 수 있다.

프로젝트의 폴더 계층
실제 빌드 화면 (혹시 모르니 일부 모자이크..)


💘후기

  • 이 작업을 하다가 내가 작성한 코드 중에 희한하게 작성한 메서드를 발견했고, 이 참에 그 부분도 수정할 수 있었다. 
  • 중간에 별의별 오류가 생겨서 2시간은 쓴 거 같다...ㅎ
  • jar파일로 빌드를 해본 건 완전 처음이라 뿌듯했다!!

💚jar파일로 빌드하는 것에 대하여...

IDE에서 빌드하는 경우:

  • IDE는 프로젝트의 소스 코드, 리소스 파일 등을 컴파일하고 패키징하여 실행 가능한 애플리케이션 또는 라이브러리를 생성합니다.
  • IDE는 프로젝트 설정을 기반으로 빌드를 수행하며, 사용자가 IDE에서 제공하는 GUI 인터페이스를 통해 빌드 옵션을 구성할 수 있습니다.

JAR 파일로 빌드하는 경우:

  • 명령줄 도구나 빌드 자동화 도구를 사용하여 프로젝트를 빌드합니다. 이는 주로 CI/CD 파이프라인에서 자동화된 빌드를 수행하는 데 사용됩니다.
  • 빌드 스크립트를 사용하여 빌드 프로세스를 정의하고 관리합니다. 이 스크립트는 프로젝트 의존성, 빌드 옵션, 패키징 방법 등을 정의합니다.
  • JAR 파일로 빌드하는 경우, 빌드된 애플리케이션은 JAR 파일 형식으로 패키징 되며, Java 클래스 파일과 리소스를 포함하고 실행 가능한 형태로 저장됩니다.

JAR 파일로 빌드하는 경우 장점 : 

  • 독립성: JAR 파일은 애플리케이션과 필요한 라이브러리 및 리소스를 하나의 파일로 패키징하므로, 애플리케이션을 다른 환경에서도 실행할 수 있습니다.
  • 배포와 공유: JAR 파일은 다른 사람과 애플리케이션을 공유하거나 배포하는 데 편리합니다. 라이브러리나 애플리케이션을 다른 프로젝트에서 사용할 수 있습니다.
  • 자동화: 빌드 스크립트를 사용하면 빌드 프로세스를 자동화하고 CI/CD 파이프라인에서 통합할 수 있습니다.
  • 효율성: 빌드 스크립트를 사용하여 커스텀 빌드 과정을 정의하고 원하는 대로 컴파일러 플래그, 리소스 경로 등을 설정할 수 있습니다.