본문 바로가기

프로그래밍/이것저것 일하면서

(53)
input type number를 비밀번호로 표시하기 문제 HTML input type 속성은 하나의 타입만 허용한다. number냐, password냐 둘 중 하나를 골라야 한다. 그런데 숫자만 입력 받고, 모바일에서 숫자 키패드가 뜨고, 비밀번호로 표시하고 싶다면? CSS 비표준 스타일을 추가해준다. 예제 코드 HTML CSS .input-number-password { -webkit-text-security: disc; } 설명 type="number" 숫자 인풋이다. inputmode="numeric" 모바일 디바이스에서 일반 키패드 대신 숫자 키패드를 띄운다. class="input-number-password" 웹킷 힌트를 준 클래스를 적용하였다. -webkit-text-security 값으로는 disc 말고도 square나 circle 등이 올..
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 버전을 쳐보았다. $ ..
[OpenLayers 3] 경계 좌표 가운데 지점 찾기 (Vector 레이어 가운데 지점) 악명 높은 브이월드를 할 일이 생겼다. 브이월드는 OpenLayers 3를 사용한다. 아주 옛날 버전이다. 2020년 01월 기준 최신 버전은 6.1이다. 메이저 버전이 3이나 차이난다. 어쨌든, GIS는 1도 몰라서 좌표계 어쩌고 고생했지만 가운데 지점을 찾았다. 요구사항 전국 지도에 시도 단위로 히트맵을 각각 클러스터링 한 정보를 그려달라(숫자) 문제 시도 단위로 색칠까지는 했는데 가운데 지점을 못 찾겠다. 해결 GetFeature 어쩌고 해서 좌표 정보를 가져옴. 피쳐 정보로 ol.source.Vector를 만든다. vectorSource.getExtent() 하면 [minX, minY, maxX, maxY] 좌표가 나온다. 참고 Extent는 범위 정보이다. 예컨대 꼬불꼬불 경계 정보로 만들어진 ..
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..
크롬 브라우저 비밀번호 자동완성 방지 (autocomplete 불가 시) 결론부터 크롬에서는 autocomplete 어트리뷰트 대신, 임의의 을 넣어주자. 개요 보통 회원정보에서 내 정보 수정을 할 때는 비밀번호 변경만 따로 있는 경우가 많다. 근데 이번 경우는 같은 폼에 있어서, 비번을 입력하지 않을 경우 수정되지 않는 폼이었다.(비번 재입력 받는 부분도 없음) 어쨌든 별도 입력을 안했는데 비번이 바뀌었다고 해서 확인해보니, 브라우저 자동완성이 문제였다. 사용자 행동 크롬은 사이트에 로그인을 하면 비번을 저장할 것인지 묻는다. 사용자가 여기서 '예'를 선택하여 인증정보를 저장했다. 내 정보 수정 화면에 접속 비밀번호 란에 자동완성 된 비밀번호가 입력되어 있음 '저장'하면 인코딩이 바뀌어 엉뚱한 비번이 들어감 로그인 못함... 해결책 비밀번호 자동완성 방지를 위해 input ..
게시판 내용에서 HTML 태그 제외하고 검색하기 요약: 정규식으로 HTML 태그를 삭제하고 검색한다. 사용자의 눈으로 게시판 글 등록 시 위지윅 HTML 에디터 (summernote, CK Editor, 네이버 스마트에디터 등)를 사용해서 글을 등록하면 (당연하게도)HTML이 함께 저장된다. 에디터에 따라 내용도 함께 저장되는 경우도 있다. 개발자가 보기에는 너무나 당연하지만, 사용자가 보기에는 내용에 안보이는 것이 검색되면 오류라고 생각한다. 예를 들어 line_friends.png를 에디터의 이미지 첨부했다. 저장된 콘텐츠는 다음과 같다. 라인 캐릭터 졸귀탱! friend라는 단어로 검색했다. 사용자가 보기에는 라인 캐릭터 졸귀탱! 밖에 안 보이는데 해당 게시물이 검색된다. 태그 지우고 텍스트 내용만 보기 HTML을 제외하고 게시물을 보기 위해 정..
Tomcat 8 / tomcat rfc 7230 rfc 3986 오류 톰캣의 특정 버전부터는 RFC 7230, RFC 3986에 의해 특수문자를 URI에 허용하지 않는다.따라서 GET으로 던지던 많은 파라미터에서 문제가 생길 수 있다.회사에서 되던게 집에서는 안되길래 크롬 개발자도구 네트워크 탭을 보니, URL Encoded 된 Query String에서 [ ] 등의 특수문자가 보였다. 400오류가 발생했고, 서버 콘솔에는 rfc 7230 and rfc 3986 관련 메시지가 떠있었다. 파라미터를 encodeURI 해서 던지거나 톰캣의 server.xml 옵션을 수정해주어야 한다.나는 회사에서 잡은 개발환경에 맞추기 위해 후자를 택했다. 톰캣 conf/server.xml의 Connector에 다음 부분을 relaxedQueryChars 옵션을 추가해주면 된다.