2015년 7월 14일 화요일

일반단축키


▷ Ctrl + Shift + Esc
- 작업관리자 실행
- 프로그램 오류로 인해 강제 종료가 필요할때 아마 가장 많이 여는 창이 아닐까 한다. 원래 Ctrl + Alt + Delete 를 이용해 여는것이 일반화

되어 있지만 윈7부터는 한손으로 아래의 단축키를 눌러 열 수 있다

▷ 윈도우키 + D
- 바탕화면 바로가기
▷ 윈도우키 + E
- 내컴퓨터 바로열기
▷ 윈도우키 + L
- 컴퓨터 로그 오프
▷ 윈도우키 + R
- 실행창 열기 (CMD 등을 실행 하기 위해 필요한것)
▷ 윈도우키 + U
- 제어판 실행
▷ 윈도우키 + P
- 듀얼모니터 설정

인터넷 익스플로러

▷ 윈도우키 + 방향키 (← or → )
- 창의 크기가 화면의 반으로 딱 나눠진다. 두개 이상의 인터넷 창을 이용할대 편리
▷ 윈도우키 + 방향키 (↑ or ↓)
- 창의 크기를 전체 화면으로 만들거나, 전체화면을 최소화 시킬 수 있다.

▷ Ctrl + T
- 새탭을 열어준다
▷ Ctrl + W
- 활성화 된 탭 만 닫아준다.
▷ Ctrl + N
- 새로운 익스플로러 창을 실행시켜준다.
▷ Ctrl + Shift + T
- 이전에 종료했던 웹 사이트를 불러온다. 실수로 종료했을때 유용한 단축키

델파이단축키

Delphi 단축키
Delphi 레퍼런스 / 2010/04/07 09:48
#1
< 델파이 단축키 모음 >

[찾기]

Ctrl + F Find

Ctrl + R Find and Replace

F3 Search Again


[화면이동]

F11 View Object Inspector

F12 Toggle Form/Unit

Alt + 0 View Window List

Ctrl + F12 View Unit

Shift + F12 View Form

Ctrl + PgUp/PgDown CodeEditor에서 현재페이지의 첫줄(PgUp), 마지막줄(PgDown)로 이동


[컴파일/실행]

Ctrl + F9 Compile

F9 Run

F7 Trace Into

F8 Trace Over

F5 Set Breakpoint

Ctrl + F5 Add Watch

Ctrl + F7 Evaluate/Modify


[블록관련]

Ctrl + Shift + U Unindent

Ctrl + Shift + I Indent

Ctrl + O, C Column Block Mode (또는 Alt키를 누른상태에서 Mouse를 드래그 해
도 컬럼블럭 설정이 가능, Shift + Alt + Arrow Key 를 사용해도 컬
럼블럭 설정)

Ctrl + O, K Line Block Mode


[키 매크로]

Ctrl + Shift + R Record

* 키매크로 작성순서 : -> <원하는키> ->

Ctrl + Shift + P Play


[Object Inpector]

Ctrl + Down Object Inpector 상단의 Object List ComboBox 열기
이 상태에서 Component Name을 키보드로 치면 Incremental Search 기
능Tab Property 와 Property Value 부분을 전환가능하며,
Property 쪽에 Cursor 가 위치한 상태에서 키보드를 치면
Incremental Search


[Code Insight]

Ctrl + Space Code Completion 기능

Ctrl + J Code Template 기능

Ctrl + Shift + Up/Down Object 의 Member function/procedure 의 선언부와 구현부를
이동

Ctrl + Shift + C Object 의 Member function/procedure 의 선언부와 구현부중
의 한가지를 코딩 한후 누르게 되면 나머지 선언부 또는 구
현부를 완성시켜줌


[기타]

Alt + F10 현재 위치에서 Popup-Menu 띄우기

Ctrl + Enter Code Editor 에서 현재위치의 단어로 File Open을 시도(기본 확장자
는 .pas) 하고 현재 Path 에서 그 파일을 찾지 못하면 File Open
Dialog를 띄움.

Alt + { or } Find Matching Brace( ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[‘, ‘]’ )


#2
에디터에서 Ctrl + E 를 하면 increment Search 가 됩니다. Ctrl+E 를 눌루고 문자열을 입력해 보세요
Ctrl+L 을 해도 다시 찾기 또는 다시 바꾸기를 할수 있습니다.

Alt+F11 은 유닛을 Uses 할때 사용하면 됩니다.

