늘 성인인증이 필요한 음악을 듣는 것이 아니라 언제 쯤 문제가 생겼는지 모르겠지만 아마도 iOS를 18.0.1로 업그레이드 하면서 발생한 문제가 아닌가 싶다. 가끔 듣던 노래를 오랜만에 들어보고자 하는데 노래 제목이 비활성화 되어 있었고 재생을 위해 클릭했더니 성인인증이 필요하다고 했다.당연히 난 성인이기에 인증을 시도했지만 인증이 끝난 후에도 계속 성인인증을 요구했다. 처음에는 내가 한 성인인증 정보가 icloud로 등록되고 다시 내 계정이 등록된 기기로 내려주는 시간이 필요한가? 라고 생각했지만 시간이 지나도 해결이 안 되었다. 구글링해보니 여러가지 의견들이 있었는데 대부분 이래저래 하다보니 어쩌다가 되었고 왜 되었는지는 모르겠다는 글들이다. 우선 icloud를 로그아웃 했다가 로그인 해 보았다. ..
EXCEL에서 데이터를 붙여넣기 했을 때 숫자타입이 문자열 서식으로 지정되어서 문제가 될 때가 있습니다. 서식을 숫자로 바꿔도 자동으로 변환이 안되고 셀을 선택해서 에디트 모드가 되었다가 나와야 서식이 적용되죠. 열이 긴 경우 일일이 하기 힘들지만 다음방법으로 일괄 적용되게 할 수 있습니다. 열을 선택해서 서식을 숫자로 변환한 후에 열을 선택한 상태에서 다음 키을 순서대로 입력합니다. Alt키 -> A -> E -> F 순으로 누릅니다. 열단위로만 적용가능 ( 여러 열을 선택하여 적용안됨) 합니다.
문자열 중간에 문자열을 끼워넣기 위해서 보통은 SUBSTR로 잘라낸 뒤 CONCAT 또는 || 로 붙이게 되는데 특정 함수로 가져와야 되는 문자열의 경우 함수를 여러번 쓸 필요없이 REGEXP_REPLACE 함수와 정규식을 이용하여 처리 가능하다. SELECT REGEXP_REPLACE(‘0224’, ‘(^.{2})’, ‘\1/‘) AS MMDD FROM DUAL; 위 쿼리문은 문자열 시작부터 문자2개까지 매치된 문자열을 해당문자열 + “/“ 로 치환하라는 것이기에 문자열 0224 는 02/24 로 변환된다. 참고. 괄호로 둘러싼 단위는 그룹을 나타냄 {숫자}는 숫자만큼 있음 .은 아무문자 1개 (공백포함) ^는 문자열의 시작 (만약 [] 안에 쓰여지는 경우 패턴 불일치의 의미)
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 /..
2010년 구입해서 오랫동안 사용했던 소니사의 CMT-DH50R 미니 오디오가 문제가 생겨서 버리기로 했습니다. 스마트폰에 밀려서 메인 오디오 시스템의 자리도 빼앗긴지도 오래되었고 아이들 교육용 CD 플레이어로만 사용되었는데 어느 순간 DVD가 플레이 안되더니 이제는 오디오 CD도 플레이가 안 되는 지경이 되었기에 그런 결정을 한 것입니다. 물론 소니 A/S 센터가 근처에 있어서 무거운 제품을 들고 방문했지만 이미 단종된 제품에 대해서는 수리를 할 수 없고 감가상각에 의해서 몇천원을 돌려줄 수 있다는 답변을 받았기에 그냥 들고 집에 왔습니다. - 아내가... - 아내는 아직도 저를 컴퓨터과 출신으로 알고있기에 고쳐내라고 하지만 이 빌어먹을 소니 제품은 뭐하나 뜯어보려고 하면 겹겹이 쌓인 케이스를 벗겨내야..
정규식 패턴을 이용한 카드번호 마스킹 처리 앞 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..
6월 말에 주변 공원에서 자주 볼 수 있는 들꽃들 입니다. 분홍 토끼풀은 이제 한풀 꺾여서 마지막을 향해 가는 듯 합니다.가까이 가서 보면 좀 심심하지만 멀리서 보면 화사한 색을 보여주는 자주개나리 꽃도 이제 끝나 갑니다.지는 꽃이 있으면 피는 꽃들도 있겠죠. 요즘 가장 많이 피고지는 개망초 입니다. 이름도 그렇고 개별로 보면 심심한 듯 하지만 군락을 이루고 피어있는 모습을 보면 정말 아름답습니다. 역시 요즘 한창 피고지는 서양벌노랑이... 꽃이 작지만 화사한 색이여서 멀리서 보더라도 눈에 띄는 꽃입니다.
윈도우즈 10에서 업데이트 시 오류가 발생하는 경우 대처법 사내 PC의 경우 사내보안 프로그램에 의해서 특정 윈도우즈 업데이트를 하지 못하도록 막는 경우가 있어서 자동 업데이트가 설정되어 있는 경우 해당 업데이트 패키지가 정상 업데이트 될 때까지 계속 업데이트를 시도하고 재부팅이 필요한 경우에는 매번 부팅할 때 마다 업데이트 시도 후 실패 원복처리를 하게되는 문제가 발생한다. 사내 보안프로그램을 임시로 종료하고 업데이트 할 수 있으면 좋겠지만 그러라고 만들어 놓은 보안 프로그램이 아니기에 할 수가 없다. - 안전모드로 부팅하는 경우 가능할 수도 있음 - 아래는 다양한 방법으로 업데이트를 시도하였으나 할 수 없는 경우 해당 업데이트 패키지를 숨겨서 더 이상 업데이트 시도를 하지 않도록 하는 방법이다. 아래..
- Total
- Today
- Yesterday