반응형
반응형
반응형


##################

# 아파치 실행시 에러. #

##################

$ cd /data1/childeye/dev/bin

$ ./apachectl start

ld.so.1: /data1/childeye/dev/bin/httpd: 치명적: libexpat.so.0: 열기 실패: 해당 파일이나 디렉토리가 없음


################

# 라이브러리 확인. #

################

$ cd /data1/childeye/dev/bin

$ ldd httpd

        libexpat.so.0 =>         (파일이 없음)


####################

# 라이브러리 설치 확인. #

####################

$ find ./ -name "libexpat.so.0"

/usr/local/software/expat-1.95.5/.libs/libexpat.so.0



#############

# path 에 추가. #

#############

$ cd

$ vi .bashrc

export LD_LIBRARY_PATH="/usr/local/software/expat-1.95.5/.libs:$LD_LIBRARY_PATH"



반응형

'Server > Apache' 카테고리의 다른 글

ssl 설정.  (2) 2015.08.16
[설치] DocumentRoot must be a directory  (0) 2015.06.16
Apache MPM  (0) 2014.03.24
디렉토리 인덱싱 비활성화.  (1) 2011.12.14
아파치 패치 방법  (0) 2009.02.11
반응형



# 미리 정의된 변수. 

#FILENAME 현재 처리되고 있는 입력 파일의 이름

#FS 입력 필드 분리문자

#NR 현재 레코드(행)의 번호

#NF 현재 레코드(행)의 필드의 갯수

#OFS출력되는 필드의 분리문자

#, 는 space 출력. 큰 따옴표 속에 있으면 그냥 , 출력.

#ORS 출력 레코드 구분자(디폴트는 newline)

#RS 레코드 구분자(디폴트는 newline)





# 4번째 인자가 SR 인 경우 해당 행 출력.

# {} 생략의 경우 {print $0} 와 같다.

#awk -F',' '$4 == SR {print $0}' sample.DAT

#awk -F',' '$4 == SR' sample.DAT



# 행의 필드 개수, 첫번째 필드, 마지막 필드 출력.

#awk -F',' '{print NF, $1, $NF}' sample.DAT



# 2번째 인자가 001 으로 끝나는 data 를 001txt 파일에 저장.

# awk -F',' -f text.awk sample.DAT

#{

# if($2 ~ /001$/) printf "%s\n", $0 > "001.txt"

#}




# 'fly'를 포함하고 있는 라인의 총수 계산

#/fly/ { nlines = nlines + 1 }

#END { print nlines }




# 6번째 인자값의 평균.

# awk -F',' -f text.awk sample.DAT

# END 는 젤 마지막에 한번 실행됨

#{sum += $6}

#END {printf "The average of the 6th value is %.2f(%d lines)\n", sum/NR, NR}




# BEGIN 은 최초에 한번 실행됨.

#BEGIN { print "Date,      SRC_NO,       Service"; print ""}

#{print $1, $2, $3}




# Array

# 역순으로 출력.

#{ line[NR]=$0}

#END{

# i=NR;

# while(i>0){

# print line[i];

# i=i-1;

# }

#}




# 각 file의 5line씩만 출력

# FNR 은 NR과 유사하나 FNR 은 file이 바뀌면 reset됨

#awk -F',' 'FNR<=5 {print FILENAME ":" $0}' *.DAT

#awk -F',' 'FNR==1, FNR==5 { print FILENAME ":" $0}' *.DAT



# 8번째 인자가 src_number_001인 행 출력.

# 정규표현식 매칭.

#awk -F',' '$8 ~ /src_number_001/ {print $0}' sample.DAT


# for 문 예제.

a["hello"] = 1;

a["world"] = 2;

a["!"] = 3;

# iterate over keys  

for(key in a) {

    print key, a[key]

}



============================================================================

sample.DAT


20110316234441,src_number_001,MSP,SG,3A,11,1A,src_number_001,target_number,2001,1,2011031623401390,2011031623421600,171,0,MSP_bal

....

....



반응형

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

소스에서 한글로 된 주석 찾기  (0) 2015.05.13
APM 소스 설치  (2) 2014.03.24
vi 단축키 모음  (0) 2014.03.24
쉘 스크립트(shell script) - 표준 입출력  (2) 2014.03.24
리소스(resource) 부하 테스트  (1) 2013.11.22
반응형



반응형

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

APM 소스 설치  (2) 2014.03.24
awk 예제.  (2) 2014.03.24
쉘 스크립트(shell script) - 표준 입출력  (2) 2014.03.24
리소스(resource) 부하 테스트  (1) 2013.11.22
탭 자동완성 설정.  (1) 2013.11.14
반응형


http://helloworld.naver.com/helloworld/19187

http://helloworld.naver.com/helloworld/76650


mysql - utfmb4

 - http://www.100dream.net/6

 - http://www.coolx.net/cboard/read.jsp?category=-1&db=develop&fval=&lpage=1&mode=read&new=new&num=707&spage=1