Ctrl+K+W 를 하면 선택한 블럭을 저장할수 있습니다.
Ctrl+K+R 을 하면 캐럿위치에 파일을 읽어서 붙일수 있습니다.

Ctrl+Alt+B 를 하면 현재 프로젝트에 설정된 BreakPoint 를 편집할수 있구 그 라인으로 이동할수 있습니다.



#3
다시찾기 단축키.
ctrl+f로 찾은후, F3을 누르면 다시 찾기가 됩니다.

토큰으로 찾기 단축키
커서가 토큰에 위치시키고는 ctrl + alt + 화살표 위로 또는
아래로 하면 커서위치의 토큰과 가장 가까이에 있는 토큰을 찾아갑니다.

ctrl + 마우스 왼쪽 클릭 단축키
ctrl + 화살표 위

메소드 선언부바로가기
메소드선언부에서 ctrl+shift+화살표아래

메소드 구현부바로가기
메소드구현부에서 ctrl+shift+화살표위

GExperts의 클립보드 히스토리 사용.
Gexperts를 설치하셨다면 클립보드 히스토리가 있습니다. 델파이 에디터 편집기에서 사용한 복사내용 역사(?)가 등록됩니다.

GExperts의 IDE 메뉴 shortcut사용
델파이의 메뉴에 단축키를 설정하실 수 있습니다. 꽤나 유용합니다.
View-얼라이먼트 팔레트같은것을 shift+alt+p로 선언해 두시면 편할듯싶네요

GExperts의 Code Proofreader
철자수정 기능을 갖추고 있습니다.
특히 Dictionary탭의
Enable dictionary replament와
Enable compiler replament 체크를 하시게 되면
코딩이 수월해지며, Form또는 unit Edit1등이 짜증나게 됩니다.

컬럼블럭 선택 해제
선택: shift + alt + 화살표키하시면 컬럼열을 복사하실 수 있습니다.
해제: 그냥 편집창에서 마우스를 클릭하시면 해제됩니다.
또는 Ctrl+O+K를 하시면 해제됩니다.(이건 많은 분들이 모르시고 있더군요)

컴포넌트 이름은 알고 어떤 팔레트에 있는지 모를때
Alt + V + C를 하시고 컴포넌트 이름을 입력하셔서 찾으시면 됩니다.

델파이환경에서 unit을 제거했는데 dcu를 찾지 못할때..
델파이는 보통 컴파일시 변경된 파일만 체크하기 때문에 이런 문제가 나타날 수 있습니다.
그때는 Alt + P + B를 하시면 모두 빌드해서 에러를 잡으세요.

Project Group에서 여러 프로젝트를 한번에 빌드하기.
하나하나씩 컴파일 하지 마시고, Alt + P + E를 하시면 프로젝트 그룹내의 모든 프로젝트를 빌드하게 됩니다.

제가 애용하는 델파이의 기능이었으며, 이미 알고 있다고 가정한 것들은 제외했습니다.

(델6버전임.)



#4
폼 디자이너
Ctrl + 방향키(←↑→↓) : 컴포넌트 위치 이동
Shift + Ctrl + 방향키(←↑→↓) : 컴포넌트 위치 이동(빠르게)
Shift + 방향키(←↑→↓) : 컴포넌트 크기 변경
선택 후 ESC : Parent컴포넌트로 이동

오브젝트 인스펙터
Ctrl + ↓ : 컴포넌트 선택기 팝업
(팝업 후 알파벳 문자 입력하여 해당 컴포넌트로 이동 가능)
Alt + ↓ : Property Combo 선택기 팝업
(팝업 후 알파벳 문자 입력하여 해당 컴포넌트로 이동 가능)
Ctrl + Enter : 열거형 Property값을 다음 값으로 변경
+선택 후, ←,→ : 하위 Property펼치기,접기
Ctrl + Tab : Properties,Events탭 전환
..선택 + Ctrl + Enter : Property Editor 열기
Tab : Property Name/Value토글

