반응형
멘탈 모델은 사용자 경험에서 많이 사용되는 단어인데요. 사람들이 생각하는 과정, 행동하는 목적, 행동의 감정적/이성적 배경 등을 이해하기 위한 ethnography*(Google 사전)자료의 affinity diagram(친화도)이다.

처음에 컴퓨터 관련 서적에서 책을 찾다가, 인간공학 쪽의 서가에서 찾을 수 있었다. 심리학, 디자인, 인지과학 등 복합적 성격을 지닌 멘탈 모델 방법론을 이용해 컨설팅도 하고, 멘탈 모델 덕분에 긍정적인 경험을 한 고객들도 많다는 이야기에서 호기심이 일었다. 가격이 부담이 되지만, 컬러 인쇄라는 점이 눈에 띈다. 책의 디자인에서, 특히 각 장의 구분지를 진녹색으로 인쇄했다. 정말 기발했다. 책을 펼치는 부분을 살짝 밀어서, 색깔로 각 장의 시작 부분으로 빨리 이동할 수 있어 편리했다. 다양한 예제와 풍부한 그림도 도움이 되었다. 

UX 디자인 커뮤니케이션, UX 디자인 프로젝트 가이드처럼 다른 책에서 보았던 사용자 인터뷰나 페르소나에 관한 내용도 멘탈 모델을 기반으로 설명했다. 영화를 주제로 한 예제로 구성해낸 최종 멘탈모델 결과물이 기억에 남는다. 이런 수준의 자료라면 정말 다른 사람들이 납득하기도 쉽고, 개발 내내 프로젝트 성격을 일관되게 유지하는 데 좋을 것 같았다. 

UXinsight 시리즈도 Agile 시리즈처럼 계속 나온다고 하니 기대가 된다. Programming insight 시리즈처럼 어떤 소스 코드의 버전에 의존하지 않는다. 그래서 UX나 Agile의 근간이 되는 철학이나 개념이 잘 변하지 않기 때문에, 오랜 기간 참고할 수 있어서 좋다. 

* ethnography? 민족지학이라는 뜻으로 인류학에서 다른 문화를 연구하고 설명하는 분과이나, 멘탈 모델 방법론에서는 사용자로부터 수집한 사용자의 행동 자료라는 의미로 쓰이고 있다. 에스노그라피에쓰노그라피로 흔히 국내에서 표기한다. 책에서는 에쓰노그래피로 표기했다.
하지만 이 표기는 국립국어원 외래어표기법에는 맞지 않다. 일단 외래어 표기법에서 파열음 표기에 된소리를 허용하지 않으므로 '쓰'가 들어간 표기는 전부 틀리다. 발음기호에 의하면 미국식으로 읽을 때는 에스나그러피, 영국식으로 읽을 때는 에스노그러피가 되어야 한다. 아무래도 대다수의 사람들이 사전의 발음을 확인하면서 읽기보다, 철자의 발음을 그대로 읽었기 때문에 발생한 오류로 보인다.
멘탈모델
카테고리 컴퓨터/IT > 컴퓨터공학 > 컴퓨터공학/컴퓨터과학개론
지은이 인디 영 (인사이트, 2009년)
상세보기


반응형
반응형
국내에서 처음 발간된 분산형 버전 관리 도구 Git에 관한 입문서이다. 예전에 Github를 사용할 일이 있었다. 그때 꼭 서브버전과는 다르게 네트워크가 유지될 필요없이 커밋은 로컬에 할 수 있었다. 나중에 인터넷 사용이 가능할 때 push를 하면 되었다. 그래서 꼭 인터넷이 연결되지 않아도 자유롭게 로컬 저장소에 먼저 커밋이 가능한 점이 유연했던 것 같다. 서브버전을 써 봤다면, git의 방식은 명령어만 약간 다르다 뿐이지 변경 사항 저장할 때에는 유사한 점이 있어서 배우기 더 쉬울 것 같다. 

1부는 Git의 생 기초에 대해서 다루고 있는데, 이미 버전 관리 도구를 써 봤다면 가벼운 마음으로 읽어보고, 2, 3부를 차분하게 읽으면 도움이 될 것 같다. 3부에서는 서브버전에서 Git로의 마이그레이션 부분을 다루고 있어서, 이미 서브버전을 쓰고 있더라도 Git가 필요하다 싶을 때 유익할 것이다.
GIT분산버전관리시스템
카테고리 컴퓨터/IT > 네트워크/보안 > 네트워크 > 컴퓨터네트워크
지은이 트라비스 스위스굿 (인사이트, 2010년)
상세보기

