본문 바로가기

전체 글

(107)
맥/MacOS - CannotGetJdbcConnectionException 로케일을 인식할 수 없습니다 맥OS 업데이트 후 갑자기 ajax 요청에서 오류가 발생해서 보니 로케일을 인식할 수 없다는 오류가 나있다. 오류 CannotGetJdbcConnectionException 어쩌고저쩌고 로케일을 인식할 수 없습니다. 해결 1. VM 옵션 추가 -Duser.language=ko -Duser.country=KR 2. 언어 및 지역 변경 맥 시스템 환경설정 -> 언어 및 지역 들어가서 다른 나라로 바꿨다가 다시 대한민국으로 해주면 된다. 매번 OS 업데이트 할 때마다 이런다. 엄청 오래된 버그다. 애플이 미국놈들이라서 이런건 신경 안쓰는 건지 ㅜㅜ 그럼에도 불구하고 나는 애플을 쓴다. 미제 앞잡이다......
Spring / jQuery ajax 사용시 Uncaught TypeError: Cannot read property 'toLowerCase' of undefined 오류 오류 jQuery로 $.ajax 호출하는데 다음과 같은 오류가 발생했다. Uncaught TypeError: Cannot read property 'toLowerCase' of undefined 원인을 알아보니 스프링 시큐리티 csrf 설정 관련 오류이다. 사용자 인증 되지 않은 상태(비로그인)에서는 $(document).ajaxSend ajax 설정에서 token과 header가 null로 넘어가서 발생한 오류이다. 해결 token, header null 체크를 추가했다. 해결 전 $(function () { var token = $("meta[name='_csrf']").attr('content'); var header = $("meta[name='_..
아이디, 패스워드 패턴 검사는 정규식으로 하자 레거시 소스 분석 중 이런 것을 보았다. var alphaDigit = "abcdefghijklmnopqrstuvwxyz1234567890"; for (i=0; i < userId.length; i++) { if (alphaDigit.indexOf(userId.substring(i, i+1)) < 0) { alert("아이디는 영문소문자와 숫자의 조합만 사용할 수 있습니다."); return false; } } 여기 뿐만 아니라 여기저기에 코딩 초보의 티가 많이 나는 소스이다. 문자열 패턴 검사에는 정규식이라는 좋은 것이 있다. 정규표현식 혹은 정규식이라고 검색하면 많이 나온다. 정규식을 사용하면 위 코드를 아래처럼 바꿀 수 있다. if (!/^[a-z0-9]{4,10}$/gi.test(userId)) ..
List<?>를 사이즈별 List<List<?>> 로 나누기 (Lists.partition) 문제 List에 PK 값이 담겨 있다. 오라클 WHERE 절에서 IN (...) 값으로 사용하려고 했으나, IN(...)에는 최대 1,000개까지 파라미터가 들어갈 수 있다고 한다. 그래서 1,000개씩 나누어서 여러번 호출했다. 검색을 해보니 DB에 함수를 만들고 어쩌고저쩌고 해서 가능하다고 한다. 하지만 이 데이터베이스에 나는 select 말고는 아무 권한이 없다. 그래서 그냥 여러번 호출했다. 해결 Lists.partition(list, n) Guava 라이브러리를 사용하면 된다고 한다. 하지만 내부망이라서 좌절했다. 그래도 혹시나 싶어서 Lists. 까지 입력하고 자동완성을 켜봤더니 뭔가 나온다! 놀랍게도 이 프로젝트 라이브러리에 guava-21.0이 추가되어 있었다. List lists = Li..
IE에서 [Syntax Error: ':'가 필요합니다] 발생하면 ES6를 사용한 것 오류 잘 되던 것이 IE에서 테스트를 하니 &#39;:&#39;가 필요합니다 오류 메시지가 뜬다. 사정상 Vue를 컴파일하지 않고 httpVueLoader로 불러 사용하고 있는데 코드 중 ES6가 있었기 때문이다. 정확하게는 다음 문제이다. 원인 ES6 문법 중 오브젝트의 프로퍼티로 함수를 지정할 때 다음과 같이 function 키워드를 명시하지 않고 ()축약해서 쓸 수 있다. var methods = { someFunction() { // ... } }; 해결 IE에서는 당연히 안된다. 다음과 같이 고쳐야 한다. var methods = { someFunction : function () { // ... } }; IE 없는 세상에서 살고 싶다. 대한민국 인터넷 브라우저 중 IE 점유율이 이미 10% 밖..
[Vue.js] 체크박스 값을 boolean(true/false) 대신 'Y/N' 으로 바꾸기 상황 Vue.js에서 체크박스에 바인딩 된 모델의 값은 기본적으로 true / false 이다. 근데 고객 놈들의 디비는 Y/N 문자로 관리한다. 해결 input의 true-value와 false-value props를 사용한다. 주의할 점은, 이 값은 form submit 시 체크되지 않은 값은 전송되지 않는다는 점이다. 나는 form submit 하지 않고 바인딩된 모델 json을 전송해서 사용하므로 상관없었다. 참고 https://kr.vuejs.org/v2/guide/forms.html#%EC%B2%B4%ED%81%AC%EB%B0%95%EC%8A%A4-1
Mac OS 업데이트 후 git이 안되네 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 맥 OS 업데이트 후 커맨드라인 오류 카탈리나가 나온지도 꽤 지난 지금, 여태 맥북의 OS를 하이시에라를 쓰고 있었다. 야근하다 시간이 남아 OS를 카탈리나로 올렸는데 터미널이 안된다. 오류 IntelliJ에서 git을 사용하려는데 오류가 났다. 터미널에서 해보니 같은 오류가 발생한다. $ git --version xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 해결 xcode-select 재설치 xcode-select --install 설치 완료 후 다시 git 버전을 쳐보았다. $ ..
jQuery rotate 이미지 회전 시 함정카드 조심 여러가지 훌륭한 프론트엔드 프레임워크가 많은 시대에 jQuery로 일반적인 CRUD 화면을 개발해야 하는 것은 굉장히 난감한 상황이다. 그러나 제이쿼리의 오래된 역사와 생태계로 인해 UI 개발에는 여전히 jQuery의 여러가지 플러그인 없이는 무언가를 &#39;쉽게&#39; 구현하기 힘들다. jQuery rotate도 그 중 하나이다. 그 이름처럼 무언가를 회전시켜 주는 플러그인이다. jQuery rotate [http://jqueryrotate.com/]http://jqueryrotate.com/ 기본적인 사용법은 워낙 간단해서 공식 홈페이지에 나온 몇 가지 예제로 충분하다. 단순 회전 애니메이션과 함께 회전 애니메이션 시간 조절 완료 후 콜백 무한 회전 이 정도면 회전으로 하는 모든 것을 할 수 있다..