'neouser'에 해당되는 글 112건

  1. 2008.04.15 텍스티콘 tag를 text로 변경하기
  2. 2008.04.14 AJAX ON JAVA
  3. 2008.04.12 아이벤의 와글와글 포토샵
  4. 2008.04.01 실용예제로 배우는 웹표준
  5. 2008.03.07 vi명령어
  6. 2008.01.30 Head First Design Patterns
  7. 2008.01.28 mysql 쿼리결과 파일로 받아내기
  8. 2008.01.28 mysql show processlist 계속 모니터링
  9. 2008.01.27 유닉스 쉘 바이블
  10. 2008.01.23 아키텍트 이야기 1

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script language="javascript">
function test() {
 var textDoc = document.getElementById("test").document;
 var textHTML = document.getElementById("test").innerHTML;

 for (imgs =0; imgs < textDoc.images.length; imgs++){
  tmpA = textDoc.getElementById(textDoc[imgs].id).outerHTML;
  txtname = textDoc[imgs].name;
  textHTML = textHTML.replace(tmpA, txtname);
 }
 alert (textHTML);
}
</script>

<BODY onload="javascript:test();">
<div id="test" name="2133">
1오<IMG id=74 src="
http://neouser.tistory.com/pie2/texticon/texticon28.gif" name=~> <IMG id=81 src="http://neouser.tistory.com/pie2/texticon/texticon12.gif" name=즐>쳐드<IMG id=69 src="http://neouser.tistory.com/pie2/texticon/texticon17.gif" name=삼> 이게방상
</div>
</BODY>
</HTML>


하지만 이 방법은 그리 좋지 않다.
dom객체를 재 생성하는것은 그다지 바람지 하지 않기 때문이라고 한다.
더불어 이 방법은 test시에는 가능했지만 실전적용에 용이하지 못해 파기를 했다.

AJAX ON JAVA

IT서적서평 2008. 4. 14. 18:26



이제 흔하디 흔해져버린 AJAX 그리고 더 흔하디 흔해져 버린 JAVA
이미 공부한 사람들에게는 그다지 눈에 확~ 띄는 그런 도메인은 아니다.


하지만 두개를 잘 엮어낸 책에는 무엇이 담겨져 있을까?
역시나 기대했던바 데로 둘사이의 끈끈한 관계가 녹아져 있었다.

  - AJAX 위한 JSP 테그라이브러리
  - 스트럿츠에서의 AJAX
  - JSF와 AJAX
  - sample 구글 웹 툴킷

 보통의 AJAX를 이야기 할때면 http Protocol 을 상세히 이야기하고 그 풀어낼 썰을 가지고
 뭔가를 또다시 이야기 한다.   하지만 이 책에서는 그렇게까지는 다루지 안았다.
 실망할 필요는 없다.

 알면 좋은것 이지만 빠른 기술 습득을 위한 경우라면 오히려 책을 보는 포인트에 해가될 뿐이다.
 이런면에서 책은 처음부터 쉽고 빠르게 다가왔다.


 Ajax call을 위해 브라우져가 무엇인지 확인하는방법 (32p)
   > window.XMLHttpRequest / window.ActiveObject

 req.open("get",url, true) 이 강력한 의미 (33p)
   > 개인적으로 맘에 든 부분인데 구질구질한 설명이 많지 않아서 맘에 들었음


redState   의 응답 코드와 그 종류 (35p)
   > 이것도 맘에 들었던 부분으로 4: Complete 의 간결한 의미 전달
 


등이 참 간결하게 짧은 페이지에 이야기 되어주고 있다.
물론 이것을 가지고 뒷부분은 주욱~~ sample코드들을 나열하고 있다.
상황에 따라 좀더 복잡해지고 javaScript가 어떻게 XML을 파싱할지 값을 받을지 등등을 말하고 있다.


이전에도 난 AJAX를 개발을 하고 있었다.
앞선 사람이 사유한 결과를 충분히 습득하지 않은채 그냥 IN값을 넣으면 툭~ Out이 나오는
블랙박스처럼 그냥 그러려니 하는 막연한 신뢰를 가졌던게 사실이다.
하지만 이것을 구체적으로 볼 수 있었던 기회를 마련한게 있다면 이 책을 통해서라고 볼 수 있다.
사유에 배경이된 지식 습득 이라고 볼 수 있겠다.


