์คํ๋ง๋ถํธ 1 ์ ์ฌ์ฉํ๋ ์ํฐํ๋ผ์ด์ฆ ์ฑ์ MSA ์ ์ฉ ์์ ์ ํตํด ์ฌ๋ฌ ์ฑ์ผ๋ก ๋ถ๋ฆฌํ๋ฉด์ ์คํ๋ง๋ถํธ 2๋ก ์ ๊ทธ๋ ์ด๋๋ฅผ ์งํํ์ต๋๋ค.
์ด ๊ณผ์ ์์ ๋ค๋ฅธ ํ์ฌ์ API ์ฐ๋ํ๊ณ ์๋ ๋ถ๋ถ์์ ์ธ์ฝ๋ฉ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์์ค ์ด์ ์ ์งํํ๋ฉด์ ๋นผ๋จน์ ๋ถ๋ถ์ด ์์ด์์์ฃ .
์ด์๊ฐ ๋ฐ์ํ ํ์ฌ์ธก์์ ์์ธ์ผ๋ก ์๊ธฐํ ๊ฒ์ ์๋ต ํค๋์ Content-Type์ utf-8 ์ธ์ฝ๋ฉ ์ค์ ์ด ๋น ์ ธ์๋ค๋ ๊ฒ์ด์์ต๋๋ค.
๊ทธ๋์ ํ์ธํด๋ณด๋ ์คํ๋ง๋ถํธ 1 ๊ธฐ๋ฐ ์ฑ์์๋ ์๋์ ๊ฐ์ ์ค์ ์ด ์์์ต๋๋ค.
@Bean
public HttpMessageConverter<String> responseBodyConverter() {
return new StringHttpMessageConverter(Charset.forName("UTF-8"));
}
@Bean
public Filter characterEncodingFilter() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
characterEncodingFilter.setForceEncoding(true);
return characterEncodingFilter;
}
๊ทธ๋ฆฌ๊ณ ํ ์คํธ ๊ฒฐ๊ณผ ์๋ตํค๋์ Content-Type์ application/json;charset=utf-8 ์ด๋ผ๊ณ ๋์ด์๋ ๊ฒ์ ํ์ธํ ์ ์์์ต๋๋ค.
ํ์ง๋ง ์ ๊ท ์ฑ์์๋ charset ์ ๋ณด๊ฐ ๋น ์ ธ์์์ต๋๋ค.
๊ทธ๋์ ์ ์ค์ ์ ๊ทธ๋๋ก ์คํ๋ง๋ถํธ 2 ๊ธฐ๋ฐ์ ์ ๊ท๋ก ๊ฐ๋ฐํ ์ฑ์ชฝ์ ๋ฃ์ผ๋ ค ํ๋๋ ์ฑ ๊ธฐ๋ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
***************************
APPLICATION FAILED TO START
***************************
Description:
The bean 'characterEncodingFilter', defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/HttpEncodingAutoConfiguration.class], could not be registered. A bean with that name has already been defined in com.yanolja.affiliate.out.api.AffiliateOutApiApplication and overriding is disabled.
Action:
Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
์ด๋ฏธ ๋์ผํ ์ด๋ฆ์ ๋น์ด ์กด์ฌํ๋ ์ค๋ฒ๋ผ์ด๋ ํ ์ ์๋๋ก ์ค์ ์ ๋ณ๊ฒฝํ๋ผ๋ ์๊ธฐ์์ฃ .
๊ทผ๋ฐ ์๊ฐํด๋ณด๋ ๊ตณ์ด ์ด๋ ๊ฒ ํด์ผํ๋ ๋ผ๋ ์๊ฐ์ด ๋ค์ด ์ข ์ฐพ์๋ณด๋,
์๋ฐ ์์ค์ ์ ๋ ๊ฒ ์ถ๊ฐํ์ง ์๊ณ ์คํ๋ง ์ค์ ๋ง์ผ๋ก๋ ํค๋์ ์ธ์ฝ๋ฉ ์ค์ ์ ๊ฐ๋ฅํ์ต๋๋ค.
๋ฐ๋ก server.servlet.encoding.charset ์ค์ ์ ์ถ๊ฐํด์ฃผ๋ฉด ๋์์ต๋๋ค.
ํ์ ๋ฒ์ ์์๋ ์ด ์ค์ ์ด spring.http.encoding.charset ์ผ๋ก ์ฌ์ฉ๋์์์ต๋๋ค.
์๋ฐ ์์ค์์ characterEncodingFilter ๋น ์์ฑ๋ก์ง์ ์ ๊ฑฐํ๊ณ , application.yml ํ์ผ์ ์๋์ ๊ฐ์ด ์ค์ ์ ์ถ๊ฐํฉ๋๋ค.
server:
servlet:
encoding:
charset: UTF-8
๊ทธ๋ฆฌ๊ณ ์ฑ์ ์ฌ๋ถํ ํด์ฃผ๋ฉด ์๋ตํค๋์ Content-Type ๊ฐ์ด application/json;charset=utf-8 ์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ง์ฝ ๊ฐ์ด ๋ฐ๋์ง ์๋๋ค๋ฉด server.servlet.encoding.force-response ๋๋ server.servlet.encoding.force ์ค์ ๊ฐ์ true๋ก ์ค์ ํด์ ๋ค์ ํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์ฐธ๊ณ ๋ฌธ์: docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#server.servlet.encoding.charset
'๐ป Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git] ํน์ ๊ธฐ๊ฐ๋์ author ๋ณ ์ปค๋ฐ ๊ฑด์ ํ์ธํ๊ธฐ (0) | 2022.05.17 |
---|---|
AWS Elasticsearch ISM์ ํ์ฉํ ์ธ๋ฑ์ค ์๋์ญ์ (0) | 2021.04.21 |
[5๋ถ ์ฝ๋ฉ] Spring4 + JCache (feat. Ehcache) (0) | 2020.12.17 |
์คํ๋ง ์ํ์ฐธ์กฐ ๋ฌธ์ ํด๊ฒฐํ๊ธฐ (How to avoid circular reference) (0) | 2020.12.11 |
์คํ๋ง ์์กด์ฑ ์ฃผ์ (DI) (0) | 2020.12.10 |