'neouser'에 해당되는 글 112건

  1. 2007.11.20 professional소프트웨어개발 [소프트웨어 개발]
  2. 2007.11.20 create database 와 연계된 작업
  3. 2007.11.19 alias 추가 / 편집
  4. 2007.11.19 mysql table스키마 보기 2
  5. 2007.11.18 이클립스 플러그인 구글안드로이드
  6. 2007.11.17 이클립스 플러그인 PMD 1
  7. 2007.11.16 'Pragmatic' 를 위한 실행방법 [Junit]
  8. 2007.11.16 Test Driven Developement를 보는 방법 [테스트 주도 개발]
  9. 2007.10.18 티스토리를 쓴다. 1
  10. 2007.10.16 URL을 조작할때 주의사항



본 서적을 읽게된 경유는 스티브맥코넬리의 서적 4개를 독파하기 위해 잡게 되었다.
모두가 아시다시피 스티브맥코넬리는 단 4개의 서적만으로 모든 기술을 논할만큼 그에 생각의 깊이는 깊다.
사실 이것에 대한 정보는 인사이트 출판사나 너무도 쉽게 이해시켜놓은 도식이 있다.
 
professional소프트웨어개발 (동기부여)
Rapid Development, Code Complete (스터디)
소프트웨어 프로젝트 생존전략 (적용)
----------- 기회가 되면 이 4권에 책을 서평해봤으면 하는 바램이다.
 
오늘 이야기하고싶은 서적은 "professional 소프트웨어개발" 이다.
 
S/W는 부드러웠기 때문에 두리뭉실 평가된 경향이 있다.
S/W가 만일 부드럽지 않고 단단하고 딱딱했으면 지금처럼 한국 사회에 S/W개발자들이 저평가 되지 않았을 것이다.
물론 이공계 기피라는 단어조차 나오지 않았을 것이다.
스티브맥코넬리는 바로 이런 S/W의 부드러운 부분을 보다 구체화 시키고 체계화 시키기 위해 본서를 저술 하지 안았나 싶다.
 
스티브는 엔지니어 들에게 무 비판적 실행맨, 작업맨 으로써의 역할이 아니라
관리자들혹은 의뢰인들과 엔지니어가 직접 이야기 하며 문제를 풀어가고
다양한 분석과 상황판단을 통해 보다 많은 사람이 행복해하는 합의점을 찾아갈 수 있도록 "스티브 우화"를 적어놓았다.
> 피라미드를 움직이는 이집트인
> 화물숭배공학
> Silver Bullets
> 노붐 오르가눔
> 고아출신의 우대
이것 외에도 스티브는 많은 이야기 꺼리를 바탕으로하는 자신만의 사상을 전달하려고 하고 있다.
 
허면 이런 사상의 결론은 무엇인가?
놀랍게도 엔지니어를 보다 레벨화 시키고 정확하게 평가함으로써 성능좋은 엔지니어는 보다 높은 가치를
그렇지 못한 앤지니어는 교육과 훈련을 통해 높은 가치에 다다르게 함에 있다.
 
여기서 잠시 "professional소프트웨어개발" 의 역자를 살펴보자!!
역자는 윤준호씨로 SW-CMM의 ISO 인증을 위해 노력하는 사람이다.
만나보지는 못했지만 그도 역시 스티브의 엔지니어의 레벨화를 꾀하여 S/W를 짜임세 있게 만드는 분 일것 같다^^
 
자.. 다시 책속의 이야기로 들어가보도록 하자!!
책 서두에서는 "고아출신의 우대" 등과 같은 예를 통해 현실상의 엔지니어의 자각을 유도하고 있다.
책 중반부에서는 이런 엔지니어들에게 professional해 짐을 권면하면서 어떠한 방법으로를 이야기 한다.
책 종반부에서는 SW-CMM등과 같은 것을 통하여 레벨화와 모든 엔지니어의 성숙을 권면하고 있다.
 
