이클립스 활용

JDK : 서로 다른 버전으로 컴파일하면 문제발생소지가 있다.
          오라클 같은 경우 자체 JDK를 가지고 있다.
          Path를 꼭 확인 해라.

JDK 1.4                - Eclipse 3.2 , 3.3(Europa), 3.4(Ganymede)
JDK 1.5 Tiger       - JAVA5  -  Eclipse 3.5 Galileo
JDK 1.6 Mustang - JAVA6   - Eclipse 3.6 Helios
JDK 1.7 Dolphin

Web 개발 : Eclipse IDE for Java EE Developer

View - Package View : 클래스 경로
         - Navigator View : 실제 파일 경로

Edit
* Code Asist : Ctrl + space ( Code Add : Window - Preference - Java - Editor - Templates )
* Quick-Fix   : Ctrl + 1 { + jUnit } ( 테스트주도개발 방법론: 테스트 -> 개발 )
* Word-Colpletion : Alt + / (변수자동완성)

Navigator
* 족보보기 : 클래스 선택 후 "F4"
* 역추적     : 클래스 선택 후 "Ctrl + Alt + H"
* 열기         : F3 또는 Ctrl + Mouse Click

Interface(인터페이스) : 오버로드 되어야 함(역삼각형)
* 인터페이스, 형변환, 추상 클래스 : 중요함.

Refactor
* Rename  : Alt + Shift + R
* Move       : Alt + Shift + C
 ; Package 브라우저에서 Drag&Drop 으로도 가능.

Resource
Workbanch - Perspective - View
                                         - Editor Area - Editor
: perspective는 추가,수정,삭제 가능하다. 영역이 고정되어있고, 영역내에서 유동적이다.

Menu
* [Source] - [format] - [Generate Gatters and Setters]
* Preferences -> ( Ctrl + shift + L ) x 2
* Editor 창간 전환 : Ctrl  + F6 ( Preferences 에서 추가가능).

Debug
* Debuging 은 기능이 아니라 메모리를 가지고 노는 것이다.
* 지역변수는 무조건 초기화 해라.
* 메모리가 Full 될 수 있기 때문에 Garbage Collection 이 있는데,
   사용하지 않는 garbage를 삭제하지 않고 HDD에 저장한다.
* 코드 컴파일하고 실행(에플리케이션에 run configuration을 생성)
* Run>Debug.. 사용하여 (debug Configuration을 셋업)
* 디버거로 메인 자바 클래스로서 사용되는 클래스 선택
* 가장 일반적인 디버깅 과정은 조건문이나 루프에서 변수와 값들을 관찰하기 위해 breakpoint 설정
* 의심이 가는 코드의 라인에 있는 mark bar(에디터 부분의 왼쪽 모서리) 더블클릭
-------
* step-into(F5)
* step-over(F6)
* step-return(F7)
* Use Step Filters : 지정클래스외에 들어가지 마라.
* Breakpoint Hit Count : 실행갯수제한 ( 설정 후 "F8" 클릭시 실행 )

Heap 영역 보기
1. [Preferences] - [General] - Show heap status 확인
2. 오른쪽 하단에 용량표시
3. 표시되는 용량 옆의 휴지통클릭하면 사용량을 줄여준다.
4. 휴지통은 자주 클릭하지 마라.(Garbage Collection)

개발방법론
사용자 삽입 이미지
*  TDD개발방법론 : Quick Fix + jUnit

단위 테스트
* jUnit
  java 1.4  - jUnit 3
  java 1.5, 1.6 - jUnit4 ( "@" 사용 )
 : "Test" 폴더 만들어서 jUnit 테스트 파일 생성. jUnit 에 개발메소드 생성 후, Quick-Fix로 메소드를 생성.

CVS 설치
* 설치시 주의사항 : admin 계정(password 가지고 있는) 필요.
* CVS NT 에서 Lockservice 실행안되면 작업관리자에서
   CVS Lockservice를 프로세스 종료하고 다시 실행해야 한다.
