본문 바로가기

분류 전체보기

(887)
[spring boot] 2.1.6 -> 2.2.0 테스트 깨짐(인코딩) 무엇이 바뀌었길래 테스트가 깨지는가? org.springframework.test.web.servlet.MockMvc 를 이용한 Mock 컨트롤러 테스트. 한글 인코딩이 깨진다. MockMvc의 경우 perform이 수행되면 MockFilterChain -> HttpServlet -> TestDisplacherServlet -> FrameworkServlet -> HttpServlet - FrameworkServlet -> DispatcherServlet -> AbstractHandlerMethodAdapter ... 등을 거치다. application/json의경우 HttpEntityMethodProcessor 의 handleReturnValue에서 AbstractMessageConverterMetho..
[spring integration] TCP 연결시간 설정 버전 의존성 Spring boot Spring core Spring integration Jackson core 2.1.6 5.1.8 5.1.6 2.9.0 2.2.0 5.2.0 5.2.0 2.10.0 2.2.4 5.2.3 5.2.3 2.10.2 2.2.5 5.2.4 5.2.4 2.10.2 TCP 통신을 하는 것을 만들고 있는데, 아직 상대방 방화벽이 닫혀있는지 긴 타임아웃이 발생하였다. 기본 연결 대기 시간 이전에 timeout이 발생하게 하고 싶었다. AbstractClientConnectionFactory 에 정의되어 있는 기본 연결 타임아웃은 60초이다. 구현체에서 소켓을 만들때 getConnectTimeout() 이라는 메서드를 통해 값을 구해온다. 예) https://github.com/spri..
[Apache Lucene] Lucene의 의미는? 사실 사람의 이름이라 의미를 찾기는 어렵다. Lucene을 만든 Doug Cutting 의 아내의 미들네임이 Lucene인 것과 그의 아내의 할머니의 이름이 루씬이다. 출처: Barker, Deane (2016). Web Content Management. O'Reilly. p. 233. ISBN 1491908106
[python] BeautifulSoup 로 XML 처리하기 엄밀히 이야기 하면 XML은 아니나 마크업 문서를 처리하기 위함이다. from bs4 import BeautifulSoup with open("user.xml") as fp: soup = BeautifulSoup(fp, 'html.parser') body = soup.grid.body.b for ele in body.find_all("i"): print ele["name"].encode('utf8') 처리하다 발견한 예외 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128) 관련내용: https://ourcstory.tistory.com/39 처리방법: .encode('utf8')
[python] Python의 버전 관리 툴 pyenv 설치 사이트: https://github.com/pyenv/pyenv homebrew가 설치되어 있으면 아래 명령으로 설치 가능 $ brew install pyenv 설치가 가능한 목록 확인 $ pyenv install -l Available versions: 2.1.3 2.2.3 ... 3.8.1 버전 설치 $ pyenv install 3.8.1 pyenv shell 먼저 사용을 위해서는 pyenv init 명령 수행이 필요하다. $ pyenv shell pyenv: shell integration not enabled. Run `pyenv init' for instructions $ pyenv init # Load pyenv automatically by appending # the following to..
Evernote Web Clipper Inspired by 임*균. Chrome, Safari, Internet Explorer (IE) 7 이상, Firefox, Opera, Microsoft Edge(Windows 10 이상)에서 사용 가능 크롬용: https://chrome.google.com/webstore/detail/evernote-web-clipper/pioclpoplcdbaefihamjohnefbikjilc# 사파리용: https://apps.apple.com/kr/app/evernote-web-clipper/id1481669779?mt=12 (App Store)
[tomcat] HttpServletRequest.getHeader 헤더를 보면 가끔 대소문자를 가리지 않고 동작하는 경우가 있어서 확인을 해보았다. package javax.servlet.http; public interface HttpServletRequest extends ServletRequest { /** * Returns the value of the specified request header as a * String. If the request did not include a header of the * specified name, this method returns null. If there are * multiple headers with the same name, this method returns the first head * in the reque..
[aws] .ebextensions 명령을 profile에 의해 동작시키기 스프링에서는 profile에 따라 동작을 바꿀 수 있다. 외부 API 서버가 개발기와 운영기가 간은 도메인 주소로 되어 있었다. hosts 파일을 특정 IP로 변경해서 사용을 하라고 하였다. 일단 /etc/hosts 파일에 값을 추가하는 것은 echo 명령과 append 리다이렉트 명령으로 가능하다. echo '172.217.25.196 www.google.com' >> /etc/hosts 문제는 Elastic Beanstalk Configuration files(.ebextensions) 파일에 이것을 프로파일에 따라 분기를 해야 하는 요구사항이 생겼다. 전문가(?)에게 물어보니 /etc/aws-meta.env 파일에 아래와 같은 키=값 형태로 정보들이 있는데 프로파일도 있다고 한다. $ cat /et..