소스코드 에디터
Ctrl + Enter : 현재위치의 단어로 File Open 시도
현재 Path 에서 찾지 못하면 Dialog
Ctrl + S : 파일 저장
Ctrl + F4 : 파일 닫기
Ctrl + Shift + C : Method/Procedure/Property자동생성
Ctrl + Shift + ↑(↓) : 선언부,구현부 상호간 이동
Ctrl + Shift + R : 키 매크로 레코딩
Ctrl + Shift + P : 키 매크로 실행
Ctrl + ←,→ : 이전 단어, 다음 단어
Ctrl + Shift + ←,→ : 이전 단어, 다음 단어까지 블럭
Ctrl + Home : 소스코드 맨 앞으로 이동
Ctrl + End : 소스코드 맨 뒤로 이동
Shift + Home : 현재 라인 맨 앞까지 블럭
Shift + End : 현재 라인 맨 뒤까지 블럭
Ctrl + PageUp : 현재 화면의 맨 윗줄로 이동
Ctrl + PageDown : 현재 화면의 맨 아랫줄로 이동
Ctrl + Shift + I(U) : 현재 라인에 들여쓰기(내어쓰기)
Shift + Alt + 방향키(←↑→↓) : 블록 사각형 지정         -> Ctrl + Backspace : 해제
Ctrl + KL : 캐럿이 Line Home에 있을 때, Line 블럭
Ctrl + T : 현재 위치에서 마지막 단어까지 삭제
Ctrl + I : 블럭 지정된 문자를 공백으로 변환
Alt + {, } : '{'괄호 앞,뒤에서 사용. 짝 찾기.
Ctrl + N : 다음 Line 맨 앞으로 줄바꿈
Ctrl + M : 줄바꿈
Alt + BackSpace : 실행 취소
Ctrl + E : 한 글자 찾기
Ctrl + ↑(↓) : 캐럿 고정 스크롤
Ctrl + F : 찾기
Ctrl + R : 바꾸기

코드탐색기
F2 : 이름 변경하기(Uses제외)
DoubleClick : 소스코드 탐색기의 해당 코드로 이동
Ctrl + Shift + E : 탐색기<->에디터 창 이동

코드 인사이트(Code Insight)
Ctrl + Space : 코드완성 마법사
Ctrl + Shift : 메소드 파라미터 팁
Ctrl + J : 코드 템플릿 사용

기타 기능
Alt + F10 : 현재 위치에서 Popup-Menu 띄우기
F11 : View Object Inspector
F12 : Toggle Form/Unit
Alt + 0 : View Window List
Ctrl + F12 : View Unit
Shift + F12 : View Form

Posted by ~ 정윤식
http://sshoking.tistory.com/entry/Delphi-%EB%8B%A8%EC%B6%95%ED%82%A4

2015년 4월 22일 수요일

PermGemSpace

출처: http://java.sun.com/javase/6/webnotes/trouble/TSG-VM/html/memleaks.html
http://wiki.openmrs.org/display/docs/Out+Of+Memory+Errors

메모리 누수 leak 를 알게 되는 일반적인 방법 중 하나가 java.lang.OutOfMemoryError 에러 입니다. 이 에러는 Java 힙 heap 이나 힙의 특정 영역에 객체를 할당 할 수 있는 공간이 충분하지 않을 때 발생합니다.

PermGen space 라는 메시지는 permanent generation 이 가득 찬 상태라는 것을 알려줍니다. permanent generation 은 클래스와 메쏘드 객체가 저장되는 힙의 영역입니다. 어플리케이션이 많은 수의 클래스를 로드하면, -XX:MaxPermSize 옵션을 사용하여 permanent generation 의 크기를 증가시킬 필요가 있습니다.

톰캣 Tomcat 을 사용하다 이 에러를 보았다면 대체로 웹 어플리케이션을 너무 많이 Update 하거나 Reload 한 것이 원인입니다. 톰캣 과 JVM 은 웹 어플리케이션을 삭제하고 다시 생성할 때 할당한 모든 메모리를 해제하지는 않습니다. 톰캣을 여러 번 리로드하면 할당된 메모리가 바닥나서 동작하지 않게 됩니다.

톰캣에서 이 에러가 발생했을 때 해결 방법은 1. 톰캣을 재시작하는 것입니다. 2. 톰캣이 할당할 수 있는 메모리를 늘려줄 수도 있습니다. 이 방법은 에러 발생을 중지시키는 것이 아니라 톰캣을 재시작하기까지의 시간을 연장시킬 뿐입니다. 3. 메모리 누수가 발생하지 않도록 톰캣을 설정합니다.


Java Heap 크기 증가

커맨드라인으로 톰캣을 실행시킨다면 아래의 파라미터를 추가합니다.
-Xmx512m -Xms512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=128m