사용자 삽입 이미지
* CVS 연결된 프로젝트를 다시 로컬에서 지정작업하려면
  : Team - Disconnect ( 체크1 : CVS 폴더(local)까지 삭제 , 체크2 : 링크만 삭제)

Code-Convention
* Formatter : Ctrl + shift + F
  : 문법에 맞게 소스 정렬
* CheckStyle (naming tool)
  : 설치시 Preferences에 적용안되면 eclipse.ini 의 최상위에
    " - clean" 을 입력하고, Restart( [File] - [Restart] ).
    - 정규식이 중요하다.
 ex) 메소드 규칙 : 1. 영문 소문자로 시작.  2. 최소 3글자 이상.

Web Project
*tomcat 설치 : tomcat manager 사용자는 tomcat-users.xml로 생성시키면 된다.
* war 파일로 Export 해서 tomcat 서버의 webapps에 이동시미켠 application이 등록된다.
* JavaEE( Dynamic web project ) Perspective 에서 작업.
* JSP webserver 종류 : tomcat, weblogic, jeus, SilverStream, jBoss, Glassfish

표준 JavaEE
WAR : Context - Roost
                 └ META-INF
                 └ WEB-INF : 보안폴더로 지정되어 있음(설정관련파일만 보관)
                           └ web.xml  : 웹서버에 관련된 설정
                           └  classes  : 개발 class
                           └  lib           : 외부 library 등록

EJB -> WAS server( session,Entity, Message) -> JAR
EAR(엔터프라이즈) : WAR + JAR

JSP 파일 생성
* ctrl + space 를 많이 활용해라.
1. src 폴더에 Servlet 생성(Class)
2. 생성시 servlet 오류발생( javax 패키지 없음. javax 는 JavaEE에 포함. )
    : 웹개발시 JavaEE까지 필요 없다. JDK TigerSE정도면 된다 .
      javax는 "Build Path"로 설정하면 된다.
      웹서버에 포함되어 있으니 웹서버를 library에 추가하면 Build path 설정은 필요없다.

Servlet
* do Post
* 소스 작성 후 저장시 web.xml 변경됨 ( 7버전에서는 web.xml이 없다.  )
* web.xml은 아래에서 위로 읽어야 한다.
* Dynamic Web Project 생성시 버전(Dynamic web module version) 확인 후 지정. 차후 버전변경 어려움.
* Target runtime 지정하면 [Properties]에 java build path 자동 생성.
* JSP 파일은 java로 변경되는데, 확인하려면
   workspace - .metadata - .plugins - org.eclipse.wst.server.core 아래의
    해당 프로젝트의 폴더안에 존재한다.
* Servlet이 생성되면 web.xml이 변경됨으로 restart가 필요하다.

MVC ( model, View, Controler)
사용자 삽입 이미지
Struts
사용자 삽입 이미지
* Struts의 .jar 파일을 해당프로젝트의 /WEB-INF/lib/로 복사하면 적용된다. (Build path에서 확인 가능)
* Snippets : 하단에 있는 tab. 자주 쓰는 문구 저장기능.
* Struts 의 Config.xml 의 내용은 snippets에 만들어둔 Head를 사용해서 시작한다.
  web.xml에 나오는 경로를 자서 만든다.
* 해더에 지정된 .dtd 문법책에 맞추어서 작성한다.

JDBC
* oracle : ojdbc~.jar
* Addjars 로 ojdbc파일을 불러오고, 아래의 List Drivers를 클릭하면
    "Driver class Name" 에 클래스 리스트가 나온다.
* SQL plugin : http://marketplace.eclipse.org/ 에서 필요한것 설치.
* JDBC의 유의사항
   : 계정정보는 보안폴더에서 관리해야 한다.
     ~.close(); 는 공통관리해야한다.
     Str 로 문자열에 붙여쓰지말고 쿼리문은 클래스 안에 넣지마라. 쿼리문을 xml파일로 밖으로 꺼내는 것은 "iBatis"이다.

