국비교육이 끝나고 슬슬 최종프로젝트에서 구축했었던 자동배포 시스템에 대해서 적어보려고 한다.
이번 국비교육에서 가장 크게 느꼈던 점이 다른 분들은 기술에는 크게 공을 많이 들이지만 배포에는 도전을 하지 않는다는 것을 많이 느꼈다.
그렇기에 이번에 팀원들을 설득하여 동의를 받고(반대는 많았지만...) 프로젝트 시작 1주일 전부터 밤을 새워가며
깃허브액션에 대해서 공부를 시작했었다.
하지만 시작부터 큰 문제가 있었다. 팀원들의 반대도 있었지만 그보다도 스프링 프레임워크를 깃허브액션으로
배포하려니 구글에는 스프링부트에 관한 정보밖에 없었다.(정말로 하나도 없었다.....)
구글에 정보가 없었기 때문에 ChatGPT가 도움이 될 리가 없었고 그렇기에 Gradle스크립트를 처음부터 공부하기 시작했었다.
그렇게 공부를 하다 보니 스프링 프레임워크와 부트의 큰 차이점이 스프링 프레임워크는 Gradle자동빌드가 불가하지만 부트는 자동이라는 것이다.
그렇기에 나는 먼저 Gradle빌드를 수동으로 하는 방법부터 찾아봤었다.
그럼 설명을 시작하겠다.
우선 깃허브에 gradle 설정부터 시작해야 한다.
깃허브 레포지토리를 생성하고 들어가서 Action을 클릭한다.
클릭을 하면 Choose a workflow라는 페이지가 나올 건데 여기서

이것의 Configure 버튼을 누른다.
누른 다음 일단은 바로 커밋을 한다.
여기까지 끝났다면 깃허브 액션의 초기세팅은 끝이다.
이제부터는 로컬저장소에 이 gradle파일을 불러와야 한다.
우선 이클립스에서 레포지토리를 불러온다.





이렇게 생성이 되었다면 프로젝트를 불러온다. (불러오는 건 일반 프로젝트와 동일)
이렇게 프로젝트를 불러왔다면 이제 gradle build를 해줘야 한다.
위에서 말했다시피 Spring Framework는 gradle 자동빌드가 불가능하다.
그렇기에 무조건 Gradle을 윈도에 설치하고 따로 빌드파일을 생성해줘야 한다.
https://gradle.org/releases/ 여기에 들어가서 binary-only를 클릭하여 파일을 설치한다.

다운이 끝났다면 압축을 해제하여 C드라이드에 Gradle이라는 폴더를 만들고 그 안에 압축을 해제한 파일을 넣는다.

그다음은 환경변수를 설정해 줘야 한다.
윈도 검색창에 '시스템 환경 변수 편집'을 검색한 다음

환경변수를 클릭하고

시스템 변수의 Path를 편집.
추가를 눌려서

방금 넣은 gradle폴더의 bin경로로 지정해 준다.
그다음 깃허브 레포지토리 프로젝트의 경로인 C:\사용자\윈도 계정\. git\프로젝트 이름 폴더로 들어가서

이곳을 클릭하여 cmd라고 입력한 다음 엔터를 누르면 이 경로의 cmd창이 열릴 거다.
이제부터 빌드의 시작이다.

정보가 없는 상태에서 스프링부트와 같이 바로 gradle build를 입력하면 이렇게 뜰 것이다.
이건 gradle.build파일이 없어서 뜨는 오류이다. 그렇기에 우선 초기화를 시켜줘야 한다.

gradle init
이렇게 입력을 하면 아까 다운로드한 gradle.bat이 실행돼서 빌드파일을 자동으로 생성해 줄 것이다.
끝나고 다시 build를 해보면 아래와 같은 오류가 뜰 것이다.

이건 gradle에서는 providedCompile이라는 코드를 인식하지 못하니 수정해라는 뜻이다.
그렇기에 이것을 'CompileOnly'로 수정해 주면 해결된다.

settings.gradle.kts을 이렇게 수정해 주고 다시
gradle build
해주면

이렇게 빌드성공이 뜬다.
국비 Java백엔드 학원이라면 전부 Spring Framework를 사용할 것이다.
깃허브 액션으로 파이프라인을 만들어 보고는 싶지만 며칠을 밤새워서 찾아봐도 전부 boot에 관련된 글밖에 없었다.
그렇기에 혹시나 국비교육을 듣고 있고 AWS로 배포를 생각하고 있는 교육생이 있다면 꼭 이 방법으로 파이프라인을 구축해 보는 것을 추천한다.
이것을 사용한다고 하면 100% 팀원들이 "왜 써야 하죠??"라고 질문을 던질 것이다.
그때는 그냥 보여주고 실시간으로 사이트가 배포되는 것을 보여준다면 팀원들도 인정을 할 것이다.
이번글에서는 Spring Framework으로 gradle 빌드방법에 대하여 써보았다.
다음편에서는 깃허브액션의 작동방법을 써보도록 하겠다
'개인 서버(도커등)' 카테고리의 다른 글
우분투 전체용량, 잔여용량, 사용가능용량 출력 (0) | 2023.10.24 |
---|---|
국비교육생 추천!! 스프링 프레임워크 + 깃허브액션 CI/CD 파이프라인 배포 (2) (깃허브 액션 구성) (0) | 2023.10.03 |
톰캣서버 오라클db jdbc로 연동 (JSP) (0) | 2023.05.23 |
시놀로지 도커 Tomcat8.5 서버구축 (0) | 2023.05.07 |
도메인을 시놀로지 Web Station의 하위폴더에 연결하기 (0) | 2023.04.23 |