문자를 표현하기 위해서는 가장 먼저 '문자 집합'을 정의해야 한다.

문자 집합은 표현해야 할 문자를 정하고 순서를 지정한 것이다. 

영어라면 'A', 'B', 'C'에서 'Z'까지(소문자 a에서 z), 한글이라면 '가', '각', '간'에서 '힣'까지다. 

물론 숫자나 특수 문자뿐만 아니라 인쇄와 통신을 제어하기 위한 제어 문자도 문자 집합에 포함되어야 한다.


문자 집합을 코드 형태(일반적으로 행렬)로 표기한 것을 코드화된 문자 집합(CCS, coded character set)이라고 한다.

예를 들어 '가'에는 10001, '각'에는 10002와 같이 코드를 할당하는 방식 말이다.

그리고 문자 집합을 컴퓨터에 저장하기 위해서 옥텟(octet, 8비트 단위) 형태로 표현한 것을 인코딩 방식(CES, character encoding scheme)


ASCII는 0x00부터 0x7F까지의 총 127개 문자(제어 문자, 특수 문자, 숫자, 알파벳 등)로 이루어져 있다.


확장 ASCII(Extended ASCII)를 제정하여 기존의 ASCII로 정의하지 못했던 128번부터 255번까지의 새로운 문자를 정의할 수 있게 되었다.

즉, 새로 추가된 128개의 코드(0x80 ~ 0xFF)로 프랑스어, 독일어 등의 유럽어를 표현할 수 있게 된 것이다. 

이와 같이 다양한 유럽어를 표현할 수 있는 확장 ASCII는 ISO-8859 유럽 통일 표준안으로 제정되었다.


한글 표현 방법은 크게 조합형과 완성형으로 나눌 수 있으며, 이를 좀 더 세분화하면 N바이트 조합형, 3바이트 조합형, 7비트 완성형, 2바이트 조합형, 2바이트 완성형으로 나눌 수 있다.

조합형이란 한글의 제자 원리에 기반하여 초성, 중성, 종성에 각각 코드를 할당하는 방식이고, 완성형이란 '가', '각', '간'과 같은 완성된 문자에 코드를 할당하는 방식이다.

이 중 완성형이 한글 표준안으로 채택되었고, 따라서 유니코드의 한글 표현 방식에도 완성형이 먼저 채택되었다.


2바이트 완성형

 - 완성된 음절을 코드와 일대일 대응시키는 방식이다. 예를 들어, '가'는 0xB0A1, '각'은 0xB0A2로 코드화한다. ISO 2022 표준을 기준으로 하였으며, KS C 5601:1987 표준안으로 채택되었다.

 - KS C 5601 표준안은 0xA1A1부터 0xFEFE까지의 영역(94x94, 8,836글자)만을 사용하였다.

   더군다나 8,836개의 글자 중에서 부호 및 일본, 러시아 글자에 1,598자를, 한자에 4,888자를 할당하여 한글에는 2,350자밖에 사용할 수 없었다.

 - 완성형으로는 '똠'을 표현할 수 없어 한글의 제자 원리를 무시한 방식이라는 비난을 피할 수 없게 되었다.

 - 현재는 KS C 5601은 KS X 1001로, KS C 5636은 KS X 1003으로 변경되었다. KS X 1003 표준안은 ASCII와 동일하나, 역슬래시(\)가 원화(\)로 표기되는 것만 다르다.


확장 완성형

 - Microsoft가 독자적으로 제정한 문자 집합으로 완성형 코드에서 표현할 수 없던 8,822자가 추가되었다. 

   통합형 한글 코드(UHC, Unified Hangul Code)라고도 하며, 현대 한글을 모두 표현할 수 있다. 

   그러나 완성형 영역의 2,350자는 자음, 모음 순서대로 배열되어 정렬에 문제가 없었으나, 확장 완성형의 문자 정렬에는 문제가 있었다.



인코딩 방식

 - EUC-KR은 KS X 1001과 KS X 1003 표준안의 인코딩 방식, 2,350자의 한글을 표현

 - CP949(MS949, x-windows-949)는 확장 완성형의 인코딩 방식, 11,172자의 한글을 표현

 - Java에서는 CP949와 MS949를 다르게 취급한다.

   CP949는 IBM에서 처음 지정한 코드 페이지(sun.nio.cs.ext.IBM949)가 기준이고 Microsoft가 제정한 확장 완성형은 MS949(sun.nio.cs.ext.MS949)를 기준이다.

   그러므로 Java에서는 CP949와 EUC-KR이 사실상 같으며, 확장 완성형을 사용하기 위해서는 MS949로 지정해야 한다.