iBatis (JDBC + iBatis)
* iBatis-common-2.jar , iBatis-dao2.jar , iBatis-sqlmap-2.jar을 lib에 등록(Build path)
* iBatis 설정은 Package로 만들어야 같이 클래스가 이동한다.
   /project/src/config(package)/~.xml
* xml 파일 생성시, "snippets"를 잘 이용해라.
* Content Assist 할때, 클래스명이 길면 "카멜명명법"을 이용하라.

◆ 카멜 표기법 (Camel Notation)
1. 단어와 단어 사이를 대소문자로 구분하는 방법.
2. 카멜(낙타)이라는 말은 카멜표기법으로 작성된 변수의 형태가 낙타의 혹을 닮아서 붙여진 것이다.
ex. List guestBook = (List)request.getAttribute("list");

* http://서버주소:포트/컨텍스트명/request자원
* Context명이 Url의 폴더가 된다.
* 프로젝트 생성 후 struts class, JDBC class, iBatis class 를 lib로 복사한다.
* Struts2 부터는 설정파일이 패키지안으로 들어간다. - /src/package
* xml에 한글 저장시 인코딩을 변경하면 된다.
* iBatis-config.xml : 네임스페이스 이용.

JAVADoc 문서만들기
* Generate javadoc : visibility - Public(일반 공개용)

Ant
* http://ant.apache.org/
* 프로젝트에서 build.xml 파일 추가
   : Ctrl + 3 이클립스 모든 메뉴 찾기
* Ant View 보기
  > build.xml 을 등록해서 실행시킬 수 있다.
  > 등록된 Ant를 실행(double click)하면 Console창 실행됨

환경설정 모듈 개발(Property)
* 환결설정값은 되도록이면 한곳에서 관리하는 것이 좋다.
   따라서 properties 패키지에 config.properties 파일을 생성한다.
  - 폴더위치 : properties/persistence
  - 파일명     : config.properties

로깅 모듈 개발 (Log4j)
* lib 폴더에 log4j 라이브러리를 저장하면 된다.
* Logging 레벨
  - FATAL : 가장 크리티컬한 에러가 일어 났을 때 사용.
  - ERROR : 일반 에러가 일어 났을 때 사용
  - WARN : 에러는 아니지만 주의할 필요가 있을때 사용
  - INFO : 일반 정보를 나타낼때 사용
  - DEBUG : 일반 정보를 상세히 나타낼때 사용










jsfactory.co.kr
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/03/29 16:51 2011/03/29 16:51
,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/6010

eclipse 이클립스 자동 줄바꿈 기능

eclipse 이클립스 자동 줄바꿈 기능
Help > Software Updates > Find and Install > Search for new features to install > New Remote Site

- Name : WordWrap
- Update URL : http://ahtik.com/eclipse-update

설치 후 에디터창에서 오른쪽 마우스 클릭시 메뉴 중 "Word Wrap" 이라는 메뉴를 적용하면 된다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/03/29 13:26 2011/03/29 13:26
, , ,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/6012

토렌트 다큐 검색

토렌트 다큐 검색 : http://torrentfile.co.kr/

검색어 : 끈이론 , 고대 우주인, 아인슈타인
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/03/29 12:49 2011/03/29 12:49
,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/6011

jsdoit - Share Javascript, HTML5 and CSS
사용자 삽입 이미지

 jsdo.it 무엇보다 독특한 것은 다른 사람이 쓴 코드를 버튼 1 개로 복제, 개조있는 곳에이 기능을 "포크"라고 부르고 있습니다. 예를 들어, 위의 <canvas> 샘플 포크하려면 jsdo.it에 로그인하여세부 정보 페이지에 가서, "Fork"버튼을 클릭합니다.

 그러면 앞의 코드의 사본을 그 자리에서 편집 시작할 수 있습니다. 이번에는 빛이 반짝반짝 너무 눈부셨다 때문에 속도를 10 분의 1로하여 화면의 변화를 관찰할 수 있도록하여 보았습니다 (포크하여 만들어진 작품은여기).

 이처럼 스스로 처음부터 쓰지 않아도 다른 사람이 만든 코드를 직접 만져 봄으로써, HTML5의 기능을 쉽게 테스트할 수 있습니다.


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/03/29 11:25 2011/03/29 11:25
, ,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/6009

