인텔리제이를 실행해 [Gradle] 탭을 누른 다음 [Tasks->build->build]를 더블클릭해 빌드를 진행한다.
위와 같은 오류가 발생하였다. 위 오류는 Gradle이 MySQL 커넥터 자바 라이브러리를 찾지 못하여 발생한 것이라고 한다. 해당 문제는 build.gradle에 추가한 mysql 의존성을 추가한 부분을 빌드하는 과정에서 제대로 추가하지 못해 발생하는 문제인 것 같았다.
기존에 추가한 의존성은 다음과 같이
implementation 'mysql:mysql-connector-java'
mysql의 버전을 명시하지 않고 추가를 해놨는데, 버전을 명시하지 않아 빌드하면서 못 잡아내는듯 하여 현재 사용하고 있는 mysql의 버전을 직접 찾아 다음과 같이 수정하였다.
SELECT VERSION();
implementation 'mysql:mysql-connector-java:8.0.35'
하지만 위와 같이 수정했음에도 같은 오류가 발생하여 8.0.34 버전으로 내려서 빌드를 해봤지만, 똑같은 오류가 발생해 결국 다음과 같이 8.0.33 버전으로 하니 해결이 되었다.
implementation 'mysql:mysql-connector-java:8.0.33'
cf. 이전 빌드 파일들 초기화
이전에 잘못된 빌드 파일들을 초기화 하려면 오른쪽 Gradle탭 -> build -> clean을 더블클릭하면 된다.
또는 ./gradlew clean 명령어를 터미널에 입력한다.
빌드가 끝나면 [build -> libs]에 빌드 완성 파일이 생성된다. 생성된 jar 파일을 복사해둔다.
Elastic Beanstalk로 들어가 생성된 환경의 이름을 선택하고 [업로드 및 배포]를 클릭한 다음 빌드 완료 후 생성된 jar 파일을 선택한다.
[구성] 탭으로 들어가 [업데이트 모니터 및 로깅] 부분의 [편집]을 클릭한다. 애플리케이션을 실행하기 위한 하위 포트 값과 OAuth2의 정보들을 다음과 같이 환경변수로 추가해줘야 한다.
값 추가 후 [적용]을 눌러 환경을 업데이트 한다. 업데이트 완료 후 Elastic Beanstalk에서 제공하는 서버의 도메인 주소값에 /login을 붙여, 다음과 같이 로그인 화면에 정상적으로 접속이 되는지 확인한다.
하지만 OAuth 로그인 시도 시 액세스 거부 에러 메시지가 발생한다. 따라서 OAuth 서비스에서 승인된 URL에 일래스틱 빈스토크 서버 URL을 추가해주어야 한다.
구글 클라우드 콘솔에 접속 후 [API 및 서비스 -> 사용자 인증 정보 -> OAuth2.0 클라이언트 ID]에 추가되어 있는 클라이언트 ID를 클릭한다.
[OAuth 클라이언트 수정 -> 승인된 리디렉션 URI]에 Elastic Beanstalk에서 띄워준 서버의 URL을 추가한다. 승인된 리디렉션 URI에는 다음과 같이 /login/oauth2/code/google을 붙여야 한다.
http://blog-env.eba-dkzbkfkp.ap-northeast-2.elasticbeanstalk.com/login/oauth2/code/google
정상적으로 로그인이 되는지 확인하고, 글이 제대로 작성되는지도 확인해본다.
로그인이 성공적으로 이루어지고, 글 작성 등 여러 기능들도 제대로 구현되는 것을 확인하였다.
해당 글은 다음 도서의 내용을 정리하고 참고한 글임을 밝힙니다.
신선영, ⌜스프링 부트 3 벡엔드 개발자 되기 - 자바 편⌟, 골든래빗(주), 2023, 384쪽