본문 바로가기
IntelliJ

IntelliJ MyBatis Mapper XML 노란줄 제거 방법

by pswamazing 2025. 12. 8.

안녕하세요! 오늘은 IntelliJ에서 MyBatis Mapper XML 파일을 편집할 때 나타나는 성가신 노란줄(경고)을 제거하는 방법을 알아보겠습니다!


1. 문제 상황

MyBatis Mapper XML 파일을 작성하다 보면 IntelliJ에서 다음과 같은 노란색 경고가 나타납니다:

"Cannot resolve table 'table_name'"

  • 테이블 이름에 노란줄이 그어집니다.
  • 실제로는 정상 작동하지만 시각적으로 거슬립니다.

"Cannot resolve column 'column_name'"

  • 컬럼 이름에도 노란줄이 표시됩니다.

"Cannot resolve symbol 'methodName'"

  • Mapper 인터페이스 메서드 매핑이 안 된 것처럼 보입니다.

이런 경고들은 실제 동작에는 문제가 없지만, 코드가 지저분해 보이고 실제 에러를 찾기 어렵게 만듭니다.


 

2. 해결 방법


✅ 방법 1: SQL 검증 비활성화 (가장 간단, 추천!!!!!!)

IntelliJ의 SQL 검증 기능을 끄는 방법입니다.

1단계 - Settings 열기

Windows/Linux: Ctrl + Alt + S Mac: Cmd + ,

또는 상단 메뉴: File → Settings (Mac은 IntelliJ IDEA → Preferences)

2단계 - Inspections 메뉴로 이동

Settings → Editor → Inspections

3단계 - SQL 검증 비활성화

검색창에 "SQL"을 입력하고 다음 항목들의 체크를 해제합니다:

  • SQL → SQL dialect detection - 체크 해제
  • SQL → Unresolved reference - 체크 해제
  • SQL → No data sources configured - 체크 해제

4단계 - 적용

Apply → OK 버튼 클릭


✅ 방법 2: 데이터베이스 연결 설정

실제 데이터베이스와 연결하여 IntelliJ가 테이블/컬럼 정보를 인식하게 하는 방법입니다.

데이터베이스 연결하기

1단계 - Database 도구창 열기

View → Tool Windows → Database

또는 단축키: Alt + 1 후 Database 탭 선택

2단계 - 데이터 소스 추가

Database 창 상단의 + 버튼 클릭 → Data Source → 사용하는 DB 선택

  • MySQL
  • PostgreSQL
  • Oracle
  • MariaDB
  • H2
  • 기타 등등

3단계 - 연결 정보 입력

Host: localhost (또는 DB 서버 주소)
Port: 3306 (MySQL 기본 포트, DB마다 다름)
Database: your_database_name
User: root
Password: ****

4단계 - 드라이버 다운로드

처음 연결 시 Download missing driver files 버튼이 나타나면 클릭하여 드라이버를 다운로드합니다.

5단계 - 연결 테스트

Test Connection 버튼을 클릭하여 연결을 확인합니다.

성공 메시지: "Succeeded"

6단계 - 적용 및 저장

Apply → OK 버튼 클릭

스키마 매핑 설정

데이터베이스 연결 후 XML 파일과 스키마를 매핑합니다.

1단계 - Mapper XML 파일 열기

노란줄이 나타나는 Mapper XML 파일을 엽니다.

2단계 - SQL Dialect 설정

파일 하단 우측의 No SQL dialect configured 또는 <any SQL dialect> 클릭

사용하는 DB의 Dialect 선택:

  • MySQL
  • PostgreSQL
  • Oracle
  • MariaDB
  • 기타

3단계 - 스키마 매핑

Assign data sources 클릭 → 연결한 데이터베이스 선택


✅ 방법 3: 주석으로 억제

코드에 직접 주석을 추가하여 경고를 무시하는 방법입니다.