http://www.w3c.or.kr/Translation/mwbp_flip_cards/

모바일웹
모범사례

머리말

"모바일웹 모범사례 1.0 (Mobile Web Best Practices 1.0)"은 모바일 장비에서 이용되는 컨텐츠를 보다 편리하게 설계하고 이용할 수 있도록 제정한 W3C의 웹표준입니다. 본 팜플렛에는 모바일웹 모범사례를 10가지 주제로 쉽게 설명하고 있습니다. 본 팜플렛의 가이드라인을 따르면 컨텐츠 제공자들은 더 많은 고객에게 컨텐츠를 제공할 수 있게되고, 효과적인 웹사이트와 어플리케이션을 구현할 수 있으며, 다양한 장비에서 웹을 편리하게 브라우징 할 수 있을 것입니다.

상세 내용 참조: http://www.w3.org/TR/mobile-bp/

하나의 웹을 위한 설계

다양한 장비를 고려하여 설계한 컨텐츠는 비용을 절감시키고, 유연성을 증대하며, 더 많은 사람들의 필요를 충족시킬 수 있다.

하나의 웹을 위한 설계

주제의 일관성: 다양한 장비에서 동일 URI에 접속했을 때 제공되는 정보와 기능은 일관성이 있어야 한다.

성능: 사용자에게 향상된 기능을 제공하기위해 장비 성능을 상세히 확인해야한다.

오작동: 다양한 장비가 각각 다르게 해석하여 발생할 수 있는 오작동을 염두에 두고 설계한다.

테스팅: 실제 장비와 에뮬레이터 상에서 테스트를 수행한다.

웹 표준 준수

세계 곳곳의 제각기 다른 장비와 브라우저의 호환을 위해서는 표준을 준수해야한다.

웹 표준의 준수

유효한 MARKUP: 표준 문법에 유효한 문서를 작성한다.

컨텐츠 포맷 지원: 장비가 지원하는 컨텐츠를 전송한다.

선호하는 컨텐츠 포맷 제공: 가능하면 장비가 선호하는 포멧으로 컨텐츠를 전송한다.

캐릭터 인코딩 지원: 장비가 지원하는 캐릭터 인코딩을 사용한 컨텐츠를 제공해야한다.

캐릭터 인코딩 정보 활용: 장비에서 사용되는 캐릭터 인코딩을 확인한다.

스타일 시트 사용: 장비가 지원하지 않는 경우를 제외하고, 레이아웃과 형식의 설계는 스타일 시트를 사용한다.

구성: 논리적인 문서 구성을 위해 마크업 언어(markup language) 기능을 사용한다.

오류 메시지: 발생한 오류 정보를 알 수 있는 메시지를 제공하고, 그러한 오류를 피해 브라우징을 계속할 수 있도록 한다.

유해요소 제거

모바일 장비의 제한 된 화면크기, 키보드, 기타 기능으로 발생하는 사용자의 문제를 고려하여 설계한다.

유해 요소의 제거

팝업창: 팝업창이나 새로운 창이 열리지 않도록 하고, 사용자에게 사전 정보없이 현재 창을 바꾸지 않는다.

테이블 속의 테이블: 테이블 내에 또 다른 테이블을 포함하지 않는다.

테이블 레이아웃: 테이블을 이용하여 레이아웃을 구성하지 않는다.

여백과 그래픽: 여백 공간에 그래픽을 사용하지 않는다.

프레임 비사용: 프레임을 사용하지 않는다.

이미지 맵(IMAGE MAPS): 이미지 맵은 장비에서 효과적으로 지원되지 않는 한 사용하지 않는다.

장비 제한 주의

특정 웹 기술을 사용하고자 할때는, 모바일 장비 성능이 제각기 다르다는 것을 염두해 두어야 한다.

