주민등록번호 체계 및 유효성 검사 (javascript)
·
Programing/Algorithm
ABCDEF - GHIJKLM 주민등록번호는 위와 같이 13자리로 구성되어 있다. 각 구성을 알아보자. ABCDEF : 생년월일 G: 성별을 나타낸다.생년월일의 년도가 2자리만 표기가 되기때문에 A에서 자세히 구분할수 있다. 1: 1900년대에 출생한 남자 2: 1900년대에 출생한 여자 3: 2000년대에 출생한 남자 4: 2000년대에 출생한 여자 5: 1900년대에 출생한 외국인 남자 6: 1900년대에 출생한 외국인 여자 7: 2000년대에 출생한 외국인 남자 8: 2000년대에 출생한 외국인 여자 9: 1800년대에 출생한 남자 0: 1800년대에 출생한 여자 HIJK: 출생신고를 한 지역 코드이며 아래와 같은 형식을 가지고 있다. H: 지역 I: 시.군.구 J: 동.읍.면 K: 통.반.리 HI..
MySQL EXPLAIN 사용하여 Query 퍼포먼스 확인.
·
Programing/MySQL
EXPLAIN 을 사용하여 인덱스가 적절히 사용되고 있는지, 결과 값을 가지고 오기 위해 어떤 작업을 수행하는지 대략적으로 알 수 있다. EXPLAIN 은 SELECT문에 사용된 각 테이블당 하나의 행을 리턴한다. 나열된 순서는 MySQL이 쿼리 처리에 사용하는 순서대로 출력된다. MySQL은 모든 조인을 single-sweep multi-join 방식을 사용하여 처리하는데, 이것은 MySQL이 첫번째 테이블에서 한 행을 읽고, 두번째 테이블에서 매치되는 행을 찾고, 세번째 테이블에서 매치되는 행을 찾는 방식이다.모든 테이블들이 처리된 후 추출된 컬럼을 출력하고 다시 처음 테이블로 돌아가서 조인을 계속한다. 이런식으로 첫번째 테이블에 더이상 남는 행이 없을때까지 실행한다. STARTGHT_JOIN을 명시..
숫자를 휴대폰번호 형태로 전환 (phone number format
·
Programing/PHP
11자리 숫자를 휴대폰 번호의 형태로 바꾸는(마치 number_format() 함수처럼) 함수. '01012341234' 를 '010-1234-1234'과 같은 형태로 전환. function phone_number_format($number="") { if(preg_match( '/(\d{3})(\d{4})(\d{4})$/', $number, $matches)) { return "{$matches[1]}-{$matches[2]}-{$matches[3]}"; } else { return $number; } }
퀵 정렬(Quick Sort) (javascript)
·
Programing/Algorithm
퀵 정렬은 찰스 앤터니 리처드 호어가 개발한 정렬 알고리즘으로 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬이다. 난수열에 대해 퀵 정렬을 실행한 그림. 수평선은 피벗 값을 가리킨다. 퀵 정렬은 분할 정복(divide and conquer) 방법을 통해 리스트를 정렬한다.리스트 가운데서 하나의 원소를 고른다. 이렇게 고른 원소를 피벗이라 한다.피벗 앞(left)에는 피벗보다 값이 작은 모든 원소들이 오고, 피벗 뒤(right)에는 피벗보다 값이 큰 모든 원소들이 오도록 피벗을 기준으로 리스트를 둘로 나눈다. 이렇게 리스트를 둘로 나누는 것을 분할이라 한다. 분할을 마친 뒤에 피벗은 더 이상 움직이지 않는다.분할된 두 개의 작은 리스트에 대해 재귀(Recursion)적으로 이 과정을 반복한다. 재귀는..
재귀 함수를 이용한 거듭제곱 (a의 n승) (javascript)
·
Programing/Algorithm
해당 코드는 범용성을 위해 자바스크립트를 이용하여 만들었으며 for, while을 사용하지 않고 재귀적으로 동작하게 구현했다. function myFactorial(num, exp) { return exp===0?true:(num * myFactorial(num, exp-1)); } console.log(myFactorial(2, 4)); // 16 console.log(myFactorial(3, 3)); // 27 myFactorial(3, 3) 으로 설명하면num = 3이고 exp = 3 이기때문에 exp가 0이 될때까지 재귀 함수를 반복한다. 재귀함수를 사용함으로 num * num * num * true 같은 형태를 리턴하게 된다.true는 1과 같기 때문에 3 * 3 * 3 * 1 과 같다.
에라토스테네스의 체를 이용한 소수 찾기
·
Programing/Algorithm
- 해당하는 모든 소수를 출력하라.소수란 1과 자기 자신만을 약수로 가지는 수이다. 100이하의 자연수 중 모든 소수를 출력하시오.소수를 오름차순으로 출력한다. 각 출력값 사이는 공백으로 구분하고 출력값 5개 마다 줄바꿈을 한다.아래와 같은 결과 값이 출력되어야 한다.2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 위 내용까지 트라이캐치의 소수 찾기 문제이며, 아래코드는 오름차순과 출력값 사이를 공백으로 구분하고, 5개마다 줄바꿈을 적용하지 않은 소스이다. 해당 코드는 범용성을 위해 자바스크립트를 이용하여 만들었으며, 에라토스테네스의 체를 이용한 방법이다.function getPrimesUpTo(n) { if (n 아..
인스타그램 자바스크립트 API
·
Programing/API
1. 인스타그램 개발자 사이트 (https://www.instagram.com/developer/)에 접속하여 로그인한다. 2. register your application을 누른 뒤 register a new client 클릭 3. client 등록 양식을 작성한다. 어플리케이션 이름과 설명, OAuth redirect_uri은 각 프로젝트에 맞게 입력한다. 4. 등록 완료 후 manage clients에서 자신의 클라이언트 정보를 확인한다. 여기서 client id, client secret을 메모해둔다. 5. (4)에서 메모한 client id를 아래 주소 YOUR_CLIENT_ID 대신 입력한다.OAuth redirect_uri 를 HTTP://WWW.YOUR_DOMAIN.COM/INDEX.PH..
퍼센트 계산, 백분율 계산 방식
·
Programing
전체값에서 일부값은 몇 퍼센트? 일부값 ÷ 전체값 X 100 예제) 300에서 105는 몇퍼센트? 답: 35% 전체값의 몇 퍼센트는 얼마? 전체값 X 퍼센트 ÷ 100 예제) 300의 35퍼센트는 얼마? 답) 105 숫자를 몇 퍼센트 증가시키는 공식 숫자 X (1 + 퍼센트 ÷ 100) 예제) 1548을 66퍼센트 증가하면? 답) 2569.68 숫자를 몇 퍼센트 감소하는 공식 숫자 X (1 - 퍼센트 ÷ 100) 예제) 1548을 66퍼센트 감소하면? 답) 526.32
PHP 특정 함수 사용 막기
·
Programing/PHP
특정함수를 사용 못하게 막는 방법이다.예를들어 보안관련으로 str_replace함수를 사용 못하게 하고 싶다면php.ini 파일을 열어 'disable_functions' 라는 항목을 찾아준다.'..function' 이 아닌 functions 인걸로 봤을때 여러 함수를 사용 못하게 막을 수 있ㄷㅏ.사용 예제는 아래와 같다. disable_functions = str_replace, fopen, sub_str 위와 같이 설정안뒤 웹서버를 재 시작 시켜준 뒤 확인해보면 Warning: str_replace() has been disabled for security reasons in 와 같은 에러 메시지를 송출한다. 단, 사용자 지정 함수는 막지 못한다.
PDFmyURL - 웹페이지를 PDF로 변환 [HTML to PDF]
·
Programing/API
API 카테고리에서 첫 소개인 'PDFmyURL'을 소개합니다. http://pdfmyurl.com 에 접속 하신뒤 'Enter url location to pdf ...'란에 pdf로 만들고 싶은 문서의 URL을 기입한뒤 'enter'를 치면, 기입한 URL의 문서가 pdf로 변환되어 자동으로 다운로드 됩니다. 웹사이트에서 표현한 디자인이 아주 정확하게 나오진 않지만(간혹 언어셋이 깨지기도 합니다만, 복잡성이 없는 문서는 개발자가 의도한것처럼 정확하게 표현됩니다.), PDFmyURL의 장점을 말하자면..- 개발자는 HTML문서만 작성하면 api를 통해 손쉽게 PDF 문서를 제공 받을 수 있다.- 여타 PDF문서를 생성하는 코드를 만드는 시간을 절약할 수 있다.- 무료 라이센스(단 하단 우측에 PDFmy..