본문 바로가기
Memo/Note

[Error] error: unmappable character (0xEC) for encoding | Build Gradle와 IntelliJ IDEA

by 달의 조각 2022. 7. 23.

 

문제

 

인텔리제이에서 테스트를 돌리자 error: unmappable character (0xEC) for encoding 에러가 발생했다.
컴파일러의 인코딩 방식이 주석의 한글을 인식하지 못한 것이다.

 

 

해결

 

🍎 첫 번째 방법

 

File Encodings 설정 변경

File → Settings → Editor → File Encodings
네모 박스의 설정을 UTF-8로 변경한다

 

Help → Edit Custom VM Options...

아래 코드를 추가해 준다

-Dfile.encoding=UTF-8
-Dconsole.encoding=UTF-8

 

 

🍎 두 번째 방법

 

File → Settings → Build, Excution, Deployment

Build and run using 설정을 IntelliJ IDEA로 변경해 주면 된다.

IntelliJ에서 Java를 gradle를 거쳐서 실행하는데 이렇게 되면 실행 속도가 느릴 때가 있다
이를 IntelliJ에서 직접 실행하도록 변경하는 것이다

 

 


 

 

Compile: 프로그래밍 언어 → 기계어, Java는 JVM이 문법 등을 검사

Build(빌드 ⊃ 컴파일): 프로그래밍 된 코드를 컴파일하고 실행 가능한 결과물로 만드는 과정
인텔리제이와 같은 IDEA에서는 프로젝트를 실행하면 자동으로 빌드를 수행하고, 실행한다

 

Gradle Build vs. IntelliJ IDEA Build

 

 

Gradle: 증분 빌드 X, 오픈 소스 빌드 자동화 도구 (vs. Maven)
IntelliJ IDEA: 증분 빌드 O, 인텔리제이 자체에서 제공하는 빌드 자동화 도구

 

 

증분 빌드(incremental build)

변경된 부분만 빌드를 하는 방식, 빠른 빌드를 원할 경우 선택한다

 

🤔 빌드 속도가 빠르다고 더 좋을까?

1. 파일을 삭제하면 이를 캐치하지 못하고 변경 사항이 없다고 판단한다
2. 삭제한 파일을 그대로 포함하여 빌드를 한다 → Bad

 

인텔리제이에서는 Build and run using, Run tests using의 두 가지 상황의 방식을 택할 수 있어서 유연하다

실제 빌드하고 실행해야하는 것은 확실히 빌드하기 위해서 Gradle을 선택하고,
테스트할 때는 빠른 빌드를 위해서 IntelliJ IDEA를 선택할 수 있다

 

Gradle은 build 폴더로 빌드 결과물이 나오고 IntelliJ IDEA는 out 폴더로 빌드 결과물이 나온다

댓글