장비 제한을 주의

쿠키(COOKIES): 이용 가능한 쿠키에 의존해서는 안된다.

객체나 스크립트: 임베드 되어 있는 객체나 스크립트에 의존해서는 안된다.

테이블 지원: 장비에서 테이블을 지원하지 않는 경우 사용하지 않는다.

테이블 대체: 가능한 경우에는 테이블 형식을 대체할 수 있는 형식으로 작성한다.

스타일 시트 지원: 필요한 경우 스타일 시트 없이도 문서를 읽을 수 있도록 구성한다.

글꼴: 글꼴 관련 스타일링에는 의존하지 않는다.

색상 사용: 색상을 통해 얻을 수 있는 정보도 색상을 사용하지 않고 이용할 수 있게 한다.

웹 네비게이션 최적화

작은 화면과 키보드, 제한된 bandwidth에서는 단순한 네비게이션과 입력이 매우 중요하다.

웹 네비게이션(navigation)의 최적화

NAVBAR: 페이지 상단에는 최소의 네비게이션 메뉴바를 제공한다.

네비게이션: 일관된 네비게이션 메카니즘을 제공한다.

타겟 ID 링크: 각 링크의 타겟을 명확히한다.

파일 포멧: 이용되는 파일의 포멧이 장비에서 지원되는지 주의한다.

타겟의 접근: 네비게이션 메뉴와 자주 사용하는 기능에는 키보드 숏컷(shortcut)을 지정한다.

URI: URI를 짧게하여 입력을 쉽게한다.

균형: 사용자가 원하는 정보와 페이지에 제공되는 링크 수의 균형을 맞춰 원하는 정보를 쉽게 얻도록 한다.

그래픽과 색상 확인

이미지, 색상, 스타일은 컨텐츠를 빛나게하지만 지원되는 포맷과 저사양의 화면 등을 유의하여야 한다.

그래픽과 색상을 확인

이미지 크기 조절: 고유 크기가 있는 이미지는 서버에서 크기를 조절한다.

대용량 그래픽: 장비에서 제공할 수 없는 이미지는 사용하지 않는다. 정보제공을 위해 꼭 필요한 것이 아니면 고사양의 고해상도 이미지의 사용은 피한다.

이미지 크기 설정: 고유 크기가 있는 이미지는 마크업에 이미지 크기를 설정한다.

NON-TEXT 대체: 텍스트가 아닌 요소(이미지, 애니메이션, 동영상 등)에 대해서는 그에 상응하는 텍스트를 제공한다.

색상 명암: 전경과 배경의 색 조합은 적절한 명암 대비를 유지해야 한다.

배경 이미지 가독성: 배경에 이미지를 사용할 경우 컨텐츠 내용을 볼 수 있어야 한다.

측정: 마크업 언어 속성 값과 스타일 시트 속성 값에는 픽셀 측정과 절대 단위를 사용하지 않는다.

가볍고 간결한 사이트

가벼운 사이트는 시간과 비용을 절약하여 사용자를 즐겁게 한다.

가겹고 간결한 사이트

최소화: 간결하고 효율적인 마크업을 사용한다.

페이지 사이즈 제한: 장비의 메모리 한계를 고려한 페이지를 설계한다.

스타일 시트 크기: 스타일 시트의 크기를 최소화한다.

스크롤링: 추가적인 스크롤링을 사용해야 하는 경우가 아니라면, 한 방향으로 스크롤을 하도록 제한한다.

네트워크 자원 절약

웹 프로토콜 기능을 활용하면 네트워크 부하와 대기시간을 줄여 사용자 이용을 향상시킬 수 있다.

네트워크 자원을 절약

오토 리프레쉬: 사용자에게 사전에 알리거나 중지 방법을 제공하지 않는 한, 주기적인 페이지 오토 리프레시는 사용하지 않는다.

경로 변경: 마크업으로 자동 경로 변경(redirection)을 사용하지 않고, 서버 설정을 통한 HTTP 3xx code 경로 변경을 사용한다.

