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..
ALL 513
Intro 새로추가한 하드디스크를 xfs 파일시스템으로 포맷할 일이 있었는데 생각보다 간단해서 정리해두려 한다. 몇달에 한번씩만 하게 되는 일들은, 할 때마다 좀처럼 생각이 안난다. 그래서 문서화를 해두지 않으면 쓸데없는 시간 낭비 및 시간착오가 있을 수 있는데 그게 참 아까워서 두번이상 한 일들은 꼭 문서화를 하려고 하는 편이다. 파일시스템 생성 디스크 목록 확인 먼저 대상 디스크의 디바이스 식별자를 확인한다. 아래 명령어를 입력하면 디스크 목록을 확인 할 수 있다. sudo fdisk -l 맨 아래의 20.1TiB 짜리 디스크 /dev/sda 가 오늘의 타겟이다. xfsprogs 먼저 xfsprogs를 설치한다. xfsprogs는 XFS 파일 시스템을 관리하기 위한 유틸리티 모음이다. 아래의 예시는 ..
문제 Java에서 Base64 디코딩을 시도하는 과정에서 java.lang.IllegalArgumentException: Illegal base64 character a 오류가 발생했다. 이 오류는 Base64 문자열에 유효하지 않은 문자가 포함되어 있음을 나타내는 건데, charater a 라는 에러메시지때문에 괜히 헤맸기 때문에 이 글을 남긴다. Base64 인코딩은 일반적으로 A-Z, a-z, 0-9, +, / 문자와, 끝에 '=' 패딩 문자를 사용한다. 범위 밖의 문자가 포함되어 있으면 유효하지 않은 Base64 문자열이 되어 예외가 발생하는데, character a 라는 메시지때문에 원인을 찾기가 쉽지 않았다. 원인 일단 결론적으로 원인은 base64 문자열을 복사하는 과정에서 의도치 않은 줄바..
Intro 웹 어플리케이션을 사용하면서 웹 브라우저에 보이는 화면을 그대로 프린트 하는 일은 사실 흔하지 않다. 연구데이터에 관련된 도메인으로 몇몇 프로젝트를 진행하다보니, 브라우저에서 보이는 화면 프린트 했을 때의 인쇄 결과물에 대한 요구사항이 종종 들어올 때가 있는데, 화면에 보여지는 것과 최대한 비슷하게 해달라는 고객도 있고 특정 포맷으로 보기좋게 인쇄되기를 원하는 클라이언트도 있었다. 사실 브라우저에서 인쇄물에 대해서도 css를 지원하기 때문에 어느정도의 css에 대한 이해가 있다면 어렵지 않게 해낼 수 있지만, 자주하는 일이 아니기 때문에 매번 할 때마다 다시 기억을 더듬어야 하고, 검색했을때 그렇게 쉽게 나오는 정보도 아니기 때문에 이번 기회에 한번 정리를 해두려고 한다. 특히 브라우저에서 바..
Intro데이터를 한 시스템에서 다른 시스템이나 네트워크로 전송하거나 데이터를 파일에 저장할 때, 그 데이터를 전송가능한 형태로 변환해야 한다. 객체는 입체 형태지만, 데이터가 이동하는 통로는 0과 1로만 이루어진 일차원의 세상이기 때문이다.이 과정을 직렬화(serialization)라고 하며, 데이터의 직렬화의 방법은 XML이나 JSON등 우리가 흔히 아는 것 외에도 정말 많은 방법들이 있다. 자바에서는 Serializable 인터페이스를 구현하여 이를 수행할 수 있게 된다.자바 내에서의 직렬화는 객체의 상태를 바이트 스트림으로 변환하여 파일에 저장하거나 네트워크를 통해 전송할 수 있도록 하는 과정이다. 자바 플랫폼 내에서만 데이터를 주고받는다면 아래의 강점을 지니고 있기 때문에 여전히 많이 사용된다...