본문 바로가기

프로그래밍

(91)
Typescript / TSLint 오류 - Type boolean trivially inferred from a boolean literal, remove type annotation Vue 컴포넌트를 만들고 있는데 TSLint에서 경고를 했다. 문제가 된 코드 private resizable: boolean = true;TSLint 경고 내용 Type boolean trivially inferred from a boolean literal, remove type annotation원인 초기값을 할당하면서 true를 줬는데, 코드에서 타입을 명시하지 않아도 컴파일러가 초기값을 통해 타입을 추론할 수 있으므로 코드가 장황해진다. 수정된 코드 tslint.json을 이런 경우를 체크하지 않도록 수정하거나 코드를 수정하면 되는데, 나는 습관을 고치기 위해 코드를 수정하기로 했다. private resizable = true;만약 tslint 설정을 고치고 싶다면 tslint.json에서 다..
크롬 브라우저 비밀번호 자동완성 방지 (autocomplete 불가 시) 결론부터 크롬에서는 autocomplete 어트리뷰트 대신, 임의의 을 넣어주자. 개요 보통 회원정보에서 내 정보 수정을 할 때는 비밀번호 변경만 따로 있는 경우가 많다. 근데 이번 경우는 같은 폼에 있어서, 비번을 입력하지 않을 경우 수정되지 않는 폼이었다.(비번 재입력 받는 부분도 없음) 어쨌든 별도 입력을 안했는데 비번이 바뀌었다고 해서 확인해보니, 브라우저 자동완성이 문제였다. 사용자 행동 크롬은 사이트에 로그인을 하면 비번을 저장할 것인지 묻는다. 사용자가 여기서 '예'를 선택하여 인증정보를 저장했다. 내 정보 수정 화면에 접속 비밀번호 란에 자동완성 된 비밀번호가 입력되어 있음 '저장'하면 인코딩이 바뀌어 엉뚱한 비번이 들어감 로그인 못함... 해결책 비밀번호 자동완성 방지를 위해 input ..
InternetExplorer ajax 파일 다운로드 처리 (msSaveBlob 사용) 백오피스의 일부 엑셀 다운로드가 IE에서 안 된다는 오류가 들어왔다. 열어보니 두 케이스였다. 프론트에서 데이터 내용을 만들어 a 태그에 넣어 클릭 발생 서버에서 받아오지만 ajax로 byte[]를 받아와 a 태그로 만들어 클릭 발생 어쨌뜬 의 download 어트리뷰트를 사용한다는 공통점이 있었다. 이건 IE에서는 안된다. download 어트리뷰트가 엣지부터 가능하기 때문이다. (IE를 안 쓰면 모두가 행복한데 ㅠㅠ) 그냥 서버로 처리할까 하다가 msSaveBlob라는 것을 찾았다. IE10부터 지원한다. if (window.navigator.msSaveBlob) { var blob = new Blob([datastring]); window.navigator.msSaveBlob(blob, fileNa..
document.querySelectorAll(...).forEach 오류 자바스크립트 오류 querySelectorAll은 NodeList를 반환하는데, 일부 브라우저(라고 쓰고 IE라고 읽는다)에서 안된다. 해결: Array.prototype.slice.call을 사용하여 오류를 회피한다. 다음 문서를 참조하자. Array.prototype.slice.call(document.querySelectorAll('.className')).forEach( function () { // ... }); MDN Web Docs - NodeList.prototype.forEach()
게시판 내용에서 HTML 태그 제외하고 검색하기 요약: 정규식으로 HTML 태그를 삭제하고 검색한다. 사용자의 눈으로 게시판 글 등록 시 위지윅 HTML 에디터 (summernote, CK Editor, 네이버 스마트에디터 등)를 사용해서 글을 등록하면 (당연하게도)HTML이 함께 저장된다. 에디터에 따라 내용도 함께 저장되는 경우도 있다. 개발자가 보기에는 너무나 당연하지만, 사용자가 보기에는 내용에 안보이는 것이 검색되면 오류라고 생각한다. 예를 들어 line_friends.png를 에디터의 이미지 첨부했다. 저장된 콘텐츠는 다음과 같다. 라인 캐릭터 졸귀탱! friend라는 단어로 검색했다. 사용자가 보기에는 라인 캐릭터 졸귀탱! 밖에 안 보이는데 해당 게시물이 검색된다. 태그 지우고 텍스트 내용만 보기 HTML을 제외하고 게시물을 보기 위해 정..
Spring Boot, 파일 업로드 용량 설정 FileUploadBase$SizeLimitExceededException Spring Boot 에서 파일 업로드를 하다가 오류가 나서 콘솔을 보니 용량 제한이 있었다. 프로필에서 maxFileSize를 설정해주면 되는데, 주의할 점은 maxRequestSize도 설정이 필요하다. Spring Boot 1.3.x and earlier multipart.maxFileSize multipart.maxRequestSize Spring Boot 1.4.x and 1.5.x spring.http.multipart.maxFileSize spring.http.multipart.maxRequestSize Spring Boot 2.x spring.servlet.multipart.maxFileSize spring.serv..
자바스크립트 클립보드 복사 (라이브러리 없이) 자바스크립트 클립보드 복사 원리: 더미 텍스트상자를 만들어 복사한다. 클립보드 복사
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 옵션을 추가해주면 된다.