유니코드

 - 전 세계적으로 사용되는 모든 문자 집합을 하나로 모아 탄생시킨 것이 유니코드

 - 유니코드 값을 나타내기 위해서는 코드 포인트(code point)를 사용하는데, 보통 U+를 붙여 표시한다. 

   예를 들어, 'A'의 유니코드 값은 U+0041로 표현한다(\u0041로 표기하기도 함). 유니코드는 공식적으로 31비트 문자 집합이지만 현재까지는 21비트 이내로 모두 표현이 가능하다.

   유니코드는 논리적으로 평면(plane)이라는 개념을 이용하여 구획을 나누며, 평면 개수는 0번 평면인 기본 다국어 평면(BMP; Basic Multilingual Plane)에서 16번 평면까지 모두 17개이다.

   대부분의 문자는 U+0000~U+FFFF 범위에 있는 기본 다국어 평면에 속하며, 일부 한자는 보조 다국어 평면(SMP, Supplementary Multilingual Plane)인 U+10000~U+1FFFF 범위에 속한다.

   이 중 한글은 U+1100~U+11FF 사이에 한글 자모 영역, U+AC00~U+D7AF 사이의 한글 소리 마디 영역에 포함된다


 - 유니코드의 인코딩 방식으로는 코드 포인트를 코드화한 UCS-2와 UCS-4, 변환 인코딩 형식(UTF, UCS Transformation Format)인 UTF-7, UTF-8, UTF-16, UTF-32 인코딩 등이 있다.

 - 이 중 ASCII와 호환이 가능하면서 유니코드를 표현할 수 있는 UTF-8 인코딩이 가장 많이 사용된다.



다음 표는 코드 포인트 범위에 따른 UTF-8 인코딩 방식을 보여준다.


코드 포인트 범위  비트 수  인코딩

U+0000~U+007F     7        그대로 인코딩

U+0080~U+07FF    11        110xxxxx 10xxxxxx

U+0800~U+FFFF    16        1110xxxx 10xxxxxx 10xxxxxx

U+10000~U+1FFFFF 21        11110xxx 10xxxxxx 10xxxxxx 10xxxxxx


위의 표에서 xxxx로 표시된 부분에는 원래의 비트 값을 순서대로 적는다. 

즉, U+0080을 비트 값으로 표현하면 000 1000 0000인데, 인코딩 방식에 의해 11000010 10000000으로 변환되어, 0xC2 0x80으로 저장된다. 

예를 들어, '한글'을 코드 포인트로 표현하면 U+D55C U+AE00인데, 이를 UTF-8 인코딩하면, 0xED 0x95 0x9C 0xEA 0xB8 0x80이 된다.


U+D55C U+AE00

1101 0101 0101 1100 1010 1110 0000 0000            2진수 표현

1110 1101 1001 0101 1001 1100 1110 1010 1011 1000 1000 0000    인코딩 방식에 따라 인코딩


한글 완성형의 코드 포인트 범위는 U+AC00~U+D7AF이므로, UTF-8 인코딩에서 한글은 무조건 3바이트 인코딩이다.




반응형
반응형



ctrl + s: 저장 및 컴파일

ctrl + i: 소스 깔끔 정리(인덴트 중심의 자동구문정리)

ctrl + space : 어휘의 자동완성(Content Assistance)

ctrl + E : 열린파일 옮겨다니기

ctrl + shift + E : 열린파일 띄우기

ctrl + M : 에디터화면 넓게

ctrl + 1 : Quick Fix(Rename에 주로 사용)

ctrl + shift + M : 캐럿이 위치한 대상에 필요한 특정클래스 import

ctrl + shift + O : 소스에 필요한 패키지의 자동 임포트

ctrl + /: 한줄 또는 선택영역 주석처리/제거

ctrl + Q : 마지막 편집위치로 가기

ctrl + L : 특정줄번호로 가기

ctrl + D : 한줄삭제

ctrl + H : Find 및 Replace

ctrl + K : 다음찾기(또는, 찾고자 하는 문자열을 블럭으로 설정한 후 키를 누른다.)

ctrl + shift + K : 이전찾기(또는, 찾고자 하는 문자열을 블럭으로 설정한 후 역으로 찾고자 하는 문자열을 찾아감.)

alt + shift + j : 설정해 둔 기본주석 달기

Ctrl + 객체클릭(혹은 F3) : 클래스나 메소드 혹은 멤버를 정의한 곳으로 이동(Open Declaration)


ctrl + shift + f : 소스 깔끔 정리

ctrl + 2 + R : Rename(리팩토링)

ctrl + shift + / : 선택영역 block comment 설정

ctrl + shift + \ : 선택영역 block comment 제거

alt + shift + up: Enclosing Element 선택(괄호의 열고 닫기 쌍 확인에 유용함)

ctrl + O : Outline창열기

ctrl + T : 상속구조 보기, 한번더 누르면 수퍼타입/서브타입 구조가 토글된다

Alt + ->, Alt + <-: 이후, 이전

해당프로젝트에서 alt + enter : Project 속성

sysout > Ctrl + Space: System.out.println();

try > Ctrl + Space : 기본 try-catch문 완성

for > Ctrl + Space : 기본 for문 완성

템플릿을 수정,추가: Preferences > java > editor > Templates