반응형
반응형
지앤선에서 '조엘 온 소프트웨어를 넘어서'라는 책을 내 놓았다. 아래의 책 중 에이콘에서 나온 책의 2번째 권이라고 봐도 무방할 것 같다. 조엘 스폴스키는 책에서 자신이 블로그에 틈틈이 올린 글이 이렇게 책으로까지 나와서 10쇄를 거듭하며 Apress에서 팔릴 줄은 몰랐다고 했지만, 그가 솔직하고 날카롭게 풀어놓은 소프트웨어 개발 이야기가 그만큼 사람들에게 많이 회자되고 공감되었고 해석해도 될 것이다.

책 중간에 학습에 관한 부분이 많은 도움이 되었다. 이미 블로그로 틈틈이 글쓰기 연습을 하고 있지만, 기회가 되면 글쓰기를 많이 하는 습작 수업을 들어봐야겠다. 또한, C언어를 한 번 보고 잘 쓰지 않았는데, 이참에 기초도 다지고 복습도 할겸 C언어를 좀 잘 알아두어야 할 것 같다. 하드웨어를 떠난 소프트웨어는 상상할 수 없고, C언어는 그나마 포인터를 통해 메모리를 직접 제어하고 운영체제에 쓰인 언어이기 때문에 알아두면 운신의 폭이 넓어지리라 예상한다. 

채용에 관한 부분도 인상 깊었다. 포그크릭 소프트웨어는 정말 좋은 사람을 잘 낚는 어부인 것 같다. 인턴 제도를 저렇게까지 잘 활용하는 회사 이야기는, 이 책에서 처음 봤다. 우수한 인재를 뽑지 못하는데, 이력서 뒤지느라 비용만 날리는 다른 회사들은 바짝 정신 차리고 긴장해야 할 것 같다. 

기존의 책에서 꽤 흥미를 느꼈다면, 이 책에서도 흥미를 느낄 수 있을 것이다. 다만 조금 아쉬운 점은 역주가 너무 많아서 가독성이 떨어졌다. 차라리 '각 장의 뒤에 역주를 정리하면 더 나았을 텐데'하는 생각이 든다. 본문에 문맥상 꼭 언급해야 하는 것, 이건 꼭 부연설명이 필요하다는 건 본문 안에 괄호에 포함시킬 수가 있다.
MOREJOELONSOFTWARE(조엘온소프트웨어를넘어서)
카테고리 컴퓨터/IT > 컴퓨터공학 > 소프트웨어공학
지은이 조엘 스폴스키 (지앤선, 2009년)
상세보기

조엘 스폴스키가 쓴 다른 책의 번역서는 아래와 같다.
조엘온소프트웨어
카테고리 컴퓨터/IT > 컴퓨터공학 > 소프트웨어공학
지은이 조엘 스폴스키 (에이콘출판, 2005년)
상세보기

도와주세요!팀장이됐어요+똑똑하고100배일잘하는개발자모시기세트
카테고리 컴퓨터/IT
지은이 조엘 스폴스키 (위키북스, 2009년)
상세보기



반응형
반응형
웹 인터랙션의 75가지 패턴을 부제로 달고 있는 UX insight 시리즈 도서 중 하나이다. 유저 인터페이스 중 프로그램 보다 웹 인터페이스의 경향을 분석하여, 반복해서 사용되는 부분을 패턴화해서 소개한다. 심리학적이나 인지과학적인 아이디어가 필요한 유저 인터페이스 디자인에서, 사용자가 사용할 때 부딪힐 문제를 미리 파악해서 예방하는 것이 중요하다.

책에서 소개된 예를 들면, 오버레이 레이어가 다른 아이템의 정보를 가리는 것은, 다른 아이템의 정보을 동시에 파악하지 못하게 방해한다는 점에서 부정적인 패턴이다. 따라서 오버레이 방식을 도입하기 이전에 충분히 아이템 간 간격을 띄워서, 가려지는 정보가 없도록 패턴을 개선하는 식이다. 웹 페이지의 스크린 샷을 이용해서 설명하기 때문에, 구체적으로 패턴을 이해할 수 있다.
리치인터페이스디자인웹인터랙션의75가지패턴
카테고리 컴퓨터/IT > 웹사이트 > 웹디자인
지은이 빌 스콧 (인사이트, 2010년)
상세보기
반응형
반응형
프로젝트가 나타내는 86가지의 행동/양상을 자주 반복되는 패턴으로 나누어 설명한 책입니다.
제일 인상 깊게 읽었던 패턴은 '뉴스 세탁'인데요. 전달을 반복하면서 원래의 정보가 그대로 보존되지 않고, 노이즈가 껴서 원래 의도가 말단에 가서는 왜곡되는 현상을 말합니다.  예를 들면, 
학생들: 등록금 인상은 불가능합니다.
-> 총학생회: 등록금 인상은 무리입니다
-> 등록금책정위원장: 등록금 인상은 어렵습니다만..
-> 총장: 등록금 인상 충분히 가능합니다.
같은 식이 되겠죠.

