Today I Learned

[TIL] 06/07/2023 프로파일을 개발 환경용, 실제 운영 환경용으로 구분

jnk1m 2023. 6. 7. 15:18

오늘 한 것

1. 프로파일을 개발 환경용, 실제 운영 환경용으로 구분했다. 

2. 로그인 기능을 포함해서 재배포. 하지만 개발 환경에서는 잘 되던 부분이 실제 운영 환경에서는 잘 되지 않는다. 왜 신규 회원이 google sign in 으로 들어와서 계정을 선택하면 authorization_request_not_found가 뜨는지?.. 그리고 다시 로그인으로 들어와서 계정을 클릭하면 로그인이 된다....


오늘 배운 것

1. Google OAuth2의 경우, application-properties에 redirect-uri를 별도로 명시하지 않으면 기본 패턴으로 사용하게 된다. 즉, http://localhost:8080/login/oauth2/code/google 형식이 된다.

하지만 실제 운영 환경에서는 어플리케이션의 실제 도메인 이름을 사용해야 한다. 따라서 redirect-uri를 application-properties에 명시해야 한다. 

 

2. 개발환경용 프로파일 인텔리제이로 실행하는 방법:

Edit Configuration -> Active Profile 항목에 프로파일의 이름을 넣어주기.

나는 application-dev.properties로 해놨기 때문에, Active Profile에 dev를 기입해줬다.

 

3. 실제 운영 환경용 파일 프로파일 지정하여 배포하는 방법:

- 빌드는 평소대로 해준다 (package, clean package, etc...)

- nohup java -jar -Dspring.profiles.active=prod /path/to/your/jarfile.jar & 커맨드 라인을 날려서 실행하기

- 실제 운영 환경용 프로파일 이름이 application-prod.properties 이기 때문에 Dspring.profiles.active=prod으로 한거니까 각자 이름에 맞게 수정해서 날리면 된다.

 

4. 어플리케이션 실행 로그 확인하려면 nohup.out 파일을 확인하자.

실행 중인 서버에서 다음 명령어를 날리면 확인 가능하다.

tail -f nohup.out

오늘 해결한 것

1. Account 버튼을 누르면 google sign in으로 넘어가서 최종적으로 mypage로 넘어가는 플로우. 개발 환경에서는 잘 됐지만 배포한 후에 서비스 환경에서는 에러가 발생했다.

Error resolving template [/mypage], template might not exist or might not be accessible by any of the configured Template Resolvers] with root cause

컨트롤러에서 html 파일을 리턴할때 앞에 "/"를 붙여서 그런 것. 슬래시를 제거하자 정상 작동함.