외부 자원: 외부 자원의 링크 활용을 최소화한다.

CACHING: HTTP 응답에는 캐쉬 정보를 제공한다.

사용자 입력 가이드

모바일 장비에서 키보드 및 각종 입력 방법은 비효율적일 수 있으며, 효과적인 설계는 이러한 입력을 최소화 할 수 있다.

사용자 입력 가이드

키입력 최소화: 키 입력 횟수를 최소화한다.

텍스트 입력 최소화: 가능하면 텍스트 입력을 피한다.

기본값(default) 제공: 가능하면 미리 선택된 기본값을 제공한다.

기본 입력 모드: 장비가 지원하는 기본 텍스트 입력 모드, 언어, 포멧을 설정한다.

탭 순서: 링크, 폼 컨트롤과 객체를 이용한 논리적 탭 순서를 생성한다.

라벨 컨트롤: 모든 폼 컨트롤에 적절한 라벨을 붙이고, 명시적으로 라벨과 폼 컨트롤을 연계시킨다.

위치 제어: 라벨과 연관된 폼 컨트롤이 서로 적절한 위치에 있도록 한다.

모바일 유저 배려

시간이 부족하고 번잡한 상황에 있는 모바일 사용자들은 간결한 정보를 얻고자 한다.

모바일 유저를 배려

페이지 제목: 간단 명료한 페이지 제목을 제공한다.

명확성: 명확하고 간단한 언어를 사용한다.

한 눈에 의미 파악: 페이지의 내용을 간단 명료하게 하여 다음 페이지의 내용까지 파악할 수 있도록 한다.

제한: 사용자가 요청한 범위로 컨텐츠를 제한한다.

적절: 모바일 환경 사용에 적절한 컨텐츠를 보장한다.

적절한 페이지 사이즈: 장비의 성능과 네트워크 부하 등을 고려하여 사용하기 편리하고 유용한 크기로 페이지 사이즈를 분할한다.


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/03/29 10:22 2011/03/29 10:22
,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/6007

HTML CSS JAVASCRIPT로 IPHONE APPS 개발하기
IPHONE APPS 개발하기
저자 조나단 스타크 | 역자 성윤정, 황연주 | 출판사 아이티씨

Online Book : http://ofps.oreilly.com/titles/9780596805784/index.html

책소개
Object-C 혹은 Cocoa 없이 앱스토어 애플리케이션 만들기『HTML, CSS, JavaScript로 iPhone Apps 개발하기』. 이 책은 웹 개발자라면 누구라도 쉽게 아이폰 애플리케이션 개발자가 될 수 있도록 도와주는 안내서다. Objective-C나 Cocoa를 사용하지 않고 플랫폼 위에서 아이폰과 아이팟 터치를 위한 애플리케이션을 디자인하고 작성할 수 있는 오픈 소스 웹 기술들을 사용하는 방법을 배울 수 있다.

목   차

1장 시작하기
Web Apps VS. Native Apps
Web Programming 특강

2장 기본 아이폰 스타일링
첫 번째 단계
아이폰 CSS 추가하기
아이폰에 모양과 느낌 추가하기
jQuery와 기본적인 동작 추가하기
이 장을 마치며

3장 향상된 아이폰 스타일링
Ajax의 터치 추가하기
교통경찰 역할을 하는 iphone.html 작성하기
간단한 부가기능 추가하기
‘back' 버튼으로 되돌리기
Home Screen에 Icon 추가하기
Full Screen Mode
이 장을 마치며

4장 Animation
친구로부터 약간의 도움을 얻다.
Dates 패널 추가하기
Date 패널 추가하기
New Entry 패널 추가하기
Settings 패널 추가하기
하나의 HTML로 완성하기
jQTouch 사용자 정의에 맞추기
이 장을 마치며

5장 Client-Side 데이터 기억장치
localStorage와 sessionStorage
사용자 설정을 localStorage에 저장하기
Client-Side Database
이 장을 마치며

