본문 바로가기

분류 전체보기

(107)
QueryBox 데이터 내보내기 시 한글 인코딩 주의사항 QueryBox 데이터 내보내기 시 한글 인코딩 주의사항 QueryBox는 아주 괜찮은 프로그램이다. 발주사에서 툴을 제공해주지 않아도 라이선스에 구애받지 않고 무료로 사용할 수 있는 몇 안되는 프로그램 중 하나다. 기능적인 면에서도 DBA가 아닌 평범한 개발자의 입장에서 툴을 사용하므로 이 이상 바랄것이 없다. 다만 어느 프로그램이나 그렇듯 소소한 불편함이 가끔 있다. 데이터 내보내기/들여오기에서는 특히나 그런 점이 많았다. 데이터 내보내기 주의사항 스키마 8개 정도를 다 옮기고 애플리케이션을 구동시켜 보니 그제서야 한글이 깨진 것이 보인다. 아뿔싸... 분명히 디비에 접속할 때 문자 인코딩도 DB와 똑같이 맞춰줬는데 왜 그럴까? 몇 번을 테스트 해보아도 마찬가지다. 쉬는시간 한 번 가지고 찬찬히 살펴..
오라클 유저(스키마) 생성 시 ORA-00988 ORA-00988 비밀번호가 틀립니다 오라클 유저 생성 중 오류가 발생했다. CREATE USER NEWUSER IDENTIFIED BY 'newpasswd!'; 발생 오류: ORA-00988 비밀번호가 틀립니다 새 유저인데 뭔 비밀번호가 틀려?? 알고 보니 패스워드에 쌍따옴표가 아닌 홑따옴표를 사용하여 발생한 오류였다. 따옴표를 바꿔주니 잘된다. 해결 CREATE USER NEWUSER IDENTIFIED BY "newpasswd!";
logback 보안 업데이트 / log4j2 JNDI Lookup 취약점 관련 조치 log4j2 JNDI Lookup 취약점 이미 2021년 한 해를 뜨겁게 장식했던 매우 심각한 취약점이다. 우리 프로젝트에서는 log4j2를 직접 사용하지 않고 spring-boot-starter-logging 모듈을 통해 logback을 사용하고 있는데, Spring 공식 블로그에는 다음과 같이 안내하고 있으므로 별다른 조치를 취하지 않았다. Apache Log4j 보안 업데이트 권고(CVE-2021-45105, 44832) (Update. 22-1-3 14:30) Log4J2 Vulnerability and Spring Boot Spring Boot users are only affected by this vulnerability if they have switched the default loggi..
No thread-bound request found No thread-bound request found 오류 RequestContextHolder에서 request를 가져오려는데 다음과 같은 오류가 발생했다. HttpServletRequest httpServletRequest = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest(); java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the o..
정규식 - XSS방지 EL에서 JSTL <c:out escapeXml="true"/> 변환 꿀팁 XSS 방지를 위해 필터가 사용하지만, 이런저런 사연으로 EL을 JSTL c:out으로 변경하라는 요청이 왔다. 하나씩 찾아 바꾸기에는 너무 노동집약적인 작업이라 다음과 같이 정규식을 사용하였다. 찾을 값 (정규식 사용!) (\$\{.+?\})변경할 값 ${title} 같은 값이 로 바뀐다.
맥에서 '로케일을 인식할 수 없습니다' 오류 (MacOS, DB접속, 오라클 접속, 톰캣 실행 시 오류) 로케일을 인식할 수 없습니다 맥OS가 업데이트를 하고 나면 항상 발생하는 오류이다. DB (오라클 등) 접속할 때, 로컬에서 톰캣 실행할 때(DB 접속하면서) 등등... 항상 발생하는 오류인데 왜 안고쳐지는지 모르겠다. 해결방법 시스템 환경설정에 들어간다. 언어 및 지역 선택 지역을 다른곳으로 바꿨다가 다시 대한민국으로 바꾼다. 다시 실행해보면 잘된다.
모바일 브라우저에서 안드로이드 앱 실행시 주의할 점 스마트폰 브라우저에서 웹페이지로 접속시 안드로이드 앱으로 이동시키려고 한다. 앱 개발 커스텀 scheme을 사용하여 리다이렉트 시켰다. 안드로이드 앱 실행이 동작하지 않는다. 알고보니 안드로이드는 보안상 사용자의 제스쳐 없이 앱을 실행하는 것을 금지하고 있다. setTimeout 함수를 사용하여 1~3초 정도 시간을 두고 실행시키면 된다. $(function(){ // document ready if (!앱에서접속) { var scheme = &#39;customScheme://redirect?url=&#39; + location.pathname; if (ios) { locadtion.href = scheme; } if (android){ // 2초 후 이동 setTimeout(() => { locati..
코드값을 유니크로 만들어야 하는 이유 시스템 개발을 하다 보면 보통 공통 코드라는 것을 만들어 사용하게 된다. 공통 코드 테이블은 부모-자식 테이블로 분리할 수도 있지만, 하나의 코드 테이블에 상위코드 같은 컬럼을 만들기도 한다. 어쨋든 코드는 대개 계층형(hierachy) 구조를 가진다. 그리고 DB에서 관리한다. 그런데 코드를 정의할 때 001, 002 이딴 식으로 정의하는 경우가 간혹 있다. 그런데 해당 코드와 뭔가 처리해야 할 변경사항이 생겼다? 전체 소스코드에서 Find all 해서 문자열 검색을 할텐데, 이 코드가 A의 하위코드 001인지 B의 하위코드 001인지 일일히 소스를 분석해봐야 알 수 있다. 마스터코드를 상세코드의 접두사로 사용하거나, 변수명처럼 의미있는 문자의 조합으로 만들면 적어도 이런 상황은 피할 수 있다. 그럼 ..