본문 바로가기
공부

STS3 : mybatis-config.xml 작성하기

by 선앤름 2026. 7. 2.

src/main/resources 위치에 새로운 xml 파일 생성하기

 


MyBatis의 전체 설정

쉽게 말하면 MyBatis에게 다음 두 가지를 알려주는 파일이에요.

1. Java 클래스 이름을 짧게 부를 수 있게 설정
2. SQL이 적혀 있는 mapper XML 파일 위치를 알려줌
 

전체 구조는 이렇게 이해하면 됩니다.

mybatis-config.xml
 ├─ typeAliases
 │   └─ Java 객체 별칭 설정
 │
 └─ mappers
     └─ SQL 쿼리문 파일 위치 설정

 

1. DOCTYPE 부분

<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-config.dtd">
 

이 부분은 이 XML 파일이 MyBatis 설정 파일 형식이라는 것을 알려주는 선언입니다.

쉽게 말하면:

이 파일은 MyBatis 설정 규칙에 맞춰 작성된 XML 파일입니다.
 

라고 알려주는 역할입니다.

MyBatis는 이 선언을 보고 <configuration>, <typeAliases>, <mappers> 같은 태그를 올바르게 해석합니다.


2. configuration

<configuration>
    ...
</configuration>
 

configuration은 MyBatis 설정의 가장 바깥쪽 태그입니다.

이 안에 MyBatis 관련 설정을 작성합니다.

configuration = MyBatis 설정 전체를 감싸는 큰 상자
 

3. typeAliases

<typeAliases>
    <typeAlias type="kr.ac.pcu.bookstore.model.Book" alias="Book"/>	
</typeAliases>
 

이 부분은 Java 클래스에 별명을 붙이는 설정입니다.

현재 설정은 이것입니다.

<typeAlias type="kr.ac.pcu.bookstore.model.Book" alias="Book"/>
 

의미는:

kr.ac.pcu.bookstore.model.Book 클래스를
MyBatis XML에서는 Book이라는 이름으로 짧게 부르겠다.
 

입니다.

typeAlias는 mapper XML을 더 간단하게 작성하기 위한 설정


4. mappers

<mappers>
    <mapper resource="mybatis/book.xml" />
</mappers>
 

이 부분은 SQL 쿼리문이 작성된 XML 파일의 위치를 MyBatis에게 알려주는 설정입니다.

현재 설정은:

<mapper resource="mybatis/book.xml" />
 

의미는:

SQL 쿼리문은 mybatis/book.xml 파일 안에 있으니
그 파일을 읽어서 사용해라.
 

입니다.

보통 이 파일은 이런 위치에 있어야 합니다.

src/main/resources/mybatis/book.xml
 

왜냐하면 resource="mybatis/book.xml"은 classpath 기준으로 찾기 때문입니다.

즉, 프로젝트 구조가 이렇게 되어 있어야 합니다.

src/main/resources
 └─ mybatis
     └─ book.xml

5. 전체 흐름

지금까지 작성한 설정들이 연결되는 흐름은 이렇습니다.

Spring 설정 파일
 ↓
SqlSessionFactoryBean
 ↓
mybatis-config.xml 읽음
 ↓
Book 클래스 별칭 등록
 ↓
mybatis/book.xml mapper 파일 읽음
 ↓
DAO에서 SQL 실행 가능
 

즉, 앞에서 작성한 Spring 설정의 이 부분이:

<property name="configLocation" value="classpath:mybatis-config.xml"></property>
 

바로 지금 작성한 mybatis-config.xml을 읽는 설정입니다.


6. 쉽게 비유하면

mybatis-config.xml은 MyBatis에게 주는 안내문입니다.

Book이라는 이름은 kr.ac.pcu.bookstore.model.Book 클래스를 뜻한다.

SQL 문장은 mybatis/book.xml 파일에 있으니 거기서 찾아라.
 

즉, MyBatis가 SQL을 실행하기 전에 필요한 기본 정보를 알려주는 파일입니다.


7. 현재 코드 정리본

주석을 조금 더 자연스럽게 정리하면 이렇게 볼 수 있습니다.

<!-- MyBatis 설정 파일 형식 선언 -->
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <!-- 
        (1) typeAliases
        Java 클래스의 전체 경로를 짧은 이름으로 사용할 수 있게 설정
        kr.ac.pcu.bookstore.model.Book → Book
    -->
    <typeAliases>
        <typeAlias type="kr.ac.pcu.bookstore.model.Book" alias="Book"/>
    </typeAliases>

    <!-- 
        (2) mappers
        실제 SQL 쿼리문이 작성된 mapper XML 파일 위치 등록
        src/main/resources/mybatis/book.xml 파일을 읽음
    -->
    <mappers>
        <mapper resource="mybatis/book.xml"/>
    </mappers>

</configuration>
 

핵심 정리

이 파일은 한마디로:

MyBatis에게 Book 클래스와 SQL mapper 파일 위치를 알려주는 설정 파일
 

입니다.

각 부분의 역할은:

typeAliases
→ Java 클래스 이름을 짧게 부르기 위한 설정

mappers
→ SQL이 들어 있는 XML 파일 위치를 등록하는 설정
 

그리고 현재 설정 기준으로 book.xml은 이 위치에 있어야 합니다.