책은 내가 알고있던 단편적인 지식에 일침을 가하기도 하였다.
JSON의 문법으로 Action에서 생성된 결과를 javaScript로 받아서 파싱하는 방법이 fullset으로 담겨있다. (82p)
그동안 JSON 포멧에 결과만 만들었지 별로 신경쓰지 않았던 javaScript 영역도 함께 연속선상에서 볼 수 있도록 책은 이야기 해주고 있는것이다.


개발자로써 자신의 롤을 좁게 보면 UI에서 벌어지는것 까지 생각할 필요가 있겠는가 싶겠지만
장르와 영역에 상관하지 않고 월급주는 일 외에 모든일을 총괄해도 무방하다고 생각하는게 개발자가
가져야할 소양인듯 싶다.
(실제로 WEB2.0은 S/W의 영역을 세분히 나누며 전문화 시켰지만 누군가는 그 순환고리를 설계해야한다.)


이야기가 잘못 전해졌다.
책은 재미있는 실험을 해볼것을 살포시 요구하고 있다.
바로 XML 문서를 생성하는데 있어 Jdom, dom4j, SAX 파서를 가지고  누가누가 빠를까?
라는 궁금증을 이야기 한다. (물론 결과는 SAX가 1등이지만 얼마나 빠른지는 TEST해보면 놀람^^)


개인적으로 궁금해서 TTXML포멧의 헤더부분만 가지고 생성을 해봤는데 속도 만능주의만 아니라면 Jdom, dom4j, SAX  각각 그 독특한 장점들이 빛이 나고 있으니 SAX만 강요하지  말기 바란다. 
코드의 인지적인 측면(Jdom), 결과의 가독성적인 측면(dom4j), 속도적인 측면(SAX)


끝으로 이 책에는 컨설턴트들이 찾아보고 싶은 구라들은 그리 많지 않다.
90% 이상 개발자를 위한 서적이다.
적당히 이책으로 어디 컨설팅 나가 썰을 풀어낼 계획이라면 다른책을 권해보고자한다.


나도 참 이상하다.
개발자 이지만 이런 예쁘장한 포토샵책이 참 맘에든다.
허기야 그럴만도 한게 프로그램 서적들은 UI가 없어서 그럴만도 하다.


책으로 들어가보자.
책은 다른 포토샵책처럼 평범~ 하지 않다. 매우 독특하다.
예전에 석가시리즈같은 경우 1명의 저자가 책 1권을 모두 완성시키는데
주력했지만  "와글와글 포토샵" 의 경우에는 저자가 1명이 아니다.
카페구성원이 모두들 저자가 되어준 그런 책이다.


저자가 많다 보니 포토샵의 기능 하나하나 필터 하나하나의 나열보다는
타켓이 되는 이미지를 만들어 놓고 그러한 디자인과 효과를 만들어 내기위해
어떠한 포토샵의 기법을 사용했는지를 이야기 해주고있다.


독특한 구성!
사실 이 책이 가장 맘에 든다.
그러다 보니 다른 포토샵책에서는 찾아보기 힘든 재미있는 아이템들이 눈에띈다.
그중에 하나가 예쁜 손글씨^^


마트에 진열된 상품에서나 볼 법한 타이포그라피의 놀라운 세계와
포스터에서나 볼 수 있는 꼬불꼬불한 포스터 글씨는 정말 재미있기 그지없다.


사실 이런것을 표현하는데는 다른 책들이 언급한 그러한 기술들을 이용하면
충분히 나타낼 수 있다. 하지만 이 책의 포커스는 그런걸 만드는데 있는것이지
기술을 연마하는것은 아니다.


자! 그리고 또 있다.!
단축키와 중간중간에 텍스티콘은 참 맘에 든다.
그냥 글씨로만 주욱~ 설명해주는것이 아니라 직접 조그마한 포토샵 아이콘을
책 사이사이 글 사이사이에 잘 넣어주고 있다.


이상의 몇가지 포토샵에서나 볼 수 있는 재미있는 구성!
이맛에 디자이너가 아니면서 감히 디자이너들의 심오한 세계에 발을 살짝쿵
디딜려고 하는 구석이 있나 보다.


하지만 나만 그런것 같지 않은가 보다.
책을 보는 많은 독자들도 이런 것을 공감 했나 보다.
책은 5쇄까지 나아갔다!
개인적인 사사로운 취미중에 하나가 얼마나 재 출간 되었느냐인데, 역시나였다.

