본문 바로가기

나만의 작업/dW

[dW] JUnit과 TestNG 자세히 살펴보기 JUnit 테스트 픽스쳐는 특정 로직이 테스트 전후에 실행되도록 보장하는 하나의 약정이므로 손쉽게 재활용할 수 있다. JUnit 4 이전 버전에서는 setUp() 메소드에서 각 메소드마다 필요한 일들을 명시하면, 각 테스트 메소드가 실행되기 전에 각각 한번씩 실행이 되었다. 하지만 픽스쳐에 따른 상당한 오버헤드가 있었고 이 메소드를 한번만 하게 하려면 한번만 실행되도록 지정하는 방법이 번거로웠지만, JUnit 4에서는 모든 테스트에 대해 또는 전체 클래스에 대해 한 번 픽스쳐를 실행하거나, 아예 실행하지 않을 수 있도록 좀더 유연해 졌다. 클래스를 겨냥한 @BeforeClass, @AfterClass : 한 클래스에서 한번만 일어나도 되는 일들을 정의 메소드를 겨냥한 @Before, @After : 각 ..
[dW] 사람을 위한 자동화: 연속 테스팅 개발자라면 프로그램을 짤때마다 항상~ 고민되는 테스트를 어떻게 최대한 구멍없이 하여 멀쩡한 프로그램을 짤까~~가 늘~ 고민중의 하나이겠지요. Junit을 이용하여 단위테스트를 하긴 하지만, Database를 사용한다면 기본적인 CRUD 테스트 메소드 말고 내 눈에 안보이는 구멍난 부분을, 더 많은 기능을 복잡하게 하는 부분을 어떻게! 어떻게!! 테스트해야할까.. 고민에 빠져서 자료를 찾아보니... 사람을 위한 자동화: 연속 테스팅 (한글) 이 글에선 많이 유명한 Junit과 DbUnit을 쓰라는 간략적인 내용이 나와있고, 또 성능에 대한 고민은 JUnitPerf이라는 성능 테스트 도구를 이용하면 되는군요. JUnitPerf는 Junit과 함께 작동하는 프레임워크로 미리 정해진 시간 안에 테스트가 미쳐 다..
[dW] 초보자를 위한 유닉스 팁과 기교, Part 4 이 튜토리얼에선 본(Bourne) 셸 스크립트로 프로그래밍을 작성하여 처리하는 예제가 있습니다. 제가 모르는 것만 정리해 둡니다~ 더 자세한 내용은 링크를.. 이용해 주세요^^ 주석 : 셸에서 # 기호는 주석 행을 뜻한다. (쓸일이 없어서 몰랐군..) bc를 이용하여 진법 변환하기 bc는 임의의 정밀도를 제공하는 계산기 언어(arbitrary precision calculator language)로, 대다수 유닉스 배포판에서 제공한다. 출력 진법을 지정할 수 있으므로 10진법 이외에 다른 진법으로 결과를 출력할 때 유용하다. 인라인 입력 Here-document를 생성하려면 명령행에서 셸 연산자
[dW] iBatis에 관한 글들 iBatis에 관한 글을 찾다가 좋은 글 발견!~ dW에 있는 내용인데 보려면 로그인이 필요하지만 단계별로 따라하기 좋은 문서이다. Improve persistence with Apache Derby and iBATIS, Part 1: Initial configuration, semantics, and a simple test - What is iBatis? - Advantages of iBatis - iBatis Data Mapper semantics - Configure derby and iBatis - Test derby and iBatis Improve persistence with Apache Derby and iBATIS, Part 2: Data definition in Derby - JPet..
[dW] Dojo concepts for Java developers 자바 개발자를 위한 Dojo 컨셉 - Declaring classes and setting context 자바에 익숙한 개발자가 Dojo를 이용한 자바스크립트를 사용할 때 차이점과 혼돈을 해결해주기 위해~ Dojo 컨셉을 설명해 주는 영문 article이 있길래~ 간추려 남겨봅니다. 1. The JavaScript hash Hash는 curly brace ({})사이에 attribute의 set으로 표현된다. hash는 6개의 attribute로 이뤄져 있다. string, integer, boolean, undefined attribute, 다른 hash, function Listing 1. Example JavaScript hash var myHash = { str_attr : "foo", int_a..
[dW] IBM campus wizard 모집 어느덧~ 2008년의 마무리를 알려주는 2009년 4기의 IBM campus wizard 모집을 하는군요. 대학생만 대상으로 하는거라, 저는 참여할 수 없지만 제가 대학생일때 이런게 있었다면, 참여를 꼭 했을텐데.. 그땐 하지도 않았고, 정보에 지금보다 더 뒤지고 있을때라..^^ 못해봤지만, 디벨로퍼웍스를 모니터링만 하는것으로도 현재 흐름을 파악하기에 좋은 것 같아요. 더구나 좋은 글도 많고~ 자기 능력을 올리는데 많은 도움이 될 듯 합니다.^^ 전국에서 모이는 대학생들과의 교류도 재미있을 것 같고~ 관심있으신 분들은 신청해보세요~^_^ 신청 -> http://www.ibm.com/developerworks/kr/event/monitor/4th/
[dW] XML 구문을 분석할 때 발생하는 오류 처리하기 어떤 프로그램이던지 오류가 있기 마련이고, 그에 대한 해결을 얼마나 어떻게 잘해야하는건 프로그래머에게 달려있다. 프로그램을 짜는 사람이 사용자입장에서 보아도 제일 화가나는 프로그램은 이런 오류가 있다! 하고 그냥 죽어버린다거나, 심지어는 오류를 뱉어내지도 않고 그냥 죽는 프로그램일 것이다. 이러한 오류를 처리하기 위해선, 우수한 오류 처리 코드 요건이 있는데.. 사용자를 우선한다. 뉴저지 주에 사는 컴퓨터 사용자든, 3층에 있는 웹 개발자든, 뉴욕 증권 거래소 소장이든, 일단 내 고객이 누구인지 파악하고나면, 해당 고객이나 고객층을 고려하여 코드를 작성한다. 내 고객이 일반 컴퓨터 사용자라면 프로그래밍 용어를 배제하고 이해하기쉬운 오류 메시지를 제공한다. (꼭 필요하지 않는 한) 프로그램 흐름을 방해하지..
[dW] 아파치 더비를 이용한 오프라인 Ajax 아파치 더비를 이용한 오프라인 Ajax apache derby인 Java 1.6에선 JavaDB로 포함되어 있는 database를 클라이언트 측의 캐시로서 이용하는 예가 나와 있습니다. derby에 대해서, 또는 Ajax에 대해서 많은 부분이 나와 있는 건 아니지만, derby를 오프라인일 때 로컬 데이터캐시로 활용할 수 있다~ 라는 아이디어를 보여주는 것 같군요. 비중으로 따지면 applet이 더 많이 나와 있는듯...하군요..
디벨로퍼웍스 늦가을 행사 “개발자들의 수다” 행사를 하는군요. 이번주 토요일 재미있는 행사를 하는군요 그러나 전 잠시 주말에 지방에 다녀와야해서 참석은 못하겠지만, 수다 예고편을 보니 재미있겠는데요.. 개발자들도 예쁜 옷 입고 앉아서 할려나?ㅎㅎㅎㅎㅎ 머 거기까진 아니겠지만, (밑의 그림을 보니..) 못가는 게 너무 아쉽습니다.ㅠㅠㅠ 일 시: 11월 8일 토요일 오후 2:00~6:00 장 소: 도곡동 군인공제회관 23층 온디맨드홀 (약도 참고) 참가 신청 참가 신청은 전자우편(dWkorea@kr.ibm.com)으로 해주시고, 신청시 이름, 소속, 연락처 등을 적어서 보내주시기 바랍니다. 장소 관계상 참가 신청은 선착순 200명으로 한정하니, 빠른 신청을 부탁드립니다. 그 동안 developerWorks에 기고하였던 김도형, 김석준, 김승권, 김영후, 김창준, 박재호..
[dW] 자바스크립트 개발 툴킷(JSDT) 살펴보기 Eclipse 3.4 Ganymede에 새로 추가된 자바스크립트 개발 툴킷(JavaScript Development Toolkit, JSDT)에 대한 소개가 dW 글에 올라왔군요. 자바스크립트 개발 툴킷(JSDT) 살펴보기 Javascript는 loosely typed이라 에디터를 제공하기 위해선 어려움이 많기 때문에 정말 많이 쓰이는 언어이지만 에디터는 그에 반해 너무 없는게 안타까운게 현실이지요. JSDT는 자바스크립트 언어를 모델링하고 클래스 구조를 실시간으로 반영한다고 하는데 잘~~~반영해 줄련지... 에디터로서 반드시 갖춰야 할 덕목! 자동완성, 문법에러, 플로우분석, 퀵픽스등의 기능을 제공하고, 문법 하이라이팅 폴딩/라인 넘버 전체 아웃라이닝, 클래스 , 함수, 필드 보여주기 대응하는 소괄호/..
[dW] 자바로 만든 자바스크립트 엔진, 리노 2회(2008년10월): 자바로 만든 자바스크립트 엔진, 리노 리노(Rhino)는 1997년 넷스케이프에서 '자바로 만든 자바스크립트 엔진'으로 스파이더 몽키(SpiderMonkey)를 본따 개발되었다. 자바 1.6에서는 javax.script 패키지에 포함되어 있다. 리노는 자바스크립트에서 자바 라이브러리를 사용할 수있게 해주고, 자바에서 자바스크립트 코드를 불러오고 실행할 수 있다. 자바 바이트코드로 컴파일할 수 있을 뿐 아니라 인터프리터를 이용할 수도 있다. 이런 내용이!
[dW] 다시 보는 자바스크립트의 역사 1회(2008년9월): 다시 보는 자바스크립트의 역사 하루종일 자바스크립트하고 노는데, 늘~ 알수없는 녀석이 어떻게 살아왔나 익히 들어와서 대충 알고있긴 하지만, 이렇게 정리되어 있어 한번 쭈욱 읽고나니 조금 더 묘한 느낌(지금 째즈음악을 듣고 있어서 그런가...)이 납니다. 역사 얘기도 나오고 자바스크립트의 특징도 살짝 나오고,, 지금은 비록 모습이 많이 없지만, 프로토타입 기반 객체지향 개념을 내세운 자바스크립트, 아이오(Io) 언어에 의해 계승되고 있다는 셀프(self)언어를 꺼내며 프로포타입 기반의 객체지향과 클래스 기반의 객체지향에 대해서도 살짝 나오고 있습니다.
[dW] RESTful한 웹 서비스 만들기 RESTful한 웹 서비스 만들기(REST와 RESTlet 프레임워크에 대한 소개) REST란 동사(verb)라고 볼 수 있는 이러한 요청들과 명사(noun)라 볼 수 있는 자원을 연결함으로써 행동(behavior)을 논리적으로 표현한다. * CRUD/HTTP 간의 대응 애플리케이션 작업 HTTP 명령 Create POST Read GET Update PUT Delete DELETE 장점 메시지가 아닌 이름이 부여된 자원에 REST가 의존하기에 애플리케이션 디자인 측면에서 볼 때 느슨한 결합이라는 게 쉽게 가능해지는데, 이는 하부를 떠 받치는 기술이 무엇인지 노출되지 않기 때문이다. REST의 아름다움은, 자원은 어떤 것이든 될 수 있고 표현될 수 있는 방식도 다양하다는 점이다. 바로 전에 보았던 예에서..
[dW] XML을 사용하는 좋은 습관 열가지 어쩜 이런글은 지나다니다 많이 본 글인 것 같은데.. 오늘도 역시 지나다가 한번 훑어보고 나중에 보기위해 포스팅합니다. [dW] XML을 사용하는 좋은 습관 열가지 1. XML과 인코딩을 정의하라 이런식으로 써주면 XML 구문분석기가 문서를 잘못 분석할 가능성을 줄일 수 있다. 2. DTD 또는 XSD를 사용하라 DTD를 정의하면 XML 문서 구조를 검증해 문제를 찾아내기 쉬워진다. 일부 XML 편집기는 자동 완성 기능에 DTD를 요구하는 반면, 스키마를 사용하면 실제 문서 구조를 설계하기가 훨씬 편리해진다. DTD를 사용할지 XSD를 사용할지 여부는 개발자가 처한 상황에 달렸다. 3. 항상 검증하라 JSLint는 자주 쓰는데 xmllint도 있군요. Validation xmllint는 libxml2 툴..
[dW] Ajax와 자바 개발을 간단하게 시리즈~ dW에서 3주동안 시리즈로 올라오는 글 중 웹개발에 도움되는 글이 있군요. Ajax와 자바 개발을 간단하게, Part 1 JSP 태그 파일로 자바스크립트 코드 동적으로 생성하기 내용인데 HTML과 URL 인코딩 함수 - 유틸리티 함수가 유용하군요~ Ajax와 자바 개발을 간단하게, Part 2 JSTL과 JSP 태그 파일을 사용하여 커스터마이징이 가능한 웹 컴포넌트를 만들기 Ajax와 자바 개발을 간단하게, Part 3 자바스크립트와 JSP 태그 파일을 사용하여 사용자 친화적이고 웹 폼에 안전한 검증 기능을 구현하기 사용자가 웹 브라우저에 입력한 값을 자바스크립트로 검사하는 valid 같은 특정 기능에 얽매이지 않고 더 일반적인 함수를 만들 수 있는 코드가 있군요. 저같이 수련이 많이 필요한 사람에겐~ ..
[dW] Groovy 유창하게 쓰기 IBM dW에 스크린캐스트로 올라온 글중에 26분 42초만 투자하면 그루비(Groovy)가 잘 생겼는지, 못생겼는지 대충 실루엣을 볼 수 있고, 간단한 특성, 클로져등을 볼 수 있습니다. 그루비 처음 공부할 때 이렇게 친절하게 설명한 동영상을 더 먼저 봤으면 더 이해가 쏙쏙 되었을텐데.. 이렇게 동영상으로 읊어주시니(?) 더욱 좋은 것 같아요 근데 이 영상을 보고 제목처럼 유창하게 쓸 수 있을지는 모르겠다는 의문이 들긴하지만 그루비가 궁금하신 분은 잠깐 시간내어 보시는 거에 강추합니다. Groovy 유창하게 쓰기
[dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관 유닉스 팁: 열 가지 더 좋은 유닉스 습관 유닉스를 많이 사용해 본 적이 없어서 더구나 콘솔로 사용할 일도 많이 없었지만최근엔 콘솔 사용하는것에 재미(?)를 느껴서 찾아보니 예전 대학교 1학년때 열심히 외우던명령어가 어렴풋이 배웠던 기억이 나는 명령어도 있군요.그냥 기록해놓으면 좋을 것 같아서.. 남겨 놓습니다..^^ 익혀야 하는 열 가지 더 좋은 습관 파일 이름 완성 기능을 활용하자.(bash 쉘에선 TAB: 쉘마다 키가 다르다)히스토리 확장 기능을 활용하자.(!$ 명령은 명령어에 사용했던 마지막 인수를 반환한다. )직전에 사용한 인수를 재사용하자.(!:1 연산자는 명령에서 사용한 인수를 반환한다. )pushd와 popd로 디렉터리를 탐색하자.대용량 파일을 탐색하자.편집기 없이 임시 파일을 생성하자.(..
[dW] Ajax 성능 도구 Ajax 성능 도구Ajax 성능에 향상을 주는 여러가지 도구와 부가 기능이 많이 있는데 저는 그 중 쓰는게 RAMBack과 YSlow밖에 없군요...하나씩 써봐야 겠군요... 이렇게 정리해 주니 좋은 것 같습니다. ㅎㅎ 참고로 Load Time Analyzer이 firefox 3 버젼을 아직 지원안하는군요 오픈 소스 도구Apache Bench: 서버 부하를 흉내 낸다.Tsung: 다중 프로토콜 부하를 시험한다.Bonnie++: 디스크 I/O 문제 추적Wireshark: 네트워크 트래픽 분석Comet 서버 응용 프로그램 도구: 더 긴(long-lived) 연결, 더 높은 병행성, 더 낮은 지연, 더 낮은 서버 부하를 위해 사용된다. 파이어폭스 부가 기능LiveHTTPHeaders(일 반적인 HTTP 트래픽..
[dW] 아파치 메이븐 2 시작하기 제가 몸담고 있는 팀에서는 소프트웨어 프로젝트를 빌드하고 관리하는 작업에 "아파치 메이븐(apache maven)"을 쓰고 있습니다. maven을 처음 쓸 때 dependency 관리에서 그만... 반하고 말았습니다. :) 이클립스에서 프로젝트에 필요한 library를 직접 걸어주고 또는 소스가 보고싶을때 매번 attach source를 해서 자주보는 소스는 다운을 직접 받아서 연결을 시켜줘야 하는데 maven을 쓰면 이 작업이 모두 xml파일(pom.xml)에 몇줄만 추가해주면 되니 너무 행복했지요. maven의 중앙 repository에서 알아서 jar파일을 다운로드하고 관련된 source도 받을 수 있게 할 수 있지요.. 이건 뭐.. 빙산의 일부분이겠지요~ 그래도 이것만 되도 행복할 것 같은데, 그..
[dW] REST 서비스 작성하기 REST 서비스 작성하기 이 글은 REST(Representation State Transfer)와 Atom Publishing Protocol(APP)에 관한 개념이 잘 나와있습니다. 그리고 REST/APP 기반의 서비스 구현 방법도 예로 나와있지요~ 본문 내용중에, REST 원칙은 URI(Uniform Resource Identifiers)를 사용하여 주어진 자원 표현의 위치를 알아내고 접근한다. 표현 상태(representational state)라 알려진 자원 표현은 만들어질 수도, 찾아올 수도, 수정될 수도, 삭제될 수도 있다. 예를 들어 REST를 적용하여 문서를 발행해 독자들이 이 문서를 읽을 수 있게 할 수 있다. 언제든 문서를 발행할 때는 웹 URL을 보여줘야 한다. 그래야 독자들이 그 ..