우리는 본 서적을 통해 SW-CMM의 다음 세대를 준비할 필요가 있다고 본다.
그냥 단순 코더로써 오늘도 저렴한 몸값에 돌을 힘으로만 옮길 것인지
아니면 보다 향상된 엔지니어가 되어 고가의 몸값에 돌을 효과적을 옮길 궁리를 하게 되야하는지
우리는 본 서적을 통해 다가올 미래를 준비할 필요가 있다고 본다.
스티브의 머리속이 아니더라도 그의 눈으로 세상을 바라보고 나역시 다가올 미래를 준비 해야할것 같다

●  Database 생성

CREATE DATABASE testdb;


●  USER추가

insert into user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv)
 values ('**.**.**.**', 'testuser', password('testpwd'), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N');

insert into user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv)
 values ('%', 'testuser', password('testpwd'), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N');




● DB추가

insert into db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Create_tmp_table_priv, Lock_tables_priv)
 values ('**.**.**.**', 'testdb', 'testuser', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'Y');

insert into db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Create_tmp_table_priv, Lock_tables_priv)
 values ('localhost', 'testdb', 'testuser', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'Y');



FLUSH PRIVILEGES;

alias 추가 / 편집

linux 2007. 11. 19. 16:46

alias를 추가 하는 경우는 명령어 창에다

alias testsql='mysql -utestuser -ptestpwd testdb'


를 입력해주면 바로 확인이 가능하다.

하지만 logout하게 되면 본 alias는 사라지게 된다.


> 비 휘발성으로 만드는 방법

[test-dev2:~]$vi .bashrc
 alias testsql='mysql -utestuser -ptestpwd testdb'
[test-dev2:~]$source .bashrc


위와같이 .bashrc에 넣어주는 방법과 .profile에 넣어주는 방법이 있다.
필자의 경우에는
[test-dev2:~]$vi .profile
source .bashrc

이 들어있다. (같다는 이야기)


※ 혹 몰라서 하는 이야기이지만 .bashrs나 .profile의 경우에는 source라는
컴파일 과정이 필요하다
.

mysql> show create table TABLENAME;


찾으려 들면 꼭 애를 먹어요..

http://pmd.sourceforge.net/eclipse/

PMD는 코드의 중복을 찾아 내주는 utility라고 할 수 있다.
eclipse project내의 중복된 코드들을 찾아주고, 이에 대한 보고서를 만들어 준다.

실행방법
properties – PMD – Find Suspect cut and paste




본 서적에서 언급하는 실용주의는 무엇인가?

'Pragmatic' 이란 단어는 "업무에 능한" 이라는 뜻의 라틴어 'pramaticus' 에서 나왔고 또
라틴어는 '(무엇인가를) 하기' 를 의미하는 그리스어에서 파생된 말이다.
바로 이책은!!! ~하기에 관한 실행을 동반한 개발자 개몽 서적이다.

junit 책을 처음 접했을 당시 상황이 그려진다.
서점 수많은 책꼿이에 반드하게 꼿혀진 하얀색 책~~
그냥 그 하얀 다자인이 맘에 들었는데 내용 역시 junt를 간략하게 소개하는것이 참 맘에 들었다.
CVS, Junit, ANT(?) (기대하는 3번째책) 을 가름해봄 으로써 pramaticus의 추구하는 바를
짐작 할 수 있게 한다.

실행을 동반한 서적!!
바로 이책이 추구하는 목표인듯 하다.

본서적을 읽는데 있어서 TDD와 마찬가지로
"역자 주"를 간과하지 말기바란다.  바로 이 역자주는 번역자 이용원님의 기술이 녹아있는 부분 이기도 하기 떄문이다.
대부분의 개발자들이 역자를 담당하게 되는데 본 Junit의 역자 이용원님께서도 다양한 필드에서 연구를 하셨을 것이 분명하다.
(이러한 이유는 책의 뒷부분에 나오는 Eclipse에서 junit를 사용하는 매뉴얼이 착실히 수록되어 있음을 볼 수 있다.)
원서와는 사뭇 다른 번역서가 한국개발자를 배려한 역자의 노력이 옅보이는 부분이다.
                
책의 내용을 보도록 해보자..
본 책은 어떻게 읽어야 하는가??