좋은책은 많이 찾는다. ^^


함께 일하는 많은 개발자들 책상과 그들의 가방에 이책을 많이 봐왔다.
구리한 주황색 표지는 마치  지나와함께하는 java를 보는것 같은 다소 유행에
뒷 떨어진듯 보엿다.


하지만 모두가 "그 책 어때?" 라고 말하면 10인1색 "좋아 ^^" 라는 답 이였다.
뭐가 좋은지 그리고 왜 저리도 이 책에대해 강하게 찬성표를 던지는지 의문스러웠다.
나의 책 선택의 첫번째는 바로 주변사람들을 적셔내는 그런 책의 호평이였다.


사실 w3c의 표준화가 급속도로 확산되면서 많은 설치형블로그에서 CSS를 이용한
표준화된 가이드들을 속속들이 만들어 내고 있다.
과거 제로보드에서 막코딩(?) 이라 불리우는 HTML 작업은 진화를 강력히 요청 받아왔다.
그리고 지금! 그 진화의 과정에 CSS 라는 훌륭한 과정을 거치고 있게 되는것이다.


책을 보면서 저자가 옆자리에 앉아서 뭔가를 쉴세없이 이야기 해주려는 노력이
돋보였다.  일반적이고, 학문적이며, 메세지만을 전달하려는 노력보다는 이해를 위한
다양한 설명들이 이책에는 달려있다.


내용은 모두가 기대하고 있듯이 XHTML과 CSS에 모여져 있다.
웹접근성!
바로 이점이 이책이 이야기 하려는 주된 키포인트다.
테이블에 보이지 않는 설명을 달고, 장애인과 일반인을 위한 포괄적인 디자인을 만들기
위해 어떠한 작업을 수행하면 되는지 간단하고 명료한 과정들을 설명해 주고 있다.


개인적으로 이책이 맘에드는구석은 <h1> 과 같은 과거에는 별로 사용하지 않았던
테그에 관해서 새롭게 조명해주고 있다는것이다.
물론 <tbody> 와 같은 테그들을 얼마나 효과적으로 표현이 가능한지를 보여주고있다.
친절한 설명 그리고 그 설명에 걸맞는 개발의 과정이 잘 보여지고 있다.


이왕 책에 맘에드는것을 이야기 했으니 몇개 더 칭찬해보자!
CSS 메뉴만드는 방법도 들어있다! 티스토리 스킨을 만드는 방법도 들어있다!


음..
이것 가지고 티스토리 스킨을 블로그가 아닌 일반 사이트 디자인으로 만들어 보는것은
어떨까 하는 엉뚱한 생각도 해본다.


또 있다!
레이어 잡는 방법도 들어있다.
과거에는 커다란 Table 하나 잡고 뭔가 시작했다면 css에서는 header, body, footer를 잡고
시작한다는 UX개발의 과정에서 과정에 대한것도 책은 잘 설명하고 있다.
코드도 쉬워 따라하는데 별 어려움없이 타이핑 해볼 수 있었다.
Header first 처럼 처음 몇페이지 따라하다 그만둘만큼 어렵지도 않으니 타이핑 해가며 보는
것도 좋은 방법이라고 본다.


책을 다 보고 느낀 충동은 역시나 티스토리 스킨한번 만들어 봐야겠다는것이다.
그리고 다른 누군가에게 권하고 싶다는 충동역시 들었다.


이책은 IT서적이 겪는 1판 1쇄 끝! 이라는 단명의 벽을 넘어 3쇄발행이라는 기엄을 토했다.
그만큼 많은 사람들이 본것이고 좋아하고 있다는 반증이기도 하다.
(물론 저자가 미친척 책을 다 사들였다면 모를까??? ㅎㅎ)


책은 참 좋다.
CSS를 시작하는 사람들이라면 이책을 추천해본다.
과거 JAVA를 처음시작하는 사람에게 권했던 "지나와 함께하는 JAVA" 처럼 말이다.

vi명령어

linux 2008. 3. 7. 15:22

v(블럭지정) > > >zf(묶기) ,zx(풀기)
^v(블럭지정) > -> zo(펼치기) , zc(다시닫기)

----------------------------------------------------------------------
set ft=php
windows
set bg=dark
set sw=2
set ts=2
set nobackup
set nu
set ai
colors darkblue
set fdm=marker
set guifont=굴림체:h16:b:cHANGEUL
vimrc
set nu
set bg=dark
set ai
set fdm=marker

