[Java] Carriage return 그리고 Line feed

Intro HWPX 이야기 이 사건은 사용자가 요청하는 정보에 해당하는 HWPX 파일을 서버에서 실시간으로 만들어서 사용자가 다운로드 받을 수 있도록 제공하는 기능을 구현하던 중 발생했다. hwpx파일은 엑셀처럼 기본적으로 zip 파일로 되어 있어, 파일 확장자를 .zip으로 변경한 뒤에 압축을 풀면 내부 파일 구조를 확인 할 수 있다. Contents 폴더, META-INF 폴더, Preview 폴더가 있는데 그 중 Contents 폴더의 section0.xml 이 내용물을 담고있는 핵심 파일이다. 그런데 문제는 마음대로 바꾸고 싶은대로 바꾸면 한컴오피스에서 파일이 열리지 않았다. 줄바꿈, 탭문자등이 들어가면 어김없이 프로세스가 죽어버린다. 그들이 정의해놓은 포맷에 맞게 기입해야만 한다. 예) 줄바꿈 ..

Programming/Java 2024.01.05
맥북 와이파이 핑 튀는 문제 해결 [Sonoma 14.1.2]

Intro 맥북을 사용하면서 언제부턴가 와이파이로 연결된 상태에서는 한번씩 핑이 심하게 튀는 현상이 나타났다. 처음에는 Private relay를 의심했는데 비활성화 해도 고쳐지지 않았다. 그 다음으로는 공유기를 의심했는데, 어딘가에서 토렌트처럼 많은 커넥션을 물고 있을까 의심되어 공유기 내 모든 커넥션을 확인해봤지만 특이사항은 없었고, 공유기를 껐다 다시 켜도 여전히 같은 현상이 발생했다. 무엇보다 같은 와이파이내에서도 핸드폰으로 핑 테스트를 할때는 핑이 안정적으로 일정하게 잘 나왔다. 원인 찾아보니 AWDL 문제가 오래전부터 잘 알려진 이슈였다. AWDL은 Apple Wireless Direct Link의 약자로 애플 기기간의 통신에 사용된다. 즉, 주변에 아이폰이나 아이패드등의 기기가 있을 때 aw..

IT ⁄ Computer/Mac 2023.12.31
[Nginx] 413 Request Entity Too Large 문제 해결

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..

Development/Daily Error 2023.12.19
[Linux] 디스크 xfs 파일시스템으로 포맷하기

Intro 새로추가한 하드디스크를 xfs 파일시스템으로 포맷할 일이 있었는데 생각보다 간단해서 정리해두려 한다. 몇달에 한번씩만 하게 되는 일들은, 할 때마다 좀처럼 생각이 안난다. 그래서 문서화를 해두지 않으면 쓸데없는 시간 낭비 및 시간착오가 있을 수 있는데 그게 참 아까워서 두번이상 한 일들은 꼭 문서화를 하려고 하는 편이다. 파일시스템 생성 디스크 목록 확인 먼저 대상 디스크의 디바이스 식별자를 확인한다. 아래 명령어를 입력하면 디스크 목록을 확인 할 수 있다. sudo fdisk -l 맨 아래의 20.1TiB 짜리 디스크 /dev/sda 가 오늘의 타겟이다. xfsprogs 먼저 xfsprogs를 설치한다. xfsprogs는 XFS 파일 시스템을 관리하기 위한 유틸리티 모음이다. 아래의 예시는 ..

IT ⁄ Computer/Linux 2023.12.05
[Java] Base64 디코딩 중 Illegal base64 character a 에러 해결

문제 Java에서 Base64 디코딩을 시도하는 과정에서 java.lang.IllegalArgumentException: Illegal base64 character a 오류가 발생했다. 이 오류는 Base64 문자열에 유효하지 않은 문자가 포함되어 있음을 나타내는 건데, charater a 라는 에러메시지때문에 괜히 헤맸기 때문에 이 글을 남긴다. Base64 인코딩은 일반적으로 A-Z, a-z, 0-9, +, / 문자와, 끝에 '=' 패딩 문자를 사용한다. 범위 밖의 문자가 포함되어 있으면 유효하지 않은 Base64 문자열이 되어 예외가 발생하는데, character a 라는 메시지때문에 원인을 찾기가 쉽지 않았다. 원인 일단 결론적으로 원인은 base64 문자열을 복사하는 과정에서 의도치 않은 줄바..

Development/Daily Error 2023.12.02