본문 바로가기

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

(55)
맥에서 '로케일을 인식할 수 없습니다' 오류 (MacOS, DB접속, 오라클 접속, 톰캣 실행 시 오류) 로케일을 인식할 수 없습니다 맥OS가 업데이트를 하고 나면 항상 발생하는 오류이다. DB (오라클 등) 접속할 때, 로컬에서 톰캣 실행할 때(DB 접속하면서) 등등... 항상 발생하는 오류인데 왜 안고쳐지는지 모르겠다. 해결방법 시스템 환경설정에 들어간다. 언어 및 지역 선택 지역을 다른곳으로 바꿨다가 다시 대한민국으로 바꾼다. 다시 실행해보면 잘된다.
모바일 브라우저에서 안드로이드 앱 실행시 주의할 점 스마트폰 브라우저에서 웹페이지로 접속시 안드로이드 앱으로 이동시키려고 한다. 앱 개발 커스텀 scheme을 사용하여 리다이렉트 시켰다. 안드로이드 앱 실행이 동작하지 않는다. 알고보니 안드로이드는 보안상 사용자의 제스쳐 없이 앱을 실행하는 것을 금지하고 있다. setTimeout 함수를 사용하여 1~3초 정도 시간을 두고 실행시키면 된다. $(function(){ // document ready if (!앱에서접속) { var scheme = 'customScheme://redirect?url=' + location.pathname; if (ios) { locadtion.href = scheme; } if (android){ // 2초 후 이동 setTimeout(() => { locati..
코드값을 유니크로 만들어야 하는 이유 시스템 개발을 하다 보면 보통 공통 코드라는 것을 만들어 사용하게 된다. 공통 코드 테이블은 부모-자식 테이블로 분리할 수도 있지만, 하나의 코드 테이블에 상위코드 같은 컬럼을 만들기도 한다. 어쨋든 코드는 대개 계층형(hierachy) 구조를 가진다. 그리고 DB에서 관리한다. 그런데 코드를 정의할 때 001, 002 이딴 식으로 정의하는 경우가 간혹 있다. 그런데 해당 코드와 뭔가 처리해야 할 변경사항이 생겼다? 전체 소스코드에서 Find all 해서 문자열 검색을 할텐데, 이 코드가 A의 하위코드 001인지 B의 하위코드 001인지 일일히 소스를 분석해봐야 알 수 있다. 마스터코드를 상세코드의 접두사로 사용하거나, 변수명처럼 의미있는 문자의 조합으로 만들면 적어도 이런 상황은 피할 수 있다. 그럼 ..
각주구검 하듯 만드는 이벤트 주소(URL) 월 단위로 진행하는 이벤트가 있다. 기존에 URI가 이런 식으로 만들어져 있었다. /event/something/v1 /event/something/v2 /event/something/v3 ... URI 마지막에 붙는 버전은 PathVariable로, jsp 파일명의 접미사로 사용되고 있었다. 그런데 여기에는 쪼끄맣고 귀여운 문제가 있었다. 버전이 무엇을 의미하는지 모호하다. 이벤트 참여유도 푸시 발송에 해당 URL이 함께 나가는데, 푸시발송 시 URL 부분은 하드코딩이다. 이벤트를 새로 진행할 때마다 변경해야 한다. 사용자 앱 내 메뉴 링크를 변경해야 한다. 이벤트 팝업을 설정하는 기획자가 매번 URL을 개발자에게 확인해야 한다. 새로운 이벤트가 진행되면 하드코딩을 수정해야하는 곳이 최소 3개이다. 그..
Spring @Scheduled cron 표현식은 년도를 설정할 수 없다 (Cron expression must consist of 6 fields (found 7 in "cron expression...")) 문제 목표: 이벤트 당첨자에게 올해 3~12월 10달 동안 매월 쿠폰을 발급해야 한다. 그래서 쿠폰 발급 프로세스를 Batch 프로젝트에 추가하고 크론은 다음과 같이 설정하였다. // 2021년 3~12월 매달 1일 새벽 1시 30분 실행 @Scheduled(cron = "0 30 3 1 3-12 ? 2021") 그런데 배치 프로젝트 실행 시 이런 오류가 발생했다. Cron expression must consist of 6 fields (found 7 in "0 30 3 1 3-12 ? 2021")원인 Spring @Scheduled 크론은 6자리 설정만 허용한다.(연도 설정 불가) 참고 링크: https://docs.spring.io/spring-framework/docs/current/javadoc..
리눅스 프로세스별 CPU, 메모리 사용량 확인 및 정렬 top 명령어 $ top 엔터를 치면 CPU와 메모리 사용량이 나온다. 정렬 단축키 Shift + P: CPU 사용량 내림차순 정렬 Shift + M: Memory 사용량 내림차순 정렬
사용자 실수 어디까지 막아야 할까? 오래된 시스템 하나를 유지만 하고 있다. 오늘 로그인이 안 된다는 문의를 받았다. 그냥 안된다고 한다. 우선 패스워드 틀린 카운트를 확인해보았다. 이상 없다. 어떻게 안되냐, 증상이 무엇이냐 물으니 관리자 로그인을 하면 '다른 홈페이지'로 이동이 된다고 했다. 그래서 어디로 이동이 되는지 알려달라고 했다. 그리고 로그를 열어보았다. 로그에는 이상한 점이 보이지 않는다. 가입정보를 천천히 보다 보니 뭔가 이상하다. 줄이 안 맞는다. 자세히 보니 아이디 앞에 공백 한 칸이 들어가 있다. 가입할 때 당연히 막았어야 하는 것이다. 하지만 유감스럽게도 그렇지 않은 것 같다. 어쨌든, 그래서 오류가 발생했다. 사용자는 반드시 실수한다. 오타를 입력하거나, 엉뚱한 버튼을 누른다. 그러나 모든 상황을 완..
SSL 인증서 파일 유효기간 확인 명령어 명령어 openssl x509 -in 인증서파일 -noout -dates결과 $ openssl x509 -in cert.pem -noout -dates notBefore=Dec 24 00:00:00 2020 GMT notAfter=Jan 23 23:59:59 2022 GMT