블럭 씌운상태에서 alt + shift + z : try/catch, do/while, if, for, runnable.... 등 블럭씌우기


ctrl + N : 새로운 파일 및 프로젝트 생성

ctrl + shift + s : 열려진 모든파일 저장 및 컴파일

alt + / : Word Completion

alt + shift + R : Rename

ctrl + shift + G : 특정 메써드나 필드를 참조하고 있는 곳을 찾는다.

ctrl + shift + B : 현재커서위치에 Break point설정/해제

ctrl + alt + R

ctrl + f11 : 실행

f11 : 디버깅 시작

f4 : 상속구조 클래스 보기(메소드, 멤버)

f5 : step into

f6 : step over

f8 : 디버깅 계속

ctrl + . : 다음오류부분으로 가기

ctrl + , : 이전오류부분으로 가기

f12 : 에디터로 커서이동

ALT + UP,DOWN : 현재 줄 위치 이동

Ctrl + j : 검색할 단어를 입력하면서 실시간으로 검색

Ctrl + Shift + j : 검색할 단어를 입력하면서 실시간으로 거꾸로 검색

F4 : 클래스명을 선택하고 누르면 해당 클래스의 Hierarchy 를 볼 수 있다.

ctrl + alt + up/down : 한줄 duplicate

alt + shift + 방향 : 선택

ctrl + shift + g : 객체(변수)가 참조 되는 곳을 찾아 준다

alt + shift + m : 코드 중복 해결(중복부분을 블록선택한 다음 단축키를 누르면 이부분을 별도의 메서드로 뽑아내줌)

ctrl + alt + h : 메서드 호출구조 보기



반응형
반응형


토렌트 다운로드계의 구글

http://bitsnoop.com/

여기에 없는 토렌트파일은 태양계밖에 있다고 하는 

토렌트 다운로드계의 구글 비트스눕

외국사이트이기 때문에 자막이 없는 경우도 있어 

그 경우 따로 구해야함


사업/재테크를 통해 수익을 올리는 방법을 배우는 공간

http://cafe.naver.com/trendhunting

플랫폼 비즈니스, 클라우드 컴퓨팅등 미래의 비즈니스 

트렌드를 공부하는 공간.

온라인 마케팅과 재테크, 사업 분야 등에 있어 실제적인 

정보를 바탕으로 수익화 시키는 방법을 공부하는 공간입니다


http://dasibogi.com/

예능,다큐,드라마 다 볼수 있는곳 (유학생들이 애용하는 곳)



고화질 HDTV를 인터넷에서 무료로 보자!

http://thisr.com/

집에 TV가 없는 분들에게 추천 하는 사이트 .

회원가입 필요 없이 무료로 볼수 있습니다.

KBS,SBS,MBC등 지상파는 물론 스포츠,EBS,게임,라디오 까지 

볼 수 있습니다. 뽐뿌분이 운영하고 있다고 합니다.


무료 음악 스트리밍 사이트

http://grooveshark.com/

말이필요없는 음악 스트리밍 사이트계의 최고봉.

로그인 하지 않아도 무제한으로 음악을 들을 수 있는 사이트입니다.

한국노래는 물론 해외의 많은 노래들도 무료로 들을 수 있습니다. 심지어 스마트폰에서도 가능 단 다운로드는 유료 


고화질 배경화면사이트

http://wallbase.cc/home

해상도, 화면비율 별로 배경화면 선택 할 수 있는 사이트

예쁜사진이 많고 최신사진도 많은 사이트.



그림 못그리는 사람도 화가로 만들어 주는 사이트

http://www.zefrank.com/scribbler/scribblertoo/ 

아무리 그림을 못그리는 사람이라도 있어! 

보이는 그림으로 만들어 주는 사이트 입니다.

심심할때 아무거나 그려보기 좋아요. 


툰툰툰

http://glas.kr/app/toon/viewToonList?size=10&page=3 

다양한 웹툰들을 한자리에서 구독할 수 있는 사이트(링크 형식)

회원가입을 하면 원하는 웹툰만 볼 수 있습니다. 


공연,전시 관람료 지원해주는 <사랑티켓>

http://www.sati.or.kr/ 

공연의 경우 7000원, 전시의 경우 5000원의 

관람료를 지원 받을 수 있는 사이트.

연간 총 10장의 사랑티켓이 부여 


yoUeFO (유에포)

http://www.youefo.com/film 

독립영화를 모아 온라인에서 상영해주는 사이트

<똥파리>양익준 감독, <추격자,황해>,

나홍진 감독들의 단편영화를 볼 수 있습니다. 


<올스타> 공모전

http://www.allstarcontest.co.kr/ 

각종 분야의 공모전 소식들이 있는 사이트. 

가장 많은 공모전 정보가 있다해도 무방한 곳. 


디자인 관련 사이트 

http://www.dafont.com/ 영문폰트 다운

http://www.ohlalamag.com/ 2D그래픽, 사진해외사이트