6장 Offline
Offline Application Cache의 기본
Online Whitelist와 Fallback 옵션
동적 Manifest 파일 생성하기
Debugging
이 장을 마치며

7장 Native
PhoneGap 소개
아이폰에 우리가 만든 애플리케이션 인스톨하기
JavaScript로 아이폰 제어하기
이 장을 마치며

8장 iTunes에 애플리케이션 올리기
아이폰 Distribution Provisioning Profile 만들기
아이폰 Distribution Provisioning Profile 인스톨하기
프로젝트명 변경하기
애플리케이션 바이너리 준비하기
애플리케이션 올리기
기다리는 동안
참고할 사이트


테스트 주도 개발
테스트 주도 개발 (CD-ROM 포함)
저자 켄트 벡 | 역자 김창준 외 | 출판사 인사이트

책소개

최근 주목받고 있는 프로그래밍 방법인 테스트 주도 개발, 즉 TDD를 설명한 최초의 책이자, 가장 권위적인 책. 테스트 주도 개발을 퍼뜨린 장본인이며 객체 지향 프로그래밍의 선구자 중 한 사람인 켄트 벡이 직접 썼다.

'테스트 주도 개발(Test-Driven Development)'은 테스트가 개발을 주도하는 방법이다. 테스트가 개발을 주도한다는 것은 테스트가 코딩의 방향을 이끌어 간다는 말이다. 테스트를 실패하는 코드가 없으면 코딩을 하지 않고, 코드 상에 중복이 있으면 제거한다는 간단한 규칙을 지켜나가면 자연스레 아름다운 코드가 천변만화 펼쳐진다. 덤으로 회귀 테스트도 생기고, 개발 과정 자체가 즐거워지는 보너스도 있다.

1부에서는 자바 언어를 사용해서 다중 화폐 코드를 작성하고, 2부에서는 파이썬 언어를 사용해서 단위 테스팅 프레임웍을 작성한다. 3부에는 이런 개발을 할 때 자주 등장하는 패턴들을 정리해 놓았다. 100여 개의 역주로 내용을 알기 쉽고 풍부하게 해설하고 있다. TDD를 국내에 처음 소개한 역자의 'TDD 수련법', '실전 TDD' 원고 추가했으며, 부록으로 TDD 시연 동영상 CD를 준다. 또한 한국어판 발간에 즈음한 켄트 벡 인터뷰를 수록했다.


저자 소개

<지은이>
켄트 벡(Kent Beck)
켄트 벡(Kent Beck)은 소프트웨어 패턴 운동의 선구자 중 한 명이며, CRC 카드와 HotDraw 드로잉 에디터 프레임워크, xUnit 유닛 테스팅 프레임워크를 개발했고, 리팩토링과 테스트 주도 개발을 소개했다. 또한 기민한 방법론(Agile Methodology) 중 가장 널리 알려진 익스트림 프로그래밍(Extreme Programming, XP)의 아버지다. 피플웨어로 유명한 톰 디마르코(Tom DeMarco)는 2001년 OOPSLA 컨퍼런스에서 "켄트 벡은 CMM 개발을 지휘한 와츠 험프리가 지난 10년 간 중요했던 것보다 더 중요해질 것"이라고 말했다. 켄트 벡은 현재 Three Rivers Institute 소속이다. 저술한 책으로는 Smalltalk Best Practice Patterns와 Kent Beck's Guide to Better Smalltalk 같은 스몰토크 패턴에 관련된 책들과 Extreme Programming Explained, Planning Extreme Programming(공저), Refactoring(공저), Contributing to Eclipse(공저) 등이 있고 현재도 여러 책을 집필 중에 있다.

< 옮긴이 >
김창준
현재 월간 마이크로소프트웨어 자문위원, 한국 XP 사용자 모임 설립자 및 코어그룹 멤버, XP 코치 팀 수석 코치.
다음커뮤니케이션, NHN, 한미 연합사령부, SKT, 삼성전자/전기 등에 XP 코칭, 교육, 컨설팅 등을 제공한 바 있다.
한국 XP 사용자 모임 http://xper.org 를 운영하고 있다.

