본문 바로가기

spring custom error page 스프링 개발하다보면 에러 페이지를 표출할 때 기본으로 제공하는 에러 페이지 말고 커스텀 에러 페이지 표출해야 하는 경우가 있습니다. 먼저 web.xml에 아래와 같이 태그를 작성합니다. web.xml 내용은 에러가 발생하면 "/errors"로 매핑시킨다는 뜻입니다. 그리고 컨트롤러에 해당 매핑 내용을 작성합니다. 위의 소스를 보게 되면 에러코드에 따라 표출 페이지가 달라진 다는 것을 확인할 수 있습니다. (400이면 400 에러 페이지, 404이면 404 에러 페이지...) 그리고 해당 에러 페이지를 위에서 작성한 "errors" 폴더 아래에 추가합니다. 이렇게 하면 쉽게 커스텀 에러 페이지를 사용할 수 있습니다. 이 방법 외에 web.xml에서 바로 에러 코드별 페이지를 매핑시키는 방법도 있습니다. 개..
pinpoint-agent 설치 pinpoint-agent를 설치하면 tomcat과 pinpoint를 연계할 수 있습니다. pinpoint-agent를 설치하기 위해 /home 디렉토리 밑에 pinpoint-agent 디렉토리를 생성하고 pinpoint-agent를 다운받습니다. 다운이 제대로 되었는지 확인하고 압축파일을 풉니다. 압축파일이 잘 풀렸는지 확인하고, pinpoint.config 파일을 수정합니다. pinpoint.config 파일에서 collector.ip를 tomcat 서버 ip로 수정하면 됩니다. pinpoint.config 파일 수정이 끝났으면 이제 tomcat의 catalina.sh 파일을 아래와 같이 수정해야 합니다. (그리고 저는 docker 환경에서 구동중이라 pinpoint-agent를 tomcat 컨테이너..
docker container install vi docker 컨테이너 안에서 파일을 수정해야 하는데 vi 편집기가 설치되어있지 않은 경우가 종종 있습니다. 그럴 때 당황하지 않고 vi 편집기를 설치하면 됩니다.😁 먼저 apt-get을 업데이트합니다. 그리고 apt-get으로 nano 편집기를 설치합니다. 마지막으로 apt-get으로 vim 편집기를 설치합니다. 설치 중간에 계속 진행할 거냐고 물어보는데 "Y" 입력하고 계속 진행하면 됩니다. 설치가 정상적으로 종료되면 다음과 같이 vi 편집기를 사용할 수 있습니다.
Java NumberFormat DecimalFormat 클라이언트로부터 받은 데이터가 숫자인 경우 특히 금액 관련 데이터라면 3자리 단위로 변환해야 할 때가 있습니다. 반대인 경우도 있고요. 그럴 때 NumberFormat과 DecimalFormat을 사용하면 됩니다. NumberFormat : 3자리 단위인 데이터를 숫자로 변환(문자열 -> 숫자) DecimalFormat : 숫자를 3자리 단위로 변환(숫자 -> 문자열) 예제 코드를 보면 11~13라인은 NumberFormat을 사용해서 3자리 단위 문자열을 숫자로 변환하고 있습니다. 15~17라인은 DecimalFormat을 사용해서 숫자를 3자리 단위 문자열로 변환하고 있습니다. 예제 코드를 실행하면 위와 같이 정상적으로 표출되고 있습니다.
1000 단위 표출 사용자가 입력한 데이터가 숫자인 경우 특히 금액이면 1000 단위로 끊어서 표출해야 하는 경우가 있습니다. 그럴 때 정규표현식으로 해도 되지만 더 쉽게 하는 방법이 있습니다. 위의 예시를 보게 되면 값(1000000)을 Number 객체로 생성한 다음에 toLocaleString 함수를 사용해서 1000 단위씩 표출하고 있습니다.
자바스크립트 replaceAll 자바스크립트 문자열에 replace라는 함수가 존재하지만 replaceAll 함수는 존재하지 않습니다. 이럴 때 정규표현식을 사용하면 쉽게 해결할 수 있습니다. 위의 예시를 보게 되면 ', '를 공백으로 대체하고 있는데 ', '(콤마)를 '/'으로 감싸고, 'g'는 모든 패턴에 대한 전체 검색, 'i'는 대소문자 구분 x 조건으로 콤마를 대체하고 있습니다. 앞으로 replaceAll을 사용할 일이 있으면 replace와 정규표현식을 조합해서 사용하면 될 거 같습니다.
String split 특수문자 자바에서 문자열을 특정 문자 기준으로 나눌 때 split api를 사용하는데 특수문자를 기준으로 할 때 주의해야 할 점이 있습니다. 특수문자 앞에 "\\"를 붙이지 않으면 정규표현식 메타 문자로 인식해서 split이 제대로 되지 않습니다. 그래서 특수문자 기준으로 split를 쓰려면 아래와 같이 써야합니다. 위 예제는 "|" 기준으로 split을 하려고 하고 앞에 "\\"을 붙였습니다. 그리고 결과는 다음과 같습니다. 특수문자 기준으로 split을 할 때 꼭 "\\" 붙이는 거 잊지 않으면 좋겠습니다.
cvc-id.3: A field of identity constraint 'web-app-filter-name-uniqueness' matched element 'web-app', but this element does not have a simple type. 에러 수정 프로젝트 세팅하다가 web.xml에서 다음과 같은 에러가 발생했습니다. 구글링해봤는데 이클립스에서 xml의 namespace 정보를 못 불러와서 생긴 에러인거 같아서 java.sun.com의 주소를 Java.sun.com으로 변경했더니 에러가 사라졌습니다. web.xml을 위와 같이 수정했더니 에러가 사라졌습니다. 간단한 버그여서 쉽게 해결했습니다😊