http://ffffound.com/ 분야에 관계없는 디자인 순수예술




패션 관련 사이트


사토리얼리스트 

(페북에서 유알엘치면 안된다고 나옴.. 대충은 다들 아실듯)

http://www.polyvore.com/ 코디 정보

http://www.streetpeeper.com/ 스트리트 패션

http://coolspotters.com/ 스타가 입은 상품 정보 공유 사이트

http://jakandjil.com/blog/ 스트리트 패션 블로그

http://lookbook.nu/ 룩북

http://forums.thefashionspot.com/f50/celebs-caught-wearing-same-outfit-80923.html 연예인 같은 옷 비교

http://blog.naver.com/gustosignore 남자 클래식 수트관련 블로그

http://fashion-mk.com/ 유럽스타일 패션자료인테리어, 건축

http://cafe.naver.com/digitalfactory 3D모델링 모음 사이트, 

3D모델링창고(인체 조경모형, 가구 모델링 등등)

http://cafe.naver.com/remonterrace.cafe 레몬테라스 카페

http://www.dailyicon.net/ 해외 건축 및 인테리어, 가구, 소품

http://unhappyhipsters.com/ 실내외 인테리어

http://www.archdaily.com/ 건축물

http://freshome.com/ 실내외 인테리어 및 아이템

http://prettyspace.tumblr.com/ 이쁜 인테리어



수능공부 사이트

http://www.1ta.co.kr/ 인강 선생님들 순위 알려줌

http://www.studycode.net/ 공부법을 알려주는 사이트

http://www.bapul.net/ 수학문제 질문하면 답변해주는곳



영어공부 사이트


영어 - 청취

http://read2me.net/ 내가 쓴 문장을 읽어주는 사이트

hhttp://www.dailyenglish.com/ 무료 청취학습 있음


영어 - 리딩

http://www.readingtc.com/reading/test.html 

리딩능력 측정 사이트

http://www.twiztv.com/s/ 영화대본사이트

http://thestar.com.my/english/ 

칼럼, 영어 사용 시 자주 헷갈리는 것, 틀리는 것에 대해

http://comics.com/ 외국 카툰

http://www.newsenglishlessons.com/ 

영어뉴스(리스닝, 롸이팅액티비티 有)


영어 - 기타

http://www.wordbreak.net/ 깜박이 영어같은 단어암기 사이트

http://babel.altavista.com/translate.dyn 번역 사이트

http://kr.babelfish.yahoo.com/translate_txt 번역 사이트

http://www.gohackers.com/html/eng_edu/eng_edu.htm?idx=12 

해커스 영어 학습 사이트

http://www.urbandictionary.com/ 영어 슬랭 사전

http://www.eoneo.com/lang/en/freezone/grammarChecker/ 

영어 문법 검사

http://translate.google.com/ 구글 번역 사이트

http://www.sharedtalk.com/ 외국인 친구 사귀는 곳

http://www.keybr.com/welcome 영타연습, 속도측정

http://www.merriam-webster.com/ 영영 사전

http://www.elllo.org/ 혼자 영어공부하기 좋은 사이트

http://lingual.net/ 영화로 영어공부

http://www.breakingnewsenglish.com/ 

브레이킹뉴스잉글리쉬, 뉴스, 스크립트, 연습문제등

http://englishcube.net/ 영어공부 할 수 있는 온갖 사이트 망라

http://www.interpals.net/ 외국인 펜팔사이트

http://www.bbc.co.uk/worldservice/learningenglish/ 

비비씨 러닝 잉글리시


반응형
반응형


http://antop.tistory.com/135



Eclipse 3.6 (Helios) 이상.

Installing TPTP prerequisites

TPTP 설치 전에 필요로 하는 플러그인들이 있습니다.


1. WTP (Web Tools Platform) - http://eclipse.org/webtools/

이클립스를 J2EE 버전으로 설치했다면 포함되어 있습니다.


2. EMF (Eclipse Modeling Framework) - http://www.eclipse.org/modeling/emf/

help -> Install New Software

 : http://download.eclipse.org/releases/helios

 : Modeling -> EMF - Eclipse Modeling Framework SDK 2.6.1


3. GEF (Graphical Editing Frame work) - http://www.eclipse.org/gef/

help -> Install New Software

 : http://download.eclipse.org/releases/helios

 : Modeling -> Graphical Editing Framework GEF SDK 3.6.2


4. Installing TPTP

이클립스를 이용하여 다운로드 하면 다운로드 진행이 안되서 전 플러그인을 다운로드 받아서 설치했습니다.

 - http://www.eclipse.org/downloads/download.php?file=/tptp/4.7.2/TPTP-4.7.2/tptp.sdk-TPTP-4.7.2.zip


5. Downloading and installing the Agent Controller

TPTP 를 사용하기 위해선 AC(Agent Controller)라는 것을 심어놔야 하는데 로컬 서버는 필요 없습니다.

그냥 톰켓 7.0 으로 테스트 하겠습니다.

