최근 Service 개발에서 반복적인 Account 생성이 필요한 테스트 케이스가 있어서 작업 중 Remote Server에서 주민등록번호 Validation 을 하는 바람에 급히 검색하여 다음과 같은 내용을 알아내었다. 예를 들어 640713-1018433 이 주민번호를 예로 들어보죠 우선 주민등록번호 마지막자리수만 제외하고, 각각의 자리수마다 다음과 같은 수를 곱하여 전체를 더한다. 6 4 0 7 1 3 1 0 1 8 4 3 x x x x x x x x x x x x 2 3 4 5 6 7 8 9 2 3 4 5 ----------------------- + + + + + + + + + + + + 즉, (6*2)+(4*3)+(0*4)+(7*5)+(1*6)+(3*7)+(1*8)+(0*9)+(1*2) +(8*3)+(4*4)+(3*5) = 151 그러면 151 이란 수가 나온다. 이 151을 매직키인 11로 나누어 나머지만 취한다. 151 / 11 = 몫: 13 <-- 버림 나머지: 8 마지막 단계로 매직키인 11에서 나머지 8을 빼면 3이란 수가 나오 는데, 이숫자가 주민등록번호 마지막 자리의 숫자와 일치하면 대한민국 국민이다. 11 - 8 = 3 --> 정상적인 주민등록번호임 출처 : http://blog.naver.com/foenix/40040223161 이 내용을 다음과 같은 메서드로 만들어 보았다. public static String getSSN() { Random rand = new Random(); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(rand.nextLong()); String s1 = new SimpleDateFormat("yyMMdd").format(cal.getTime()); String s2 = null; while(s2 == null || s2.length() < 6) { s2 = Integer.toString
취직 2000년 3월. 나는 이제 막 3학년이 된 대학생이다. 실업계 고등학교를 중간 정도 성적으로 출석일수가 모자라 간신히 졸업한 것 치곤, 비록 명문은 아니지만 4년제 대학교에 진학한 것을 다행이라 여기며 재학중이다. 그런데, 지금 상황이 좋지 않다. 직전 학기에는 한과목을 제외하곤 모두 F 학점을 받아 학사경고를 받았고, 수강신청은 했지만 등록금을 마련하지 못해서 수일 내로 등록을 하지 못하면, 이번 학기는 휴학을 해야 할 판이다. 하지만, 그간 학비로 사용하기 위해 이미 대학생 신분으로 대출 할 수 있는 한도까지 모두 끌어쓴 상황이다. 군대를 갈까도 생각 중이지만, 가출한 동생과 사업 부도로 고생하시는 아버지를 생각하면 그 것도 내키지 않는다. 아버지는 며칠째 집에 안들어오시고, 차비가 없어 집밖으로 나가지 못하고 있다. 배가 많이 고프지만 먹을 것이 없어, 이 곳, 50년도 더 된 남부민동 달동네 슬레이트 지붕 밑에서 몇 시간째 누워 있는 건지도 모를 만큼 멍하니 천장만 바라보고 있다. 낮이 지나고 잠 못드는 밤이 지나 다시 아침... 핸드폰이 울린다. 핸드폰 요금이 연체된 지 꽤 됐는데 아직은 안끊겼나 보다. "여보세요?" "안녕하세요. 중앙정보기술의 김성수 이사라고 합니다." 중앙정보기술? 국가기관인가? 나한테 왜 전화한 걸까... "이번에 우리 회사에서 자바로 채팅 서비스를 만드는데, 아르바이트 해 볼 생각 없으신가 해서 전화드렸어요." 회사였군. 그런데, 난 넷츠고에서 채팅을 해본적은 있어도 그걸 어떻게 만드는지는 전혀 아는바가 없었으며 프로그래밍이라곤 학교에서 C언어를 해본게 전부였다. C언어의 학점은 C0를 받았고 아마 내가 최하점이었을거다. 자바라면 HTML에 들어가는 자바(당시엔 자바스크립트와 자바가 다른 것인지 몰랐다.)를 복사해서 붙여넣기 해본 적이 있는 경험이 다였다. "저... 죄송한데, 저 그런거 할 줄 모릅니다." "
얼마전에 제 홈페이지에 3월 21일에서 25일까지 운영된 "휴대폰 정보 조회"라는 페이지를 만든 적이 있습니다. 위 화면이 그것인데, 입력창에 전화번호를 입력하면, 해당 전화번호에 대한 정보가 아래 화면 처럼 나오게 됩니다. 휴대폰 주소록에 등록된 몇 몇 사람들의 전화번호를 입력해본 결과 LG텔레콤 사용자의 정보는 모두 검색되는 듯 했습니다. 하지만, 이 것은 제 홈페이지에서 해당 정보를 가지고 있는 것이 아니고, 구글에서 " 폰 정보 조회 "라고 검색하면 나오는 페이지 에서 이미 누구나 볼 수 있었던 것이며 (2006년부터 가능했다고 함), 저 역시 이 내용을 확인하기 위한 목적으로 거의 5분에서 10분 사이만에 이 페이지를 만든 것입니다. 단순히 해당 페이지에서 전화번호를 입력받아 링크하듯이 저 또한 똑같이 동작하도록 입력창에 전화번호를 입력받아 해당 사이트로 링크하도록 한 것입니다. 단순히 링크만 한 것이기에 이 점 문제되리란 생각은 하지 못하고, 내용확인 후 LG텔레콤에 항의하리라 다짐하고 있었습니다. 하지만, 당시가 금요일밤이었고, 월요일에 사건이 터지는 바람에 행동으로 옮기지는 못하였습니다. 다음은 이 페이지의 전체 소스입니다. (경찰에 원본을 압수당해 기억나는 대로 다시 작성한것이며 동작에는 거의 차이 없습니다.) <html> <head> <title>휴대폰 정보 조회</title> <script type="text/javascript"> <!-- function getInfo() { var number = document.phoneInfo.number.value; // 발견 지점 : http://mshop.or.kr/popwindow/pop_phoneinfo.jsp
강태훈님, 첫 포스트가 죽을뻔한 사연이라고 하셨던 게 기억나는데, 상기 포스트가 그것인가 보군요. IT난상토론에서 한팀으로 논의 진행해서 즐거웠고, 반가웠습니다. 제가 첫 코멘트를 남기는군요.
답글삭제제가 두번째 코멘트인가요? ^^
답글삭제차분하게 의견을 제시해 주시는 모습이 기억에 남는군요.
다음 기회가 있다면 더욱 좋은 시간이 될 수 있을 것 같습니다.
반가웠습니다.
태그에 사고라고 되어 있길래 난 또 그 "사고" 인줄 알았다.....ㅡ,.ㅡ;
답글삭제흐음... 발바닥에 이제 살좀 빠지겠네...
답글삭제와우감사합니다
답글삭제