레지스터 저장 방법
shift + v (블럭 설정)
"ay 레지스터 a에 저장

:register


vi 편집기

sh 잠시 프롬프트로 빠짐
ctrl + v 앞쪽만 자르기
set noai 자동정렬 해제

zf : 라인 줄이기 zc
zx :라인 풀기 zo

> 화면이동
^w

> 글 입력
a : 커서 위치의 다음 칸부터부터 끼워넣기(append)
A : 커서가 있는 줄의 끝에서부터 끼워넣기
i : 커서 위치부터 끼워넣기(insert)
I : 커서가 있는 줄의 맨 앞에서부터 끼워넣기
o : 커서 바로 아래에 줄을 만들고 끼워넣기(open line)
O : 커서 바로 위에 줄을 만들고 끼워넣기

> 커서 이동
h : 한칸 왼쪽으로 이동
l : 한칸 오른쪽으로 이동
j : 한줄 아래로 이동
k : 한줄 위로 이동
w : 다음 단어의 첫 글자로 이동
W : 다음 단어의 첫 글자로 이동
b : 이전 단어의 첫 글자로 이동
B : 이전 단어의 첫 글자로 이동
e : 단어의 마지막 글자로 이동
E : 단어의 마지막 글자로 이동
^ : 그 줄의 첫 글자로 이동
$ : 그 줄의 마지막 글자로 이동
0 : 그 줄의 처음으로 이동
<CR> 다음 줄의 첫 글자로 이동

+ : 다음 줄의 첫 글자로 이동
- : 윗줄의 첫 글자로 이동
( 이전 문장의 첫 글자로 이동 ) 다음 문장의 첫 글자로 이동
{ 이전 문단으로 이동 } 다음 문단으로 이동


> 글 수정
r : 커서 위치의 한 글자 교체
R : 커서 위치부터 <ESC>를 누를때까지 다른 글자로 교체
s, cl : 커서 위치의 글자를 한개를 여러 글자로 교체
ch : 커서 바로 앞의 글자를 한개를 여러 글자로 교체
cw : 커서 위치의 한 단어를 교체
c0 : 커서 위치부터 줄의 처음까지 교체
C, c$ : 커서 위치부터 줄의 끝까지 교체
cc : 커서가 있는 줄을 교체
cj : 커서가 있는 줄과 그 다음 줄을 교체
ck : 커서가 있는 줄과 그 앞줄을 교체


> 글 삭제
x, dl : 커서 위치의 글자 삭제
X, dh : 커서 바로 앞의 글자 삭제
dw : 한 단어를 삭제
d0 : 커서 위치부터 줄의 처음까지 삭제
D, d$ : 커서 위치부터 줄의 끝까지 삭제
dd : 커서가 있는 줄을 삭제
dj : 커서가 있는 줄과 그 다음 줄을 삭제
dk : 커서가 있는 줄과 그 앞줄을 삭제


> 복사 & 붙이기
yw : 커서 위치부터 단어의 끝까지 복사
y0 : 커서 위치부터 줄의 처음까지 복사
y$ : 커서 위치부터 줄의 끝까지 복사
yy : 커서가 있는 줄을 복사
yj : 커서가 있는 줄과 그 다음 줄을 복사
yk : 커서가 있는 줄과 그 앞줄을 복사
p : 커서의 다음 위치에 붙여넣기
P : 커서가 있는 위치에 붙여넣기


> 기타
u : 작업 취소(undo)
U : 그 줄에 행해진 작업 모두 취소
Ctrl+r : 작업 재실행(redo)
. : 조금 전에 했던 명령을 반복
J : 현재 줄과 아래 줄을 연결
~ : 대문자를 소문자로, 소문자를 대문자로 바꿈
% : 괄호의 반대쪽 짝으로 이동
Ctrl+l : 현재 화면을 지우고 다시 그림
Ctrl+g : 파일에 관한 정보를 표시


> 화면 이동
H : 커서를 화면의 맨 위로
z<CR> : 현재 줄을 화면의 맨 위로
M : 커서를 화면의 중앙으로
z. : 현재 줄을 화면의 중앙으로
L : 커서를 화면의 맨 아래로
z- : 현재 줄을 화면의 맨 아래로
[n]H : 커서를 위에서 [n]번째 줄로 [n]L 커서를 아래에서 [n]번째 줄로
Ctrl+u : 반 화면 위로 스크롤
Ctrl+b : 한 화면 위로 스크롤
Ctrl+d : 반 화면 아래로 스크롤
Ctrl+f : 한 화면 아래로 스크롤
gg, 1G 문서의 맨 처음 줄로
G : 문서의 맨 마지막 줄로
[n]G [n]번째 줄로 이동


