목록Programming (95)
공학박사 권경안
MERGE 를 사용해 보았는가? 준비물 : Table !!! @ Table A create table table_a ( id number ); insert into table_a select rownum from all_tables where rownum
Eclipse 3.x EditPlus 2.x Toad 9.x SR 4.x ProFrame 4.x ProWeb 3.x PowerBuilder 9.x Excel 2007 기본적으로 항상 실행되어져있는 프로그램이다. 노트북을 세워놓고 모니터를 세로로 돌려놓으니 좋구나. 하지만 Pivot 된 모니터는 느려서 속이좀 타는구나. Post It + Rolly Pen + A3 용지에 출력되어져 있는 ER Diagram + 아무리 봐도 EditPlus 가 세계최강이다! 2007년 사무실에서 찍고 cyworld 에 올렸던것... 블로그에 올려봄.. 지금생각해도 EditPlus 는 최고.
Dan Pink on the surprising science of motivation Dan Pink 가 동기 유발의 놀라운 과학에 대해서 설명합니다. http://www.ted.com/talks/lang/kor/dan_pink_on_motivation.html
쿼리를 작성하다보면 가끔(?) 또는 자주(?) join 이 잘~~ 안될때가 있고 답답함을 하소연 할때를 찾는데... 몇일전 이런경우가 생겨 오라클클럽[go]에 다음 그림을 캡쳐해 올리며 질문을 했다. Q.다음과 같은 데이터 셋에서 join 을 어떻게 해야되나요? 첨부한 jpg 의 상단 두개를 가지고 join 하여 아래의 결과값을 원하고 있습니다 A, B 테이블에서 A 날짜보다 작거나 큰값의 MAX 를 가져오면 될것 같은데 잘안되고 있습니다. 도움을좀 주세요 ^^ ... .. . 하루가 지나 그 다음날이 되니 다음과 같은 query 를 받을수 있었다. WITH t1 AS ( SELECT '20090831' std_date, 'KCD' id FROM dual UNION ALL SELECT '20090930'..
저는 금융권종사자는 아닙니다만,, 대부분의 시간을 금융권에서 지내고 있는것 같습니다. 최근 몇년간.. SI 업무를 하다보면 여기저기 고객사에가서 일을 합니다. 짧게는 1년 . 길게는 2년 동안 상주합니다. 그럴때마다 느끼는점은 다음과 같은 화면이 뜰때마다 한마디씩 합니다. '에잇~'... 어떤거냐구요? 짜잔~ 많이들 보셨죠? (모자이크)를 했지만 국내 은행 이름 붙이면 대부분 맞을껍니다. 저는 신영증권,동양종금에서 저의 자산관리를 하는데 저런식으로 막혀있으니 뱅킹하기가 너무 불편하지요. A 은행 가면 A 은행과 그룹사 증권,보험만 접속되고 B 은행 가면 B 그룹사만 되고 뭐 그런식인것 같습니다. (아닌경우도 많지요.) 그렇다고 저희들(컴퓨터 전공하셔서 IT 계시는분들) 이 사용을 못하는것 도 아닙니다. ..
shell 을 통해서 특정파일을 0 bytes 로 바꾸기. - log 초기화하기등. 몇가지의 shell 명령어만 알면 쉽게 만들어서 활용할수 있다. 사례) ProFrame 의 서버로그를 0 Bytes 로 모두 초기화하기. #!/usr/bin/ksh if [ `hostname` != "ap" ]; // if 를 통해 hostname 을 확인한다. then echo " Please... hostname check " exit 1 fi for file in `ls /log/*.log` // for 를 통해 디렉토리 파일개수만큼 돌면서 > 한다. do echo "$file -> 0 bytes" > $file done df -k /log // size 를 확인해본다. 개인적으로 bdf 를 더 선호함. exit 0..
드디어 MicroSoft 에서 차세대 검색엔진 Bing(Bing.com)을 내놓았다. 그래서 비교분석 해본다! 짜잔! 분석까지는 아니고 간단히 비교만 해본다. 4가지 분류로 비교해본다. 1. 첫화면 google.com - 군더더기 하나 없는 아주 뷰리풀한 모습. The best is simple. bing.com - google.com 처럼 깔끔하게 첫 화면을 장식. 하지만 저 혀를 낼름거리는모습은 구글을 잡아먹겠다는 포부를 암시한듯. 암튼 사진은 없었으면 더 좋았을것! 구글 승! 2. Keyword 입력 첫번째 키워드 : 서태지를 생각하며 Seo Taiji 를 찾기위해 seot 만 입력해봄. google.com - 두번째항목으로 사용자가 원하는 것을 보여줌. bing.com - nothing happe..
export YEAR=`date +%Y` 년도 export MONTH=`date +%m` 월 export DAY=`date +%d` 일 export YES=`TZ=KST+15;date +%Y%m%d` 어제일 그날 그날 check 할것들을 간단한 shell 로 만들어서 쓰면 편할것이다. 이런식으로. 활용하면 편하겠지요. (.sh 파일) grep 'PFM' /sfglog/infra/tmaxg/slog/slog.$YES | grep -v registered (실행될때) grep 'PFM' /sfglog/infra/tmaxg/slog/slog.20090528 | grep -v registered
if( rc != RC_NRM ) { if( rc == RC_DUP ) { pfm_strcpy(OUTPUT->proc_rslt_ctt, sizeof(OUTPUT->proc_rslt_ctt), "unique constraint"); return RC_ERR; } else { pfm_strcpy(OUTPUT->proc_rslt_ctt, sizeof(OUTPUT->proc_rslt_ctt), "ERROR"); return RC_ERR; } } 다음 소스에서 Brace({,}) 부분에서 CTRL+SHIFT+P 를 하게되면 Matching Bracket 을 찾아줘서 쉽다. 특히 코드가 긴경우 더욱 필요한기능. 또한 부분에서 더블클릭하면 짜잔 보기좋죠? 블럭선택이 된다. EditPlus 도 같은기능이 있다. CTR..
SELECT to_char(SYSDATE -1/(24), 'HH24:MI:SS') 한시간전, to_char(SYSDATE -1/(24*2), 'HH24:MI:SS') 삼십분전, to_char(SYSDATE , 'HH24:MI:SS') 현재시간, to_char(SYSDATE +1/(24), 'HH24:MI:SS') 삼십분후, to_char(SYSDATE +1/(24), 'HH24:MI:SS') 한시간후 FROM DUAL; 다음쿼리를 통해 1시간전, 30분전, 현재시간, 30분후, 1시간후 를 확인할수 있으며 응용도 가능하다.
ln [-s] file_name link_name -s : Symbolic Link¹ 를 생성할 때 지정한다. 생략하면 Hard Link² 가 된다. file_name : Link를 생성하고자 하는 화일명 link_name : 생성하고자 하는 화일명 ex) ProFrame IPPR 로그를 link 한 예시. ln -s /proframe/ulog/TPFMIPPR_xxxxx.log TPFMIPPR_xxxxx.log 참조 ¹) Symbolic Link : 화일의 내용을 Link하지 않고 화일의 Path정보만을 Link 한다. 링크 생성명에 @ 가 붙는다. 링크가 삭제되어도 원본 파일에 영향을 주지 않는다. 디렉토리도 링크할 수 있다. ※ Symbolic Link 는 화일 하나를 여러 사람이 공유해서 사용하는 ..
LISTING FILES BY SIZE If you want to have a listing of the files sorted by size, you can use the following command(s), it will list the files in decrease order. if you need to do the same thing recursively, you could use the second one. ls -l | grep ^- | sort -nr -k 5 | more ls -lR | grep ^- | sort -nr -k 5 | more @ 응용해서 현재 디렉토리부터 서브티렉토리 까지 전부 찾으면서 가장큰사이즈가 큰녀석을 asc 하게 리스트하기. find ./ -name *.log ..
스트림이란 일련의 문자열이며, C언어에서 자료를 입출력하기 위하여 사용하는 것으로 프로그램과 입출력 장치 사이에서 입출력 자료들을 중계하는 역할을 담당합니다. 스트림(Stream)이란 글자 그대로 해석하자면 '흐름', '흐르다'라는 뜻으로, 데이터를 입력 받거나 출력하려면 먼저 스트림에 일련의 바이트 문자들을 기록한 다음 스트림으로부터 데이터를 읽거나 특정 장치에 데이터를 출력하는 것입니다. 스트림의 장점 프로그램의 입출력 동작이 입출력 장치와는 독립적이기 때문에, 스트림이 어디로 가는지 어디에서 오는지에 대해 신경 쓸 필요가 없습니다. 즉, 프로그램 작성시 입출력 장치의 종류에 따라 다르게 프로그램을 작성할 필요없이 스트림을 통하여 입출력 하도록 프로그램을 작성하면, C라이브러리 함수와 운영체제에 의하..
C언어에서 사용되는 Escape Sequence 문자는 다음과 같습니다. Escape Sequence 문자 설명 \a 경고음(삑소리) \b 백 스페이스 \n 라인 변경 \r 캐리지 리턴 \t 탭 문자 \\ 백슬래시 \’ 단일 인용부호 \” 이중 인용부호 \? 물음표
문자열(string)이란 문자열이란 하나 이상의 문자들을 의미 (예) "감사합니다" 나 "이름"과 같은 하나 이상의 문자들 문자열 처리방법 java는 문자열을 처리하기 위하여 string이란 오브젝트를 제공하지만 c언어에서는 문자열을 위한 특별한 자료형을 제공하지는 않습니다. char형 변수는 단 하나의 문자만을 저장할 수 있으므로 여러 문자를 저장하기 위해서는 char형 배열이나 char형 포인터 변수를 사용합니다. 배열을 사용한 문자열 : char var[10] = "abc"; → 포인터를 사용한 문자열 : char *var = "abc"; → 배열과 포인터를 사용하여 문자열을 저장하면 자동으로 초기화된 문자 다음에 null문자(\0)가 삽입됩니다.
ASCII 코드 테이블을 사용하여 숫자와 문자를 매핑할 수 있습니다. ASCII 코드 테이블은 256개의 코드 테이블로 구성되어 있습니다. [ ASCII 코드 테이블 ] ASCII 십진수 ASCII 십진수 ASCII 십진수 0 48 A 65 a 97 1 49 B 66 b 98 2 50 C 67 c 99 3 51 D 68 d 100 4 52 E 69 e 101 5 53 F 70 f 102 6 54 G 71 g 103 7 55 H 72 h 104 8 56 I 73 i 105 9 57 J 74 j 106
ANSI C와 기존 C의 차이점C 언어는 1970년대에 개발된 이후 널리 사용되어 왔으며, 1989년 ANSI(미국표준협회)에서 공식 표준으로 제정되면서 ANSI C (또는 C89) 라는 이름으로 정리되었습니다. 이후 ISO에서도 거의 동일한 내용으로 채택되면서 C90이라고도 불립니다.기존의 '전통적인 C (K&R C)'와 ANSI C의 차이점을 요약하면 다음과 같습니다:주요 변경 사항1. 함수 선언 방식 변경기존 C에서는 함수 선언 없이 호출해도 문제가 없었지만,ANSI C에서는 함수 호출 전에 반드시 함수 원형(prototype)을 선언해야 합니다.이는 컴파일 타임에서 타입 불일치 등을 미리 검출할 수 있게 해줍니다.// ANSI C 스타일 함수 선언int add(int a, int b);2. 새로운..
- 한글은 입력되지 않고 영문, 숫자 만 입력하기. @ 아래 코드는 알바벳과 숫자를 200자까지 넣을수 있도록 만든 예제 함수. function checkBeforeSubmit() { var regexp = /^[A-Za-z0-9]{1,200}$/i; //var regexp2 = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힝]/; -> 이건 한글만 제외 if( document.FORM.LANG_CODE.value == "EN" ) { if( !regexp.test(document.FORM.MESSAGE.value) ) //if( regexp2.test(document.FORM.MESSAGE.value) ) { alert("언어코드가 영어(EN) 인경우 한글입력이 불가합니다."); return false; } } documen..
@간결하게 잘 설명된 아래 URL 에서 가져온글이다. http://www.wonchu.net/board.do?method=bview&boardId=003&boardSeq=36 (1) ^ (caret) : 라인의 처음이나 문자열의 처음을 표시 예 : ^aaa (문자열의 처음에 aaa를 포함하면 참, 그렇지 않으면 거짓) (2) $ (dollar) : 라인의 끝이나 문자열의 끝을 표시 예 : aaa$ (문자열의 끝에 aaa를 포함하면 참, 그렇지 않으면 거짓) (3) . (period) : 임의의 한 문자를 표시 예 : ^a.c (문자열의 처음에 abc, adc, aZc 등은 참, aa 는 거짓) a..b$ (문자열의 끝에 aaab, abbb, azzb 등을 포함하면 참) (4) [] (bracket) : ..
ORACLE 내장함수에는 LEFT(), RIGHT() 함수가 없다. substr 함수를 통해 똑같이 구현이 가능하다. @ 3번째 자리부터 쭉- SELECT substr('ABC권경안Z9', 3) FROM DUAL; C권경안Z9 @ 4번째 자리부터 2글자 SELECT substr('ABC권경안Z9', 4, 2) FROM DUAL; 권경 @ 우측부터 추출하고 싶다면 마이너스(-) 기호를 사용하면 된다. 우측 2글자 SELECT substr('ABC권경안Z9', -2) FROM DUAL; Z9
HP-UX 에서 man 으로 확인한것이다. 요점만 색칠해서 보기 쉽게 하겠다. 자주사용 될만한 옵션만.(간단설명도 쓰겠습니다.) $ man grep [☜ 엔터] 온라인 도움말을 다시 서식화합니다. 기다리십시오... NAME grep, egrep, fgrep - search a file for a pattern (패턴으로 검색하기) SYNOPSIS Plain call with pattern grep [-E|-F] [-c|-l|-q] [-bhinsvwx] pattern [file ...] Call with (multiple) -e pattern grep [-E|-F] [-c|-l|-q] [-bhinsvwx] -e pattern... [-e pattern] ... [file ...] Call with -f f..
@ HP-UX UNiX man 명령어를 통해 bdf 를 확인하면 다음과 같이 표시한다. bdf - report number of free disk blocks (Berkeley version) df(disk free) 명령어의 버클리 버전이라는 뜻인데. 차이점이 있으며 그 설명은 아래 회색표시된 부분으로 대신한다. 즉, bdf 와 df 로 보았을경우 차이점이 나는것이 정상이라고 볼수 있다. du 명령은 positive 관점에서 현재 할당된 블록의 수를 보여주고 , bdf는 negative 관점에서 disk의 현재 여유공간을 보여준다 따라서 du명령의 경우 방금 지운 블록도 free한 영역으로 count하여 실제 size에 반영되지만, bdf의 경우에는 활성화된 Process 가 할당된 블록 (예를 들어 ..
Unix로그를 보기위해 tail 명령어를 자주 사용하는 경우가 많다. 이때 cut 명령어와 조합하면 훨씬 편하게 로그를 확인할수 있다. 아래 로그는 tail 명령어로 확인한 ProFrame 의 IPPR 로그중 한부분이다. 이때 로그를 살펴보면 : 문자로 로그구분이 된것을 확인 할 수 있다. $ tail -f TPFMIPPR_usr_20090101.log (T) TP :100350707976:20090129ibmsap1t1907210035000000:19072 [SPFMIPPR :pfmTpForward.c :pfmTpForward :00088] >> TPAPI [TPFORWARD :xxxxxxxxA ] ? FLAGS [0] 다음과 같이 cut 명령어를 통해 필요 없는(원치않는) 부분을 삭제하여 볼수 있다...
ProFrame4.0 개발시.. BASENAME = [spfm4003t] make -f $PFMTPL/mkfiles/make_service_module cc -DORACLE -Ae -g +DD64 +DSitanium2 +w1 +Maked +W4227,4255,4264,4243,4295,2177,2193,2826,2111,2550,4229,4242 +We2224,2047 -DSVC_MODULE -DUSE_TCACHE -DTCACHE_ON -DGLOBALCB -DAUTOFREECB -DTRACE -DDEBUG -D_PFM_SHORTNAME_WRAPPER -I. -I/proframe/pfm1/inc -I/pfmdev/shbdev/pmap/inc -I/pfmdev/shbdev/pmap/src -I/pfmdev/..
Oracle Dump() 함수를 통해 해당데이터의 타입 및 CharacterSet을 확인할 수 있다. (정확하게 Metadata 를 제공한다.) SELECT DUMP('ABC', 1016) FROM DUAL; Typ=96 Len=3 CharacterSet=AL32UTF8: 41,42,43 Typ=96 Len=3 CharacterSet=KO16KSC5601: 41,42,43Typ=96 Len=3 CharacterSet=KO16KSC5601: 65,66,67 (1010 으로 했을때 10진수로 표현) 다국어 지원에 프로젝트에서 정확하게 CharacterSet 이 확인시유용함! The argument return_fmt specifies the format of the return value and can ha..
습관적으로.. 아래와 같이 사용했었다. (xml 파일 도대체 뭐 건드린거야? 라며 뭐뭐 수정되었나 찾아볼때 흔히들 쓴다.config !!) $ find ./ -name '*.xml' -ctime 0 | xargs ll -tr (해석) 지금부터 하위디렉토리까지 모든 xml 을 검색(-name '*.xml')하는데 지금부터 -24시간전(-ctime 0) 까지 검색하고 그걸 list 명령어(ll)로 뽑는다. 최신순서가 아래 표시되게끔(-tr) 습관적이라는것은 -ctime 의 값같은건 그리 중요하게 생각하지 않는데.. -ctime 녀석의 값을 이렇게도 그림으로 표현해놓은걸 보구선 앗 감탄해서.. 글을 하나 적으면서 img Tag 로 좀 보여주게끔 해보았다. 굿!!
우연히 Daum 블로그뉴스를 읽던중. 취업준비생이시라는 분의 글을 읽어보았습니다. 3D 가 아니라 이제는 4D 라 분류되는(이런말자체를 처음들었네요-.-) 현실이더군요. 저도 소프트웨어공학과를 졸업해서 현재 프로그래머로써 일을 하고 있습니다. 이글은 조금씩 업데이트하고 수정할까 합니다. 워낙에 글제주가 없어서요.. 몇가지 주제를 나눠서 이야기 해볼까 합니다. (공대[특히 IT]가 아닌 문과계열에 대해서는 잘몰라서 비교하기가 조금 그렇네요^^) 취업 - 2년제.4년제든 졸업을 앞두거나 졸업을 한 상태에서 IT 회사로의 취업이 그리 녹녹하지 않다는 사실을 인정합니다. 하지만 가장큰 원인은 눈높이에 있는것 같습니다. 눈높이만 아주조그만 내려도 취업할수 있는곳은 너무나도 많은것같습니다.(지극히 개인적이지만 주변..
다음은 strncpy 를 STRNCPY 로 DEFINE 한것이다. #define STRNCPY( t, s, len) do { strncpy(t, s, len); *(t+len) = 0; } while(0) strcpy 의 잘못된 호출로 인해 strncpy 를 사용하라고 하지만 그또한 잘못될수 있기에 다음과 같은 macro 를 제공할수 있다.
select * from v$resource_limit; 아래와 같은 결과로 processes, sessions 의 개수가 LIMIT 를 넘어서면 ORACLE 에러가 발생할수 있다. ORA-03113: 통신 채널에 EOF 가 있습니다 processes108116 150 150 sessions111119 170 170 enqueue_locks3548 2300 2300 enqueue_resources3561 968 UNLIMITED ges_procs00 0 0 ges_ress00 0 UNLIMITED ges_locks00 0 UNLIMITED ges_cache_ress00 0 UNLIMITED ges_reg_msgs00 0 UNLIMITED ges_big_msgs00 0 UNLIMITED ges_rsv_ms..
간단하게 설명이 잘되어져 있는 포스트를 링크합니다 ^ ^ http://blog.naver.com/swinter8/130000715438 SAX 와 DOM 의 장단점을 잘 파악해서 사용하는것이 좋겠지요. 무엇이 더 좋다라고는 판단못할것같군요^^ SAX (Simple API for XML)두가지 파서 객체 기반 (Object-based) Interface : DOM 메모리 상주 트리 이용, 문서 전체를 로드 응용에서 간단히 사용 이벤트 기반 (Event-driven) Interface : SAX 문서를 순서대로 읽어 들이면서 해당 메소드를 처리 파서가 간단, 응용프로그램은 복잡 SAX history W3C 표준이 아니다, OASIS 그룹(http://www.oasis-open.org/)에서 시작, David..