XML 주석 방식

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 전체 파일에 대한 경고 억제 -->
<!--suppress SqlResolve, SqlNoDataSourceInspection -->
<mapper namespace="com.example.mapper.UserMapper">
    
    <!-- 특정 쿼리에만 경고 억제 -->
    <!--suppress SqlResolve -->
    <select id="findById" resultType="User">
        SELECT * FROM users WHERE id = #{id}
    </select>
    
    <insert id="insertUser">
        INSERT INTO users (name, email, age)
        VALUES (#{name}, #{email}, #{age})
    </insert>
    
</mapper>

 

억제 가능한 경고 종류

<!-- 테이블/컬럼 미확인 경고 -->
<!--suppress SqlResolve -->

<!-- 데이터 소스 미설정 경고 -->
<!--suppress SqlNoDataSourceInspection -->

<!-- SQL Dialect 미설정 경고 -->
<!--suppress SqlDialectInspection -->

<!-- 여러 경고 동시 억제 -->
<!--suppress SqlResolve, SqlNoDataSourceInspection, SqlDialectInspection -->

✅ 방법 4: Inspection 프로파일 커스터마이징

특정 Mapper 파일이나 패키지에만 선택적으로 적용하는 방법입니다.

파일별 설정

1단계 - Mapper XML 파일에서 우클릭

노란줄이 있는 부분에서 우클릭

2단계 - Suppress 메뉴 선택

우클릭 → Show Context Actions (Alt + Enter)
→ Suppress for statement
또는
→ Suppress for file

3단계 - 선택

  • Suppress for statement: 해당 라인만 경고 제거
  • Suppress for file: 전체 파일 경고 제거

패키지별 설정

1단계 - Settings 열기

Ctrl + Alt + S (Mac: Cmd + ,)

2단계 - Inspections 설정

Settings → Editor → Inspections → SQL

3단계 - 스코프 설정

우측 상단의 Scope 드롭다운 클릭 → Custom scope 선택

4단계 - 제외할 경로 추가

mapper 패키지나 resources 폴더를 제외 범위로 지정


 

 

3. 추천 설정 조합

실무에서 가장 효율적인 설정 조합입니다.

개발 환경 (로컬)

데이터베이스 연결 + SQL Dialect 설정

  • 장점: 자동완성, 실시간 검증
  • 단점: 초기 설정 필요
1. Database 도구창에서 로컬 DB 연결
2. Mapper XML에서 SQL Dialect 설정 (MySQL, PostgreSQL 등)
3. 스키마 자동 매핑으로 편리한 개발

배포 환경 코드

XML 주석으로 경고 억제

  • 장점: 팀원 모두에게 적용, 별도 설정 불필요
  • 단점: 모든 파일에 주석 추가 필요
<!--suppress SqlResolve, SqlNoDataSourceInspection -->
<mapper namespace="...">
    <!-- 쿼리 작성 -->
</mapper>

신규 프로젝트

Inspections 전역 비활성화

  • 장점: 한 번 설정으로 끝
  • 단점: 실제 에러도 표시 안 될 수 있음
Settings → Editor → Inspections → SQL
→ Unresolved reference 체크 해제

4. 프로젝트 팀 설정 공유

팀 전체에 설정을 공유하는 방법입니다.

.idea 폴더 공유 (권장하지 않음)

# .gitignore에서 제외
# .idea/

주의: .idea 폴더는 개인 설정이 많아 충돌 가능성이 높습니다.

EditorConfig 사용 (권장)

프로젝트 루트에 .editorconfig 파일 생성:

[*.xml]
indent_style = space
indent_size = 4

코드 컨벤션 문서화

팀 위키나 README에 설정 방법을 문서화합니다:

## IntelliJ 설정

MyBatis Mapper XML 경고 제거:
1. Settings → Editor → Inspections → SQL
2. "Unresolved reference" 체크 해제
3. 또는 각 Mapper 파일 상단에 주석 추가:
   <!--suppress SqlResolve, SqlNoDataSourceInspection -->

5. 자주 묻는 질문 (FAQ)

Q1. 설정해도 여전히 노란줄이 나타나요

해결 방법:

  1. IntelliJ 재시작
  2. 캐시 삭제: File → Invalidate Caches / Restart
  3. Mapper 파일 닫았다가 다시 열기

Q2. 일부 파일만 적용하고 싶어요

해결 방법:

파일 상단에 주석 추가:

<!--suppress SqlResolve -->

또는 Custom Scope 설정으로 특정 패키지만 제외

Q3. DB 연결 없이 경고만 끄고 싶어요

해결 방법:

Settings → Editor → Inspections → SQL
→ "No data sources configured" 체크 해제

Q4. 매번 SQL Dialect를 선택해야 하나요?

해결 방법:

프로젝트 전체에 기본 Dialect 설정:

Settings → Languages & Frameworks → SQL Dialects
→ Project SQL Dialect: MySQL (또는 사용하는 DB)

Q5. Ultimate 버전만 가능한가요?

답변:

데이터베이스 연결 기능은 Ultimate 버전만 지원합니다. Community 버전은 Inspections 비활성화나 주석 방식을 사용하세요.


6. 버전별 차이점

IntelliJ IDEA Community

  • 데이터베이스 도구창 없음
  • SQL Dialect 설정 제한적
  • 권장 방법: Inspections 비활성화 또는 XML 주석

IntelliJ IDEA Ultimate

  • 데이터베이스 도구창 지원
  • 완벽한 SQL 지원
  • 자동완성 및 리팩토링
  • 권장 방법: DB 연결 + SQL Dialect 설정

마무리

이제 MyBatis Mapper XML의 성가신 노란줄을 깔끔하게 제거할 수 있게 되었습니다!

정리하면:

방법 1 - Inspections에서 SQL 검증 비활성화 (가장 간단)

방법 2 - 데이터베이스 연결 설정 (Ultimate만 가능, 가장 정확)

방법 3 - Inspection 프로파일 커스터마이징 (선택적 적용)

방법 4 - XML 주석으로 억제 (팀 공유 가능)

추천 조합:

  • 개발 환경: DB 연결 + SQL Dialect 설정
  • 배포 코드: XML 주석으로 경고 억제
  • Community 버전: Inspections 비활성화

정말 간단하죠? 이제 깔끔한 코드 에디터에서 MyBatis 개발을 즐기세요!

댓글