많은 프로젝트의 성공과 실패가 과거에 있었고, 그런 실수에서 비롯된 교훈이나 빠지기 쉬운 함정이 있기 마련입니다. 프로젝트가 산으로 간다면, '이 책에서 그 패턴에 해당되는 문제'라는 걸 파악할 수 있습니다. 문제를 인식했다면, 이제 제시된 적합하고 가능한 해결책을 따라가면 되겠죠. 프로젝트 관리와 관련된 에세이라고 생각해서, 딱딱할 줄 알고 걱정했습니다. 저자가 재치있게 이야기를 풀어가고 지루하지도 않아서 시간 가는 줄 모르고 읽었네요.

프로젝트가 서쪽으로 간 까닭은
카테고리 컴퓨터/IT
지은이 톰 드마르코 (인사이트, 2009년)
상세보기
반응형
반응형

"더 쉽고 재미있게 소프트웨어를 개발하는 방법"을 부제로 단 Head First Software Development를 monaca님의 애자일 3종 강탈 1탄 이벤트를 통해 읽게 되었습니다. 1장에서는 훌륭한 소프트웨어 개발에 앞서서 훌륭한 소프트웨어 개발의 정의를 짚고 갑니다. 요구사항을 주어진 시간과 비용으로 제공하는 것인데요. 그 비밀을 이터레이션이라고 소개하고 있습니다. 이터레이션을 통해 프로젝트의 방향이 고객이 원하는 목표와 맞는지 자주 점검하는 일이죠. 이터레이션의 규모를 추정하는 부분은 불확실성과 화해하는 프로젝트 추정과 계획과 유사했습니다. 딱딱해질 수도 있는 주제를 그림과 화살표로 시각적으로 표현해서 더 쉽게 다가왔습니다. 요구사항 수집 부분은 사용자 스토리를 연상하게 하는 인덱스카드와 시작했는데요. 책에서 개발자 역할을 맡은 희와 혁의 짤막한 대화가 등장합니다. 책 안에 개발자와 고객에 사진과 이름을 붙여서 중간에 제시하니깐, 내가 그 스토리에 참여하는 것처럼 몰입이 잘 되는 효과를 가져온다고 봅니다. 거만한 자세의 고객에 말풍선을 붙여 말을 넣어 두니깐, 독자의 처지에서 괜히 서늘하더라고요. 읽다가 180쪽에 "이번 장의 훼방꾼이 나타났어요" 부분 때문에 깜짝 놀랐습니다. 헤드퍼스트의 파격적인 구성 때문에 소프트웨어 개발 도서임에도, 이런 반전이 갑작스레 등장할 수 있다고 생각합니다.

객체 지향 방법론인 단일 책임 원칙(SRP)나 DRY 원칙을 통해 리팩터링도 다루고, 버전 관리를 돕는 도구인 서브버전의 필요한 사용법도 소개합니다. 빌드 자동화를 위한 빌드 도구인 Ant를 소개했는데, Ant로 빌드 스크립트를 잘 짜두면 컴파일 명령을 입력하면서 실수하는 일도 줄어들고, 빌드할 때마다 편하리라 느껴졌습니다. 블랙 박스 테스트나 화이트 박스 테스트의 이름은 얼핏 들어본 적은 있지만 무얼 뜻하는지 정확히 모르고 있었는데, 테스트를 바라보는 시선도 다르고 집중하는 분야도 다르다는 걸 알게 되었습니다. 테스트 주도 개발 규칙을 설명하고 테스트로 나온 버그는 "버그 트래커"로 관리하라고 이야기합니다.  재사용 소스 코드가 등장하면서 개발자 집단은 엉망인 상황에 부닥치지만, 차근차근 순서대로 문제를 풀어나가는 개발자 집단이 흥미로웠습니다.

