[Way to PM] 백엔드(스프링부트) - .yml 파일에 MyBatis 적용 시 띄어쓰기의 중요성

2024. 3. 9. 17:43[Way to PM] 백 엔드

Over View

해당 글은 스프링부트 프레임워크 연습 중 마주할 수 있는 사소하지만 자주 마주하는 오류인 띄어쓰기와

.yml과 MYBatisdml 개념에 대해 다룹니다.


1. .yml이란?

 .yml은 YAML (YAML Ain't Markup Language) 파일의 확장자입니다.

 "YAML Ain't Markup Language"는 YAML이 마크업 언어가 아니라는 것을 강조하는 재귀적 약어(recursive acronym)입니다. 이는 YAML이 데이터를 표현하기 위한 언어라는 점을 명확히 하기 위한 것입니다.

 처음에는 "Yet Another Markup Language" (또 다른 마크업 언어)라는 의미로 시작했지만, YAML의 설계 목표와 사용 방식이 전통적인 마크업 언어(XML 등)와 다르다는 것을 강조하기 위해 변경되었습니다.

 이처럼 "YAML Ain't Markup Language"는 YAML이 단순히 문서를 마크업하기 위한 언어가 아니라, 데이터를 표현하고 교환하기 위한 강력하고 유연한 언어라는 것을 의미합니다.

 

2. MyBatis란?

 데이터베이스와의 상호작용을 돕는 영속성 프레임워크입니다. SQL 쿼리를 작성하고 실행한 결과를 자바 객체에 매핑하여, JDBC 코드 작성에 소요되는 시간과 복잡성을 줄여줍니다.

 @Mapper 어노테이션을 선언한 인터페이스에 메서드를 선언하고 매핑할 xml파일을 경로에 맞게 설정하면, 메서드를 선언할 구현체들을 자동을 생성한 후 쿼리문을 실행해 db에 특정 기능을 수행하고 결과 값을 담을 객체를 반환합니다. 

 

3. 스프링부트에서의 MyBatis 설정

 .yml 파일에 Mapper에 매핑될 xml파일의 경로를 설정할 때 띄어쓰기로 인해 오류를 마주했습니다. 

logging:
  config: classpath:logback-local.xml

 mybatis:
   mapper-locations: classpath*:mappers/**/*.xml

 

 다음과 같이 mybatis 경로 설정을 logging 밑에 한 칸 띄어쓰기 한 후 설정을 했습니다. 당시엔 인텔리제이 경고문만 뜰 뿐 에러로 나오지 않아서 계속 실행했는데 logging path를 해결할 수 없다는 오류만 계속 마주했습니다. (다시해보니 에러로 뜹니다)

 구글링을 해보던 중 mybatis 설정은 spring 설정 위 최상단에 위치해야 한다는 글을 본 후 실제 적용해보니 에러가 해결되어 매핑이 잘 이뤄졌습니다.

 추가로 정보를 검색해보니 mybatis설정이 spring 설정 위 최상단에 위치해야하는게 아니라, mybatis 설정을 한 칸 띄어써서 logging 설정으로 인식해 오류가 발생했던 것입니다.

 

 초심자들의 오류 중 많은 부분이 오타와 들여쓰기, 띄어쓰기에서 발생한다고 했는데 실제로 이러한 오류에 반복적으로 긴 시간을 쓰다보니 허탈함이 들곤 했으나 앞으론 이러한 기본적인 사항으로 오류를 마주하지 않기 위해 해당 부분에 대해 더블체크하고 오류 원인 탐색 시 다시 한번 더 체크하는 습관을 들여야겠습니다.