• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

profile 인식 방법

22.04.25 11:10 작성 조회수 4.51k

1

server.port: 8080


spring:
config.activate.on-profile: local
output.ansi.enabled: always

datasource:
url: jdbc:h2:tcp://localhost/~/test_db
# url: jdbc:h2:tcp://localhost:9092/~/test_db # datasource url? ??? ?? ??? ? ??? ?? JVM ?? H2 DB? JPA? ???? ??.
username: sa
password:
driver-class-name: org.h2.Driver

jpa:
database-platform: H2
hibernate.ddl-auto: create
properties:
hibernate:
# show_sql: true
format_sql: true
use_sql_comments: true # querydsl JPQL? ??? ? console? ???? ????


logging.level:
org.hibernate.SQL: debug
org.hibernate.type: trace
1) 이렇게 작성하고 실행했는데
No active profile set, falling back to 1 default profile: "default"
이런 표현이 콘솔에 뜨는데, 스프링 시작할 때, 자바 코드로 profile 설정해주는 거 말고는 방법이 없는 건가요? 왜 인식이 안 되는지 모르겠네요. test는 local 대신 test로 바꾼 거 말고는 똑같은데...

2) profile 개념을 공부하면서 한 가지 궁금한 게 생겼는데 여쭤봐도 될까요? profile을 설정 안 하면 default 프로파일이 되고, default는 apllication.yml이 선택된다고 구글링을 통해 알게 되었습니다. 근데 여기서 궁금한 게, default로 application.yml이 선택되면 application.yml의 속성이 적용되어야 하는 거 아닌가요? 예를 들어, 전 application.yml에 output.ansi.enabled=true 로 설정했는데, 콘솔에 색이 입혀지지가 않아서요.. 이건 왜 그런 건가요?

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2022.04.26

안녕하세요. 강성욱님, 공식 서포터즈 y2gcoder입니다.

1) 먼저 application.yml을 보건데 스프링 부트 2.4.0 이상을 쓰고 계신 것 같습니다. 그러면 application.yml 에서는 spring.profiles.active로 사용하고자 하시는 profile명을 명시하시고, application-{profile}.yml 에서 지금 설정해놓으신 spring.config.activate.on-profile을 옮기시는 게 맞습니다.

2) 말씀하신 게 맞습니다. 다만 yml 파일은 들여쓰기 같은 개행에 민감한 파일이라, 띄어쓰기가 조금만 달라도 정상적으로 작동하지 않는 경우가 많습니다. 그리고 spring.output.ansi.enabled 의 값은 detect, always, never 세 값만 존재하는 것으로 알고 있습니다. true로 원래 적용이 되셨나요?

좀 더 자세한 내용은 밑에 링크로 첨부해두겠습니다! 감사합니다 :)

spring profile 적용(2.4.0 이후): https://koonsland.tistory.com/219

spring boot ansi.enabled 관련: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/ansi/AnsiOutput.Enabled.html

감사합니다.

강성욱님의 프로필

강성욱

질문자

2022.04.26

답변 감사드립니다! always인데 true로 헷갈렸네요~ 위 글에서 always로 설정했다는 의미였습니다