<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>KERRIGAN_RESTART</title>
	<link>http://kerrigan.egloos.com</link>
	<description>Running~~</description>
	<language>ko</language>
	<pubDate>Thu, 23 Apr 2009 07:20:02 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>KERRIGAN_RESTART</title>
		<url>http://pds6.egloos.com/logo/200711/17/59/e0030459.jpg</url>
		<link>http://kerrigan.egloos.com</link>
		<width>80</width>
		<height>122</height>
		<description>Running~~</description>
	</image>
  	<item>
		<title><![CDATA[ vi에디터 명령어 모음음 ]]> </title>
		<link>http://kerrigan.egloos.com/2330696</link>
		<guid>http://kerrigan.egloos.com/2330696</guid>
		<description>
			<![CDATA[ 
  vi는 크게 세 가지 모드로 나뉘어집니다. 우선 명령모드로 키 입력이 바로 명령이 되는 모드, 다음은 입력모드로 실제 문서를편집하는 모드, 마지막으로 ex 모 드로 ex명령을 실행시키는 모드입니다. vi를 실행시키면 처음에는 명령모드 상태에 있게됩니다. 명령모드에서 : 키를 누르면 ex모드로, a, i 등의 키를 누르면 입력모 드로 전환되어 문서를 편집할 수 있는 상태로됩니다. 본격적인 내용으로 들어가기 전에 기본적인 편집에 대해서 설명을 하겠습니 다. 특정 파일을 편집하기 위해 열려면 vi[filename]을 shell prompt에서 실행시킵 니다. 이렇게 연 파일을 편집모드로 들어가 편집하려면 i를 입력,원하는 내용을 입 력한 후 종료하려면 [ESC]ZZ 나 [ESC]:wq를 누르면 저장 후 종료하게 됩니다. 이 정 도는기본적으로 알아두셔야 지금부터 하는 내용을 따라해 보실 수 있겠죠? 또 기본 적으로 알아두셔야 할 명령이 명령모드에서 u 즉undo명령입니다. 그래야 잘못 실행 된 명령을 바로 undo할 수 있겠죠...^^;<br />
  <br />
현재위치에서 삽입                i<br />
현재줄의 처음 위치에서 삽입      I<br />
현재위치에서 추가                a<br />
현재줄의 끝에서 추가             A<br />
새로운 한 줄을 커서 아래줄에 연다. o<br />
새로운 한 줄을 커서 위줄에 연다.   O<br />
줄을 지우고 삽입모드로             S<br />
현재 위치에서 Relpace 모드로       R<br />
다음줄과 현재줄을 합친다.          J<br />
대문자&lt;-&gt;소문자                    ~<br />
마지막 명령을 반복한다.            .<br />
마지막 수정한 것을 취소한다.       u<br />
줄을 처음 상태로 복구한다.	   U<br />
 <br />
2.1 편집<br />
2.1.1 복사, 붙이기, 삭제<br />
텍스트 편집기를 사용하면서 가장 유용한 기능 중에 하나가 반복되는 문자열 을 복사해서 다른 곳에 붙이는 기능이라고 생각합니다.vi 역시 이러한 기능을 가지 고 있고 vi의 명령어의 특성상 매우 많은 방법으로 이러한 명령을 수행할 수 있습니 다.명령모드에서 yy라고 입력하면 현재 커서가 위치한 한 줄을 카피(Yanking)하게 됩니다. 또 dd는 현재 행을 삭제하게되는데 이 역시 삭제가 이루어지면서 버퍼에 복 사가 되어있습니다. yy나 dd로 버퍼에 들어간 내용을 붙이려면 붙이고자 하는 곳한 줄 위에서 p를 입력하면 됩니다. 짐작하시듯이 y키가 복사를 하는데 사용되는 키이고 d가 삭제에, p가 붙이기에 사용되는키입니다. 명령모드에서 사용되는 명령들은 명령 앞에 숫자를 입력한 후 명령을 내리면 그 횟수만큼 명령을 반복하게 됩니다. 쉽게2yy 라고 입력하면 2줄을 복사하리라는 것을 생각할 수 있습니다. 뒤에서 나오게 되 는 이동에 관련된 명령과 조합하면 복사나삭제를 원하는 영역에서 해 낼 수 있습니 다. 우선 여기서는 복사에 사용되는 키가 y키, 삭제에 사용되는 키가 d, 붙이기에 사용되는 키가 p키라는 것만 숙지하고 넘어갑시다. 참 한가지 빠뜨리고 넘어갈 뻔했군 요. X 나 x키가 명령모드에서 삭제에사용됩니다. 문자 위에서 x를 누르면 위치한 문 자가 삭제되고 X를 누르면 [bs]키처럼 동작을 합니다.<br />
  <br />
 	   			Copy	   	delete		yanking<br />
한 단어 			cw        	dw      	yw<br />
두 단어 			2cw or c2w	2dw or d2w	2yw or y2w<br />
한 행				cc		dd		yy<br />
커서 위치에서 행의 끝까지	c$  or C	d$  or D	y$ or Y<br />
커서 위치에서 행의 처음까지	c0		d0		y0<br />
한 문자 변경			r		x or X		y1 or yh<br />
<br />
 <br />
2.1.2 Named 버퍼 사용<br />
보통의 에디터의 경우에는 어떤 특정 문자열을 새로 복사하면 이전에 복사했 던 문자열이 지워지게 됩니다. vi는 a-z까지의이름을 갖는 버퍼에 각각을 유지하여 복사 해 둘 수 있는 매우 편리한 기능을 제공합니다. 이러한 기능을 named buffer라하고 사용방법은 모든 명령모드에서의 명령 앞에 a~z까지의 버퍼명 "a ~ "z을 붙여주 는 것입니다. 위에서 복사를 했던 것을다시 해보면 "ayy를 누르면 현재 줄이 "a 버 퍼에 복사가 됩니다. 이것을 다시 붙이기를 하려면 "ap를 입력하면 되겠지요.이미 있는 버퍼에 내용을 추가하거나 처음부터 버퍼에 써 넣는 방법을 설명 하겠습니다. 이미 어떤 버퍼에 내용이 들어가 있고 그뒤에 내용을 추가하고 싶은 경 우가 생기죠. 이런 경우 추가는 버퍼 이름의 대문자를 사용합니다. "Ayy와 같이 현재 줄을버퍼에 추가하거나, ex모드에서 특정 문자열이 있는 줄을 모두 복사해두고 싶은 경우 :g/string/y A 이런 식으로사용하는 것이죠. 복사등을 하지 않고 버퍼에 직접 써넣으려면 q명령을 사용합니다. q 다음에 버퍼명을 누르면 화면하단에recording이라는 표시가 나오고 지금부터 하는 키 입력 은 선택한 버퍼명에 들어가게 됩니다. 키입력이 끝나면 다시 q를누르면 됩니다. 뒤에서 ex모드에서 사용하는 방법이나 @-function에 사용할 수 있는 방법을 설명하겠습니다. 여기서는 이정도만 알고 넘어가도록 하죠. (주: vim에서는 register라고 하는군요.)<br />
2.1.3 여러 문서의 편집<br />
vi에서 여러 문서를 동시에 열기 위해서는 vi [filename1] [filename2]...의 형태로 열고자 하는 파일을뒤에 이어서 써 줍니다. 그럼 동시에 여러 문서를 편집하 게 되죠. 그리고 각 문서 사이의 전환은 :n키와 :N을 이용해서합니다. 즉 vi test1 test2로 두 파일을 열어서 작업을 하고 있다면 :n을 입력하면 test2로 편집이 넘어가 게됩니다. 다시 :N 또는 :prev을 입력하면 test1을 편집할 수 있습니다. 또 현재 어 떤 파일을 편집중인지 확인하려면:args를 입력하면 현재 열린 모든 파일 중에 현재 편집중인 파일이 대괄호로 둘러싸여 표시됩니다. 열린 파일이 많아서 여러문서를 건 너뛰어 편집해야 하는 경우에는 n이나 N앞에 skip할 파일 개수를 써주면 됩니다. :4n 이런 식이 되겠죠.<br />
2.2 이동<br />
문서내용을 수정하려면 편집하고자 하는 위치로 먼저 이동하여야 편집이가 능하겠지요. vi는 다른 편집기와는 비교도 되지 않을 만큼많은 이동 방법을 제공합 니다. 이동명령은 다른 명령(복사, 삭제, 붙이기)등과 조합해서 사용하기 때문에 확 실히 알아두시는것이 좋습니다. 제 나름대로 분류를 가까운 거리의 이동에서 원거리 이동까지 분류를 해 보았습니다. <br />
2.2.1 짧은 이동<br />
가장 기본적인 이동이 명령모드 상에서 h, j, k, l키를 이용한 이동입니다. 차례로 좌, 하, 상, 우로의 이동을나타냅니다. 역시 다른 명령모드 명령과 마찬가지 로 회수를 명령 앞에 넣어서 반복할 수 있습니다. 요즘은 대부분 커서 키를지원하고 있지만 손가락이 오가는 거리 상 사용하지 않으시는 것이 좋습니다. 단어간의 이동은 w, b, e, E키로 합니다.w키는 다음 단어의 첫 번째 문자로 이동을 합니다. b는 반대로 앞 단어의 첫 번째 문자로의 이동을 나타냅니다. e, E는 첫번째 문자로의 이동이 아닌 단어의 마지막 문자로의 이동입니다. 역시 회수를 앞 에 넣어서 몇 단어를 한 번이 이동할 수있습니다. 이 밖에도 현재행 상에서 이동을 하는 명령들이 많이 있습니다. 0키를 누르 면 현재 행의 맨 앞으로 이동합니다. ^이나 | 역시 행의 맨 처음으로 이동합니다. 0 키는 행의 처음에 공백이 나오다 문자열이 나오는 경우에는 공백을 무시하고 맨처음 나타나는 문자로 이동합니다. 하지만 ^ 이나 |는 0번째 열로 이동하게 됩니다. 특정 열로 이동하려면 &lt;숫자&gt;|즉 10번째 열로 이동하려면 10|을 입력하면 10번째 열로 이 동을 하게 됩니다. 현재 행의 끝으로 이동하려면 $기호를사용합니다. 이제 행간의 이동입니다. 한 행 밑으로 이동은 + 또는 [enter], 위로의 이동 은 - 키를 사용합니다.10[enter]라고 입력해 보십시오. 엔터를 한 번 입력하면 한 행 밑으로 이동하지만 한 번에 10 행씩 팍팍 떨어지지않습니까? 10+도 같은 결과를 보여줍니다.<br />
  <br />
좌, 하, 상, 우			h, j, k, l<br />
다음줄의 첫번째 문자로		+ or [enter]<br />
이전줄의 첫번째 문자로		-<br />
단어의 끝으로			e, E<br />
다음 단어로			w, W<br />
이전 단어로			b, B<br />
행의 끝으로			$<br />
행의 처음으로			0  ('A' 인 경우 A앞으로 커서이동)<br />
행의 처음으로			^  ('A' 인 경우에도 맨앞으로 커서이동)<br />
다음, 이전 문장의 처음으로	), (<br />
다음, 이전 문단의 처음으로	}, {<br />
다음, 이전 구절의 처음으로	]], [[<br />
<br />
 <br />
2.2.2 원거리 이동<br />
이제 조금 원거리 이동으로 넘어갑니다. 문서가 20000행 정도 된다고 합시 다. 처음에 문서를 열게 되면 커서는 1행에위치합니다. 에러가 10000행 정도에 발생 한 소스코드를 수정한다고 치면, 어떻게 이동하면 좋을까요? 물론 뒤에서 파일 열기에서 배우겠지만 현재까지 저희가 언급한 바로는 10000+를 하든지 해야겠지요. 물론 이렇게 해도 되겠지만 특정 행으로 직접이동하는 명령이 있습니다. 바로 G명령입니 다. 10G라고 입력하면 10번째 행으로 이동하게 되는 것이죠. 다른 방법으로는ex명령 에서 :10라고 입력하고 엔터를 입력하면 그 행으로 이동하게 됩니다. 맨 처음 줄로의 이동은 gg 나 1G 나 :1등을 사용하고 마지막 줄로의 이동은 G 나 :$ 등이 가능합니 다. 여기서 $는 뒤에서 언급을 하겠지만 ex모드에서는 마지막줄을 나타냅니다. 명령 모드에서는 행의 끝으로 이동에 사용되었죠.<br />
  <br />
한 화면 앞으로 스크롤	^F   (means CTRL-F)<br />
한 화면 뒤로 스크롤	^B<br />
반 화면 앞으로 스크롤	^D<br />
반 화면 뒤로 스크롤	^U<br />
한 줄 앞으로 스크롤	^E<br />
한 줄 뒤로 스크롤	^Y<br />
화면의 맨 위줄로	H    nH인 경우 맨 위에서 n행 밑으로<br />
화면의 중간 줄로	M<br />
화면의 맨 아래줄로 	L    nL인 경우 맨 밑에서 n행 위로<br />
<br />
 <br />
2.2.3 찾기로 이동<br />
자세한 내용의 찾기는 3장에서 다를 것이고 여기서는 이동에 사용되는 찾기 명령에 대해서 설명하도록 하겠습니다. 현재 행에서순방향으로의 특정 문자를 찾을 때는 f 키를 사용합니다. 현재 행에서 커서위치에서 첫 번째 나타나는 o 문자까지 이 동하고싶다면 fo를 입력하면 됩니다. 반대 방향이라면 Fo를 입력하면 되겠죠. 이 명 령의 반복은 어떻게 할까요? 다른 명령처럼 앞에반복회수를 명시해도 되지만 찾은 후에 다시 찾기를 같은 방향으로 하려면 ; 키를 반대방향으로 하려면 , 키를 사용해 서 명령을반복합니다. 한 행을 떠나서 순방향으로 어떤 패턴이 나타나는 곳으로 이동하려면 /pattern을 역시 반대 방향이라면?pattern을 입력하면 됩니다. 이 역시 같은 방향으 로 반복을 하려면 n, 반대 방향은 N키를 사용합니다.<br />
  <br />
문자열의 처음으로 앞으로 검색  		/pattern     <br />
문자열의 처음으로 뒤로 검색     	?pattern<br />
검색을 다시 반복 (같은 방향)    	n<br />
검색을 다시 반복 (반대 방향)    	N<br />
현재 줄에서 x가 있는 곳으로 이동	fx<br />
현재 줄에서 x가 있는 곳으로 이동	Fx<br />
n행 밑에서 x가 있는 곳으로 이동 	tx<br />
n행 위에서 x가 있는 곳으로 이동 	Tx<br />
줄에서 찾기를 같은 방향으로 반복	;<br />
줄애서 찾기를 반대 방향으로 반복	,<br />
행 이동 n번째 줄로 이동         	nG (n이 생략되면 마지막 줄로)                       <br />
                                	:n<br />
열 이동                         	n| (n이 생략되면 처음 열로)<br />
현재 커서가 위치한 단어 찾기    	*  (앞 방향으로 찾는다.) <br />
현재 커서가 위치한 단어 찾기    	#  (뒤로 찾는다.)                    <br />
 <br />
2.2.4 마크를 이용한 이동<br />
책을 읽다 북마크를 하는 것처럼 문서를 편집하다가 특정 부분을 마크할 수 있으면 편리하겠지요. vi에서는 역시 알파벳 개수만큼의마크를 하고 마크한 곳이나 그 줄로 바로 이동할 수 있습니다. 우선 마크를 하려면 ma ~ mz를 마크 할 곳에서 입 력합니다.마크한 곳으로 이동은 두 가지가 가능합니다. 즉 마크한 줄과 열이 일치하 는 이동은 `a ~ `z 으로 마크한 줄의 처음으로이동은 'a ~ 'z를 이용합니다.<br />
  <br />
현재 위치를 x 이름의 마크로 저장	mx<br />
마크한 위치(행, 열)로 이동		`x<br />
마크한 줄로 이동			'x<br />
이전에 마크한 위치로 이동		``<br />
이전에 마크한 줄로 이동			''<br />
 <br />
2.3 파일 저장, 열기, 종료<br />
파일을 열 때 여러 가지 옵션을 주어서 열 수 있습니다. 즉 특정 행에 커서 가 위치하도록 열 수 있는데, 마지막 줄에위치하려면 vi + [filename] 과 같이 열 고, n번째 행에 위치시키려면 vi +n [filename] 과 같은방식으로 열면 됩니다. 특정 문자열이 있는 줄에 커서를 위치시키려면 vi +/pattern [filename]로 엽니다. vi+R [filename] 은 파일을 읽기 전용으로 엽니다. 파일의 저장을 살펴볼까요. 파일을 저장하면서 종료하는 방법은 맨처음에 두 가지를 설명했었습니다. :wq 와 ZZ입니다. 다른 저장방법이라면 :x 이 명령은 파 일이 변경되었을 때에는 저장하고종료를 하지만 아니면 그냥 종료를 합니다. ZZ와 같은 기능이 같죠. 저장과 열 때 ex모드에서 사용하는 몇 가지 기호를알아두시면 편 리합니다. 즉 %는 작성중인 파일명을 나타냅니다. 따라서 현재 파일을 편집 중에 백 업파일을 저장하고 싶다면 :w%.bak 이런 식으로 하시면 쉽게 백업을 만들 수 있습니 다. 그리고 #는 alternative 파일을 나타낸다고 하는데이전에 열어서 작성한 파일을 나타냅니다. vi file1 으로 편집을 하다가 :e file2로 편집 파일을 새로 연 경우 다 시먼저의 file1을 열려면 :e # 라고 하시면 됩니다.<br />
  <br />
file 열기			vi [filename]<br />
여러 파일 열기			vi [filename1] [filename2]<br />
읽기 전용으로 열기		view [filename] 또는 vi -R [filename]<br />
열고 마지막 행에 위치		vi + [filename]<br />
파일을 열고 n 번째 행에 위치	vi +n [filename]<br />
패턴이 나타나는 곳에 행 위치	vi +/pattern [filename]<br />
변경된 파일이면 저장하고 종료	ZZ  또는 :x<br />
저장하고 종료			:wq<br />
파일의 저장			w<br />
특정 범위만 저장		:&lt;범위&gt;w [filename]<br />
특정 범위를 다른 파일에 덧붙임	:&lt;범위&gt;w &gt;&gt; [filename]<br />
<br />
<br />
자료출처:::: 네이버 지식인 퍼옴<br />
<br />
자료출처:::: 네이버 지식인 퍼옴<br />
<br />
자료출처:::: 네이버 지식인 퍼옴<br />
<br />
자료출처:::: 네이버 지식인 퍼옴<br />
<br />
자료출처:::: 네이버 지식인 퍼옴<br />
<br />
자료출처:::: 네이버 지식인 퍼옴<br />
<br />
			 ]]> 
		</description>
		<category>Linux</category>

		<comments>http://kerrigan.egloos.com/2330696#comments</comments>
		<pubDate>Thu, 23 Apr 2009 07:20:02 GMT</pubDate>
		<dc:creator>케리건</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 리눅스 파티션 잡기 ]]> </title>
		<link>http://kerrigan.egloos.com/2329642</link>
		<guid>http://kerrigan.egloos.com/2329642</guid>
		<description>
			<![CDATA[ 
  <p>출처:&nbsp;지식인...</p><p>&nbsp;</p><p>&nbsp;</p><p>질문...</p><p>&nbsp;</p><p>펜티엄3 800<br>384메모리<br>40기가 하드<br>레드햇 7.3 설치예정<br><br>위 사양으로 리눅스를 설치하려고 합니다.(윈도우는 설치 안함)<br>설치목적은 리눅스 기초와 네트워크, 서버입니다.<br><br>다른사람에게는 계정을 줄 생각은 없고 테스트 목적으로 계정 하나 정도를 만들 생각입니다.<br><br>리눅스 설치시 전부설치를 할 생각인데...<br><br>저가 궁금한것은 파티션 분할에대한 것입니다.<br><br>/<br>/user<br>/var<br>/home<br>/swap</p><p><br>일반적으로 이렇게 나누라고 하는데...위의 파티션의 역할이 무엇인지 알고 싶고,<br><br>또, 40기가 하드에 어떻게 나누어야 적합한지 알고 싶습니다.<br>또, 나누어야 하는 파티션(/boot, /tmp등등)이 있는지 궁금합니다.<br><br>현재, 나눈상태는</p><p><br>/ : 4기가<br>/user : 나머지<br>/swap : 1024M<br>/home : 4096M<br>/var : 512M<br></p><p><br>이렇게 나누었습니다.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>########################################################################</p><p>&nbsp;</p><p>답변...</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>/ 가장 최상위에 있는 디렉토리로써 이 파티션이 없으면 설치가 불가 합니다<br><br>/user(/usr를 잘못치신게 아닌가하는..) </p><p>리눅스 설치 CD의 패키지들이 설치 되는 디렉토리인데 비교적 많은 공간을 필요로 합니다. </p><p>이 디렉토리를 분리 해놓으면 리눅스 시스템을 설치 할때 패키지용량을 계산하기가 훨씬더 수월해 집니다.<br><br>/swap 가상 메모리로 사용되는 부분입니다 <br><br>/home 모든 사용자의 홈디렉토리가 위치되는 부분입니다. </p><p>테스트 목적으로 한개의 계정만을 만다면 그렇게 많은 용량은 필요 하지 않을 것으로 사료 됩니다만 나중에 웹호스팅이나 여러사용자가 사용하게 된다면 많은 용량이 필요 하겠죠.<br><br>/var 로그 파일이 위치하는 곳입니다. </p><p>로그 파일은 보안을 위해서라도 별도 파티션에 위치 해놓은 것이 바람직 합니다 만약 님의 서버가 DOS 공격을 받는다 해도 /var 디렉토리를 분리해 놓으면 모든 디스크가 다 소비되는 피해를 막을수 있겠죠.</p><p><br>&nbsp;</p><p><br>그리고 어떻게 나누어야 하냐고 물으 셨는데 일단 대부분의 리눅서들은 파티션을 나눌때&nbsp;</p><p>위와 같이 나눈것 처럼 /, /user, /swap, /home, /var 이렇게 나눕니다.</p><p>(/, /swap로만 나누는것은 제외)문제는 할당 용량인데 정석은 없다고 보네요.</p><p>&nbsp;</p><p>개인의 상황 컴퓨터 사양 기타 목적 등에 따라서 유동적으로 바꿔는 것이니.. </p><p>다만 조언을 드리자면 메모리에 비해서 스왑 파티션의 크기가 너무 과하다고 생각 되네요. </p><p>&nbsp;</p><p>보통 스왑 파티션은 자기 메모리 X2 정도면 충분합니다. </p><p>또한 /home 파티션도 혼자 쓰기기에는 약간 많은듯 하네요 약간 줄이셔도 무방할듯 </p><p>&nbsp;</p><p><br>그리고 더 나누어야 하는 파티션이 없냐고 하셨는데, </p><p>/boot, /tmp같은 디렉토리는 안나누어 주어도 무방합니다. <br></p><p>&nbsp;</p><p>&nbsp;</p><p>#########################################################################</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>서버로 쓰시지 않으시려면 굳이 세세하게 파티션을 나눌 필요는 없습니다.<br>swap 128MB정도하고 나머지는 /로 하시면 되실듯...</p><p>&nbsp;</p><p>참고로 /usr 은 윈도우의 program files폴더와 비슷한 성격을 가집니다.<br>/usr 안에도 리눅스를 설치하고 난뒤 소스로 설치하는 것들은 대부분<br>/usr 에 깔립니다.</p><p>&nbsp;</p><p>구분을 위해서는 보통 /usr/local에 새로운 프로그램의 디렉토리파일을 생성하게 합니다.<br>그리고 소스는 /usr/local/src에 모아두는게 보통이죠.</p><p>&nbsp;</p><p>그래야 다른 사람들이(서버일 경우) A/S를 할 경우 시스템 파악이 쉽겠죠?<br>따라서 세세하게 나누신다면 레드헷 7.2기준으로</p><p>&nbsp;</p><p>&nbsp;</p><p>/ : 500MB이상 <br>/usr : 500MB이상(풀설치할 경우 2~3GB까지), <br>/usr/local/ : 200MB이상(소스설치 연습을 많이 하실 경우),<br>/home : 혼자만 쓰신다면 500MB내외(웹서버일 경우에는 이부분을 최대로)<br>/data : 디비사용량에 따라서...<br>/var : 50MB 이상</p><p>&nbsp;</p><p>&nbsp;</p><p>때에 따라서는 /tmp나 /boot도 파티션을 나누어야 할 필요가 있습니다.<br>참고로 파티션을 나누는 이유는 백업때문입니다.</p><p><br>만약 리눅스 시스템 부분이 나가서 복구가 불가 하다면 새로 리눅스를<br>설치하시더라도 저렇게 파티션을 나누어 놓으면 시스템 부분만 손대시면<br>쉽게 복구가 가능하죠.</p><p>&nbsp;</p><p>윈도우도 비슷하죠.<br>하지만 정해진 것은 없습니다.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>######################################################################</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>리눅스 파티션을 어떻게 나누고 얼마만큼의 용량을 할당할 것인가? </p><p>&nbsp;</p><p>이에 대한 정답은 없습니다. 어떤 용도로 쓸것인가에 따라 파티션을 적절하게 할당해</p><p>&nbsp;</p><p>주시면 그만입니다.</p><p>&nbsp;</p><p>/&nbsp; ----&gt; 5-6기가(/에는 리눅스를 설치하는데 필요한 공간이므로 그에 맞게 설정해 주시면 됩니다.리눅스 설치에 필요한 공간보다 적게 설정하신다면 설치 진행이 안될겁니다.)</p><p>&nbsp;</p><p>swap ----&gt; 현재 쓰는 램의 약 2배(왜 2배냐고 하시는데 2배정도 설정하는게 최고의 성능을 발휘하구요. 리눅스 시험에도 나오는 내용입니다.)</p><p>&nbsp;</p><p>/var&nbsp; ----&gt; 2-3기가(/var에는 각종 로그파일과 메일등이 저장이 됩니다. 따라서 /var는 필수적으로 잡아줘야할 파티션중에 하나죠. /var의 내용들은 계속적으로 늘어나기때문에 어느정도의 용량이 필요합니다.)</p><p>&nbsp;</p><p>자 기본적으로 이정도 나눠주시고 다음으로는 내가 어떤 용도로 리눅스를 사용할 것인가.</p><p>&nbsp;</p><p>를 생각하시고 파티션을 적절히 배분해 주시면 됩니다. 파티션 용량 설정에 있어 정답이</p><p>&nbsp;</p><p>란 없습니다. </p><p>&nbsp;</p><p>1) 공부 목적 :&nbsp;&nbsp;위에서 말한 정도만 나눠주신다음 나머지 용량은 설치후에 직접 fdisk를 사</p><p>&nbsp;</p><p>용해서 파티션을 나눠본다던지. raid를 구성한다던지, 하는등의 방법이 있겠구요.&nbsp; </p><p>&nbsp;</p><p>2) 서버용(홈페이지) : 서버용으로 돌리시려면 아무래도 사용자 계정이 필요하므로,</p><p>&nbsp;</p><p>/home&nbsp; ----&gt; 4-5기가</p><p>&nbsp;</p><p>/usr&nbsp; ----&gt; 나머지 모두 할당(4-5기가). /usr에는 리눅스의 응용프로그램이 설치 됩니다.</p><p>&nbsp;</p><p>서버용으로 돌리시다보면 아무래도 아파치, php, mysql을 기본적으로 설치하셔야 하고 그</p><p>&nbsp;</p><p>외에도 각종 프로그램을 설치하다보면 어느정도의 파티션용량이 필요할겁니다. </p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>###########################################################################</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>리눅스를 설치할 때 필요한 최소한의 파티션은 2개입니다. 루트파티션(/)과 swap만 있으면 되죠. <br>만약 리눅스만을 설치하여 운영하시는 거라면 파티션을 더 세밀히 나누기를 권장합니다.</p><p>&nbsp;</p><p><br><br><span style="COLOR: #0000ff"><strong>/var</strong></span> : 이 디렉토리는 로그파일과 프린터 스풀(프린터로 가는 파일을 임시저장) 메일스풀의 용도로 사용됩니다. </p><p>&nbsp;</p><p>이 디렉토리는 로그파일 때문에 크기가 지속적으로 커진다는 특성을 가지고 있습니다. 이 디렉토리를 별도의 파티션으로 나누지 않는다면 시스템의 안정성에 좋지않은 영향을 줄 수 있습니다. 계속 사이즈가 증가하여 루트파티션을 몽땅 차지해 버릴 수 있기 때문이죠. </p><p>&nbsp;</p><p>이 경우 종종 시스템이 다운됩니다. 따라서 /var는 별도의 파티션으로 나누는 것이 바람직합니다. /var를 파티션으로 나눈다면 크기는 하드의 용량과 시스템의 사용용도 등에 따라 다르겠지만 서버가 아니라면 <span style="COLOR: #d41a01"><strong>256-512MB정도</strong></span>면 충분합니다.</p><p><br>서버라면 회사의 정책에 따라 (이를 테면 로그를 한달동안 보관해야 한다든지...) 사이즈를 결정하시면 됩니다. 대략.. <span style="COLOR: #ff0000"><strong>하루에 남는 로그의 양 * 필요 보관 일수 * 1.5 정도</strong></span>로 계산하시면 됩니다.<br><br><strong><span style="COLOR: #0000ff">/home</span></strong> : 이 디렉토리는 사용자들의 홈 디렉토리입니다. </p><p>&nbsp;</p><p>/home을 별도의 파티션을 이용하여 구성하게 되면 백업하기가 쉽고 사용자가 늘었을 때 /home을 확장하기가 쉬워집니다. 따라서 이 부분도 대부분 별도의 파티션으로 구성하게 됩니다. 사이즈는 <span style="COLOR: #ff0000"><strong>사용자당quota크기 * 사용자수 * 1.5정도</strong></span>면 됩니다.</p><p><br><br><strong><span style="COLOR: #0000ff">/tmp</span></strong> : 이 디렉토리는 임시 파일들이 생성/소멸되는 곳입니다. </p><p>&nbsp;</p><p>굉장히 동적인(writing이 자주 발생하는..) 특성을 가지고 있습니다. 이러한 부분을 별도의 파티션으로 분리하면 시스템의 안정성을 높일 수 있습니다. </p><p>&nbsp;</p><p>예를 들어 커널이나 중요 프로그램이 저장된 곳과 /tmp가 동일 파티션이라면 잦은 access로 인해 하드디스크에 fail이 발생할 경우 kernel이 손상을 입을 가능성이 아무래도 파티션을 분리했을 때보다 클 것입니다. (동일 파티션의 파일들을 디스크상에서 비슷한 곳에 저장됩니다.) <br><br>또한 이 디렉토리는 누구나 읽고 쓸 수 있다는 특성 때문에 다른 디렉토리에 접근 권한을가지고 있지 못하는 공격자들이 공격툴을 런칭하는 곳으로 사용되기도 합니다. 따라서 /tmp에 저장되어 있는 프로그램들을 실행하지 못하도록 한다면 보안을 아주 아주 조금은 향상시킬 수 있을 것입니다. </p><p>&nbsp;</p><p>유닉스/리눅스에서는 특정 파티션에 존재하는 프로그램들을 실행시키지 못하도록 제어할 수 있습니다. 따라서 이러한 기능을 이용하기 위해서는 <strong><span style="COLOR: #008000">/tmp를 별도의 파티션으로 구성</span></strong>해야 합니다. <span style="COLOR: #ff0000"><strong>사이즈는 그리 크지않아도 됩니다.</strong></span> </p><p><br><br><strong><span style="COLOR: #0000ff">/usr</span></strong> : 이곳에는 주로 유틸리티들이 저장됩니다. </p><p>&nbsp;</p><p>이 디렉토리는 굉장히 정적인 특성을 가지고 있습니다.(write보다는 reading 이 주로일어납니다.) 백업을 비롯한 여러가지 이유때문에 이 디렉토리 역시 별도의 파티션으로 구성하면 편리합니다. </p><p>&nbsp;</p><p>OS에따라 사용하는 애플리케이션의 종류와 그 크기에 따라 /usr의 크기는 달라지겠지만 RedHat Linux라면.. <span style="COLOR: #ff0000"><strong>3GB정도</strong></span>면 기본 애플리케이션들을 full로 설치할 수 있을 것입니다. 나중을 위해서 좀 더 넉넉하게 잡아두는 것도 좋겠지만 너무 많이 잡아두면 쓸데없이 하드디스크 공간을 낭비하게 됩니다.<br><br><br><strong><span style="COLOR: #0000ff">/swap</span> </strong>: 이곳에는 페이징 파일이 할당 됩니다.</p><p>&nbsp;</p><p>메모리의 2배수가 적당하다고는 하나 어디까지나 상식적인 선에서 결정하셔야 합니다. 이를테면 메모리가 512MB이므로 스왑은 1G를 잡아야 겠다. </p><p><br>역시 어떠한 프로그램을 사용하시느냐에 따라 다르겠지만 일반적으로&nbsp;<span style="COLOR: #ff0000"><strong>1G 이상의 스왑영역을 잡는 것은 사실 낭비</strong></span>의 요소가 많습니다.<br><br><br>*&nbsp;추가 설명 *<br>현재 사용하고 있는 하드디스크의 파티션을 나누려면 가급적 중요한 내용을 다 백업하시고 다시 파티션을 나누는 것이 좋습니다. 또한 그렇게하시길 권장합니다.<br><br>하지만 파티션매직과 같은 프로그램을 이용하시면 기존의 내용을 그대로 둔 채 파티션을 조정할 수 있습니다.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>###########################################################################</p><p>&nbsp; <div class="autosourcing-stub"><p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 11px 0px 7px; PADDING-TOP: 0px; FONT-STYLE: normal; FONT-FAMILY: Dotum"><a href="http://blog.naver.com/mission2hs" target="_blank"></a>&nbsp;</p></div><p></p>			 ]]> 
		</description>
		<category>Linux</category>

		<comments>http://kerrigan.egloos.com/2329642#comments</comments>
		<pubDate>Wed, 22 Apr 2009 02:52:33 GMT</pubDate>
		<dc:creator>케리건</dc:creator>
	</item>
	<item>
		<title><![CDATA[ java serial communication  ]]> </title>
		<link>http://kerrigan.egloos.com/2317085</link>
		<guid>http://kerrigan.egloos.com/2317085</guid>
		<description>
			<![CDATA[ 
  <a href="http://wory.tistory.com/trackback/12">http://wory.tistory.com/trackback/12</a><br><br>자바와 시리얼 통신을 위한 매뉴얼<br><br>FOREVER<br><br>레.마.스 			 ]]> 
		</description>
		<category>Java</category>

		<comments>http://kerrigan.egloos.com/2317085#comments</comments>
		<pubDate>Tue, 07 Apr 2009 02:51:28 GMT</pubDate>
		<dc:creator>케리건</dc:creator>
	</item>
	<item>
		<title><![CDATA[ <scripting-invalid> ]]> </title>
		<link>http://kerrigan.egloos.com/2316524</link>
		<guid>http://kerrigan.egloos.com/2316524</guid>
		<description>
			<![CDATA[ 
  <span style="COLOR: #ff0000">&lt;url-pattern&gt;<span style="COLOR: #6633ff"></span><span style="COLOR: #3366ff"><strong>*jsp</strong></span>&lt;/url-pattern&gt;<br></span><br>&lt;scripting-invalid&gt;<br><span style="COLOR: #6633ff"><strong>true</strong></span><br>&lt;/scripting-invalid&gt;<br><br>---&gt; 애플리케이션에 존재하는 모든 jsp 파일에 관하여 스크립팅항목을 사용하지 못다도록 하겠다는<br><br>정의 입니다.<br><br>================================================<br><br><span style="COLOR: #ff0000">&lt;url-pattern&gt;</span><span style="COLOR: #6633ff"></span><span style="COLOR: #3366ff"><strong>*jsp</strong></span><span style="COLOR: #ff0000">&lt;/url-pattern&gt;<br><br></span>&lt;el-ignored&gt;<br><span style="COLOR: #6633ff"><strong>true</strong></span><br>&lt;/el-ignored&gt;<br><br>---&gt; 애플리케이션에 존재하는 모든 jsp 파일에 관하여 EL항목을 사용하지 못다도록 하겠다는<br><br>정의 입니다.<br><br><br>			 ]]> 
		</description>
		<category>JSP</category>

		<comments>http://kerrigan.egloos.com/2316524#comments</comments>
		<pubDate>Mon, 06 Apr 2009 09:22:07 GMT</pubDate>
		<dc:creator>케리건</dc:creator>
	</item>
	<item>
		<title><![CDATA[ struts2 ==== 1日차==== ]]> </title>
		<link>http://kerrigan.egloos.com/2313040</link>
		<guid>http://kerrigan.egloos.com/2313040</guid>
		<description>
			<![CDATA[ 
  <p>패키지 속성<br><br>이름/필수여부/설명<br><br>name/y/필수속성 패키지를 구분하는 키 패키지의 name은 유일해야하며 다른패키지가 이 패키지를 상속할때 이 이름을 사용<br><br>extends/n/다른 패키지를 상속하고자 할때 다른 패키지리의 name을 지정함 다른 패키지를 상속하면 그 패키지 내의 설정들을<br><br>그대로 이어받음 상위 패키지의 설정을 다시 정의하면 그 설정은 오버라이드 됨<br><br>namespace/n/네임스페이스 패키지내의 액션들을 URL에 맵핑할때 사용 이 네임스페이스가 URL의 중간 경로가 됨 <br><br>abstract/n/패키지를 추상 패키지로 만듬 추상패키지는 액션설정이 없음 다른 패키지에서 상속하는 용도로 사용됨<br><br>----<br><br>네임 스페이스<br><br>요청URL의 중간경로로 사용<br><br><a href="http://localhost:8080/컨텍스트명/네임스페이스/">http://localhost:8080/컨텍스트명/네임스페이스/</a>액션명.action<br><br>ex&gt;<br><br>http://localhost:8080/struts2-tutorial/aaa/hello.action<br><br>action<br><br>중요한 url과 액션 클래스 맵핑<br><br>액션에 붙일 인터셉터 설정<br><br>액션 실행 결과에 따른 result 에 지정<br><br>액선 실행 시에 예외 발생할 경우 예외에 따른 result를 지정함<br><br>속성에는 name/class 가 있음&nbsp; ---&gt; URL을 액션 클래스에 맵핑하는 야꾸메 ㅋㅋㅋ<br><br>result 2개의 속성<br><br>nam/type<br><br><br><br><span style="FONT-FAMILY: Verdana">1. POJO&nbsp;- Plain Old&nbsp;Java Object<br><br>- 평범한 java Object,즉 자바개발자가 마음대로 정의 할수 있는 객체라는 뜻이다.<br>- EJB 컨테이너에 의존 하는 객체 처럼 복잡하지 않고 개발자가 쓰기 편한 간단한 Object를 만들어 쓰자는<br>&nbsp; 간단한 Object의 개념이다.<br>- Object를 간단히 수퍼클래스로 둔 보통의 평범의 그자체 순수 자바클래스 라고 봐도 괜찮다.<br><br>2. POJO의 필수요소<br><br>- light-weight(possibly) : 가볍게<br>- fiexible : 유연성<br>- simple : 간단 명료<br>- supported by separate opional components such as hiberate or spring<br><br>- 즉, Spring, Hiberate, Ibatis 등에서 객체를 가볍게, 간단히 유연하게 <br>&nbsp;&nbsp; 어떤 Object에 대해 추상화 할수있는 객체를 만들어야한다.</span> (ex. <span style="FONT-FAMILY: Verdana">DTD의 쓰임</span>)<br></p>			 ]]> 
		</description>
		<category>struts2</category>

		<comments>http://kerrigan.egloos.com/2313040#comments</comments>
		<pubDate>Thu, 02 Apr 2009 03:27:15 GMT</pubDate>
		<dc:creator>케리건</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 스트럿츠2 시작하기 ]]> </title>
		<link>http://kerrigan.egloos.com/2311336</link>
		<guid>http://kerrigan.egloos.com/2311336</guid>
		<description>
			<![CDATA[ 
  <p>어찌하다보니 스트럿츠2를 공부하게 되었네요.<br>책에 있는 예제를 이클립스로 셋팅법과 간단한 예제를 소개하려고 합니다-_-;<br>이 책에서 톰캣플러그인으로 사용하길래 그냥 Dynamic Web Project로 만들어도 될듯해서 ^^<br>(예제출처 : 스트럿츠2 프로그래밍 - 현철주, 정광선, 민상기 지음)<br><br>테스트환경 : Tomcat 6.0.16 + JDK 6 u 4 + Struts 2.0.11<br><br>이클립스를 실행합니다.<br>File -&gt; New -&gt; Project -&gt; Dynamic Web Project선택<br>Project name을 HelloStruts2로 하고~ ^^<br>Target Runtime은 톰캣 6.0으로 추가를 해봅시다 ^^ New해서 Apache Tomcat 6.0선택하고 톰캣이 설치된 경로만 지정해주면 돼요 ^^<br>그리고 Finish를 클릭합시다 ^^<br><br>아.....스트럿츠2를 받아야죠! <a href="http://struts.apache.org/download.cgi" target="_blank">http://struts.apache.org/download.cgi</a>&nbsp;여기서 Struts 2.0.11버전을 받습니다.<br>압축을 풀고 lib경로에 있는 파일들을 방금 만든 프로젝트경로의 lib폴더로 복사합니다.<br>antlr-2.7.2.jar<br>commons-beanutils-1.6.jar<br>commons-chain-1.1.jar<br>commons-logging-1.0.4.jar<br>commons-logging-api-1.1.jar<br>commons-validator-1.3.0.jar<br>freemarker-2.3.8.jar<br>ognl-2.6.11.jar<br>oro-2.0.8.jar<br>struts2-core-2.0.11.jar<br>struts-core-1.3.5.jar<br>xwork-2.0.4.jar<br><br>플러그인만 빼고 다 복사하면 돼요. 플러그인도 같이 복사하면 에러나요-_-; 해당 lib가 없어서 그런 것 같아요. spring plugin이런것을 사용하려면 spring lib가 있어야 하는 듯 해요 ^^<br><br>그다음 <strong>web.xml</strong>파일에 아래와 같은 filter를 추가해줍니다.<br></p><pre class="prettyprint"><code><span class="pln"></span><span class="pun">&lt;</span><span class="tag">filter</span><span class="pun">&gt;</span><span class="pln">&nbsp; &nbsp;</span><span class="pun">&lt;</span><span class="tag">filter-name</span><span class="pun">&gt;</span><span class="pln">struts</span><span class="pun">&lt;/</span><span class="tag">filter-name</span><span class="pun">&gt;</span><span class="pln">&nbsp; &nbsp;</span><span class="pun">&lt;</span><span class="tag">filter-class</span><span class="pun">&gt;</span><span class="pln">org.apache.struts2.dispatcher.FilterDispatcher</span><span class="pun">&lt;/</span><span class="tag">filter-class</span><span class="pun">&gt;</span><span class="pln"></span><span class="pun">&lt;/</span><span class="tag">filter</span><span class="pun">&gt;</span><span class="pln">&nbsp; </span><span class="pun">&lt;</span><span class="tag">filter-mapping</span><span class="pun">&gt;</span><span class="pln">&nbsp; &nbsp;</span><span class="pun">&lt;</span><span class="tag">filter-name</span><span class="pun">&gt;</span><span class="pln">struts</span><span class="pun">&lt;/</span><span class="tag">filter-name</span><span class="pun">&gt;</span><span class="pln">&nbsp; &nbsp;</span><span class="pun">&lt;</span><span class="tag">url-pattern</span><span class="pun">&gt;</span><span class="pln">/*</span><span class="pun">&lt;/</span><span class="tag">url-pattern</span><span class="pun">&gt;</span><span class="pln"></span><span class="pun">&lt;/</span><span class="tag">filter-mapping</span><span class="pun">&gt;</span><span class="pln"></span></code></pre><br><br>Java Resources : src에 오른쪽 마우스를 대고 struts.xml파일을 하나 추가해줍시다.<br>이눔은 빌드되면서 classes폴더로 들어가게 됩니다.<br><br><strong>struts.xml</strong><br><pre class="prettyprint"><code><span class="pln"></span><span class="pun">&lt;?</span><span class="pln">xml version</span><span class="pun">=</span><span class="str">"1.0"</span><span class="pln"> encoding</span><span class="pun">=</span><span class="str">"UTF-8"</span><span class="pun">?&gt;</span><span class="pln"></span><span class="dec">&lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD StrutsConfiguration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"&gt;</span><span class="pln">&nbsp;</span><span class="pun">&lt;</span><span class="tag">struts</span><span class="pun">&gt;</span><span class="pln">&nbsp;</span><span class="pun">&lt;</span><span class="tag">package</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"default"</span><span class="pln"> </span><span class="atn">extends</span><span class="pun">=</span><span class="atv">"struts-default"</span><span class="pln"> </span><span class="atn">namespace</span><span class="pun">=</span><span class="atv">""</span><span class="pun">&gt;</span><span class="pln">&nbsp;&nbsp; </span><span class="pun">&lt;</span><span class="tag">action</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"echo"</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"example.chapter3.EchoAction"</span><span class="pun">&gt;</span><span class="pln">&nbsp; &nbsp;</span><span class="pun">&lt;</span><span class="tag">result</span><span class="pun">&gt;</span><span class="pln">/WEB-INF/echo.jsp</span><span class="pun">&lt;/</span><span class="tag">result</span><span class="pun">&gt;</span><span class="pln">&nbsp; </span><span class="pun">&lt;/</span><span class="tag">action</span><span class="pun">&gt;</span><span class="pln">&nbsp;&nbsp;</span><span class="pun">&lt;/</span><span class="tag">package</span><span class="pun">&gt;</span><span class="pln"></span><span class="pun">&lt;/</span><span class="tag">struts</span><span class="pun">&gt;</span><span class="pln"></span></code></pre><br>보면 struts1이랑 비슷해요. 대신 이눔은 package라는 놈이 있어서 비슷한 놈들 끼리 묶을 수 있어요.<br><br>이제 저 example.chapter3.EchoAction을 만들어 봅시다.<br>Java Resources: src에 오른쪽 마우스를 대고! EchoAction클래스를 하나 만듭시다.<br><strong>EchoAction.java<br></strong><pre class="prettyprint"><code><span class="pln"></span><span class="kwd">package</span><span class="pln"> example</span><span class="pun">.</span><span class="pln">chapter3</span><span class="pun">;</span><span class="pln"></span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">EchoAction</span><span class="pln"> </span><span class="pun">{</span><span class="pln">&nbsp;</span><span class="kwd">private</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> echo</span><span class="pun">;</span><span class="pln">&nbsp;&nbsp;</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> execute</span><span class="pun">()</span><span class="pln"> </span><span class="kwd">throws</span><span class="pln"> </span><span class="typ">Exception</span><span class="pln"> </span><span class="pun">{</span><span class="pln">&nbsp; </span><span class="kwd">return</span><span class="pln"> </span><span class="str">"success"</span><span class="pun">;</span><span class="pln">&nbsp;</span><span class="pun">}</span><span class="pln">&nbsp;</span><span class="kwd">public</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> getEcho</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">&nbsp; </span><span class="kwd">return</span><span class="pln"> echo</span><span class="pun">;</span><span class="pln">&nbsp;</span><span class="pun">}</span><span class="pln">&nbsp;</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> setEcho</span><span class="pun">(</span><span class="typ">String</span><span class="pln"> echo</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">&nbsp; </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">echo </span><span class="pun">=</span><span class="pln"> echo</span><span class="pun">;</span><span class="pln">&nbsp;</span><span class="pun">}</span><span class="pln"></span><span class="pun">}</span><span class="pln"></span></code></pre><br>요렇게 작성을 합니다. 보면 execute가 있네요. 그리고 get, set이 있구요.<br><br>이제 action에 작성한 jsp를 작성해봅시다.<br>WEB-INF에 오른쪽마우스를 클릭해서 JSP를 선택해서 추가합니다.<br>아까 ACTION에서 작성한 echo.jsp파일을 생성합시다.<br><strong>echo.jsp<br></strong><pre class="prettyprint"><code><span class="pln"></span><span class="pun">&lt;%</span><span class="pln">@ page language</span><span class="pun">=</span><span class="str">"java"</span><span class="pln"> contentType</span><span class="pun">=</span><span class="str">"text/html; charset=UTF-8"</span><span class="pln">&nbsp; &nbsp; pageEncoding</span><span class="pun">=</span><span class="str">"UTF-8"</span><span class="pln">%&gt;</span><span class="pun">&lt;%</span><span class="pln">@ taglib prefix</span><span class="pun">=</span><span class="str">"s"</span><span class="pln"> uri</span><span class="pun">=</span><span class="str">"/struts-tags"</span><span class="pln"> %&gt;</span><span class="dec">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;</span><span class="pln"></span><span class="pun">&lt;</span><span class="tag">html</span><span class="pun">&gt;</span><span class="pln"></span><span class="pun">&lt;</span><span class="tag">head</span><span class="pun">&gt;</span><span class="pln"></span><span class="pun">&lt;</span><span class="tag">meta</span><span class="pln"> </span><span class="atn">http-equiv</span><span class="pun">=</span><span class="atv">"Content-Type"</span><span class="pln"> </span><span class="atn">content</span><span class="pun">=</span><span class="atv">"text/html; charset=UTF-8"</span><span class="pun">&gt;</span><span class="pln"></span><span class="pun">&lt;</span><span class="tag">title</span><span class="pun">&gt;</span><span class="pln">예제3-1: echo</span><span class="pun">&lt;/</span><span class="tag">title</span><span class="pun">&gt;</span><span class="pln"></span><span class="pun">&lt;/</span><span class="tag">head</span><span class="pun">&gt;</span><span class="pln"></span><span class="pun">&lt;</span><span class="tag">body</span><span class="pun">&gt;</span><span class="pln"></span><span class="pun">&lt;</span><span class="tag">s:form</span><span class="pln"> </span><span class="atn">action</span><span class="pun">=</span><span class="atv">"echo"</span><span class="pln"> </span><span class="atn">theme</span><span class="pun">=</span><span class="atv">"simple"</span><span class="pun">&gt;</span><span class="pln">&nbsp;</span><span class="pun">&lt;</span><span class="tag">s:textfield</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"echo"</span><span class="pln"> </span><span class="pun">/&gt;</span><span class="pln">&nbsp;</span><span class="pun">&lt;</span><span class="tag">p</span><span class="pun">/&gt;&lt;</span><span class="tag">s:property</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"echo"</span><span class="pln"> </span><span class="pun">/&gt;&lt;/</span><span class="tag">p</span><span class="pun">&gt;</span><span class="pln">&nbsp;</span><span class="pun">&lt;</span><span class="tag">s:submit</span><span class="pln"> </span><span class="pun">/&gt;</span><span class="pln"></span><span class="pun">&lt;/</span><span class="tag">s:form</span><span class="pun">&gt;</span><span class="pln"></span><span class="pun">&lt;/</span><span class="tag">body</span><span class="pun">&gt;</span><span class="pln"></span><span class="pun">&lt;/</span><span class="tag">html</span><span class="pun">&gt;</span><span class="pln"></span></code></pre><br>간단히 보면 스트럿츠태그가 있습니다. 예전에 쓰던 &lt;html:, &lt;bean: 보다 더 좋아진 듯 합니다.<br>신기한 건 s:textfield해놓고, name을 echo로만 줘도 setter가 작동하는 듯 합니다-_-;<br>s:property도 getter가 그냥 작동하는 듯 합니다. 뭐 아직 저도 잘몰라서 뭐라 말은 못하겠네요.<br>어쨌든 이제 실행시켜보고 field에 뭐라고 쓰면 뭐라고 나올 껍니다-_-;<br><br><strong>url은 </strong><a onclick="return openLinkInNewWindow(this)" href="http://localhost:8080/HelloStruts2/echo.action" target="_blank" rel="external nofollow"><strong>http://localhost:8080/HelloStruts2/echo.action</strong></a><strong>&nbsp;로 요청합니다 ^^</strong><br><div class="imageblock center" style="CLEAR: both; TEXT-ALIGN: center"><img height="144" alt="사용자 삽입 이미지" src="http://mudchobo.tomeii.com/tt/attach/1/1260019060.jpg" width="183"></div><p></p><br>음....더 공부를 해봐야할 것 같네요 ^^ <br><br>========미드초보의 블로그에서 퍼옴===================<br><br>========미드초보의 블로그에서 퍼옴===================<br><br>========미드초보의 블로그에서 퍼옴===================<br><br>========미드초보의 블로그에서 퍼옴===================<br><br>========미드초보의 블로그에서 퍼옴===================<br><br>========미드초보의 블로그에서 퍼옴===================<br><br>========미드초보의 블로그에서 퍼옴===================<br><br>========미드초보의 블로그에서 퍼옴===================<br><br><br>			 ]]> 
		</description>
		<category>struts2</category>

		<comments>http://kerrigan.egloos.com/2311336#comments</comments>
		<pubDate>Tue, 31 Mar 2009 02:21:08 GMT</pubDate>
		<dc:creator>케리건</dc:creator>
	</item>
	<item>
		<title><![CDATA[ sql 정리  ]]> </title>
		<link>http://kerrigan.egloos.com/2290578</link>
		<guid>http://kerrigan.egloos.com/2290578</guid>
		<description>
			<![CDATA[ 
  <p>&lt;%<br>&nbsp;sql = " declare @count int "<br>&nbsp;sql = sql &amp; " select @count = " &amp; page * post_size&nbsp; ' 마지막번호 <br>&nbsp;sql = sql &amp; " set rowcount @count "<br>&nbsp;sql = sql &amp; " select prim into #tempA from PORTAL_FRONT_MEMBER where 1=1" <br>&nbsp;If search_word &lt;&gt; "" Then<br>&nbsp;&nbsp;sql = sql &amp; " and " &amp; clm &amp; " like '%" &amp; search_word &amp; "%' "<br>&nbsp;End If<br>&nbsp;sql = sql &amp; " select @count = @count - " &amp; (page * post_size)-post_size '첫번째 번호<br>&nbsp;sql = sql &amp; " set rowcount @count "<br>&nbsp;sql = sql &amp; " select * from PORTAL_FRONT_MEMBER a , #tempA b where b.prim =a.prim "<br>&nbsp;sql = sql &amp; " drop table #tempA "<br>&nbsp;sql = sql &amp; " delete #tempA "<br>&nbsp;Set rs = db.execute(sql)<br>&nbsp;</p><p>&nbsp;If Not rs.eof Or Not rs.bof Then &nbsp;<br>&nbsp;&nbsp;Do Until rs.eof <br>&nbsp;&nbsp;&nbsp;prim = rs("prim")<br>&nbsp;&nbsp;&nbsp;user_name = rs("user_name")<br>&nbsp;&nbsp;&nbsp;user_id = rs("user_id")<br>&nbsp;&nbsp;&nbsp;passwd = rs("passwd")<br>&nbsp;&nbsp;&nbsp;hp1 = rs("hp1")<br>&nbsp;&nbsp;&nbsp;hp2 = rs("hp2")<br>&nbsp;&nbsp;&nbsp;hp3 = rs("hp3")<br>&nbsp;&nbsp;&nbsp;email1 = rs("email1")<br>&nbsp;&nbsp;&nbsp;email2 = rs("email2")<br>&nbsp;&nbsp;&nbsp;reg_date = Left(rs("reg_date"),10)</p><p>%&gt;</p>			 ]]> 
		</description>
		<category>ORACLE</category>

		<comments>http://kerrigan.egloos.com/2290578#comments</comments>
		<pubDate>Fri, 06 Mar 2009 06:07:51 GMT</pubDate>
		<dc:creator>케리건</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 2008년 03월 05일 프로젝트 + EJB  ]]> </title>
		<link>http://kerrigan.egloos.com/1488880</link>
		<guid>http://kerrigan.egloos.com/1488880</guid>
		<description>
			<![CDATA[ 
  장바구니 위시리스트 완성 및 분석<br />
<br />
<br />
<strong>클래스 &amp; 인스턴스<br />
</strong>&nbsp;- 인스턴스는 클래스를 실제 구현한 객체<br />
&nbsp;- 인스턴스로 객체 생성시 다양한 객체를 생성(Indentity, State...)<br />
<br />
<br />
a record 를 객체화 ===&gt; (클래스의 인스턴스)<br />
<br />
<br />
PK 개념적용 (EntityBean 를 구별)<br />
<br />
==========================================<br />
<br />
레코드 생성<br />
<br />
<br />
<br />
<br />
검색<br />
<br />
a single finder =&gt; a record<br />
<br />
multi finder ==&gt; multi recorder<br />
<br />
<br />
<br />
<br />
브라우저&nbsp; -&gt; 보드프론트 컨트롤러 --&gt; dao ---&gt; Session Bean --&gt; Entity Bean ---------&gt;DB<br />
<br />
<br />
<br />
<br />
<br />
<div class="autosourcing-stub"><p style="margin: 11px 0pt 7px; padding: 0pt; font-size: 12px; font-family: Dotum; font-style: normal; font-weight: normal;"><strong style="padding: 0pt 7px 0pt 0pt;"><br />
</strong><a href="http://blog.naver.com/tear230" target="_blank"></a></p></div><br />
<br />
<br />
			 ]]> 
		</description>

		<comments>http://kerrigan.egloos.com/1488880#comments</comments>
		<pubDate>Wed, 05 Mar 2008 07:12:35 GMT</pubDate>
		<dc:creator>케리건</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 2008년 03월 03일 ejb ]]> </title>
		<link>http://kerrigan.egloos.com/1482158</link>
		<guid>http://kerrigan.egloos.com/1482158</guid>
		<description>
			<![CDATA[ 
  ant설치<br />
<br />
개발 tool<br />
<br />
xml 이용<br />
<br />
dos 명령어 비슷<br />
<br />
기능 : <br />
<br />
디렉토리<br />
<br />
컴파일<br />
<br />
압축<br />
<br />
복사<br />
<br />
eclipes 와 연동<br />
<br />
http://jakarta.apache.org/&nbsp; -----------&gt;다운<br />
<br />
<br />
<br />
http://ant.apache.org/<br />
<br />
EJB<br />
<br />
RMI&nbsp; ===&gt;&nbsp; interface 사용===&gt;분산환경<br />
<br />
EJB<br />
<br />
Bklack box모델<br />
<br />
(interface 이용)<br />
<br />
3개의 java가 필요(2개의 인터 페이스 1개의 클래스)<br />
<br />
Home interface<br />
<br />
Compnent interface<br />
<br />
EJB class<br />
<br />
<br />
Seesion Bean&nbsp; :&nbsp; Client 관련<br />
<br />
Session Bean구현<br />
<br />
====&gt;&nbsp; 종류&nbsp; 상태유지 세션 빈 :&nbsp; 로그인 ,장바구니<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 무상태 세션 빈&nbsp;&nbsp; : 그외의 것들 <br />
<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &lt;&lt;EJB HOME&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt;EJBOBJECT&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &lt;session Bean&gt;&gt;  <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Home interface&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Component interface&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bean Class<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 빈생성 작업(new)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; 비즈니스 로직(set.get) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; home i/compnent i/Session bean 메소드 구형 &nbsp;&nbsp; <br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 인자없는 create() 단1개&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public <span style="color: rgb(255, 0, 0);">CI</span> create();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String sayEcho();<br />
<br />
<br />
<br />
<br />
hi&nbsp;&nbsp; =====&gt;&nbsp;&nbsp; public <span style="color: rgb(255, 0, 0);">void</span> ejbCreate(){&nbsp; }<br />
<br />
ci =======&gt;&nbsp; public String sayecho(){&nbsp; }<br />
<br />
Session Bean&nbsp;&nbsp;&nbsp; ejb&nbsp; <br />
<br />
<br />
===================================================================================================================<br />
<br />
WAS<br />
<br />
&nbsp; ejbContainer&nbsp; ======&gt;Home interface 메모리 상주&nbsp; =&gt;JNDI등록 =&gt;1.LOOK UP==&gt;2.home interface ===&gt; 3.create호출<br />
<br />
==&gt;4.빈생성 ( 생성자 호출&nbsp; set session context호출&nbsp;&nbsp; ejbCreate()호출 <br />
<br />
<br />
=================black model====================<br />
<br />
<br />
클라이언트가 poo빈에 직접 접근할수 없는 뜻<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3개의 Java 필요<br />
<br />
<br />
Entity Bean&nbsp; : DB관련<br />
<br />
<br />
			 ]]> 
		</description>
		<category>프로젝트</category>

		<comments>http://kerrigan.egloos.com/1482158#comments</comments>
		<pubDate>Mon, 03 Mar 2008 06:31:26 GMT</pubDate>
		<dc:creator>케리건</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 2008년 02월 29일 자잘한 팁 + 카트부분시작 ]]> </title>
		<link>http://kerrigan.egloos.com/1472077</link>
		<guid>http://kerrigan.egloos.com/1472077</guid>
		<description>
			<![CDATA[ 
  System.out.println(query);&nbsp;&nbsp; ==========&gt;쿼리문 출력<br />
<br />
sqle.printStackTrace(); ===============&gt; 쿼리문에러 출력<br />
<br />
<span style="font-weight: bold; color: rgb(255, 0, 0);">native2ascii&nbsp;</span> ==========================&gt; 아스키코드 를 출력하는 명령어<br />
<br />
dos창에서 사용<br />
<br />
<br />
정규표현식&nbsp; =====&gt;http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/x10468.html<br />
<br />
위키백과 : ========&gt; http://ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
			 ]]> 
		</description>
		<category>프로젝트</category>

		<comments>http://kerrigan.egloos.com/1472077#comments</comments>
		<pubDate>Fri, 29 Feb 2008 06:55:56 GMT</pubDate>
		<dc:creator>케리건</dc:creator>
	</item>
</channel>
</rss>
