[Mac] 정보가져오기 단축키

OS/Mac 2012. 2. 5. 20:44
해당 파일이나 폴더를 선택한후 'Command + i' 이다.

'OS > Mac' 카테고리의 다른 글

[Mac] Mac OS X Lion의 TRIM 활성화 하기  (0) 2012.04.24
[Mac] 듀얼부팅일때 우선순위 정하기  (0) 2012.02.28
[Mac] 기본 프로그램 변경하기  (0) 2011.12.11
[Mac] Lion Update  (0) 2011.08.14
[Mac] 맥 윈도우즈 키보드 맵핑  (0) 2011.08.03
posted by 뚱2
테스트 데이터가 필요해서 PL/SQL을 이용해서 작성했다.
중간에 값이 맞게 들어가는지 확인하기 위해서 DBMS_OUTPUT.PUT_LINE 함수를 이용했는데
조금 있다가 버퍼오버플로우 에러가...

해결방법은 ( http://psoug.org/reference/dbms_output.html 참조 )
-- default : 20,000
-- max     : 1,000,000
DBMS_OUTPUT.ENABLE(1000000);


posted by 뚱2
값이 계속 틀려서 확인해 보니 두 경우가 다르게 출력된다. 된장 ㅡㅡ;
-- 1을 리턴한다.
SELECT NVL(MAX(SUBJ),0)+1 FROM TLMS_EXAMRESULT;

-- NULL을 리턴한다.
SELECT MAX(NVL(SUBJ,0))+1 FROM TLMS_EXAMRESULT;

결론은 NVL은 제일 마지막에 호출해야 정상적으로 실행된다.
posted by 뚱2

[Java] map sort

Java/Java 2012. 2. 2. 12:12

'Java > Java' 카테고리의 다른 글

[Java] google-gson  (0) 2012.06.22
[Java] Java Dynamic method call  (0) 2012.02.09
[Java] instanceof 연산자  (0) 2011.11.28
[Java] 날짜표시 YYMMDDHH24MI  (0) 2011.11.21
[Java] Java Annotation (어노테이션) 관련자료  (0) 2011.11.08
posted by 뚱2
쿼리 분석하고 속도향상 시킬때 유용하다.

링크 1 : http://blog.daum.net/cjsfb/5576315
링크 2 : http://okjsp.pe.kr/seq/31689
posted by 뚱2
posted by 뚱2

'Java > egovFrame' 카테고리의 다른 글

[egovFrame] @Aspect 예제  (0) 2015.07.21
posted by 뚱2
window.onload 전에 이미지나 리소스가 로딩되기 전에 일어나는 이벤트이다.
다만 ie에서는 버그가 있어서 잘 되지 않는 경우가 있다.

출처 : http://blog.iolo.pe.kr/284

onReady = (function(ie){
    var d = document;
    return ie ? function(c){
        var n = d.firstChild,
        f = function(){
            try{
                c(n.doScroll('left'))
            }catch(e){
                setTimeout(f, 10)
            }
        }; f()
    } : 
    /webkit|safari|khtml/i.test(navigator.userAgent) ? function(c){
        var f = function(){
            /loaded|complete/.test(d.readyState) ? c() : setTimeout(f, 10)
        }; f()
    } : 
    function(c){
        d.addEventListener("DOMContentLoaded", c, false);
    }
})(/*@cc_on 1@*/);

onReady(function(){

    alert("Hello DOM");

});

posted by 뚱2
* Excel 2003
도구 -> 옵션 -> 맞춤법 검사 -> 자동 고침 옵션 -> 한/영 자동고침 -> [체크 해제]

* 2003 이후 엑셀
Excel 옵션 -> 언어 교정 -> 자동고침 옵션 -> 한/영 자동고침 -> [체크 해제]

'IDE/Tool > Excel' 카테고리의 다른 글

[Excel] VBA Tutorial  (0) 2015.06.27
posted by 뚱2
개인적으로 개발할때 좋아하는 폰트는 Dina 폰트 입니다. 소개 ( http://www.donationcoder.com/Software/Jibz/Dina/ )
Toad 폰트가 가변폰트여서 줄맞춤이 힘든데
이번에 Dina 폰트로 변경했습니다.

메뉴 -> View -> Toad Options... -> Editor -> Display -> Fonts -> Editor ... 에서 변경


posted by 뚱2
출처 : http://specialguy.tistory.com/33

-- 결과 : 0011
SELECT TO_CHAR(11, '0999')
  FROM DUAL

- 변환형 함수
TO_CHAR : 숫자나 날짜를 문자열로 변환
TO_NUMBER : 문자를 숫자로 변환
TO_DATE : 문자를 날짜로 변환

- TO_CHAR에서 숫자를 문자로 변환시에 형식에 사용되는 요소
9 : 일반적인 숫자를 나타냄
0 : 앞의 빈자리를 0으로 채움
$ : dollar를 표시함
L : 지역 통화 단위(ex )
. : 소숫점을 표시함
, : 천단위를 표시함
- TO_CHAR에서 날짜를 문자로 변환시에 형식에 사용되는 요소
SCC : 세기를 표시 S는 기원전(BC)
YEAR : 연도를 알파벳으로 spelling
YYYY : 4자리 연도로 표시
YY : 끝의 2자리 연도로 표시
MONTH : 월을 알파벳으로 spelling
MON : 월의 알파벳 약어
MM : 월을 2자리 숫자로 표시
DAY : 일에 해당하는 요일
DY : 일에 해당하는 요일의 약어
DDD,DD,D : 연도,월,일 중의 날짜를 숫자로 표시
HH , HH24 : (1-12) , (0-23)중의 시간을 표시
MI : 분을 표시
SS : 초를 표시
AM(A.M.),PM(P.M.) : 오전인지 오후인지를 표시


TO_CHAR(문자값,‘형식’)
숫자를 문자로 변환 : TO_CHAR(350000,'$999,999')→ $350,000
숫자를 날짜로 변환 : TO_CHAR(SYSDATE,'YY/MM/DD')→ 95/05/25
TO_DATE(문자값, ‘형식’) : TO_DATE('10 SEPTEMBER 1992','DD MONTH YYYY')→10-SEP-92
TO_NUMBER(문자값) : TO_NUMBER('1234')→ 1234


posted by 뚱2
Ctrl + ↑ : Logical
Ctrl + ↓ : Physical
posted by 뚱2
posted by 뚱2

[Zlib] zlib 메뉴얼

C/C++/Zlib 2012. 1. 5. 16:14
posted by 뚱2


1. 제   목 : 자바스크립트 코딩 기법과 핵심 패턴 ( JavaScript Patterns)
2. 출판사 : 인사이트
3. 저   자 : 스토얀 스테파노프 / 김준기, 변유진 역
4. 가   격 : 22,000원
5. 난이도 : 초중급 (★★★★☆)
6. 판   매 : 판매중
7. 평   가 : ★★★★☆

이 책은 자바스크립트를 배우기 위해서 보는 책은 아닙니다.
자바스크립트를 어느정도 공부하신분이 자바스크립트를 효율적인 방법 및 패턴을 배우는 책입니다.
기존 Gof의 패턴은 Java나 C++로 배우게 되는데 이 책은 패러다임이 특히 다른 언어 (자바스크립트는 C계열의
문법을 사용하지만 java난 C++가 패러다임이 많이 다르다고 생각합니다.)인 자바스크립트를 이용해서
패턴을 설명하는 부분이 다른 어떤 자바스크립트 책에서도 찾아볼수 없는 유용한 부분인것 같습니다.
그리고 실무에 바로 사용해도 도움이 되는 패턴(네임스페이스 패턴, 샌드박스패턴)이 있습니다.
번역도 이해하는데 무리 없습니다.

제가 생각하는 자바스크립트 공부 순서는

1. 자바스크립트 완벽 가이드 (http://kangcom.com/sub/view.asp?sku=200805090006&mcd=571)
2. 자바스크립트 성능 최적화 (http://kangcom.com/sub/view.asp?sku=201109160003&mcd=571)
   - 2장의 설명이 자바스크립트 스코프를 이해하기 좋아서 순서를 올렸습니다.
3. 더글라스 크락포드의 자바스크립트 핵심 가이드 (http://kangcom.com/sub/view.asp?sku=200809180003&mcd=571)
4. 자바스크립트 코딩 기법과 핵심 패턴 (http://kangcom.com/sub/view.asp?sku=201111020003&mcd=571)


이 순서로 공부하시면 자바스크립트를 어느정도 편하게 사용하실수 있을 것 같습니다.
posted by 뚱2

-- SUBSTR([field],[start],[length])
-- field   : 테이블 필드
-- start   : 시작 인덱스 1부터 시작
-- length  : 문자열 개수
-- 예제날짜 : 20111227120000
SELECT SUBSTR('20111227120000', 1, 4) || '-' ||
       SUBSTR('20111227120000', 5, 2) || '-' || 
       SUBSTR('20111227120000', 7, 2)               AS MYDATE
  FROM DUAL

posted by 뚱2



SELECT DISTINCT ST.USN  AS USN
  FROM TLMS_STUDENT    ST
 WHERE 1 = 1
   AND ST.SUBJ = '3'
   AND NOT EXISTS (SELECT *
                     FROM TLMS_SUBJSCM A
                    WHERE 1 = 1 
                      AND A.USN  = ST.USN  
                      AND A.SUBJ = ST.SUBJ )



SELECT DISTINCT ST.USN  AS USN
  FROM TLMS_STUDENT    ST
 WHERE 1 = 1
   AND ST.SUBJ = '3'
   AND ST.USN  NOT IN (SELECT USN
                         FROM TLMS_SUBJSCM A
                        WHERE 1 = 1
                          AND A.SUBJ = ST.SUBJ)


두 쿼리의 실행계획 차이가 없다. 요즘 DB 성능 좋다.
결국 차이는 NULL일때 처리 유무이다.
* NOT IN 구분은 NULL 값을 인식 못한다.
* DBMS는  ORACLE 11G 이다.

'DB / NoSQL > Oracle / Toad' 카테고리의 다른 글

[Oracle] TO_CAHR, TO_NUMBER, TO_DATE  (0) 2012.01.17
[Oracle] SUBSTR() 함수  (0) 2011.12.27
[Oracle] 집계함수  (0) 2011.12.22
[Oracle] Oracle SQL Developer Debuging  (0) 2011.12.01
[Oracle] TRUNC 절삭 함수  (0) 2011.11.24
posted by 뚱2

[Oracle] 집계함수

DB / NoSQL/Oracle / Toad 2011. 12. 22. 10:10
이름대로 너무도 직관적

SUM : 합계
AVG : 평균
MAX : 최대
MIN : 최소
COUNT : 개수



posted by 뚱2


1. 제   목 : High Performance Javascript 자바스크립트 성능 최적화
2. 출판사 : 한빛미디어
3. 저   자 : 니콜라스 자카스 지음 / 한성용 옮김

4. 가   격 : 20,000원 
5. 난이도 : 초중급 (★★★
)
6. 판   매 : 판매중
7. 평   가 : 


거두 절미하고 Chapter 2 데이터 접근 항목 내용만으로도 책의 값어치를 합니다.
'2.01. 스코프 관리'는 자바스크립트의 변수 스코프를 이해 할수 있게 그림과 같이 설명하고 있습니다.
'2.02 객체 멤버'는 그림과 함께 자바스크립트이 프로토타입 체인을 설명하고 있습니다.
개인적으로 자바스크립트 스코프와 클로져때문에 여러 서적을 찾아봤는데
이 책을 보고 한번에 정리되었습니다.
프로토타입 체인은 객체를 어떻게 활용해야 하는지 기본기이기 때문에 중요합니다.
2장의 설명과 함께 함수와 메소드등에 따라 this가 어떻게 변하는지 인지하신다면
자바스크립트의 객체를 자유로이 사용하시는데 불편함이 없을 것 같습니다.

posted by 뚱2

위와 같은 폼이 있습니다.
조건을 선택하고 검색 버튼을 클릭하면은 해당 결과가 아래의 그리드에 나타납니다.
조건 TEXT에 입력하고 Enter키를 누르면 검색 버튼을 클릭하는것도 같은 효과를 나타내주고 싶을때 입니다.


onSubmit="return false;" 꼭 작성해 주셔야 클릭시에 폼이 자동으로 전송되는건 막아줍니다.
* onSubmit="return false;" 하는 이유 : http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_html&wr_id=155693

jQuery(document).ready(function($) {
    $("#listForm input[name=srch_text]").keydown(function(e){
        if(e.keyCode == 13){
            e.cancelBubble = true;
            $("#btn_search").click();
            return false;
        }
    });
});
keyDown이벤트를 잡고 enter키를 확인합니다. 이벤트가 전파되지 않게 e.cancelBubble 를 true 넣어줍니다.



posted by 뚱2

/**
 * jqGrid 
 * desc   : 선택된 Rows를 Dataset Array를 만들어준다.
 *          isAll에 true를 넣어주면 전체 데이터를 가져온다.
 * return : array
 * 
 * comment : 데이터가 선택되지 않으면 빈 배열을 리턴한다.
 */
jQuery.fn.getArrayFromGridRow = function(isAll) {
	var _isAll = false;
	if ( arguments.length > 0 && isAll == true ) {
		_isAll = true;
	}

    var arrayData = [];	
	try {
        var $grid = this;
        
        // jqGird검사
        if ( $grid.jqGrid == null || $grid.jqGrid == undefined ) {
            return arrayData;
        }
        
        var selRows = ( _isAll ? $grid.getDataIDs() : $grid.getGridParam("selarrrow") );
        $.each(selRows, function(index, value) {
            arrayData[index] = $grid.getRowData(value);
        });
	}
	catch(e) {
		alert(e.message);
		return arrayData;
	}
	
    return arrayData;
};

/**
 * jqGrid 
 * desc   : 현재 선택된 Rows를 Dataset Array를 만들어준다.
 * return : array
 */
jQuery.fn.getArrayFromMultiSelectedRow = function() {
	return this.getArrayFromGridRow(false);
};

/**
 * jqGrid 
 * desc   : 전체 row를 Dataset Array를 만들어준다.
 * return : array
 */
jQuery.fn.getArrayFromAllRow = function() {
	return this.getArrayFromGridRow(true);
};

'JavaScript > jqGrid' 카테고리의 다른 글

[jqGrid] Composite Model Data 사용하기  (0) 2013.12.18
[jqGrid] Homepage and Manual  (0) 2013.11.12
posted by 뚱2

var gridData = $(ID.GRID_MAIN).getArrayFromMultiSelectedRow();

if ( gridData.length == 0 ) {

    // 항목을 선택하세요.

    alert("<g:message code='MESSAGE.com.msg.select' />");

    return;

}

 

$.ajax({

    url         : './_deleteDiagnosisTargetList.do'

   ,type        : 'POST'

   ,cache       : false

   ,data        : JSON.stringify({data:gridData})

   ,contentType : 'application/json; charset=utf-8'

   ,dataType    : 'json'

   ,success     : function(result) {

       if ( result.success == true ) {

           var str = "";

           $.each(result.list, function(index, rec) {

                str += rec + "\n";

           });

           alert(str);

           $(ID.GRID_MAIN).trigger("reloadGrid");

       }

   }

   ,error: function(result) {

   }

});


posted by 뚱2
jQuery의 serializeArray를 이용한다.



위의 폼을 var arr = $("#listForm").serializeArray()를 호출하면
// 아래와 같은 arr의 형태로 생성된다.
arr = [
    {name : 'test_01', value : '1'}
   ,{name : 'test_02', value : '2'}
   ,{name : 'test_03', value : '3'}
];

그래서 위의 serializeArray 메소드를 이용해서 json형태로 만들어준다.
/**
 * jqGrid
 * desc   : form의 데이터를 json 형태로 변환해 준다.
 * return : 성공시에는 객체(JSON)을 리턴한다. 실패시에는 null을 리턴한다.
 */
jQuery.fn.serializeObject = function() {
	var obj = null;
	try {
		if ( this[0].tagName && this[0].tagName.toUpperCase() == "FORM" ) {
			var arr = this.serializeArray();
			if ( arr ) {
				obj = {};
				jQuery.each(arr, function() {
					obj[this.name] = this.value;
				});				
			}//if ( arr ) {
 		}
	}
	catch(e) {alert(e.message);}
	finally  {}
	
	return obj;
};



posted by 뚱2
posted by 뚱2
구글에서 jQuery를 항상 최신으로 유지시켜주는 URL이다.
개발할때 유용할 듯 하다.

* 1.X.X 버전 지원 (jQuery 버전이 업데이트 되면 같이 업데이트 된다.)
경량화 버전 :  https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
일반 버전 : https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js







posted by 뚱2

if ( typeof test == 'undefined' ) 
    var test = {};

test.getIEVersion = function() {
    var myAgent = navigator.userAgent;
    var result = myAgent.match( /MSIE\s(\d{1,2}\.\d{1})/i );
    var retString = "";
    if ( result == null ) {
        retString = "none";
    }
    else {
        retString = result[1];
    }

    return retString;
};

alert(test.getIEVersion());



posted by 뚱2

if ( typeof test == 'undefined' )
    var test = {};

test.getBroswerName = function() { 
    // 아래에 검색할 브러우져 이름을 추가한다.
    var myAgent = [
         "MSIE"
        ,"FIREFOX"
        ,"CHROME"
    ];
    var currentAgent = navigator.userAgent;
    currentAgent = currentAgent.toUpperCase();
    
    for (var i = 0; i < myAgent.length; i++ ) {
        if ( currentAgent.indexOf(myAgent[i].toUpperCase()) != -1 ) {
            return myAgent[i];
        }
    }

    return "NONE";
};


//사용방법
alert(test.getBroswerName());

posted by 뚱2
기존의 C계열(C, Java)의 프로그램에서 변수의 유효범위는 {}로 정해진다.
자바스크립트도 문법은 C계통과 비슷 ( java) 하기에 당연스럽게 {}가 변수 유효범위인줄 알았다.
아래와 같이 테스트 해보니 예외가 발생하지 않는다.
결국 자바스크립트에서 변수의 유효범위는 함수기반이다.

* 확실히 하기 위해서 익명함수를 만들고 바로 try catch 구분을 걸었으며 if문 안의 {}안에 변수를
  선언했지만 결과적으로 유효하게 alert창이 출력된다.

//예외가 발생하지 않는다.
try {
    alert((function() { 
        try {
            if ( true ) {
                var myVal = "함수 안의 if 구분 안입니다.";
            }
        }
        catch(e) {alert(e.message);}
        finally  {}
        
        return myVal;
    })());
}
catch(e) {alert(e.message);}
finally  {}

posted by 뚱2

/**

* POST 방식으로 전송하는 팝업창

* url        : 팝업창 경로

* data       : object, array

* popName    : 팝업창 이름 

* popWidth   : 팝업창 가로 길이 (생략하면 화면 넓이에 맞춰진다.)

* popHeight  : 팝업창 세로 길이 (생략하면 화면 높에에 맞춰진다.)

* popOptions : 팝업창 옵션 (생략하면 기본으로 scrollbars=yes 이다.)

* comment :

*     데이터를 json 형식으로 넘겨도 된다.

*     예) gls.openPostPopup({

*             url     : 경로

*            ,data    : json data

*            ,target  : 이름

*            ,width   : 넓이

*            ,height  : 높이

*            ,options : 옵션

*         });

*     데이터가 필요없는 부분은 json property로 넣지 않아도 된다.    

*/

SEED.openPostPopup = function(obj, data, popName, popWidth, popHeight, popOptions) {

var myPop = null;

try {

var param = null;

// json object이라면

if ( obj && typeof obj == 'object' ) {

param = {

'url'     : SEED.url(obj.url)   || ''

,'data'    : obj.data                 || []

,'target'  : obj.target               || ''

,'width'   : obj.width               || screen.availWith

,'height'  : obj.height               || screen.availHeight

,'options' : obj.options             || 'scrollbars=yes'

};

}

else {

param = {

'url'     : SEED.url(obj)       || ''

,'data'    : data                     || []

,'target'  : popName                 || ''

,'width'   : popWidth                 || screen.availWith

,'height'  : popHeight               || screen.availHeight

,'options' : popOptions               || 'scrollbars=yes'

}; 

}

if ( $.type(param.data) == "object" ) {

param.data = [param.data];

}

//랜덤한 수를 출력

var curDate   = new Date();

var ranNumber = Math.floor(Math.random() * 10000) + 1;

var strId = "";

   strId += param.target;

   strId += "_";    

   strId += (new Date()).getTime();

   strId += "_" + ranNumber;

   

var $popForm = $("<form onSummit='return false;'></form>")

.attr("name"  , strId)

.attr("id"    , strId)

.attr("method", "POST");

if ( $popForm ) {

// 배열 순회

$.each(param.data, function(i, elem) {

// 객체 순회

$.each(elem, function(key, val) { 

       $("<input type='hidden'/>")

       .attr("name" , key)

       .attr("value", val)

       .appendTo($popForm);

});

});//$.each(para.data, function(i, elem) {

$popForm.appendTo(document.body);

   myPop = SEED.openWin("", param.target, null, param.width, param.height, param.options);

   var myForm = $popForm[0];

   myForm.action = param.url;

   myForm.method = "POST";

   myForm.target = param.target;

   

   // 현재 생성한 form을 삭제한다.

   myForm.submit();

   if ( $popForm.size() > 0 ) {

    $popForm.remove();

   }

}//if ( $popForm ) {

}

catch (e) {alert(e.message);}

finally   {}


return myPop;

};


posted by 뚱2

[Mac] 기본 프로그램 변경하기

OS/Mac 2011. 12. 11. 21:15
맥북프로에서 Parallels Desktop을 사용하는데 맥에서는 Transmission을 사용하고 Windows에서는 uTorrent를 사용한다.
그런데 프로그램이 어떻게 꼬였는지 모르겠는데 기본 프로그램이 uTorrent로 연결되어 있어서
Parallels Desktop을 실행시키지 않았어도 기본프로그램으로 연결되어서 자동으로 패럴이 실행되는 버그(?)가
발생했다. 결국 기본프로그램을 변경해서 해결.


마우스 오른쪽 -> 정보 가져오기 [클릭]


다음으로 열기 [기본프로그램으로 선택할 프로그램 선택] -> 추가적으로 밑의 [모두변경클릭]

'OS > Mac' 카테고리의 다른 글

[Mac] 듀얼부팅일때 우선순위 정하기  (0) 2012.02.28
[Mac] 정보가져오기 단축키  (0) 2012.02.05
[Mac] Lion Update  (0) 2011.08.14
[Mac] 맥 윈도우즈 키보드 맵핑  (0) 2011.08.03
[Mac] Spotlight 단축키  (0) 2011.05.12
posted by 뚱2