2010-09-20

서평 - The Passionate Programmer

The Passionate Programmer에 대한 서평이다.

소프트웨어 개발자를 위한 처세술이다. 이 책은

  • 기술과 직업에 대한 방향을 설정(Choosing Your Market)하고
  • 실력을 배양(Investing in Your Product)하고
  • 실행(Executing)하고
  • 나를 알리(Marketing... Not Just for Suits)고
  • 반복적으로 꾸준히 노력(Maintaining Your Edge)하는

것 등을 다룬다.

특별한 것도 없고 특별하지 않은 것도 없지만 일반적인 처세술 책(읽어본 책이 많지 않아 짐작에 지나지 않지만)보다는 개발자를 염두한 것이기 때문에 읽어볼만하다.


저자가 제시한 가이드라인 중에 앞쪽에 나온 몇가지를 골라보았다.

  • 새롭고 전도유망(?)한 기술과 비즈니스 도메인에 대해서 관심을 갖는다.
  • 나보다 뛰어난 사람들과 일할 수 있는 환경을 찾는다.(Be the Worst)
  • 새로운 프로그래밍 언어를 배운다.(주로 사용하는 언어와 개념이 크게 다른 언어를 선택한다.)
  • 다양한 분야에 관심을 갖고(Be a generalist), 깊이 파고든다.(Be a Specialist)

Be a Specialist에 저자 생각을 인용한다.(51 페이지)

Too many of us seem to believe that specializing in something simply means not knowing about other things.

  • 특정 기술(자바, .NET, Rails 등) 자체에 과도하게 의존하지 않는다.
  • 스승을 찾고 스승이 된다.



많은 부분이 공자님 말씀이다...
 

2010-08-16

[링크] Invalid XML Character

UTF-8 인코딩을 준수하는 문자 중에도 XML에서는 유효하지 않은 문자가 있다. (CDATA 혹은 escape 처리해야하는 <, > 등과는 별개로)


아래 링크는 이 유효하지 않은 XML 문자를 제거하는 방법을 다룬 블로그 포스트이다.

Invalid XML Characters: when valid UTF8 does not mean valid XML

2010-08-08

HTML 텍스트 태그

단락을 구성하는 텍스트 중에서 특정 부분만을 다르게 표현해야 하는 경우가 있다. 이 때 의도와 결과(웹 브라우저에 표시되는 모습)를 구분하고 초점을 결과가 아닌 의도에 맞추어야 한다. 강조하기 위해서 진하게 표현하는 것일 뿐 진하게 표현하는 것 자체는 중요하지 않다.


XHTML에는 의도를 명시하기 위한 텍스트 태그와 표현을 위한 텍스트 태그가 있다.


의도를 명시하기 위한 태그는 다음과 같다.

  • abbr - 약어
  • acronym - 두문자어
  • cite - 인용 출처
  • code - 프로그램 소스 코드(컴퓨터 관련 문서와 매뉴얼에서 주로 사용)
  • dfn - 용어나 경구
  • em - 강조
  • kbd - 사용자가 (키보드로) 입력하는 명령어(컴퓨터 관련 문서와 매뉴얼에서 주로 사용)
  • q - 인용글
  • samp - 텍스트로 표시되는 프로그램 실행 결과(컴퓨터 관련 문서와 매뉴얼에서 주로 사용)
  • strong - 매우 강조
  • var - 변수(컴퓨터 관련 문서와 매뉴얼에서 주로 사용)


표현을 위한 텍스트 태그는 다음과 같다.


  • b - 진하게(bold)
  • i - 기울이기(italic)
  • big - 크게(larger)
  • small - 작게(smaller)
  • tt - 모노스페이스 폰트로 표시하기(monospaced, teletypewriter)
  • sup - 텍스트를 위에 기입하기(어깨글자, superscripted)
  • sub - 텍스트를 아래에 기입하기(subscripted)


sup와 sub 태그를 제외한 표현을 위한 텍스트 태그는 사용하지 않는 것을 권장한다.


XHTML에서 삭제된 표현을 위한 태그들도 있다.

  • blink - 텍스트 깜빡이기
  • strike - 가운데 줄 긋기
  • s - strike와 동일
  • u - 밑줄 긋기
  • basefont - 페이지 전체 글꼴 설정
  • font - 글꼴 설정

cite와 q

q 태그는 인용하는 내용 자체를 명시하는데 사용하고, cite 태그는 출처를 명시하는데 사용한다.

홍세화 기자는 한겨레 신문에 기고한 <cite>의식과 정서</cite> 칼럼에서 정운찬 전 총리에 대해 <q>애당초 그의 정서는 불관용으로 악착스런 이 정권에 어울리지 않았다. 그러나 그는 권좌의 길을 택했다. 후배와 제자들의 끈질긴 만류가 있었지만 소용없었다. 그에게서 학문적 심지로서는 유약한 대신 “우리가 나라를 이끄는 주역이다”라는 주장 뒤에 숨어 있는 권좌에 대한 친화력에서는 무척 강한 한국 사회 엘리트의 자화상을 확인한다는 것은 즐거운 일이 아니다.</q>라고 평가하고 있다.

