최근 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
다음 글은 현재 속한 팀에서 공감과 개선을 이끌어 내고자 공유했던 내용이다. 비슷한 상황을 가지고 있는 사람에게 참고가 될 수 있을까해서 포스팅 해본다. 돌아보기 이상적인 개발자의 일상 출근 후 코드를 SVN으로부터 업데이트 받는다. CI 의 리포트 확인. CI 리포트에 오류가 있을 (빌드가 깨져있을) 경우 수정할 수 있다면 직접 수정후 테스트 한 뒤 commit 담당자가 수정하도록 ticket 발급 Stand up meeting 을 가지고 어제 일을 반성하고 할 일에 대해 구성원간 공유를 한다. Issue Tracker에 등록된 ticket이 있는 지 확인하고 처리한다. Story에 기반하여 자신이 할 일을 정의해 eclipse 의 task 목록에 등록한다. (Issue Tracker에 자동으로 등록된다.) 등록한 task 에 대한 test case 를 만든다. test case가 성공하도록 구현한다. 더 이상 task에 대한 구현 사항이 없다면 코드를 commit 한다. 구현 과정에서 특기할 만한 것이 있다면 wiki 에 공유. 오늘 할 일이 끝나면 퇴근. 조엘 테스트 1. Source Control(소스 컨트롤)을 사용하십니까? 예 2. 한번에 빌드를 만들어낼 수 있습니까? 아니오 3. daily build(일별 빌드)를 만드십니까? 아니오 4. 버그 데이타베이스를 가지고 있습니까? 아니오 5. 새로운 코드를 작성하기 전에 버그들을 잡습니까? 아니오 6. up-to-date(최신) 스케줄을 가지고 있습니까? 아니오 7. spec(설계서)를 가지고 있습니까? 아니오 8. 프로그래머들이 조용한 작업환경을 가지고 있습니까? 아니오 9. 돈이 허락하는 한도내의 최고의 툴들을 사용하고 있습니까? 예 10. 테스터들을 고용하고 있습니까? 아니오 11. 신입사원들은 면접 때 코드를 직접 짜는 실기시험을 봅니까? 아니오
취직 2000년 3월. 나는 이제 막 3학년이 된 대학생이다. 실업계 고등학교를 중간 정도 성적으로 출석일수가 모자라 간신히 졸업한 것 치곤, 비록 명문은 아니지만 4년제 대학교에 진학한 것을 다행이라 여기며 재학중이다. 그런데, 지금 상황이 좋지 않다. 직전 학기에는 한과목을 제외하곤 모두 F 학점을 받아 학사경고를 받았고, 수강신청은 했지만 등록금을 마련하지 못해서 수일 내로 등록을 하지 못하면, 이번 학기는 휴학을 해야 할 판이다. 하지만, 그간 학비로 사용하기 위해 이미 대학생 신분으로 대출 할 수 있는 한도까지 모두 끌어쓴 상황이다. 군대를 갈까도 생각 중이지만, 가출한 동생과 사업 부도로 고생하시는 아버지를 생각하면 그 것도 내키지 않는다. 아버지는 며칠째 집에 안들어오시고, 차비가 없어 집밖으로 나가지 못하고 있다. 배가 많이 고프지만 먹을 것이 없어, 이 곳, 50년도 더 된 남부민동 달동네 슬레이트 지붕 밑에서 몇 시간째 누워 있는 건지도 모를 만큼 멍하니 천장만 바라보고 있다. 낮이 지나고 잠 못드는 밤이 지나 다시 아침... 핸드폰이 울린다. 핸드폰 요금이 연체된 지 꽤 됐는데 아직은 안끊겼나 보다. "여보세요?" "안녕하세요. 중앙정보기술의 김성수 이사라고 합니다." 중앙정보기술? 국가기관인가? 나한테 왜 전화한 걸까... "이번에 우리 회사에서 자바로 채팅 서비스를 만드는데, 아르바이트 해 볼 생각 없으신가 해서 전화드렸어요." 회사였군. 그런데, 난 넷츠고에서 채팅을 해본적은 있어도 그걸 어떻게 만드는지는 전혀 아는바가 없었으며 프로그래밍이라곤 학교에서 C언어를 해본게 전부였다. C언어의 학점은 C0를 받았고 아마 내가 최하점이었을거다. 자바라면 HTML에 들어가는 자바(당시엔 자바스크립트와 자바가 다른 것인지 몰랐다.)를 복사해서 붙여넣기 해본 적이 있는 경험이 다였다. "저... 죄송한데, 저 그런거 할 줄 모릅니다." "
흠.. 자바인가요.. 생소하네..
답글삭제(0(\\d|\\d{2}|\\d{3})-)?(\\d{3}|\\d{4})-\\d{4}
(0(\\d{2,3})-)?(\\d{3,4})-\\d{4}
이렇게 하면은 안 되나요?