[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
골치아픈 공공데이터포털 serviceKey 인코딩 문제

Intro 처음 겪는 일은 아니지만 공공 데이터 포털 API를 쓸 때마다 고생을 해서 이번에 글로 정리해두려고 한다. 공공 데이터포털은 각 공공기관이 보유하고 있는 여러가지 다양한 공공 데이터들을 하나의 통합 창구에서 편리하게 사용할 수 있도록 만들어진, 정부에서 운영하는 서비스다. 제공하는 정보가 정말 다양하고 여러가지 유용한 정보가 있으며 무료로 사용할 수 있기 때문에 개발자라면 한번쯤은 사용 해 보았을 것이다. 아래 보이는 것 처럼, 공공 데이터 포털에서는 개인 API 인증키를 Encode / Decode 된 두가지 버전으로 제공한다. 여기까지는 좋다. 사용자가 편의에 따라서 URI 인코딩 하지 않고 인코딩 된 키를 바로 복사해서 써도 되고, 그게 아니면 Decode 된 키를 가지고 각자 알아서 요..

Development/Daily Error 2023.05.28
IRODS ) Quota 제한 넘기지 못하도록 강제하기

reference https://groups.google.com/g/irod-chat/c/2Fu71_sWv7Q/m/pL6D9yZVUW0J Intro 블로그 정리를 하고 있습니다. 모든 이미지 파일들을 webp 형식으로 바꾸다가, 작성해두었었지만 미처 블로그에 올리지 않았던 본 글을 발견했습니다. 오래전에 iRods의 Quota 설정을 하며 남겨두었던 글 입니다. 2021년 9월에 작성해두었던 문서로, 이미 19개월이나 지났지만, iRods의 경우 참고할 문서가 거의 없어 비록 늦었지만 남겨두는 의미로 올립니다. 본문 core.re 설정변경 docker를 통해 irods에 접속합니다. ​ core.re 파일을 찾습니다. find / -name core.re ​ core.re 파일을 수정합니다. vi /et..

Development/Daily Error 2023.04.11
Spring Boot 3 에서 MYSQL 의존성 못찾는 경우

문제 스프링 부트 3.0.0 버전으로 개인 프로젝트를 진행하고 있는데, 시간도 어느정도 흘렀고 해서 3.0.5 버전으로 버전을 높이던 중 MySQL 드라이버를 찾지 못하는 문제가 발생. Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig class loader or Thread context classloader비교적 최근의 3.0.5 에서의 문제인가 하여 3.0.4, 3.0.3 조금씩 낮춰보며 확인을 해 보았지만 3.0.0 으로 바꾸기 전까지는 해결된 기미가 보이지 않음 원인 원인을 찾아보자. 일단 지금 상태의 build.gradle.kts 파일이다. ${code:build.gradle.kts} import org..

Development/Daily Error 2023.04.02
NVM 설치 후 터미널이 느리게 뜨는 문제 해결

문제 node.js 를 여러가지 버전을 변경해가며 사용하기 위해 NVMNode Version Manager를 설치했습니다. 그런데 맥북에 설치했을때도 그렇고 리눅스 환경에 설치했을때도 공통적으로 터미널을 실행 했을 때 준비되는 시간이 굉장히 길어졌습니다. 보통 터미널을 켜고 바로 명령어를 입력하곤 했는데, 터미널이 온전히 로딩되기 전에 키입력이 되는 상황이 반복되었습니다. 시간을 측정 해 보면 start=$(gdate +%s.%3N) ## 시간을 측정할 작업 end=$(gdate +%s.%3N) runtime=$(echo "($end - $start) * 1000" | bc) echo "Execution time: $runtime milliseconds" NVM을 로딩하는데만 보통 500ms 정도가 걸립..

Development/Daily Error 2023.03.18