서버(WAS)를 시작할 때 프로파일 모드(?)로 실행하면 됩니다.

팝업이 뜹니다

 - Profile on Server


실행시간(Execuion Time), 메모리(Memory), 쓰래드(Thread)를 분석Analysis할 수 있습니다.

3개중 하나를 선택 하고 "Finish" 버튼을 클릭 하면 WAS 가 기동됩니다.

기동된 후 아래와 같이 창이 뜹니다.

 - Confirm Perspective Switch -> Yes



D:\javadev\programs\agntctrl.win_ia32-TPTP-4.7.2\plugins\org.eclipse.tptp.javaprofiler:D:\javadev\programs\agntctrl.win_ia32-TPTP-4.7.2\bin


%JAVA_HOME%

%JAVA_PROFILER_HOME%;%TPTP_AC_HOME%\lib;

JAVA_PROFILER_HOME=%TPTP_AC_HOME%\plugins\org.eclipse.tptp.javaprofiler


./SampleClient: error while loading shared libraries: libtptpClient.so.4: cannot open shared object file: No such file or directory


export TEMP="/home/tmp"

export TMP="/home/tmp"


export TPTP_AC_HOME="/home/install/tptp"

export JAVA_PROFILER_HOME="${TPTP_AC_HOME}/plugins/org.eclipse.tptp.javaprofiler"

export PATH="${JAVA_PROFILER_HOME}:${TPTP_AC_HOME}/bin:${PATH}"

export LD_LIBRARY_PATH="${JAVA_PROFILER_HOME}:${TPTP_AC_HOME}/lib:${LD_LIBRARY_PATH}"


/usr/local/tomcat/5.5.23/bin/Tomcat5.sh

 - CATALINA_OPTS="-Xms128m -Xmx384m -XX:MaxPermSize=128m -agentlib:JPIBootLoader=JPIAgent:server=enabled;HeapProf"



반응형

'프로그래밍 > Java' 카테고리의 다른 글

[spring] request life cycle  (0) 2014.03.24
이클립스 단축키  (0) 2014.03.24
spring exception handler  (0) 2014.03.24
[java 7] copy file, delete file/directory  (0) 2014.03.21
[MyBatis] null parameter 에러.  (0) 2014.03.19
반응형



컨트롤러나 그 뒤의 계층에서 던져진 예외는 DispatcherServlet 이 일단 전달받은 뒤에 다시 서블릿 밖으로 뎐져서 서블릿 컨테이너가 처리

다른 설정을 하지 않았다면 브라우저에 'HTTP Status 500 내부 서버 오류' 와 같은 메시지가 출력

web.xml 에 <error-page> 를 저정해서 예외가 발생했을 때 JSP 안내 페이지 등을 보여줄 수도 있다

만약 스프링과 서블릿 컨테이너에서 같이 java.lang.Exception 을 처리한다면 스프링 처리가 더 우선시 된다.


HandlerExceptionResolver 는 컨트롤러의 작업 중에 발생한 예외를 어떻게 처리할지 결정하는 전략

DispatcherServlet 은 먼저 핸들러 예외 리졸버에게 해당 예외를 처리할 수 있는지 확인

예외를 처리해주는 핸들러 예외 리졸버가 있으면 예외는 DispatcherServlet 밖으로 던지지 않고 해당 핸들러 예외 리졸버가 처리

핸들러 예외 리졸버는 HandlerExceptionResovler 인터페이스를 구현

 - resolveException() 메소드의 리턴 타입은 ModelAndView

 - 사용할 뷰와  그 안에 들어갈 내용을 담은 모델을 돌려주도록 되어 있다.만약 처리 불가능한 예외라면 null 을 리턴

 

스프링은 총 4개의 HandlerExceptionResolver 구현 전략을 제공하고 있다. 그중 3개는 디폴트로 등록

AnnotationMethodHandlerExceptionResolver

 - 디폴트 핸들러 예외 리졸버

 - 예외가 발생한 컨트롤러 내의 메소드 중에서 @ExceptionHandler 애노테이션이 붙은 메소드를 찾아 예외처리

 - 특정 컨트롤러의 작업 중에 발생하는 예외만 처리하는 예외 핸들러를 만들고 싶다면 이 방법이 가장 편리하다.

 - @ResponseBody 사용시 convert 정의 : AnnotationMethodHandlerExceptionResolver

 - 예외처리용 메소드는 모델과 뷰를 리턴할 수 있는데, 모델과 뷰가 정상적으로 리턴되면 DispatcherServlet 은 마치 컨트롤러에서 ModelAndView 가 돌려진 것처럼 뷰를 통해 결과를 만들어 준다

 

