mockMvc로 스프링부트 프로젝트를 테스트하는데, 강의에는 안그렇지만, 최신 버전을 사용하는 내 스프링부트에서는 mockmvc 테스트에서 한글이 깨진다.
해결 시도
1. www.python2.net/questions-809744.htm
MockMvc는 더 이상 Spring Boot 220에서 UTF-8 문자를 처리하지 않습니다
새로 출시 된 2.2.0.RELEASE 로 업그레이드 한 후 Spring Boot 버전 테스트 중 일부가 실패했습니다. 그것은 MediaType.APPLICATION_JSON_UTF8 것으로 보인다 더 이상 사용되지 않으며 더 이상 콘텐츠 유형을
www.python2.net
여기서 제일 간단한 방법인, chracterEncoding을 붙이는 것이다.
결과는 그대로다. 혹시 몰라 APPLICATION_JSON_UTF-8 에서 UTF-8을 제거하고 다시 해봤다. 마찬가지로 그대로다.
2. 왜 안되는 지 찾아보니, utf-8에 대해 스프링이 지원을 안한다고 한다.
Springboot 2.2.x MockMvc 인코딩 이슈
developer JH website.
jehuipark.github.io
이분이 잘 설명해주셨다. 그런데 여기서 해결방법은 너무 길다. (별로 안길지만 귀찮아서)더 간단한 방법을 찾았다.
[spring] Deprecate MediaType.APPLICATION_JSON_UTF8 in favor of APPLICATION_JSON - I'm honeymon(JiHeon Kim).
1 2 3 4 5 6 7 8 9 10 private Charset getContentTypeCharset(@Nullable MediaType contentType) { // contentType == MediaType.APPLICATION_JSON if (contentType != null && contentType.getCharset() != null) { return contentType.getCharset(); } else { Charset char
honeymon.io
커스텀 어노테이션을 만들거나, 설정을 바꾸는 방법이 근본적인 방법이지만, 초보자가 설정을 바꿀수록 뒤에 올 폭풍은 거대해지기 때문에, 간단히 객체로 바꿔 출력하는 방법을 선택하겠다.ㅎㅎ
'study > Spring boot' 카테고리의 다른 글
스프링 부트 프로젝트 시작할 때, 몰랐던 것 - build.gradle, .gitignore 사용하기 (0) | 2021.05.14 |
---|---|
스프링 부트 - 외부 API 호출하기, WebClient 사용하기 (0) | 2021.05.12 |
엉터리 정리 - MockMvc 테스트 (0) | 2021.04.20 |
엉터리 정리 - DAO, DTO, VO, Entity (0) | 2021.04.14 |
페이징 처리하기 (0) | 2021.04.08 |