본문 바로가기

프로그래밍

(91)
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의 여러가지 플러그인 없이는 무언가를 '쉽게' 구현하기 힘들다. jQuery rotate도 그 중 하나이다. 그 이름처럼 무언가를 회전시켜 주는 플러그인이다. jQuery rotate [http://jqueryrotate.com/]http://jqueryrotate.com/ 기본적인 사용법은 워낙 간단해서 공식 홈페이지에 나온 몇 가지 예제로 충분하다. 단순 회전 애니메이션과 함께 회전 애니메이션 시간 조절 완료 후 콜백 무한 회전 이 정도면 회전으로 하는 모든 것을 할 수 있다..
[OpenLayers 3] 경계 좌표 가운데 지점 찾기 (Vector 레이어 가운데 지점) 악명 높은 브이월드를 할 일이 생겼다. 브이월드는 OpenLayers 3를 사용한다. 아주 옛날 버전이다. 2020년 01월 기준 최신 버전은 6.1이다. 메이저 버전이 3이나 차이난다. 어쨌든, GIS는 1도 몰라서 좌표계 어쩌고 고생했지만 가운데 지점을 찾았다. 요구사항 전국 지도에 시도 단위로 히트맵을 각각 클러스터링 한 정보를 그려달라(숫자) 문제 시도 단위로 색칠까지는 했는데 가운데 지점을 못 찾겠다. 해결 GetFeature 어쩌고 해서 좌표 정보를 가져옴. 피쳐 정보로 ol.source.Vector를 만든다. vectorSource.getExtent() 하면 [minX, minY, maxX, maxY] 좌표가 나온다. 참고 Extent는 범위 정보이다. 예컨대 꼬불꼬불 경계 정보로 만들어진 ..
[오라클] the account is locked 문제 로컬 서버가 안 올라가서 보니 the account is locked이 뜬다. 당연히 DB 툴에서도 접속이 안된다. 해결 SELECT * FROM dba_users WHERE username = 'MYUSERNAME'; lock 된 사용자를 볼 수 있다. ALTER USER MYUSERNAME ACCOUNT UNLOCK; 잠금을 해제한다. 원인 알고보니 사용자 계정을 만들 때 비밀번호를 대문자로 만들고 애플리케이션 프로퍼티에는 소문자로 썼다. 앗! 나의 시이이일^수~
axios 요청 응답 시 오버레이 로딩 이미지 띄우기 (axios beforeSend) 결론부터 jQuery ajax의 beforeSend 같은 기능을 axios에서 구현하고 싶다면, interceptor를 설정하면 된다. 오버레이 로딩, 스피너(뺑글뺑글 이미지) 등 여러가지 이름으로 불리지만, 어쨌든 마음에 드는 것을 쓰면 된다. 주의: 로딩 띄우는 것은 요청 전에만, 나머지는 로딩 오버레이를 꺼야한다. 지금은 Vue.js로 개발하고 있기 때문에 store에 loading이라는 상태를 만들고 app.vue에 오버레이 로딩 컴포넌트를 삽입하여 $store.state.loading을 참조하게 했다. mutation에는 startLoading, endLoading을 만들어 아래 인터셉터에서 스토어의 상태를 바꾼다. 아래 코드는 axios 공식 문서에서 주석만 수정한 것이다. 해당 위치에서 오버..
Java try-with-resources FileOutputStream을 쓸 일이 생겼다. 다른 분이 만들어 놓은 유틸 클래스가 있어서 가져다 쓰려고 봤는데, 언뜻 보니 close()가 없었다. 우선 내가 알던 고전적인 코드는 다음과 같이 작성한다. FileOutputStream fos = null; try { fos = new FileOutputStream(file); fos.write(mFile.getBytes()); } catch (IOException e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } }자원을 사용했으면 반드시 close()를 호출한다고 배웠다. ..
Spring/MySQL '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 오류 MySQL 5.7.26 고인물 레거시 시스템을 새로 만드는 중이다. MySQL에서 datetime 컬럼을 추가 후 테스트케이스 작성 중 다음과 같은 오류가 떴다. '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp error 해당 컬럼 값은 NULL인데 왜 '0000-00-00 00:00:00' 라고 할까? 처음에 Not Null에 디폴트로 타임스탬프를 줘서 만들었다가 Nullable, 디폴트를 삭제한 것이 이유였다. 검색을 해보니 접속 정보에서 zeroDateTimeBehavior=convertToNull를 추가하라고 하는데 컬럼정보를 수정하는 것이 더 옳은 방법이라고 생각한다. 그냥 깔꼼하게 컬럼을 지우고..
인증 없는 SMTP, JavaMailSender에서 MailAuthenticationException 발생 개발서버 테스트를 진행 중이다. 이메일 발송 배치작업이 좀 있는데 메일서버가 따로 없으니 서버에서 직접 보내라고 한다. 리눅스 서버에 sendmail을 설치했다. 텔넷으로 테스트를 해보니 메일이 잘 발송된다. 그런데 애플리케이션을 올리니 사용자 인증을 자꾸 요구한다. JavaMailSenderImpl에서 MailAuthenticationException를 발생시킨다. 엥? 인증 필요 없는데?? 기존: spring: profiles: dev mail: host: localhost username: test@test.com password: protocol: smtp 혹시나 싶어서 password를 아예 삭제해주니 잘된다. 변경 후: spring: profiles: dev mail: host: localho..