[Java] properties 파일에 등록한 메시지들이 깨질 때
·
Error
API 응답에 대해 공부하다가 예전부터 메시지를 등록하면 다음과 같이 깨지는 현상이 존재했다.깨지는 이유가 뭐에요자바에서 .properties 파일은 기본적으로 ISO-8859-1 타입 인코딩으로 해석된다..ISO는 우리가 지금 사용하는 사실상 표준 utf-8 이전에 사용하던 문자 인코딩으로, 영어, 숫자 , 아스키 코드 등만 지원하는 인코딩 셋이다.그래서 메시지를 한글로 등록하면 인코딩이 깨져서 해석할 수 없게 되어 저렇게 물음표로 출력되는 것이다. 정리하자면, .properties는 ISO-8859-1 인코딩셋을 사용하는데, 우리는 utf-8 인코딩셋인 한글을 사용하려고 했기 때문에 자바가 잘못된 바이트로 인식하여 한글이 깨지는 현상이 발생했던 것이다.해결방법인텔리제이 기준 Setting - Edit..
[Spring] 며칠 굶은 것 같이 부실한 로그
·
Error
로그가 밥을 덜먹었나..스프링부트 3.1 버전부터는 스프링 빈을 출력하는 로그가 대폭 생략되었다.예를들어 아래처럼 컴포넌트 스캔한 빈들을 조회하고자 할때 3.1 버전 부턴 다음과 같이 간소화 되었다.해결법src/main/resources/logback.xml 경로로 다음과 같은 파일을 생성하면 된다. %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n 그새 어디가서 국밥이라도 한그릇 먹고 왔는지, 더 자세한 로그를 확인할 수 있게 되었다.
[Spring] 드디어 당한 오타 에러
·
Error
드디어 저도 당했어요드디어 당했다. 마침내 나도 당했다.코드에서 문자열 오타를 잡기가 가장 어렵다는걸 알고 조심하면서도 이번에 당하고 말핬다.사건의 개요컴파일 오류도 없이(당연히 일반 로직에는 문제가 없기 때문ㅋㅋ) 서버도 잘 열리고, 다음과 같이 Http 메서드도 잘 작동이 되었다. 근데 막상 해당 URI로 접속하면 아래와 같이 404 에러가 뜬다. 근데 이 화이트 라벨 에러는 서버는 열렸지만 찾는 페이지가 없을 때 발생하는 오류기에, 나는 이때까진 정말 뭐가 문제인지 몰랐다.분명 URL도 잘 입력하여 저장했고, 브라우저에서도 URL을 정확하게 입력했는데도 해결되지 않았다.그렇다면 내가 방어로직을 잘못 짰나? 싶었다. 방어로직도 잘 짜놨는데..위 두가지로 방어로직도 잘 짜놨다. 물론 첫번째 사진의 40..
[Junit] fail() 메서드 reference to fail is ambiguous 에러
·
Error
fail() 메서드 에러스프링에서 Test 케이스 작성중에 예외를 테스트하기 위해 fail() 메서드를 사용하던 중에 reference to fail is ambiguous 에러가 발생했다. 원인 및 해결검증을 위한 Assertion 라이브러리가 두개 import 되어 있어 발생한 에러이다.core.api 라이브러리만 남겨두고 jupiter 라이브러리는 삭제하여 문제를 해결하였다. 결론IDE가 사용하지 않는 라이브러리에 대해서는 회색으로 처리해주지만, 저렇게 사용하지 않는 라이브러리 import 코드가 영향을 줄 수도 있다는 점을 알게 되었다..귀찮더라도 import 문을 한번씩 열어보고 사용하지 않는 라인은 지워주는 습관을 꼭 들이도록 하자.
[Android Studio] 애뮬레이터의 로컬 주소에 대하여
·
Error
저번 학기 요새 아주 장안의 화제(사실 그냥 있는거 쓰는게 더 낫지만)인 AI 비서를 스마트폰에 온디바이스 형식으로 개발해보고자, Gemini API를 사용하여 나만의 인공지능 어플을 개발했었다. 개발 도중에 아주 흥미로운 주제를 찾을 수 있어서, 이렇게 짧게나마 기록해보고자 한다.위 코드는 http method (get,post,delete,put) 중에서 get 메서드를 처리하여 uvicorn 패키지를 통해 로컬 호스트 서버를 구현하는 코드의 일부분이다.이때 우리에게 보이는 127.0.0.1 주소는 우리가 흔히 사용하는 내 컴퓨터의 로컬 주소이다.위 코드가 정상적으로 실행 된다면 위와 같이 정상적으로 서버가 열린 모습을 확인 할 수 있는데, 이 서버를 이용하기 위해 안드로이드 스튜디오의 애뮬레이터와..