EXCEL에서 데이터를 붙여넣기 했을 때 숫자타입이 문자열 서식으로 지정되어서 문제가 될 때가 있습니다. 서식을 숫자로 바꿔도 자동으로 변환이 안되고 셀을 선택해서 에디트 모드가 되었다가 나와야 서식이 적용되죠. 열이 긴 경우 일일이 하기 힘들지만 다음방법으로 일괄 적용되게 할 수 있습니다. 열을 선택해서 서식을 숫자로 변환한 후에 열을 선택한 상태에서 다음 키을 순서대로 입력합니다. Alt키 -> A -> E -> F 순으로 누릅니다. 열단위로만 적용가능 ( 여러 열을 선택하여 적용안됨) 합니다.
apache commons-lang 라이브러리에서 제공하는 ToStringBuilder, ToStringStype 를 이용해서 Vo객체 전체를 출력하는 소스코드 정리 ToStringBuilder.reflectionToString(this, ToStringStype.DEFAULT_STYLE); ==> com.test.vo.TestVo@797866688[id=값, name=값, address=주소1] JSON_STYLE ==> {“id”:”값1”,”name”:”값2”,”address”:”주소1”} MULTI_LINE_STYLE ==> com.test.vo.TestVo@798776990[ id=값1 name=값2 address=주소1 ] NO_CLASS_NAME_STYPE ==> [id=값1,name=값2,a..
내가 필요한데 기억할 수는 없고, 기록으로 남김. 1번째 방법. 윈도우즈 탐색기에서 원하는 폴더로 이동한 후에 주소창에 "cmd"라고 치고 엔터키를 누른다. 2번째 방법. Shift 키를 누른 상태에서 마우스오른쪽 버튼을 누른다. (윈도즈 10에서는 안 되는 것 같음.) 3번째 방법. 레지스트리의 폴더의 명령을 추가한다. [HKEY_CLASSES_ROOT\Folder\shell] 에서 새로 만들기 Key 한 후 원하는 명령어 명칭을 입력한다. HKEY_CLASSES_ROOT\Folder\shell\"명령어"에서 다시 Key를 새로 만들고 "Command"를 입력한다. Command의 기본값을 "cmd.exe /k "% L"를 입력. /k는 창을 닫지 않고 유지하기, %L은 현재 전체 경로
파일명에서 확장자를 가져오거나 제거할 때 유용한 코드를 기록으로 남긴다. /* lastIndexOf와 substring 이요 */ File f = new File("test.txt"); int dot = f.getName().lastIndexOf('.'); if(dot > -1) { //확장자 System.out.println(f.getName().substring(dot+1); //확장자 제거 System.out.println(f.getName().substring(0, dot); } 위의 코드를 아래처럼 간단하게 처리 가능하다. import org.apache.commons.io.FilenameUtils; File f = new File("test.tif"); //학장자 가져오기 System.out...
오래 전에 초단기간 내에 REST Api를 이용해서 웹서비스를 개발해 달라는 요구사항을 받은 적이 있었는데 그때는 잘 모르는 상황에서 인터넷 검색에 의지하면서 겨우겨우 개발했던 기억이 있습니다. 요구사항이 요상했는데 5개정도의 웹서비스를 요즘(요청당시) 유행하는 REST Api 방식으로 개발하고 토큰을 발행하지만 서버세션으로 사용자를 인증하고, 원타임 패스워드를 이용한 암호화를 하는데 실제 개발기간은 1주일 정도라는 말도 안 되는 요구사항이었습니다. (웃음) 요구사항을 들을 당시는 단순하게 생각해서 그냥 넘어갔지만 토큰을 발행하는데 세션으로 권한관리를 해달라고 하니 무언가 이상했고 세션을 유지하기 위해 서비스 요청 시 헤더의 쿠키값을 유지해달라는 요구에 클라이언트들이 불만을 이야기 했습니다. (클라이언트..
오라클 쿼리 시 반환되는 레코드 수를 제한하는 방법을 기록해 두고자 글을 작성합니다. Oracle 12버전 이전에는 rownum 으로 레코드 순번을 조회 한 후에 where 조건에서 제한하는 방법을 사용해 왔지만 이 후 부터는 MySql, PostgreSQL 의 LIMIT 와 같이 처리가 가능해 졌다. 예제1. SELECT * FROM "TABLE_NAME" WHERE 1=1 ORDER BY "COL01" ASC NULLS LAST, "COL02" DESC NULLS LAST FETCH NEXT 10 ROWS ONLY ; ORACLE FETCH 문법은 다음과 같다. [ OFFSET offset ROWS ] FETCH NEXT [ row_count / percent PERCENT ] ROWS [ONLY /..
정규식 패턴을 이용한 카드번호 마스킹 처리 앞 7자리부터 6개의 문자를 "*"로 치환한다. private final static Pattern pan_pattern = Pattern.compile("^(\\d{4}\\D?\\d{2})(\\d{2})(\\D?)(\\d{4})(\\D?\\d{4})$"); public static boolean isPAN(String pan) { Matcher matcher = pan_pattern.matcher(pan); return matcher.matches(); } public static String maskPAN(String pan) { Matcher matcher = pan_pattern.matcher(pan); if(matcher.find()) { return ..
정규식 패턴을 이용한 주민등록번호 마스킹 처리 앞 7자리를 제외한 나머지 문자를 "*"로 치환한다. private final static Pattern ssn_pattern = Pattern.compile("^(\\d{6}\\D?\\d{1})(\\d{6})$"); public static String maskSSN(String ssn) { Matcher matcher = ssn_pattern.matcher(ssn); if(matcher.find()) { return new StringBuffer (matcher.group(1)).append("******").toString(); } return ssn; } 다른 방법으로 무조건 마지막 6자리를 *표로 치환하는 방법 private final static ..
정규식 패턴을 이용한 이메일 마스킹 처리 앞 3자리를 제외한 나머지를 "*" 로 마스킹 처리 한다. - 3자리 이하인 경우는 ... - private final static Pattern email_chk_pattern = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"); private final static Pattern email_pattern = Pattern.compile("^(...)(.*)@(.*)$"); public static boolean isEmail(String email) { Matcher matcher = email_chk_pattern...
정규식 패턴을 이용한 휴대폰, 일반전화 마스킹 처리 private final static Pattern phone_pattern = Pattern.compile("^(01[016789]\\D?)(\\d{3,4})(\\D?\\d{4})$"); private final static Pattern tel02_pattern = Pattern.compile("^(02\\D?)(\\d{3,4})(\\D?\\d{4})$"); private final static Pattern tel_pattern = Pattern.compile("^(\\d{3}\\D?)(\\d{3,4})(\\D?\\d{4})$"); public static boolean isPhone(String phone) { Matcher matcher = p..
윈도우즈 10에서 업데이트 시 오류가 발생하는 경우 대처법 사내 PC의 경우 사내보안 프로그램에 의해서 특정 윈도우즈 업데이트를 하지 못하도록 막는 경우가 있어서 자동 업데이트가 설정되어 있는 경우 해당 업데이트 패키지가 정상 업데이트 될 때까지 계속 업데이트를 시도하고 재부팅이 필요한 경우에는 매번 부팅할 때 마다 업데이트 시도 후 실패 원복처리를 하게되는 문제가 발생한다. 사내 보안프로그램을 임시로 종료하고 업데이트 할 수 있으면 좋겠지만 그러라고 만들어 놓은 보안 프로그램이 아니기에 할 수가 없다. - 안전모드로 부팅하는 경우 가능할 수도 있음 - 아래는 다양한 방법으로 업데이트를 시도하였으나 할 수 없는 경우 해당 업데이트 패키지를 숨겨서 더 이상 업데이트 시도를 하지 않도록 하는 방법이다. 아래..
JAVA에서 Exception 발생 시 printStackTrace 하는 것이 아닌 문자열로 추출하기 Apache에서 제공하는 ExceptionUtils 클래스를 이용하여 문자열 추출을 하고자 하는데 어느 버전부터 지원하는지 모르겠지만 2.6 버전에서도 지원하는 것을 보면 그 이후(2010년) 부터는 다 지원할 듯 합니다. 주요함수를 다음과 같습니다. String getMessage(Throwable e) : 마지막 에러의 짧은 문자열을 가져옵니다. String getRootCauseMessage(Throwable e) : 마지막 에러 이전의 에러에 대한 짧은 문자열을 가져옵니다. String getStackTrace(Throwable e) : Throwsble 로부터 StackTrace를 String ..
상세정보 입력폼 화면에서 조회 중이거나 저장 중 화면의 정보를 변경을 방지하기 위하여 모든 input 텍스트 입력폼을 읽기전용으로 변경할 필요가 있을 때 사용할 수 있는 간단한 jquery 스크립트를 알아본다. $('input').prop('readonly', true); 모든 input 태그 속성에 readonly 속성을 넣는 것인데 반대로 속성을 제거하고자 하는 경우 true를 false로 바꾸면 되니 정말 간단하게 처리가 가능함. 다만 입력폼중 선택메뉴(select)가 있는 경우 이 스크립트로는 처리가 안된다. 그렇다고 disable 처리 해버리면 저장 시 값이 서버로 전달되지 않기 때문에 곤란하므로 option을 disable 처리하는 방식으로 처리한다. $('option').attr('disab..
ORACLE에서도 정규식표현으로 휴대전화 포맷을 적용할 수 있지만 JAVA에서도 간단하게 적용 가능하다. 휴대전화번호는 무조건 3자리-3 또는 4자리-4자리로 되어 있기 때문에 다음과 같이 처리 가능하다. public static String makePhoneNumber(String phoneNoStr) { String regEx = "(\\d{3})(\\d{3,4})(\\d{4})"; if(!Pattern.matches(regEx, phoneNoStr)) return null; return phoneNoStr.replaceAll(regEx, "$1-$2-$3"); } 만약 앞의 3자리 값을 고정시키고 싶다면 다음과 같이 해 보는 것도 방법이다. public static String makePhoneNu..
엘론 머스크 누구나 상상속에서만 생각하고 미래 언제쯤 가능하겠지 하는 기술들이 있는데 그가 이야기 하면 조만간 현실이 될 것만 같은 기분이 든다. 내역기관 엔진 자동차보다 더 뛰어난 성능을 보여주는 전기자동차를 개발하였고 화성 이주를 위한 우주선 개발도 어느정도 성과를 만들어 내고 있는 최근들어 그의 트위터 소개란에 Tunnels 라는 단어가 추가되었다고 한다. 왠 터널일까? 오래전 부터 진공 자기부상열차에 대하여 연구가 되고 있었고 진공 상태에서 시속 6,000km로 달리는 자기부상열차에 대한 실험도 있어왔습니다. 이 기술이 현실화 된다면 한국에서 미국으로 가는데 2시간이면 충분하기 때문에 전세계가 하루 생활권으로 들어오게 됩니다. 건설비용도 기존의 고속열차에 비해서 저렴하니 꿈의 기술이죠. 다만 이 ..
- Total
- Today
- Yesterday