강규영
현재 다음커뮤니케이션 R&D 센터에서 근무중. 한국 XP 사용자 모임 코어그룹 및 XP 코치 팀으로 활동하고 있으며 김창준씨를 도와 여러 XP 컨설팅에 참여.
개인위키 http://jania.pe.kr 을 운영하고 있다.

목  차

TDD 수련법 (by 김창준)
한국어판 인터뷰
 
1부 화폐(돈) 예제
 
1장 다중 통화를 지원하는 Money 객체
2장 타락한 객체
3장 모두를 위한 평등
4장 프라이버시
5장 솔직히 말하자면
6장 돌아온 ‘모두를 위한 평등’
7장 사과와 오렌지
8장 객체 만들기
9장 우리가 사는 시간(times)
10장 흥미로운 시간
11장 모든 악의 근원
12장 드디어, 더하기
13장 진짜로 만들기
14장 바꾸기
15장 서로 다른 통화끼리 더하기
16장 드디어, 추상화
17장 Money 회고
 
2부 XUnit 예시
 
18장 xUnit으로 가는 첫걸음
19장 테이블 차리기
20장 뒷정리하기
21장 셈하기
22장 실패 처리하기
23장 얼마나 달콤한지
24장 xUnit 회고
 
3부 테스트 주도 개발의 패턴
 
25장 테스트 주도 개발 패턴
26장 빨간 막대 패턴
27장 테스팅 패턴
28장 초록 막대 패턴
29장 xUnit 패턴
30장 디자인 패턴
31장 리팩토링
32장 TDD 마스터하기
 
부록 A 영향도
부록 B 피보나치
마치는 글 (by 마틴 파울러)
실전 TDD (by 김창준, 강석천)


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/03/29 10:00 2011/03/29 10:00
, , , , ,
Response
A trackback , a comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/6008

하늘나라 수학 공식

가진 것 하나를 열로 나누면
우리가 가진 것이 십 분의 일로 줄어드는 속세의 수학과는 달리
가진 것 하나를 열로 나누었기에
그것이 ‘천’이나 ‘만’으로 부푼다는 하늘나라의 참된 수학,
끊임없는 나눔만이 행복의 원천이 될 수 있다는
행복 정석을 그들과의 만남을 통해서 배우게 된다.
-이태석 신부, ‘친구가 되어 주실래요?’에서

‘울지마 톤즈’로 세상을 울린 故 이태석 신부님 글입니다.
이태석 신부는 부족한 것들 때문에 불편한 점도 있지만
부족한 것들 덕분에 깨달음도 많이 얻는다고 말했습니다.
무엇보다도 작은 것들에 대해 감사하는 마음을
덤으로 얻게 되어 기쁨이 크다고 말합니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/03/29 09:12 2011/03/29 09:12
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/6006

땡볕에 선 낙타

낙타는 위기를 맞으면
술수를 쓰지 않고 도전한다.
정공법으로 승부수를 던지는 것이다.
땡볕에 쉴 그늘도 없을 때 낙타는 오히려
얼굴을 햇볕 쪽으로 마주 향한다. 햇볕을 피하려
등을 돌리면 몸통의 넓은 부위가 뜨거워지지만
마주 보면 얼굴은 햇볕을 받더라도 몸통
부위에는 그늘이 만들어져서 어려움은
오히려 줄어들기 때문이다.


- 최형선의《낙타는 왜 사막으로 갔을까》중에서 -


* 우리도 이따금 사막을 헤맵니다.
모래는 뜨겁고 땡볕은 더 뜨겁습니다.
몸을 돌려 땡볕을 피하느냐, 아니면 낙타처럼
정면으로 땡볕에 맞서느냐, 선택의 기로입니다.
정면으로 도전하면 새로운 길이 열립니다.
사막도 아름답습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/03/29 09:10 2011/03/29 09:10
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/6005


블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2011/03   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Statistics Graph

Site Stats

Total hits:
185361
Today:
364
Yesterday:
328