● 구독 방법
1. 편안한 책상에 등받이가 쿠션기능이 있는 의자에 앉는다.
2. 모니터와 키보드 그리고 본 서적을 놓고 작업자가 앉는다 (책은 배위에나 다리위에 있다)
3. 컴퓨터는 Eclipse를 띄워놓고 Junit의 처음시작을 타이핑 하며 읽도록 한다.

처음단계가 넘어가면 다음 단계부터는 "오른쪽 알통" 에 대해 깊이 깊이 생각해보도록 한다.

본 책은 순수 실행을 위한 가장 컴팩트한 교과라 봐도 무방할 정도이다.
군더더기는 없으며 그냥 ~하기를 위한 실행을 도모하기 위한 설명이다.
jUNIT에 대해 잔뜩 기대한 사람이라면 다소 실망 할 지 모르나 서평자와 같이 짧고 굵에 읽어 사용하기를
중심으로하는 개발자라면 추구하고 읽어볼 필요가 있다고 본다.

● 서평자 생각..
 project에 있어 가장 큰 복병은 개발자가 자신이 짠 코드의 오류에서 혹은 다른 팀원이 만들어 놓은 소스코드 속에 빠져
 도무지 문제가 어디서 발생되었는지 찾아가는 문제일 것이다.
 junit은 이런 복병을 숨을 수 없도록 요소 요소에 터랫을 박아 놓은 것 이라 볼 수 있다.
 
junit은 잘 구동되던 소스코드를 항상 잘 구동될 수 있도록 신선한 상태를 유지하고 있으며
 junit은 곳곳에 숨어져 있는 메소드단위 최척화  test in/out값을 가지고 있기에 개발자는 과거를 잊어도 된다. (좀심했나??)
 
 단 5개의 명령어 (assertEquals(), setup(), testEnd() , assertTrue(), assertFalse()) 만으로 이토록 훌륭한
 프로젝트 맨토를 구할 수 있다고 알려준다면 본 서적의 임무는 다한것이다.
 
모두가 행복해졌으면 한다.
 이책을 읽음으로써 개발자 모두가 여유있는 시간속에서 개발이 이뤄졌으면 한다.


Kent Beck이 지필한 본 서적을 번역하기에 김창준님께서 수고하셨다.
그냥 원문에 의한 번역을 꾀하였다면 이책은 2년 넘게 잡고있을 만큼의 번역 분량이 아니다.
하지만 김창준님께서 긴 시간 그리 오랜동안 이책을 잡게된 이유에 대해 생각 해 볼 사항이다.
 
TDD (Test Driven Developement) 는 테스트 주도 개발을 말하고 있다.
본 책의 결말을 미리 말을 하자면 TDD는 테스트 기술이 아니라 분석기술 설계기술을 말하고 있다.
이는 프로젝트 문제의 접근에 있어 단순 테크닉적 접근이 아닌 보다
입체적인 접근을 요구하고 있음을 이야기 하고 있는것이다.
 
보다 쉽게 설명하자면 간트차트형태의 일의 추진에서 TDD 일의 happyEnding에서 부터 시작한다.
행복하게 잘 되어져야 하는 전재하에 개발되는 까닭에 역자는 그 오랜시간동안 Kent Beck의
사상과 철학을 이해하려 했던것 같다.
이를 뒷받침 하듯 TDD 책은 원문보다 다양한 "역자 주"가 첨부되어있다.
"역자 주"를 간과하지 말기바란다.  바로 이 역자주가 원서와 번역서의 차별을 극대화 시킨 이유이면서 하커버의 본 서적이 다소 비싸게 팔리는 이유이기도 할테니 말이다.
그래서 서평을 쓰는 필자는 본 서적을 TDD 한국어판이라고 소개하고 싶다.
 
책의 내용을 보도록 해보자..
본 책은 어떻게 읽어야 하는가??
 
● 구독 방법
1. 편안한 책상에 등받이가 쿠션기능이 있는 의자에 앉는다.
2. 모니터와 키보드 그리고 본 서적을 놓고 작업자가 앉는다 (책은 배위에나 다리위에 있다)
3. 컴퓨터는 Eclipse를 띄워놓고 1부부터 차근차근 타이핑 하며 읽도록 한다.
4. 가끔 타이핑이 필요없는 부분이 있는데 그런 부분은 꼭! 색깔있는 탭을 이용해서
    북마킹하면서 읽도록 한다.
 
