외부 모듈을 적용하는 작업을 하던 중 통신값에 한글깨짐이 발생했다 !! 

내 프로젝트는 UTF-8이고 연결하는 모듈의 인코딩은 EUC-KR로 설정되어있었다.. ; 

어노테이션으로 가능한지 보려고 Controller 에서 인코딩을 설정해 실행해봤다.

@PostMapping(value="/test/result", produces="text/plain;charset=euc-kr")

이렇게 해주니 postman을 이용한 테스트에선 한글이 잘 들어오는데

API와 연동하는 부분에선 계속해서 한글이 깨져 들어온다.. ㅠ.ㅠ 

 

결국 ~ 인코딩 필터를 설정하기로 했다!

나의 프로젝트는 UTF-8로 설정되어 있기에 전부 바꾸는건 리스크가 있어 

특정 URL만 EUC-KR로 변경하는 필터를 달았다~ 

 

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.util.AntPathMatcher;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyEncodingFilter extends CharacterEncodingFilter {
	@Override
	protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
			throws ServletException, IOException {
		AntPathMatcher matcher = new AntPathMatcher();
		String reqUri = request.getRequestURI();
		
		if (matcher.match("/test/**", reqUri)) {
			request.setCharacterEncoding("euc-kr");
			
			filterChain.doFilter(request, response);
		} else {
			super.doFilterInternal(request, response, filterChain);
		}
	}
}

 

설정하고 다시 시도~ 

 

DB에 깨져서 들어오던 한글이 이제 잘 들어온다 !! ㅎㅎ 

* 리눅스 상단에 별도의 방화벽이 있다면 리눅스 자체의 방화벽 기능을 꼭 사용하지 않아도 된다. 

 

 

나는 상단에 별도의 방화벽이 설정되어 있고 해당 방화벽은 오픈되어 있는 상태이다. 

 

웹서버를 테스트할 예정이었다. 

 

방화벽은 열려있어 ping 테스트를 해보니 잘 나가고 있는데

 

tcping을 이용해서 port를 확인해보면 no response 라는 응답이 돌아오고 

 

브라우저로 접속을 해봐도 로딩바만 돌 뿐 응답이 없는 경우가 있다. 

 

이럴 때는 리눅스 자체 방화벽을 확인해주어야 한다.

 

 

 

1.  netstat -ntlp 명령어를 사용해서 해당 port를 Listen 하고 있는지 확인한다. 

( 나는 9090과 9443을 사용할 예정 ) 

 

2. 이것도 정상이라면 IP Table 설정을 확인해보아야 한다.

 방화벽이 룰이 설정되어 있는지 확인한다. 

iptables -L

 

아래 이미지 처럼 줄줄이 룰들이 나온다면 설정되어있는 상태로 보면 된다. 

 

나는 방화벽 꺼줄예정. ( Centos 7 사용중)

 

우선 방화벽을 꺼준다. 

systemctl stop firewalld.service

 

그리고 영구적으로 끄기 위해서  아래 명령어를 실행한다. 

systemctl disable firewalld

 

 

다시 한번 방화벽을 확인해본다. 

iptables -L

 

이렇게 세개만 나오고 있으면 방화벽은 끄기 완료! 

 

 

다시 tcping을 날려보니 잘 날아간다. 

 

끝! 

+ Recent posts