> 패턴검색, 교체
/[pattern]<CR> : 현재 위치에서부터 아래 방향으로 패턴 검색
? [pattern]<CR> : 현재 위치에서부터 위쪽 방향으로 패턴 검색
n : 검색하던 방향으로 계속 패턴 검색
N : 검색하던 반대 방향으로 계속 패턴 검색

:s/old/new<CR> : 현재 줄의 처음 old를 new로 교체
:s/old/new/g<CR> : 현재 줄의 모든 old를 new로 교체
:1,20s/old/new/g<CR> : 1부터 20번째 줄까지 모든 old를 new로 교체
:-2,+4s/old/new/g<CR> : 커서 2줄 위부터 4줄 아래까지 old를 new로 교체
:%s/old/new/g<CR> : 문서 전체에서 old를 new로 교체
:%s/old/new/gc<CR> : 문서 전체에서 old를 new로 확인하며 교체
:g/pattern/s/old/new/g<CR> : pattern이 있는 모든 줄의 old를 new로 교체
:g/pattern/s//new/g<CR> : :%s/old/new/g<CR>과 동일


> 끝줄모드
:q<CR> : vi를 종료함
:w<CR> : 편집중인 문서를 저장
:w [file]<CR> : 편집중인 문서를 [file]로 저장
:w >> [file]<CR> : 편집중인 문서를 [file]에 덧붙여서 저장
:e [file]<CR> : [file]을 불러옴
:e#<CR> : 이전에 편집하던 파일을 불러옴
:e%<CR> : 현재 파일을 다시 불러옴, 즉 저장하지 않은 작업 취소
:r [file]<CR> : [file]을 커서위치에 끼워넣기
:set [option]<CR> : [option]을 켜기
:set [nooption]<CR> : [option]을 끄기
:![command]<CR> : [command] 실행
:r ![command]<CR> : [command] 실행 결과를 끼워넣기


Head First  시리즈는 읽기 쉽고 가볍고 날렵하다는 이야기를 많이 한다.
실제로  Head First java의 경우에는 나에게 있어 쉽고 재미있게 다가왔다.
하지만 이번에는 다른 녀석이 나타났다!
바로 Head First Design Patterns 이 바로 그녀석이다.

깔끔하고 재미있는 표지는 "어서 날 잡아들고 펼쳐봐" 라고 유혹하기에 충분했다.
디자인 패턴에 대한 다양한 경험도 점검해보고 싶은 터라 내가 주로 이용하는 패턴 이외에
것을 보고자 책을 펼쳐 들었다.
그것도 할일많은 프로젝트 기간에.. 그것도 한참 바쁜와중에 겁없이 말이다.

책은 Head First 시리즈가 다 그렇듯 매우 익살맞고 재미있게 내용이 전개 된다.
언급한 디자인 패튼 15가지에 대해 다양한 예를 들어 책을 읽는 독자의 머리속에 쏙쏙 들어갈줄 알고 설명하고 있다.
물론 예제들은 잘 이해가지만 역시나 UML을 보고 소스코드를 그려내는 과정에서는 과자먹듯 쉽지는 않다.

