입력된 숫자를 한글로 표현하기!!



은행사이트 같은데서 많이 보던거죠?


1000000  입력하면  일백만..  이런식으로 표현되어지는..


좀 오래된 소스이지만!.  잘될거에요~~ 


그럼 즐프하세요!!




<html> 

<head> 

<SCRIPT LANGUAGE=\"JavaScript\"> 

<!-- 

function num2han(string) 

hn = new Array(\"영\",\"일\",\"이\",\"삼\",\"사\",\"오\",\"육\",\"칠\",\"팔\",\"구\"); 

hj = new Array(\"\",\"만\",\"억\",\"조\",\"경\",\"해\",\"시\",\"양\",\"구\",\"간\",\"정\",\"재\",\"극\",\"항하사\",\"아승지\",\"나유타\",\"불가사의\",\"무량대수\"); 

ul = new Array(\"영천\",\"영백\",\"영십\",\"영\"); 

tm = new Array(); 


result = \"\"; 


        if(string.charAt(0)==\"-\"){

result = \"마이너스 \";

string = string.substr(1,string.length-1);


        loop_size = Math.ceil(string.length/4); 

        string2 = \"\"; 


        for (count=string.length; count >= 0; count--) 

string2 += string.substring(count,count-1); 


        string = string2; 


        for (A=0;A<loop_size;A++) { 

sum = hj[A] + \" \"; 

                tm[A] = string.substr(A*4,4); 


                tm2 = \"\"; 


                for (count=tm[A].length; count >= 0; count--) 

                tm2 += tm[A].substring(count,count-1); 


tm[A] = tm2; 

                part_jari = tm[A].length; 


                for (D=0;D<10;D++){ 

for (B=0;B<10;B++) tm[A] = tm[A].replace(B,hn[B]); 


if (part_jari == 4) tm[A] = tm[A].charAt(0)+\"천\"+tm[A].charAt(1)+\"백\"+tm[A].charAt(2)+\"십\"+tm[A].charAt(3); 

else if (part_jari == 3) tm[A] = tm[A].charAt(0)+\"백\"+tm[A].charAt(1)+\"십\"+tm[A].charAt(2); 

else if (part_jari == 2) tm[A] = tm[A].charAt(0)+\"십\"+tm[A].charAt(1);              

else tm[A] = tm[A].charAt(0); 


for (C=0;C<4;C++) { 

if (tm[A].match(ul[C])){ part_jari--; tm[A] = tm[A].replace(ul[C],\"\"); } 

}


if (part_jari != 0) tm[A] += sum; 

        

for (loop_size;loop_size>-1;loop_size--) result += tm[loop_size]; 

        

result = result.replace(\"undefined\",\"\") 


        document.form.han.value = result; 

//--> 

</SCRIPT> 

</head> 


<body> 

<form method=post name=form> 

<input type=\"text\" name=\"num\" size=\"10\" onKeyUp=\"num2han(this.form.num.value);\"> 

<input type=\"text\" name=\"han\" size=\"100\" disabled> 

</form> 

</body> 

</html>

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,


grep 명령을 통해 특정 문자를 빼고 보기




리눅스 명령어중에 grep 명령으로 특정문자가 포함된 부분을 찾아내고는 합니다.


grep은 참 유용한 것인데, 가끔씩 이 글자 빼고 모두 보고 싶을 때가 있기도 하죠?

그럴때는

ex) cat 파일명 | grep -v "제외될 문자"

ex2) cat 파일명 | grep -ev "제외될 문자|제외될 문자|제외될 문자"

이와같이 -v  또는 -ev 옵션을 이용하여  제외될 문자를 설정하면 됩니다.


또다른 예로는 특정디렉토리의 파일 목록을 조회할 때도 사용가능 하지요.


ex1) ls -al | grep -v "제외될 문자"


디렉토리 목록중에서 특정문자가 들어간 파일 또는 폴더를 제외하고 출력이 되어집니다.


그럼 모드들 즐프하세요~

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,



특정 포트 사용하는 프로세스 찾아서 종료시키기



윈도우에서 작업을하다보면  가끔 특정 포트를 사용하는 문제를 겪게 됩니다.


특히 이클립스+tomcat 으로 작업하다가 불안정한 종료가 되는겨우 tomcat 이 8080 포트 등을 잡아먹고 있어서


컴퓨터 자체를 재부팅 하는 경우도 있을텐데요.


아래의 방법으로 해당 프로세스를 찾아서 강제 종료 시키는 방법이 있습니다.


그럼 즐프하세용~~



1. 특정포트가 열려있는지 확인
- netstat -na | findstr "포트"

2. 열려 있는 포트의 PID 확인
- netstat -nao | findstr "포트"

3. PID 찾기
- tasklist | findstr "PID번호"

4. 프로세스 죽이기
- taskkill /f /pid "PID번호"

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,


Fatal error: Allowed memory size of 134217728 bytes exhausted

( PHP 메모리 부족 에러 )



PHP 프로그래밍중  File I/O 를 다루거나.. 파일 다운로드, 엑셀파일 출력 등을 다루다보면,


위와같은 메모리 부족 에러를 접하게 되는 경우가 있습니다.


PHP 는 기본적으로 메모리 제한 기본값을 128M 로 되어있습니다.


이럴경우 해당 설정 값을 변경해 주면 되는데요..


phpinfo();  명령을 통해서 memory_limit 값을 확인해 보신 후 해당 값을 조정해 주시면 문제를 해결 할 수 있습니다.


그 조치 방법으로는.. php.ini 파일을 찾아서 해당 값을 변경해 주는 방법인데요.


php.ini 파일을 열어보시면 아래와 같은 부분을 찾으실 수 있습니다.



위 값은 제가 기본 128M 인 값을 512M 으로 늘려준 것이구요.


이렇게 변경한 후 아파치를 재기동 하시면 반영이 되어집니다.


혹은 다른 방법으로..


해당 php 파일에서



ini_set('memory_limit','512M');


이와같이 ini_set 명령으로 설정값을 변경 반영하는 방법이 있습니다.


이 방법은 현재 php 파일에서만 유효합니다.


그럼 즐프하세요~

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,


php 에서 ZipArchive 를 사용하려 하는데.. class 'ZipArchive' not found in..  이런 에러가 발생을 한다면?


결국엔 libzip 을 설치해 주어야 합니다.


이는 pecl 을 이용해서 간단히 설치를 할 수도 있지만..  


php.net 에서 최종버전 또는 버전을 선택하여 받아서 설치할 수 있습니다.


centos (리눅스계열) 에서의 설치를 예로 들겠습니다.



1. http://pecl.php.net/package/zip  사이트에 접속하여 사용할 버전을 다운로드 합니다.





2. 파일을 서버에 올린 후 설치 작업을 진행합니다.  (1.13.2 버전을 받은걸로 가정합니다.)


//모듈 이동

#mv zip-1.13.2.tgz /home/


//압축 해제

#tar xvfz zip-1.13.2.tgz


//디렉터리 이동

#cd zip-1.13.2


//phpize 실행

#phpize


//만약 phpize가 오류가 나면 phpinfo에서 include_path 의 위치를 확인합니다.

//저 같은 경우는 extension_dir가 /usr/local/php/lib/php 이였으므로 php 설치 폴더의 위치를 알수 있었습니다.

//혹은 yum install php-devel 등으로 설치하면 됩니다.

#/usr/local/php/bin/phpize


//모듈 configure

./configure --with-php-config=/usr/local/php/bin/php-config --enable-zip && make


//모듈 파일 이동

#cd modules/

#cp zip.so /usr/local/php/lib/php/extensions/ ;마찬가지로 phpinfo에서 extension위치 확인


//extension 경로 추가

#vim /usr/local/apache/conf/php.ini


extension_dir="/usr/local/php/lib/php/extensions"


extension="zip.so" 


//아파치 재시작

#/etc/init.d/httpd restart 



3. phpinfo() 내용을 확인하여.. 정상적으로 설치가 되어졌는지 확인합니다.


이런부분이 확인되어지면 됩니다.


그럼 php 에서 ZipArchive class 를 이용해서 압축, 압축해제 등의 작업을 진행하실 수 있습니다.~


블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

정규표현식의 패턴



프로그램을 하다보면, 정규표현식(정규식)을 사용해야 할 경우가 종종 발생하고는 합니다.


예를들자면, 회원가입시 이메일 주소가 올바른 형태인지 검사한다던지  긴 문자열 중에서 특정한 부분만을 뽑아낸다던지...


이런 상황에서 사용을 하게 되지요.


정규표현식 이라 함은  말그대로 문자열 내의 특정한 규칙을 의미하는 말입니다.  이를 패턴이라고 하기도 하지요.


다음은 정규표현식에서 사용하는 패턴에 사용되는 기호들 입니다.



표현식

 설명 

 ^

 문자열의 시작

 문자열의 종료

 .

 임의의 한 문자 (문자의 종류 가리지 않음)

 단, \ 는 넣을 수 없음

 *

 앞 문자가 없을 수도 무한정 많을 수도 있음

 앞 문자가 하나 이상

 앞 문자가 없거나 하나있음

 []

 문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를 나타낸다. []내에서 ^가 선행하여 존재하면 not 을 나타낸다.

 {}

 횟수 또는 범위를 나타낸다.

 ()

 소괄호 안의 문자를 하나의 문자로 인식 

 |

 패턴 안에서 or 연산을 수행할 때 사용

 \s

 공백 문자

 \S

 공백 문자가 아닌 나머지 문자

 \w

 알파벳이나 숫자

\W 

 알파벳이나 숫자를 제외한 문자

\d 

 숫자 [0-9]와 동일

\D 

 숫자를 제외한 모든 문자

 정규표현식 역슬래시(\)는 확장 문자
 역슬래시 다음에 일반 문자가 오면 특수문자로 취급하고 역슬래시 다음에 특수문자가 오면 그 문자 자체를 의미

(?i) 

 앞 부분에 (?i) 라는 옵션을 넣어주면 대소문자를 구분하지 않음


위의 기호들을 이용해서 정규표현식의 패턴을 만들어 내는데요.




다음은 자주쓰이는 패턴들 입니다.




표현식

 설명 

 ^[0-9]*$

 숫자만

^[a-zA-Z]*$

 영문자만

 ^[가-힣]*$

 한글만

 ^[a-zA-Z0-9]*$

 영어와 한글만

^[a-zA-Z0-9]+@[a-zA-Z0-9]+$

 이메일 주소 형태인지

^01(?:0|1|[6-9])-(?:\d{3}\d{4})-\d{4}$

 휴대폰번호 검사



위와같은 표현식들을 각각의 언어에 맞추어 검사 또는 치환/추출 을 하실 수 있습니다


PHP 의 경우 preg_match() 함수를 이용해서 패턴에 일치하는 구문이 있는지 확인할 수 있겠지요..


다음은  특정한 문자열에서 정규식에 해당하는 부분이 있는지 확인하는 예제입니다.


<?php
// 패턴 구분자 뒤의 "i"는 대소문자를 구별하지 않게 합니다.
if (preg_match("/php/i""PHP is the web scripting language of choice.")) {
    echo 
"발견하였습니다.";
} else {
    echo 
"발견하지 못했습니다.";
}
?>


[php.net 에서 발췌]


이와 같은 형태로 javascript 나 기타 다른언어에서도 두루두루 활용할 수 있습니다.


오늘은.. 간단한 정규표현식 패턴에 대해서 적어보았습니다.



블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,


ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

ORA-12514: TNS 리스너가 현재 접속 기술자에 요청된 서비스를 알지 못함

오라클이 비정상적으로 종료되었을 경우 또는 다른 이유에 의해서 리스너가 SID 를 찾지 못하는 에러입니다.


해당 에러가 발생했을 경우 다음의 테스트를 우선 진행 합니다.



1. 리스너 점검


   - lsnrctl service  명령으로 현재 리스너 서비스가 정상인지 확인

   - lsnrctl status 명령으로 현재 리스너 서비스 상태 확인



2. 설정파일 점검


   - tnsnames.ora 파일과 listener.ora 파일의 설정을 다시 한번 확인


3. 오라클 및 리스너 재시작


   - 비정상 종료 또는 오라클 수행중 오류가 있다면, 오라클 shutdown 시에 에러메세지가 나올 수 있습니다.



설정상의 오류가 없다면, 위의 과정을 통해서 정상적으로 돌아갈 수 있을것입니다!!!



블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,


database 백업 및 복원 방법


DB 백업하기

형식) mysqldump -u사용자이름 -p비밀번호 데이터베이스이름 > 파일이름

$ mysqldump -uroot -p12345 mydb > ./backup.sql
☞ SSH(보안텔넷)에서 사용자이름 root, 비밀번호 12345으로 접속하여 mydb의 내용을 backup.sql 파일에 저장함



DB 복원하기

형식) mysql -u사용자아이디 -p비밀번호 데이터베이스이름 < 파일이름

$ mysql -uroot -p12345 mydb < ./backup.sql
☞ backup.sql의 내용을 mydb에 복원함


블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

파일명이 깨진파일 지우기




리눅스 OS 에서 가끔 다운로드 받은 파일이나 , 특문등에 의해서 잘못생성되어진 파일들이 생길때가 있습니다.

이때 rm 명령으로 지우기가 난감하지요?


그럴땐 파일의 고유 ID 값을 이용하여 지울 수 있는 방법이 있습니다.


[root@test]# ls -li
합계 0
4532 -rw-r--r--. 1 root root 0 2015-09-23 03:57 2015.0922.txt
4531 -rw-r--r--. 1 root root 0 2015-09-23 03:53 ?ㄶ.txt



위처럼 ls 명령어의 -i옵션으로 파일의 고유 ID 값을 확인합니다. (맨앞 숫자)


[root@test]# find . -inum 4531 -exec rm -f {} ₩;


그다음 find 명령어를 통해 고유숫자 값을 입력하여 삭제합니다.


[root@test]# ls -li
합계 0
4532 -rw-r--r--. 1 root root 0 2015-09-23 03:57 2015.0922.txt



쨘~~ 파일명 깨진 파일 삭제된 것을 확인 할 수 있습니다.

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

생성된 테이블의 CREATE TABLE 구문 얻기



mysql 에서 이미 생성되어져 있는 테이블(table) 에 대한 create table 구문을 얻어내는 방법입니다.



구문 : SHOW CREATE TABLE tbl_name



샘플)



mysql> SHOW CREATE TABLE t\G *************************** 1. row *************************** Table: t Create Table: CREATE TABLE `t` ( `id` int(11) NOT NULL AUTO_INCREMENT, `s` char(60) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1





블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,