inflearn logo
강의

Course

Instructor

Building a Chat Platform Using Spring Boot

MySQL Transaction Manager Config

안녕하세요 MySqlConfig 설정에 대해 질문이 있습니다.

Resolved

125

Joshua Kim

5 asked

0

안녕하세요 지식 공유자님.

MySqlConfig 클래스에 대해 질문이 있습니다.

 

yml 에 이미 mysql 정보들을 설정했는데 MySqlConfig 클래스에서도 @Value 를 통해 설정정보를 또 작성하는 것은 무엇을 위함인것일까요?

제가 알기로는 Spring Boot의 자동 설정이 application.yml의 설정들을 자동으로 읽어와서 DataSource bean으로 구성하는 것으로 알고있는데 다시 작성하는 이유가 궁금합니다.

 

감사합니다.

mysql spring-boot jpa jwt websocket

Answer 2

0

Hong

좀 더 명확하게 하고자 하여 작성을 하였습니다. 제가 혼자 개발을 한다면 제가 모든 부분을 관리하고 알고있기 때문에 상관이 없겠지만 아무래도 협업을 하는것이 개발자의 역할 중 하나이기 떄문에 코드가 길어지고 중복된 함수들이 생성이 되더라도 다른 사람이 볼 때 최대한 큰 문제 없이 보고 이해 할 수 있는것이 좋다고 생각합니다.

 

이러한 관점에서 작성이 되었고, 큰 뜻은 없습니다. 습관적으로 작성을 한것이니 편하신대로 작업 하셔도 무방 할 꺼같습니다.

감사합니다 :)

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. Joshua Kim님.

환경 설정과 관련된 질문을 주셨네요. Spring Boot에서는 일반적으로 application.yml 파일에 데이터베이스 연결 정보를 설정합니다. 그리고 Spring Boot의 자동 설정에 의해 이러한 설정이 자동으로 읽혀서 DataSource로 설정되는 것이 맞습니다.

하지만 직접 MySqlConfig 클래스를 작성하여 @Value로 설정 정보를 주입하는 이유는 다음과 같은 몇 가지 이유가 있습니다:

  1. 커스터마이징: 자동 설정만으로는 커버할 수 없는 Spring Boot의 세부적인 부분이나 특정한 비즈니스 로직에 따라 데이터베이스 연결 설정을 커스터마이징해야 할 필요가 있을 때, @Configuration을 사용하여 직접 설정해줍니다.

  2. 여러 데이터 소스 사용: 하나의 어플리케이션에서 여러 개의 데이터베이스에 연결해야 하는 경우, 각각에 대한 연결 설정을 별도로 지정해야 합니다. 이런 경우 MySqlConfig 같은 클래스를 사용하여 각각의 데이터 소스를 설정합니다.

  3. 명시적 설정: 일부 프로젝트에서는 설정 파일과 코드에서의 명시적 연결을 선호할 수 있습니다. 명시적으로 작성된 설정은 가독성을 높이고, 설정이 변경될 경우 직접 확인하고 수정할 수 있는 장점이 있습니다.

관련된 유사 질문은 다음 링크에서 확인해보시면 좋습니다:
1. Spring Boot에서 다중 데이터 소스 설정 방법: 다중 데이터 소스를 사용하는 방법과 이유에 대한 설명을 포함하고 있습니다.

이러한 이유들 때문에 yml 파일에 설정해둔 사항을 MySqlConfig 클래스에서도 재정의하거나 커스터마이징할 수 있습니다. 또한, 프로젝트 요구 사항에 따라 이러한 접근이 필요할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

패키지 구분에 대해 궁금한게 있습니다

0

7

1

스프링부트 서버 에러나요

0

17

1

코드를 첨부해야하는 이유가 있나요?

0

20

2

74. 데이터 캐시 - 1 (이론) 강의 영상 누락

0

26

1

2026.04에 추가된 강의 시청 불가

0

27

1

비전공자인데 AI가 발전한 요즘 백엔드로 진로를 하고 싶으면 어떤식으로 공부를 해야 하는지 알 수 있을까요???

0

60

1

STOMP에서 메세지를 전송하는 방법에 대해

0

89

1

JWTDecodeException 에러가 나옵니다.

0

144

2

서비스 구동하며 테스트와 디버깅하기 - 1 에서 기동하는 방법

0

118

2

MySQLConfig 관련 질문있습니다.

0

168

2

ChatListResponse에 @Valid을 붙인 이유

0

133

2

checkTokenForRefresh에 대해 궁금한점

0

112

2

Client 파일은 어떤 IDE로 실행시키나요??

0

188

2

독립적인 Transactional을 둔 이유

2

140

2

springdoc이 무슨 설정인가요??

1

120

2

JwtProvider 를 Component 로 선언하신 이유가 궁금합니다.

0

199

2

안녕하세요 연관관계에 대해 질문이 있습니다.

0

143

2

MySQL을 미리 설정을 해놔야할까요?

0

174

3

./gradlew clean build 하면 오류가 생깁니다.

0

1176

2

작동하는 방법

0

175

2

Package 구성

0

145

2

@Transactional(transactionManager = "createChatTransacationMansger") 질문 있습니다.

0

182

2

강의 들으면서 블로그에 올려도 될까요?

0

181

2

실 서비스 환경 문의

1

261

2