abbr과 acronym

두 태그를 나타내는 단어 abbreviation과 acronym을 모두 약어로 번역하면 차이가 명확하지 않지만, acronym을 두문자로 번역하면 그 차이를 쉽게 알 수 있다. abbr 태그는 한단어를 줄여 쓴 경우에 사용하고, acronym은 여러 단어의 앞 글자만을 대문자로 이어 표기한 경우에 사용한다.

  • abbr - Jan.(January), Mr(Mister), Ltd.(Limited), ad(advertisement), exam(examination)
  • acronym - CEO(Chief Executive Officer), BBC(British Broadcasting Corporation), DOS(Disk Operating System)

2010-05-13

SAS

대학 때 통계 분석 패키지를 판매하는 회사로 SAS를 처음 알았다.

그러다가 예전 글에서 좋은 회사라고 들었다. 그때까지만 해도 독일 회사인줄 알았는데^^


한겨레 Insight 기사를 보니 부럽다.

2010-04-27

JUnit 이야기

JUnit에 대해서 새롭게 알게 된 사실들.


실행 시간을 기준으로 테스트 실패 여부를 판단할 수 있다.

@Test(timeout = 130)
public void something() {
    ...
}


Ignore Annotation으로 테스트가 실행되지 않도록 할 수 있다.

@Test
@Ignore
public void something() {
   ...
}


TestSetup 클래스로 전체 테스트에 대한 초기화를 수행할 수 있다.

동일한 테스트를 파라미터화해서 여러번 수행할 수 있다.

@RunWith(value = Parameterized.class)
public class SomeTest {

    @Parameters
    public static Collection<Some> getSomes() {
        return ...
    }

    public SomeTest(Some some) {
        ...
    }

    @Test
    ...
}



EasyMock과 JMock이라는 Mock 라이브러리가 있다.

Ant를 사용할 때 Ivy를 이용해서 라이브러리를 관리할 수 있다.


Winstone이라는 서블릿 엔진이 있다.

hamcrest 라이브러리로 assert 기능을 확장할 수 있다.

HtmlUnit, Selenium, HtmlUnit, JsUnit, Rhinounit, Jslint, jslint4java

Cobertura
라는 테스트 커버리지 툴이 있다.

2010-04-26

서평 - 웹 폼

웹 폼(Web Form)에 대한 Web Form Design: Filling in the BlanksForms that Work: Designing Web Forms for Usability에 대한 서평이다.


웹 폼에 대한 책을 쓸 생각을 하다니... 제한적인 소재 때문인지 두 책 모두 200페이지 정도로 읽기에 부담이 없다. 창조적이지는 않지만 애플리케이션을 개발하면서 한번쯤 고민하거나 해야할 내용들을 잘 정리해 두었다.

당연하게 생각되는 내용들이 많지만 그건 책을 읽었기 때문일 게다. 이 두 책은 애플리케이션을 개발하면서 당면할 소소한 문제들을 해결하기 위해 투자해야 하는 시간을 크게 줄여주는 미덕이 있다.


이 책은 같은 주제를 다루지만 차이가 있다.  첫번째 책은 How(구현이 아닌 디자인 측면에서)에, 두번째 책은 Why에 방점이 찍혀있다. 따라서 두 책을 모두 읽는 것이 도움이 될 듯 싶다.

2010-04-20

서평 - Effective UI

Effective UI에 대한 서평이다.

30 페이지는 정독하고 나머지는 그냥 큰 글자만 보는 수준에서 훌터봤다.


어쩌자고 책 제목을 그렇게 지웠을까? Effective JavaEffective C++ 등과 같은 명저 반열에 오르고 싶었던건가. UX를 하는 사람들이라서 네이밍 혹은 마케팅에 탁월한걸까? 그 탁월함이 글쓰기에 발휘되었다면 좋았을 것을...

물론 오해다. 저자들 다수가 일하는 회사 이름이 그럴 뿐이다.


책에 UI는 없다. UX도 없다. 이 단어들이 등장하지 않는 것은 아니다. 자주 등장하지만 이 책은 좋게 평가해도 소프트웨어 개발 방법론에 지나지 않는다. 재미없기로는 대기업 SI 방법론 매뉴얼과 우열을 가르기 쉽지 않다. 대기업 SI 방법론 매뉴얼은 간결하다는 미덕이라도 있다만 이 책은 그나마도 없다.

소프트웨어 개발 방법론이라면 이 책보다 월등히 좋은 책들이 많다는 점에서 이름 하나는 잘지었다.


자 그럼 Effective UI는 어디에 있는가?