인프런 커뮤니티 질문&답변

Joshua Kim님의 프로필 이미지
Joshua Kim

작성한 질문수

Spring Boot를 활용하여 채팅 플랫폼 만들어보기

MySQL Transaction Manager Config

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

해결된 질문

작성

·

16

0

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

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

 

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

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

 

감사합니다.

답변 2

0

Hong님의 프로필 이미지
Hong
지식공유자

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

 

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

감사합니다 :)

0

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

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

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

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

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

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

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

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

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

Joshua Kim님의 프로필 이미지
Joshua Kim

작성한 질문수

질문하기