홈페이지의 admin에서 로그인을 하려고 하는 순간 메일이 보내지지 않는 오류가 발생을 하였다.
확인결과 local 환경과 prod 환경을 구분하지 않고 local환경에서 빌드가 되어 생긴 오류였다.
이것을 해결하기 위해서는 각 환경마다 빌드가 다르게 되어야 할 것이다.
maven 프로젝트에서 환경마다 다르게 빌드를 진행하려면 profile을 사용하면 쉽게 해결된다.
//spring.profiles.active = @{변수}@
spring.profiles.active=@activatedProperties@
#spring.profiles.active=prod
#mybatis
mybatis.type-aliases-package=com.posco.model
mybatis.mapper-locations=mappers/**/*.xml
mybatis.configuration.map-underscore-to-camel-case=true
#logger
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) --- [ %thread{10} ] %cyan(%logger{20}.%M:%L) : %msg%n
logging.level.root=INFO
spring.profiles.active를 수정해 주었다. 환경에 따라서 activedProperties가 변하는 것을 확인 할 수 있다.
application.properties을 수정 후 pom.xml을 수정해 주어야 한다.
activedProperties는 개발자 자신이 붙인 변수이기에 이 파일만 수정해 주면 오류를 발생시킨다.
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<activatedProperties>local</activatedProperties>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<activatedProperties>dev</activatedProperties>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<activatedProperties>prod</activatedProperties>
</properties>
</profile>
<profile>
<id>stage</id>
<properties>
<activatedProperties>stage</activatedProperties>
</properties>
</profile>
</profiles>
위의 코드를 보면 각 환경마다. profile을 설정하여 환경이 달라질 때 마다 aplication-{profile}.properties 가 달라지는 것을 볼 수 있다.
그리고 빌드를 하게되면 해당 환경에 맞게 빌드가 이루어 질 것이다.
mvn spring-boot:run –P prod
명령어를 입력하면 profiles에 따라서
이렇게 active stage가 변경된 것을 알 수 있다.