책에서 등장하는 패턴 (15개)
 - 스트래티지 패턴 : Duck라는 오리를 날려보고 , 모형오리를 만들어보고, 로켓 오리도 만듭니다.
 - 옵져버패턴 : 기상예보 시스템을 모바일에다 쏴주는 예를 들어줍니다.
 - 데코레이션 패턴 : 커피숍에서 커피에 올라갈 토핑을 놓고 패턴을 설명을 합니다.
 - 팩토리 패턴 (추상) : 피자를 굽는데요. 피자를 얼마나 효과적으로 토핑하는지 가지고 설명하네요
 - 팩토리 패턴 (팩토리매서드) : 피자가게가 번성해서 지역 채인망을 만들어냅니다.
 - 싱글턴 패턴 : 초콜릿 만드는 공장에서 500겔런이나 되는 시럽을 망친 이야기를 해주네요.
 - 커맨더 패턴 : 똑똑한 웨이트레이서가 등장합니다.
 - 어뎁터 패턴 : 역시나 모두가 예상하는 돼지코가지고 이야기를 하네요.
 - 퍼사드 패턴 : 어뎁터에 조금더 기능을 확장합니다.
 - 템플릿 메소드 패턴 : 커피만들기와 홍차만들기 차이가 뭐가 있다고!! 이걸 합해봅니다.
 - 이터레이터 패턴 : 훌륭한 웨이트레이서가 또 등장합니다. next(), hasNext()
 - 컴포지트 패턴 : 웨이트레이서가 살짝 나오지만 중요한것은 객체를 tree형태로 관리한다는거죠
 - 스테이크 패턴 : 왕뽑기 게임 ㅋㅋ (그냥 좀 특이합니다)
 - 원격프록시 패턴 : 여기서는 일반프록시를 위해 RMI를 이야기 하고 가상프록시도 다룹니다.
 - 컴파운드 패턴 : 지금하는 WEB의 MVC가 여기에 해당한다고 하는군요
 
 물론 용어적 차이는 있겠지만 내가 살펴보고 알아본것은 이렇게 15개에해당한다. (더 숨어있긴 합니다만..)
 모두들 적당한 예를 들어주고 적당한 이해를 위해 다양한 등장인물들이 나타나 디자인 패턴을  이야기 한다.

책을 소비하는 다양한 계층을 위해 좀 힌트를 주려한다.
책을 공부할 사람은
http://www.wickedlysmart.com/HeadFirst/HeadFirstDesignPatterns/HeadFirstPatternsIndex.html
에서 코드를 받아다가 실행해보거나 타이핑 해가면서 했으면 한다.
때로는 소스코드를 먼저 보고 패턴을 이해해 역발상의 학습방법도 효과적이니 말이다 .

내경우 스트래티지 패턴에서는 타이핑해가며 추상객체가 interface를 만나게 되면
얼마나 재미있는 일이 벌어지는지를 봤었기 때문에 적어도 타이핑 하기 쉬운 몇장은 해봤으면하는
가이드를 주고 싶다. 
아! 옵져버패턴까지만 타이핑 했다. 이후부터는 녹녹치 않은 양이 기다리고 있어 그냥 책만 보게 되었다.

하지만 책을 이렇게 갈아마시고 뇌속에 흡수시키실 분이 아니라면 (누군지는 아시겠죠?)
그냥 자신의 입담으로 적당히 책을 봤다고 이야기 하고 싶은 사람이라면 617페이지부터 보시길
바란다.

그곳에는 디자인 패턴에 대한 고상한 용어들과 GoF 4인방의 맴버들 이름이 언급되어있다.
(실제로 이들의 이름을 알고 있고 이들이 GoF라는것 가지고 마치 자신이 IT를 잘 아는적! 훌륭한척 하는
못봐줄 분들 참 많습니다. 님들! 제발 좀~!!)(에릭감마도 기막혀서 웃을꺼에요)

개인적으로 이렇게 가볍게 봤다 진진하게 본 책은 몇권 안되는데
Head First Design Patterns은 정말이지 신선하게 다가 왔다.
IT책들이 딱딱하고 부드럽지 않아서 잘 이해가 되지 않는다고 말하지만
내경우에 이책은 부드럽지만 쉽게 갈아마시기에는 결코 가벼운 책은 아니였다고 말하고 싶다.

책 추천자들은 화장실에서 봤다는둥 하루만에 봤다고 하지만 나는 아직도 배워는 중이라 좀 시간이 걸렸다.
중요한것은 책을 몇일만에 봤다는게 아니다.
책을 이해하고 얼마나 실전에 잘 이용하는냐가 중요할것으로 보인다.

끝으로 이책에서 말하는 진짜 디자인 패턴의 정의를 다시 언급하려고 한다.
"패턴이란? 특정컨텍스트 내에서 주어진 문제의 해결책이다. " (617Ppage)
 > 특정컨텍스트 : 반복적인 일을 줄여냄
 > 해결책 : 누구든지 적용해서 일련의 제약조건 내에서 목적을 달성하는것

모두가 패턴 황재가 되라는게 아니다.
모두가 이해하는 효율적인 코드.. 그것이 디자인 패턴이 바라는 궁극적인 해답이라고 생각한다.
select count(itemid) count, chid INTO OUTFILE "~/channelCount.csv" FIELDS TERMINATED BY ',' from item group by chid;