● 코딩을 다 하고 나서 접근방법
우선 전 코드를 어떻게 만들어 갔는가 되새김질 해볼 필요가 있다.
코드는 자신도 모른사이에 리팩토링이 되어있기 때문에 이 과정을 거치지 않으면 Kent beck이
겪었던 본 서적의 노하우를 찾기 힘들것이다.
 
● 서적을 띄엄띄엄 읽으면 나타나는 증상.
>> 남들앞에서 TDD만을 운운하는 사람.
   - 우습게도 TDD만을 운운하는 사람은 책의 표지만 본 사람이다.  그와 더 이상 논하지 말라!!
 
>> TDD 맹신주의에 빠진듯해 보이는 사람
   - 분석과 설계기술은  RUP,나 카타르시트, 마르미와 같은 다양한 방법론들이 있다.
      방법론끼리는 경쟁이 아니다.. 방법론은 소비자인 우리들에게 있어선 상호 보안이다.
 
● 서평자 생각..
 Kent Beck이 본 TDD를 지필했을때 환경은 IDE툴이 없는 시대에 개발했다.
그에 놀라운 선구자성을 인정하고 우선 본 서적을 비평없이 답습했으면 한다.
XPI에서도 언급했듯이 무슬에 경지에 이르기전까지는 교본에 충실함이 수반되어야
본인의 응용력이 발휘 될 수 있다.
 
책에서 보면 Kent Beck과 마틴파울러(리펙토링)과 잘 알고 지낸다는것도 알 수 있다.
결국 고수는 고수끼리의 통하는 맥락이 있음을 간파할 수 있는 대목이다.
 
또한 kent Beck은 TDD서적을 통해 자신의 TDD개발에 앞서 영감을 얻은 방법론이 하나 있다.
무척 재미있는 방법론이고 이 방법론은 우리에게 가장 필요한 지혜가 아닌가 생각해 본다.
그 방법론은 휴식을 기반하고 있으며
본 서적 255페이지에 있음을 힌트로 밝힌다.

티스토리

티스토리를 사용한다.
그리고 그곳에 나의 개발 팁! 들을 적어넣는다.

왜일까?
많고 많은 서비스중 하필 이런 개발팁을 정리해두려고 티스토리를 쓰는것일까?

혹자는 설치형블로그라서 혹자는 발행이라는 유용함때문이라고 한다.
하지만 내 경우에는 이런 저런 수식어구는 불필요한 말장난 같다.

나에게 있어 티스토리는
블로그 스럽기 때문이다.

서비스형 블로그에서는 느낄 수 없는 CSS들의 향연~
서비스형 만큼 다양한 기능들은 존재 하지 않지만 나의 손길이 닫으면 편집이 가능하다는점
그리고 무엇보다도 자유로운 스킨마트에서 좋아하는 스킨들을 골라 넣을 수 있다는 점이다.

오늘도 티스토리의 이야기를 적어넣는다.
개발의 요소들과 팁들을..
남들에게는 인터넷상에서 존재하는 쓸데없는 중복된 글일지 몰라도
나로하여금 차곡차곡 쌓여가는 지식의 개인창고가 되어간다.

티스토리..
나의 이야기는 아직도 진행중이다.

  String base64URL = Base64.encode (openURL.getBytes());
  String hostURL = "
http://c"+openURL.substring(openURL.indexOf("@")+1, openURL.indexOf(":"));
  String filename = openURL.substring(openURL.lastIndexOf("/")+1, openURL.length());
  StringBuffer  fullURLsb = new StringBuffer();
  fullURLsb.append(hostURL);
  fullURLsb.append("/aaa/aa.jsp");
  fullURLsb.append("?fhandle="+base64URL.trim());
  fullURLsb.append("&filename="+filename);


base64URL.trim() 이게 제일 중요하다.
해당 trim() 작업을 수행하지 않으면 url이 개행처리 되기때문에
windows 서비는 상관없겠지만 linux에서는 400Error를 토해내게 되다.
1 ··· 5 6 7 8 9 10 11 12 

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!