테스트 주도 개발, 사용자 스토리, 빌드 자동화, 버전 관리, 디자인 패턴, 리팩터링, 추정과 계획 등 소프트웨어 개발 전반을 골고루 요약해서 다루고 있다는 점이 이 책의 강점이라고 봅니다. 각 주제를 깊이 익힐 시간은 부족하고 이런 개념들에 익숙해져야 할 때 도움이 되리라 생각합니다. 책의 이야기가 자바 언어로만 씌어 있어서 다른 언어의 관점도 소개하면 좋겠지만, 소프트웨어 개발과 관련된 책이라 다른 언어 사용자에도 적용하는 데 무리가 없으리라 예상합니다.

HEAD FIRST SOFTWARE DEVELOPMENT
카테고리 컴퓨터/IT
지은이 댄 필로네 (한빛미디어, 2008년)
상세보기



반응형
반응형
The C Programming Language를 집필한 브라이언 커니핸이 지은 The Practice of Programming의 번역서이다. 인포북을 통해 같은 원서의 번역서가 2000년에 나온적이 있었지만 절판된 터라, 이 책은 인사이트에서 재번역되었다. 이 책에서는 C, C++, Java, Perl, Awk 등을 예제로 사용하고 있다. 스타일부터 표기법까지 9가지 장으로 프로그래밍에서 부딪치는 문제를 정리 및 분류하여 설명하고, 예제를 들어 이해를 돕고 있다. 각 장 말미의 요약이 잘 되어 있고, 관심있는 주제는 '더 읽어보기'를 통해 더 조사하도록 배려해 두었다. 원서가 1999년에 나온 터라, 현재 시점에서 출판된 지 거의 10년에 가깝지만 프로그래밍의 수련 원리는 크게 변하지 않았다는 생각이 들었다. 후기와 부록에서 문맥 요약을 통해 책을 한 번 읽고, 나중에 책에서 필요한 관련 내용을 찾고자 할 때 도움을 빨리 얻도록 구성했다.
프로그래밍 수련법
카테고리 컴퓨터/IT
지은이 브라이언 W. 커니핸 (인사이트, 2008년)
상세보기


반응형
반응형

Rapid Contextual Design의 번역서[각주:1]이자, UX Insight 시리즈의 첫 책입니다. 책 제목에 포함된 rapid[각주:2]라는 단어에 걸맞게, 이 책은 실무에 어떻게 적용하는 지를 이야기하는 데 집중합니다. 이 책에서는 허용된 시간에 따라 세 가지의 과정을 제안합니다. 세 가지를 시간이 적게 걸리는 순서로 나열하면 속전속결, 속전속결 플러스, 집중 래피드 CD[각주:3]입니다. 일정 별로 각 과정에 포함된 할 일과 피할 일을 대조하여 설명합니다. 책에서는 어피니티[각주:4], 아티팩트[각주:5], 페르소나[각주:6], 목업, 랩업 등과 같이 컨텍스추얼 디자인에서 쓰이는 용어와 그 의미를 소개합니다. 컨텍스추얼 디자인에 배경지식이 없고 생소한 용어들이 많이 등장해서 쉽지는 않았습니다. CD를 적용한 이초크, 애자일런트 등의 사례를 이론 부분 이후에 자세하게 제시해 줘서 유익했습니다. 정규 교과과정 중에서 컨텍스추얼 디자인을 포함하는 교육기관, 관련 강좌나 웹사이트 등을 소개하는 참고 자료가 부록으로 들어 있다면 더 좋았을 거라고 생각합니다.

컨텍스트를 생각하는 디자인
카테고리 컴퓨터/IT
지은이 캐런 홀츠블랫 (인사이트, 2008년)
상세보기

  1. 번역서의 제목인 컨텍스트를 생각하는 디자인에서 컨텍스트는 외래어표기법에 맞지 않다. Context를 발음기호와 외래어표기법 규정에 맞게 표기하면 칸텍스트(미)/콘텍스트(영)이 되며 컨텍스트라는 발음은 없다. 참고로 Contextual은 컨텍스추얼로 표기하는 게 맞다. [본문으로]
  2. 빠른, 급한, 신속한 등을 의미한다. [본문으로]
  3. Contextual Design의 축약형으로 책에 자주 등장한다. [본문으로]
  4. 어피니티는 외래어표기법에 맞지않다. affinity를 발음기호와 외래어표기법에 맞게 표기하면 어피너티가 된다. 어피니티라는 발음은 없다. [본문으로]
  5. 외래어표기법에 맞게 표기하면 아터팩트가 옳다. [본문으로]
  6. 영어 외래어표기법에 맞게 표기하면 퍼소너이고, 국립국어원 표준국어대사전에서는 persona를 페르소나(라틴어)로 기독교, 미술 분야에서 쓰이는 전문용어로 설명한다. [본문으로]