mysql쿼리 결과를 그데로 파일로 backup받기
mysqladmin -uroot -prndrma*** processlist -i 1


show processlist를 계속 보고자 할때가 있다.
이때는 외부 shell 화면에서 위와같이 입력하여 프로세서를 확인하도록 한다 .



책을 처음 소개받고 "반드시 사야겠다." 라고 느낌을 받는경우는 참 드물다.
하지만 이책의 경우에는 만사를 재쳐두고 사야겠다라는 생각이 들었다.

최근에 들어 나의 업무 특성상 Shell을 많이 만져야 하고 대용량의 로그데이터와
java에서의 막무가내식 프로그램으로 OutOfMemoryError을 맞딱드리기 싫기때문이다.

그러면서 자연스럽게 요구되어진 소양이 쉘프로그래밍이라는 놀라운 장르였다.

처음에는 그냥 옆에서 조금 하는 분들에게 조금씩 지식을 동량질하면 되었다.
하지만 양이 차지 않았다.
그래서 "유닉스 리눅스 (명령어사전)"을 구입했다.
이책으로 인해 상당부분 애로사항은 해결이 되었다.
리눅스 상에서 명령어를 날리고 which로 명령어와 개발자가 잘 보관해둔 명령어 찾아다니
그리고 보너스 트랙같이 역어진 awk 나 let sed 명령어등으로 짧은 프로그램
짜는것이 가능해졌다.

하지만!
역시나 아직도 배가 고프다.

그렇게 해서 눈에 들어온 서적이 바로 "유닉스쉘 바이블 "이다.
지금 이 서평을 쓰면서 내가 과연 이책의 서평을 쓸만큼의 자격이 될까하는 생각이든다.
아직 다 읽어보지 못한 상태 인데 다가 책을 한번 폈을때 휘익 하니 읽어볼만큼의 내공이
되지 못한 이유에서 일것 같다.

책은 바이블 이라는 단어를 채용할 만큼 자신감으로 덮여있다.
일반적인 유닉스 쉘 명령어라면 100페이지 안에서 모든설명을 다 해놓고 있다.
그리고 나머지 1000페이지는 모두 "쉘!" 이다.

책은 매우 짜임세 있는 구조로 되어있다.
적당한 text 구문을 만들어 놓고
쉘 프로그램을 자르고 , 붙이고, 치환하고 등등의 예제를 보여준다.

물론 이것 뿐만 아니다.
    - 기본적인 변수설정에 대한 방법
    - 지역번수의 통용되는 범위
    - 라다이렉션 연산자들의 설명과 각각의 쓰임 (exec 명령으로의 확장)
    - if / for / which / case 명령어 사용방법
    - ...

 등등이 모두 sample과 예제로 그리고 [해설] 이라는 매우 독특한 코맨트를 두어서
 설명에 설명을 해주고 있다.

나도 아직 잘 모르는 이 높고 높은 우아한 세계~
이제막 발들 디디고 있는터라
이미 이곳에도 고수라는 높은반열에서 나를 이끌기 위해 책이라는 손을 내밀어
올라오라 손짓을 한다.

혹시 나와같이 쉘은 관심은 있으나 다양한 쓰임에 관심을 더 기울이고자 한다면
이책을 추천해본다.



IT프로젝트라는 오케스트라가 연주가 된다.
서서히 막이 오르고 관중들이라는 갑은 화려한 팜플렛을 보고 오케스트라를 한껏 기대하고 있다.
무대를 홀로 등지고 있는 외로운 한사람이 서 있으니 그 사람의 직위는 PL이라는 지휘자이다.

지휘자는 손님들이 표값을 얼마나 내고 들어왔는지 계급과 신분이 어떻게 되는지 모른다.
다만 팜플렛이라는 RFP에 명시된 것을 가지고 충분히 갑들에게 감동을 줘야한다.

단원들은 하나 하나 긴장한다.
어떤 단원은 연주경력이 오래되어있지만 어떤 단원은 연주경력이 너무 짧아 오선지는 못보고
오선지위에 적혀있는 코드만 보고 연주를 해야하는 실정이다.

지휘자!
과연 그대는 손님들에게 감동을 줄 수 있겠는가?
그리고 극장이여~! 이런 무거운 짐을 지고 홀로 무대를 주무를 지휘자에게 기꺼이 비용을 지불할
능력이 되는가?



