문제 다음과 같이 Apache Commons net을 이용해 FTP 접속을 하고 FTPClient ftpClient = new FTPClient(); FtpConfig ftpConfig = config.getFtp(); ftpClient.connect(ftpConfig.getHost(), ftpConfig.getPort()); ftpClient.login(ftpConfig.getUsername(), ftpConfig.getPassword()); ftpClient.enterLocalPassiveMode(); ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); setFileType을 해주지 않으면 다운받아온 파일이 깨진다 재귀적으로 파일 목록을 담도록 코드를 작성했다...
ALL 482
Intro 새로운 프로젝트 요청이 왔는데, Java 11 을 사용해 스프링부트로 프로젝트를 만들어야 하는 요구사항이 명시되었다. 그런데 스프링부트 3버전대의 등장 이후 2.x 버전으로 프로젝트를 생성한 적이 한번도 없었어서 이제야 알았는데 Spring Initializr 에서 스프링 부트 2.x 버전이 모두 제거되었다. 스프링 3.0 부터는 최소 JDK 요구 사항이 17이기 때문에 Spring Initialzr 에서는 이제 더이상 17 아래의 자바 버전들도 취급을 안해준다. 자바 버전은 17, 21만 선택 가능하다. 스프링부트는 2버전 선택이 불가능하다 당연하겠지만 start.spring.io 에 들어가서 생성하려 해도 마찬가지다. https://start.spring.io/ 이정도에서 끝나는게 아니고 ..
Intro HWPX 이야기 이 사건은 사용자가 요청하는 정보에 해당하는 HWPX 파일을 서버에서 실시간으로 만들어서 사용자가 다운로드 받을 수 있도록 제공하는 기능을 구현하던 중 발생했다. hwpx파일은 엑셀처럼 기본적으로 zip 파일로 되어 있어, 파일 확장자를 .zip으로 변경한 뒤에 압축을 풀면 내부 파일 구조를 확인 할 수 있다. Contents 폴더, META-INF 폴더, Preview 폴더가 있는데 그 중 Contents 폴더의 section0.xml 이 내용물을 담고있는 핵심 파일이다. 그런데 문제는 마음대로 바꾸고 싶은대로 바꾸면 한컴오피스에서 파일이 열리지 않았다. 줄바꿈, 탭문자등이 들어가면 어김없이 프로세스가 죽어버린다. 그들이 정의해놓은 포맷에 맞게 기입해야만 한다. 예) 줄바꿈 ..
Intro 맥북을 사용하면서 언제부턴가 와이파이로 연결된 상태에서는 한번씩 핑이 심하게 튀는 현상이 나타났다. 처음에는 Private relay를 의심했는데 비활성화 해도 고쳐지지 않았다. 그 다음으로는 공유기를 의심했는데, 어딘가에서 토렌트처럼 많은 커넥션을 물고 있을까 의심되어 공유기 내 모든 커넥션을 확인해봤지만 특이사항은 없었고, 공유기를 껐다 다시 켜도 여전히 같은 현상이 발생했다. 무엇보다 같은 와이파이내에서도 핸드폰으로 핑 테스트를 할때는 핑이 안정적으로 일정하게 잘 나왔다. 원인 찾아보니 AWDL 문제가 오래전부터 잘 알려진 이슈였다. AWDL은 Apple Wireless Direct Link의 약자로 애플 기기간의 통신에 사용된다. 즉, 주변에 아이폰이나 아이패드등의 기기가 있을 때 aw..
Intro 스프링부트 서버 + 앞단에 Nginx 가 있는 구조에서 Post 요청으로 파일을 업로드 하는데 413 에러가 발생했다. 파일 사이즈가 그닥 크지는 않았는데도, 1MB 만 넘으면 여지없이 413 에러가 발생했다. 로컬에서 테스트할땐 괜찮았는데, 개발서버에 배포하고 테스트 할 때 문제가 발생했다. 원인 개발서버에서는 앞단에 Nginx가 한개가 더 추가되어있는데, 그래서 웹서버의 설정 문제임을 짐작 할 수 있었다. nginx 문서 에서 client_max_body_size 항목을 찾아보면, 기본값이 1MB 라고 한다. If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is ret..