반응형
반응형
연습문제1.8
 (define (cuberoot-iter guess x)
    (if (good-enough? guess x)
        guess
        (cuberoot-iter (improve guess x)
                       x)))
 (define (improve guess x)
    (/ (+ (* 2 guess guess guess) x) (* 3 guess guess) ))
 (define (good-enough? guess x)
    (< (abs (- (* guess guess guess) x)) 0.001))
 (define (cuberoot x)
    (cuberoot-iter 1.0 x))

연습문제1.9

(+ 4 5)
(inc (+ (dec 4) 5))
(inc (+ 3 5))
(inc (inc (+ (dec 3) 5)))
(inc (inc (+ 2 5)))
(inc (inc (inc (+ (dec 2) 5))))
(inc (inc (inc (+ 1 5))))
(inc (inc (inc (inc (+ (dec 1) 5)))))
(inc (inc (inc (inc (+ 0 5)))))
(inc (inc (inc (inc (5)))))
(inc (inc (inc (6))))
(inc (inc (7)))
(inc (8))
(9)
아래
(+ 4 5)
(+ (dec 4) (inc 5))
(+ 3 6)
(+ (dec 3) (inc 6))
(+ 2 7)
(+ (dec 2) (inc 7))
(+ 1 8)
(+ (dec 1) (inc 8))
(+ 0 9)
(9)
위 프로시저의 프로세스는 되돌고, 아래 프로시저의 프로세스는 반복한다.
반응형
반응형
연습문제1.1

> 10
10
> (+ 5 3 4)
12
> (/ 6 2)
3
> (+ (* 2 4)(- 4 6))
6
> (define a 3)
> (define b (+ a 1))
> (+ a b (* a b))
19
> (= a b)
false
> (if (and (> b a) (< b (* a b)))
      b
      a)
4
> (cond ((= a 4) 6)
        ((= b 4) (+ 6 7 a))
        (else 25))
16
> (+ 2 (if (> b a) b a))
6
> (* (cond ((> a b) a)
           ((< a b) b)
           (else -1))
     (+ a 1))
16

연습문제1.2

(/ (+ 5 4 (- 2 ( - 3 (+ 6 (/ 4 5))))) (* 3 (- 6 2) (- 2 7)))
-0.246

연습문제1.3
(define (onethird a b c)
    (+ (cond ((> a b) (square a))
             (else (square b)))
       (cond ((and (> a b) (> b c)) (square b))
             ((and (< a b) (> a c)) (square a))
             (else (square c))
       )
    )
    )

연습문제1.4
> (define (a-plus-abs-b a b)
    ((if (> b 0) + -) a b))
> (a-plus-abs-b 1 2)
3
> (a-plus-abs-b 1 -2)
3
>

연습문제1.5
인자 먼저 계산하는 실행기의 결과: 0
이유: if 구문에서 true가 되어, 바로 0이라는 결과를 반환하기 때문이다.
정의한 대로 계산하는 실행기의 결과: (무한 루프)
이유: (p) 함수의 정의를 찾기 위해 무한 루프를 돌고, 결국 결과를 반환하지 못한다.

연습문제1.6
cond는 잇단식(sequence of expression)을 계산하고 마지막 식의 값을 돌려주므로 무한 루프에 빠지는 반면, if는 참이 아닐 때만 alternative를 계산해서 제곱근을 구할 수 있다.

연습문제1.7
> (define (good-enough?1 guess x)
    (< (abs (- (improve guess x) guess)) 0.001))
> (define (sqrt-iter2 guess x)
    (if (good-enough?1 guess x)
    guess
    (sqrt-iter2 (improve guess x)
                x)))
> (define (sqrt3 x)
    (sqrt-iter2 1.0 x))
0을 넣었을 때 전보다 오차가 적었다.
컴퓨터 프로그램의 구조와 해석 상세보기
해럴드 애빌슨 지음 | 인사이트 펴냄
프로그래밍 뼈대를 구성하는 기술을 설명한『컴퓨터 프로그램의 구조와 해석』. 이 책은 소프트웨어...《컴퓨터 프로그램의 구조와 해석》은 프로시저를 써서 요약하는 법과 데이터를 요약해서 표현력 끌어올리기...
반응형

+ Recent posts