아키텍트 이야기라는 책을 보면서 실무에서 만날 수 있는 여러가지 변수를 가장 근접하게 도출해 냈다는
느낌이 우선 들었다.
요구사항에 대해서 충분히 도출해 내고 고객은 요구하지 않았지만 그래도 반드시 있어야 하는
비/기/능 이라는 부분까지 명시해 가며 충분하게 뭔가를 도출해 내는것이 흡사 이땅에 존재할지 의문스러운
PL이 그려지고 있었다.

아키텍트는 정확히 무엇인가?
실질적으로 이 질문에 잘 응답하고 있는 문구는 책 213페이지에 이야기된
"엔지니어로 일한 경험이 있어야 지탱할 수 있고, 매우 성실해야만 하는 업무. 건축가 라기 보다는
목수 가운데 대목이라는 편이 가깝다" 이다.
실로 초인적인 능력을 가진 사람이 PL이 아닐 수 없다.

이런 초인은 어떠한 능력을 가져야 할지 하나 하나 손꼽고 있는게 "아키텍트이야기"의 주요핵심이다.
1. 요구분석 담당자 에게 있어 아키텍트의 역할
2. 인프라 담당자 에게 있어 아키텍드의 역할
3. 프로그래머 에게 있어 아키텍드의 역할
4. 테스트 담당자에게 있어 아키텍드의 역할
5. 운용 담당자 에게 있어 아키텍드의 역할
6. 교육 담당자 에게 있어 아키텍드의 역할

그냥 나레벨로 언급하기만 했지만 아키텍트의 업무는 생각보다 다양하고 많이 포진되어있다.
이 많은 업무에서 아키텍트는 순간순간마다 카멜레온처럼 변신해가며 프로젝트를 리딩해야한다.

휴~!!

책은 각 단락별로 세분화 시켜서 상황을 만들어 아키텍트가 효과적으로 대응하는것을 보여주고 있다.
사용하는 툴로는 UML을 사용하고 J2EE환경에 스트럿츠와 EJB를 사용하고 있다.
프로젝트 규모에 대해서 언급한바는 없지만 Document에 대해서 UML을 충분히 인식하고 있고
운용과 교육에 비중이 있는것으로 보아 국내에서 이런 프로젝트를 수행한다면 15억에서 20억 사이의
중대형 프로젝트라 볼 수 있을것 같다.
투입인력에서도 휴먼리소스를 8명을 투입한것으로 되어있으니 음.. 의심은 가지만 아키텍트가 초인이니
8명 가지고도 가능할꺼라  생각해 본다.

책을 읽은 내가 자꾸 아키텍트를 초인이라고 말하는 이유는...
아키텍트가 고객의 요구사항을 거의 90%가 넘게 수렴해주고 있으며 남는 에너지를 가지고 갑사에 다른
허덕이는 프로젝트에 아키텍트로 2중업무를 한다는 것이다.
(과연 초인 초인 ~~)

개인적으로 질의를 날려본다?
1. 과연 이런 아키텍트가 존재하는 이 미스테리한 프로젝트를 본적 있는가?
실제로 CIO가 투입된 훌륭한 프로젝트도 본적이 있다.
당시 CIO 한사람만으로 프로젝트의 상당비용이 차지하였고 리스크가 상당한부분은 프로그래머에게
전가시키는 이상한 책임 전가의 프로젝트 경험은 있다.  (다소 실망스러웠슴)
당시 개발 PL과 프로그래머들은 당일퇴근은 고사하고 "월화수목금금금" 수고했었다.

2. 한회사가 이렇게 일하는 프로젝트 본적 있는가?
전문 아키텍트를 고용할 정도의 큰 프로젝트라면 국내에서는 컨소시엄을 맺기 마련인데..
와우~! 책의 가상시나리오는 그렇지 않다.

이번서평이 다소 개인적인 생각이 들어갔지만 사실 "아키텍트 이야기" 는 이런 아키텍트가
양성되었으면 좋겠다 라는 고객사, 갑사 들의 희망사항 모음집 같다라는게 내 생각이다.

하지만 프로젝트 경험자로써 이런 책임있는 아키텍트는 분명이 양성되어야하는게 맞다.
엔지니어 출신에 고객의 신음에 귀 기울이고 비기능도 연출하고 팀원들의 상심한 마음도 달래줄
그런 아키텍트만이 정말 훌륭한 output을 만들테니 말이다.

1 2 3 4 ··· 12 

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!