윈도우 서비스로 톰캣을 실행시킨다면 톰캣 모니터를 실행시키고, Tomcat -> Java -> Java Options 에 아래의 내용을 추가합니다.
-Xmx512m -Xms512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=128m
참고1: 복사해서 붙여넣기를 할 때 빈 공간이 추가되지 않도록 주의하십시오. 톰캣을 시작하지 못할 수 있습니다.
참고2: 64비트 버전의 톰캣을 사용한다면 레지스트리 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat5\Parameters\JavaJVM 을 변경해야 합니다.

리눅스 linux 나 유닉스 unix 환경에서 톰캣 tomcat 을 사용하시면 catalina.sh 파일의 상단에 아래의 문장을 추가해 주면 됩니다. 필요에 따라 서버의 swap 영역을 넓혀줍시다.
JAVA_OPTS="-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"

메모리 누수 방지 설정

conf/web.xml file 파일에서 jsp 서블릿 부분에 아래의 내용을 추가합니다.
<init-param>
  <param-name>enablePooling</param-name>
  <param-value>false</param-value>
</init-param>

2015년 4월 16일 목요일

문자열길이체크

var len;
var str;
var textarea;
function getCheck(tagName,maxlen){  //tagName : TextArea의 id값 // maxlen : 체크할 최대byte수
    len = 0;
    textarea = document.getElementById(tagName);
    str = textarea.value;
    //str = document.getElementById(tagName);
    for(var i=0; i<str.length; i++){
        // charCodeAt에서 한글이 12592이상인걸로 알고있지만 아닐수도?(아스키코드 10진수..)
         if(str.charCodeAt(i) >= 12592){  // 이부분에서 영문 숫자 조건줘서 변경 가능
            len = len + 3;  // 한글은 3바이트로 체크
        }else{
            len = len +1;  // 한글 외에는 1바이트로 체크
        }
        if(len > maxlen){
            alert("Is over "+maxlen+" characters.");
            textarea.value = str.substring(0,i);  // maxlen이상 입력할 수 없다
            str = textarea.value;  // 처리를해주어야 그만돈다
        }
    }
}


// 단순 길이 제한
onkeyup="getCheck(tagName,800)"

var len;
var str;
var textarea;
function getCheck(tagName,maxlen){  //tagName : TextArea의 id값 // maxlen : 체크할 최대byte수
    len = 0;
    textarea = document.getElementById(tagName);
    str = textarea.value;  
    if(str.length>maxlen){
    alert("Is over "+maxlen+" characters.");
    textarea.value = str.substring(0,maxlen);  // maxlen이상 입력할 수 없다      
    }  
}

2015년 4월 13일 월요일

mail

https://www.google.com/settings/security/lesssecureapps

2015년 4월 10일 금요일

clob

[iBatis] Clob 사용하기

1. select 하기 (resultMap 이용)
select 문에서 resultMap을 사용한다.
그전에 앞서 resultMap을 셀럭트 하기전에 선언한다.
왜냐면 XML은 순차적으로 해석하기때문에... 먼저 해줘야 나중에있는놈이 쓸수있는거다.

<resultMap id="borderResultMap" class="java.util.HashMap">
    <result property="seq" column="SEQ"/>
    <result property="cont" column="CONT" jdbcType="CLOB" javaType="java.lang.String"/>
</resultMap>

<select id="selectBoard" parameterClass="java.util.HashMap" resultMap="borderResultMap">
    SELECT SEQ, CONT FROM BOARD WHERE  SEQ = #seq#
</select>

2 insert & update 하기
ㄱ.parameterMap을 이용 하는 방법
<parameterMap id="boardParamMap" class="java.util.HashMap">
    <parameter property="seq"/>
    <parameter property="content" jdbcType="CLOB"/>
</parameterMap>

<insert id="insertBoard" parameterMap="boardParamMap">
    insert into(SEQ, CONT) VALUES(#seq#, #cont#)
</insert>

ㄴ.바로 사용 하는 방법 (사용해봄 :CLOB 만 붙여주니 동작함)
<insert id="insertBoard" parameterMap="boardParamMap">
    insert into(SEQ, CONT) VALUES(#seq#, #cont:CLOB#)
</insert>

2015년 3월 31일 화요일

background

background: url(http://cdn9.pikicast.com/collection/7ebe16c1-6abd-4014-ab4e-d2609932d48b_20150331174833584.jpg) 50% 50% / cover no-repeat;

//그라디언트
background:linear-gradient(to bottom,#595959 0%,#4A4A4A 95%,#262626 99%,#262626 100%);