ResponseStatusExceptionResolver

 - 특정 예외가 발생했을 때 단순한 HTTP 500 에러 대신 의미 있는 HTTP 응답 상태를 돌려주는 방법

 - 예외 클래스에 @ResponseStatus 를 붙이고, HttpStatus 에 정의되어 있는 HTTP 응답 상태 값을 value 엘리먼트에 지정한다. 필요하면 reason 에 자세한 설명을 넣을 수도 있다.

 - ex ) 애노테이션을 이용해 HTTP 503 응답 상태를 지정해둔 예외클래스

@ResponseStatus(value=HttpStatus.SERVICE_UNAVAILABLE, reason="서비스 일시 중지"

public class NotInServiceException extends RuntimeException {

}

 - 발생한 예외 클래스에 @ResponseStatus 가 있는지 확인하고, 만약 있다면 애노테이션에 지정해둔 HTTP 응답 상태 코드를 클라이언트에 전달.

 - HttPStatus 클래스 안에는 40여 개의 사용 가능한 HTTP 응답 상태 상수가 정의

 - 단점은 적접 @ResponseStatus 를 붙여줄 수 있는 예외 클래스를 만들어 사용해야 한다는 것이다. 따라서 기존에 정의된 예외 클래스에는 바로 적용할 수 없다.

 - @ResponseStatus 를 직접 부여할 수 없는 기존의 예외가 발생했을 때 HTTP 응답 상태를 지정해 주려면 @ExceptionHandler 방식의 핸들러 메소드를 사용하면 된다. 

   기존의 예외를 처리하는 @ExceptionHandler 메소드를 만들고 리턴 타입은 void 로 해둔다. 

   그리고 HttpServletResponse 를 파라미터로 전달 받아서 setStatus() 메소드를 이용해 응답 상태와 에러 메시지 등을 설정

   

   

DefaultHandlerExceptionResolver

 - 디폴트로 등록된 것 중에서 위의 두 가지 예외 리졸버에서 처리하지 못한 예외를 다루는 마지막 핸들러 예외 리졸버

 - 스프링에서 내부적으로 발생하는 주요 예외를 처리해주는 표준 예외처리 로직을 담고 있다.

 - 예를 들어 컨트롤러 메소드를 찾을 수 없는 경우에는 NoSuchRequestHandlingMethodException 예외가 발생한다. 

   이 예외에 대해서는 HTTP 404 - Not Found 로 응답 상태를 지정해준다. 

   또, 요청 파라미터를 파싱하다가 타입이 일치하지 않을 때 발생하는 TypeMismatchException 은 HTTP 400 - Bad Request 응답 상태로 돌려주는 식이다.

 -  다른 핸들러 예외 리졸버를 빈으로 등록해서 디폴트 예외 리졸버가 자동으로 적용되지 않은 경우에는 DefaultHandlerExceptionResolver 를 함께 등록해 주는게 좋다.


SimpleMappingExceptionResolver

 - SimpleMappingExceptionResolver 는 web.xml 의 <error-page> 와 비슷하게 예외를 처리할 뷰를 지정할 수 있게 해준다.

 - mappedHandlers 에서는 예외와 그에 대응하는 뷰 이름을 프로퍼티로 등록해주면 된다.

 - defaultErrorView 프로퍼티는 mappedHandlers 에서 찾을 수 없는 예외에 매핑해주는 디폴트 예외처리 뷰 이름.

 - SimpleMappingExceptionResolver 는 디폴트 전략이 아니므로 직접 빈으로 등록해줘야 한다. xml 또는 @Bean 으로.

 - 모든 컨트롤러에서 발생하는 예외에 일괄적용된다는 장점

 - 예외가 발생했을 때 로그를 남기거나 관리자에게 통보하는 등의 작업을 필요로 하는 경우도 있다. 이런 작업은 핸들러 인터셉터의 afterCompletion() 메소드가 담당하는 것이 좋다.



반응형

'프로그래밍 > Java' 카테고리의 다른 글

이클립스 단축키  (0) 2014.03.24
[이클립스] tptp  (1) 2014.03.24
[java 7] copy file, delete file/directory  (0) 2014.03.21
[MyBatis] null parameter 에러.  (0) 2014.03.19
[iBatis/myBatis] #와 $의 차이점  (1) 2014.01.02
반응형



$ cat a.txt > result.log 2>&1

위 명령어로 알아보는 표준 입력/출력/에러, 리다이렉트.



파일 디스크립터.

 - 0 : 표준 입력.

 - 1 : 표준 출력.(출력 디스크립터)

 - 2 : 표준 에러.(출력 디스크립터)


표준입력.

 - 기본은 키보드 입력.

 - 표준 입력 장치 변경시 < 기호 사용.


$ cat a.txt

 - cat 뒤에 나오는 첫번째 인자의 파일을 출력. a.txt 파일 내용을 출력.

 - cat 뒤에 아무것도 입력하지 않고 실행하면? 표준입력장치(키보드)로 부터 입력받은 값을 출력.( <&0 이 생략 된 것임.)

$ cat

input test

input test

print word

print word


=

$ cat <&0

input test

input test

print word

print word



$ cat a.txt     = a.txt 파일을 열어서 출력.

$ cat < a.txt  = 표준 입력을 키보드가 아닌 a.txt 로 바꿔서 출력.

 - 결과는 동일하지만 동작 방식이 다름.



표준 출력.

 - 기본은 화면.

 - 표준 출력 장치 변경시 > 기호 사용.


$ cat a.txt

 - a.txt 의 내용이 화면에 출력.


$ cat a.txt > result.log

 - a.txt 의 내용을 result.log 파일에 출력.

 - 표준 출력 장치를 파일로 변경. 

 - 출력 디스크립터를 입력하지 않으면 기본적으로 표준 출력 디스크립터로 인식. (= $ cat a.txt 1> result.log)



표준 에러.

 - 기본 출력은 화면.


$ cat err.txt

cat: err.txt: 그런 파일이나 디렉터리가 없습니다


$ cat err.txt 1> result.log

cat: err.txt: 그런 파일이나 디렉터리가 없습니다

 - 표준 출력을 파일로 지정했기 때문에 에러는 화면에 그대로 출력.


$ cat err.txt 2> result.log

 - 출력 디스크립터를 표준 에러로 설정 후 파일로 출력.

 - 에러 내용이 result.log 파일에 출력됨.



표준 출력/에러를 한 파일에 출력하기.

$ cat a.txt > result.log 2>&1

 - > : 표준 출력 장치 변경.(result.log 파일로 변경)

 - 2> : 표준 에러 출력 장치 변경.(&1 로 변경)

 - &1 : 표준 출력 장치 참조.(& : 참조, result.log 파일)


 - 다음과 같이 사용해도 결과를 같을 것임.

    $ cat a.txt 2> result.log 1>&2



주의.

 - 입/출력 장치 변경 시 <, > 기호에 붙여서 사용해야 함.

 - $ cat a.txt 2 > result.log : a.txt 파일과 2 파일 내용을 result.log 파일에 출력하게 됨.

      (cat: 2: 그런 파일이나 디렉터리가 없습니다 에러 발생.)

 - $ cat a.txt > result.log 2> &1 : -bash: syntax error near unexpected token `&' 에러 발생.

 - $ cat a.txt > result.log 2> 1 : 표준 에러를 1 파일에 출력.




반응형

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

awk 예제.  (2) 2014.03.24
vi 단축키 모음  (0) 2014.03.24
리소스(resource) 부하 테스트  (1) 2013.11.22
탭 자동완성 설정.  (1) 2013.11.14
[Cent OS] mysql 설치.  (0) 2013.08.16
반응형



<!doctype html> 

<html lang="ko">

<head>

<meta charset="utf-8">


<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi" />


<script type="text/javascript" src="/resources/js/jquery-1.7.1.min.js"></script>

<script type="text/javascript">

//<![CDATA[


var isIPHONE = (navigator.userAgent.match('iPhone') != null || navigator.userAgent.match('iPod') != null);

var isIPAD = (navigator.userAgent.match('iPad') != null);

var isANDROID = (navigator.userAgent.match('Android') != null);


var _APP_INSTALL_URL_IOS = "http://itunes.apple.com/kr/app/id393499958?mt=8";

var _APP_INSTALL_URL_ANDROID = "http://m.androidapp.naver.com/naverapp";

var _APP_INSTALL_CONFIRM = "네이버앱을 설치하거나\n업데이트하시면\n이용할 수 있습니다.\n설치 하시겠습니까?";


function executeApp(url) {

        installApp();


        if (isIPHONE || isIPAD) {

                window.location.href = url;

        } else if (isANDROID) {

                $('applinkDiv').innerHTML = '<iframe src="' + url + '" width="0" height="0" frameborder="0"></iframe>';

                setTimeout(function(){

                        var b = $('applinkDiv');

                        var c = b.getElementsByTagName('iframe');

                        if (c.length > 0) { b.removeChild(c[0]); }

                }, 1000);

        }

}


 


function installApp() {

        var b = new Date();

        setTimeout(function(){

                if (new Date() - b < 1500) {

                        if (isIPHONE || isIPAD) {

                                if (confirm(_APP_INSTALL_CONFIRM)) { window.location.href = _APP_INSTALL_URL_IOS; }

                        } else if (isANDROID) {

                                if (confirm(_APP_INSTALL_CONFIRM)) { window.location.href = _APP_INSTALL_URL_ADROID; }

                        }

                }

        }, 500);

}


//]]>

</script>

</head>

<body>


 


<a href="naversearchapp://" onclick="executeApp(this.href);return false;">네이버앱 실행</a><br />


<div id="applinkDiv"></div>


</body>

</html>



반응형

'프로그래밍 > Html' 카테고리의 다른 글

simple table (아래 글의 css 적용)  (0) 2015.10.30
simple table css  (0) 2015.10.30
모바일 웹  (0) 2014.03.24
태그의 attribute 값 가져오기, 설정하기.  (0) 2013.02.25
html 특수 문자.  (2) 2011.05.30

+ Recent posts