반응형
책 소개
사용자가 필요로 하는 소프트웨어를 개발하기 위해 '사용자의 이야기'를 듣는 것부터 시작하는 것은 당연하다. 사용자 스토리는 실제 사용자들에게 정말 가치 있는 기능을 간단명료하게 기술한 것이다. 이 책의 저자 사용자 스토리를 작성하는 것은 물론이고, 사용자 스토리를 여러분의 개발 프로세스에 접목시킬 수 있도록 하나에서 열까지 충실히 설명한다.

스토리를 잘 작성하기 위한 포인트뿐만 아니라 조심해야 할 사항들까지 배우게 될 것이다. 사용자 스토리를 수집하는 현실적 방법들도 배우게 된다. 실제 사용자를 만나볼 수 없는 상황에 대한 대처 방법도 배울 것이다. 사용자 스토리를 수집한 다음 조직화하고 우선순위를 부여하여 계획, 관리, 테스트 단계에 활용하는 방법을 설명한다.

사용자 역할 모델링 - 사용자들의 공통점과 차이점을 이해
스토리 수집 - 사용자 인터뷰, 설문, 관찰, 워크숍
대리 사용자(proxy)와 작업 - 관리자, 교육담당, 영업 등
인수 테스트 작성
스토리를 이용한 우선순위, 일정계획, 비용추정
각 장 끝에 연습 문제 포함   <출처 : 네이버 책 >


웹서핑중 눈에 들어온 책이 있어서 구입예정도서 목록으로 올려놓게 되었다.

사용자스토리 라는 책 이름을 보고 별 관심이 없었지만 책소개를 읽다가

멀리서 지켜보던 지름신이 강림 한것이다. 하지만 아직 집에 읽지 않은 책이 있기에

지름신의 신탁을 거절하고 훗날을 기약하기로 마음을 먹을수 밖에...

현재 SI업체에서 일을 하고 있기에 현업들 즉 사용자와 접할 기회가 많이있는 편이지만

커뮤니케이션 부분에서 많은 부족함을 느끼고 있기 때문에 구입예정도서로 찜! 만 했다.

책 이름을 보니 얼마전에 읽었던 "아키텍트 이야기"란 책에 나온 문구가 생각난다.

그리고 "아키텍트 이야기" 中
"기술자라면 자신의 기술을 충분히 활용하고 또한 넓히고 싶은 게 당연하다.
사용자의 웃는 얼굴을 보고 싶고 거기에서 보람을 느낄 것이다."

위 문구가 번뜩 떠오르게 되서 이렇게 포스팅을 하고 잊지 않고 나중에 구입하려고 한다.

처음 프로그래밍에 입문때 상상하던 것이 내가 만든 프로그램을 사용하는 사용자의 모습이다.

물론 감탄하고 편하다 이거 잘만들었네! 하는 모습을 상상하면서..

정작 개발자로 일하면서 무엇이 중요한지 자꾸 잊어먹고 일을 하게 되는거 같다.

일정에 치여 정작 사용자의 편의성은 뒤로한채 개발 편의만을 생각하게 되는건 아닌지 하는 생각이...

빠른시일내에 구매하여 읽고 서평을 올리도록 해야겠다.^^

---- 문득 포스트를 올리고 다시 수정하면서 생각이 든것이 있다.
이번 포스트를 올리면서 아니 최근 들어 포스트를 올리면서 내가 쓴 글에 많은 어색함이 느껴진다.
그것은 말투의 어색함이 감돌기 시작한것이다. 이전부터 내 블로그는 나만의 작은 공간이라고 생각했지만
어느 순간부터 인지 내 블로그를 자주 방문해 주시는 분들이 계시기 때문이다.
그래서 인지 아직도 많이 부족하지만 글 하나에도 조금 더 신경이 쓰이게 되어가는 것이다.
그러한 상황에서 오는 포스트의 어색함은 아직 부족한 블로거가 더 발전하는 과도기라 생각한다.
어느샌가 내 블로그에 글들은 다른 사람을 향한 이야기와 같이 변화해 가는거 같다.
블로그를 통해 다른 사람들과 커뮤니케이션을 하고 있는것이다.
이것이 블로그를 하는 이유가 아닐까 생각한다. ^^ 내가 찾은 블로그의 매력!!

//2009.06.23
10년지기 친구인 찐이에게 필살 조르기 어택!! ㅎㅎ 득했습니다. 갑자기 책이 너무 많아졌네요.
참고로 형석 ♡ 진이 커플에게 각각 책 선물 받았습니다. 둘의 첫 만남에 아주 조그만 기여를 했기에..
고맙다.. 친구들아~!! 내가 조르기는 했지만 잘 읽을께..ㅋㅋ 둘이 행복해라..^^

//2009.07.18
책을 선물받고 한번 훑어 보는데 3주 가량의 시간이 걸린거 같다. 흠.. 꽤 걸렸군..
책을 읽는데 얼마간의 시간이 걸렸는지는 중요하지 않을 것이다. 하지만 틈틈히 짬을 내어 읽다보니
머리속에서 그 내용이 쭈욱 연결되지 않는 것 같다.  조금 읽다 몇일 뒤에 이어서 읽고 하다보니.
책의 내용은 내가 생각했던 것과 다른 내용이여서 조금 난감하기도 하였다.
사전지식 없이 그저 책 이름과 대충 추정했으니.. 이책은 개발방법론에 관한 책이다.
애자일 방법론과 부합하는 내용의 방법론의 일종이고 읽으면서도 흠 이렇게 하면 괜찮겠군..하고
생각도 하면서 읽었지만 아직 초급 개발자인 나에게는 조금 맞지 않는 책인듯 하다.
책의 내용을 내가 적용해 볼수도 없는 입장이니 말이다. 그리고 내가 겪은 프로젝트에 대해 적용한다고
생각했을때 한국에서 하는 프로젝트에 적용하기엔 문제가 있을꺼 같다는 생각이 들었다.
작은 소규모의 프로젝트에는 적용해 볼수 있지만 대규모 프로젝트나 거의 대부분의 SI 프로젝트에서는
한국의 특성상 수시로 바뀌는 요구사항의 변경/추가를 커버하기에는 무리 일듯하다.
책의 내용이 잘못됫다거나 부족한것은 절대 아니다. 한국과 서양의 특성이나 관점의 차이일듯 하다.
개발방법론에 관한 책인지 모르고 읽었지만 이슈가 되었던 애자일 이라던가 익스트리밍 이라던가 에 대한
약간의 맛을 보았다는 데에 나름대로 만족하고 있다. 여유가 된다면 소규모 프로젝트에 적용하고픈..
개인적으로 아는 지인들과 함깨 작은 프로젝트를 같이 해보고 싶다. 거기에 여러가지 배운 것들을 적용해서
개발 방법론이라던가  디자인 패턴, 지속적인 통합(Continuous Integration), 등등...
반응형

1. 스스로 행복하다고 주장하고 있는 신체 장애자들이 있다.

   그들은 자신들이 가지고 있지 않은 것에 대해 불평하는 대신에 자신들이 가지고 있는 것을

   평가하는 법을 알고 있다.

 

2. 완벽하게 늦기 보다 불완전하게 시작하는게 낫다.

   왜 원하지도 않는 일을 하고 있는가?

   왜 진정으로 하고 싶은 일을 하지 못하고 있는가?

   그 대답은 언제나 똑같다. "두렵기 때문"이다.

   두려움은 변화의 천적이다. 두려움은 조기경보 시스템임과 동시에 인생의 최대 장애물이기도 하다.

   두려움의 본질은 경직이다. 두려움이 지배하는 곳에서는 그 어떤 변화도 생길 수 없다.

   두려움의 그늘 속에서 아이디어는 사멸되고, 사고는 메마르고,

   창의성과 자신감은 가라앉으며, 손과 발은 마비된다.

   두려움은 언제나 정체상태를 유지하려는 생각밖에는 없다.

   그러므로 문제는 두려움을 가지고 있는지의 여부가 아니다.

   두려움에 어떻게 대처하는가?

   두려움이 나를 다스리는가?

   내가 두려움을 다스리는가?

   이런 문제들이 진정으로 중요하다.

 

3. 행동할 땐 생각을 버려라...

   옛날에 정확히 386개의 다리를 가진동물이 있었다.

   그런데 달팽이가 이를 시기해서 그를 못움직이게 만드는 방법을 찾았다.

   그건... 그 동물에게 달팽이가 한 이 질문 때문이었다.

   "한번 말해봐.. 넌 도대체 그렇게 많은 다리들을 어떻게 움직이는 거니?

    그 많은 다리들이 서로 엉키지 않게하는 게 보통 어려운 일이 아닐 텐데 말야"

   그러자 그 동물은 잠깐 멈추어 생각해보았다..

   "내가  도대체 어떻게 하고 있는 거지?"

   그런후 하나하나의 다리에 신경을 쓰면서 걸어보려 했으나 결국 발이 엉켜 엉망이 되었다는 이야기...

  

4. 바꾸거나,포기하거나 혹은 사랑하기...

   어떤 상황과 대면하게될 때 그 순간의 상황과는 상관없이 주어진 선택의 자유를 사용하는데

   기본적으로 세가지 가능성이 있다

   바꾸기,포기하기,사랑하기...

   내가 지금하고 있는 일에  "YES!!라고 말 할 수 있는가?

   그럴 수 있다면 그것을 사랑하면 된다.

   그럴 수 없다면 상황을 어떻게든 바꾸어야 한다.

   그러기도 원하지 않는다면 어떻게든 바꾸어야 한다.

   그러기도 원하지 않는다면 그 일을 포기해야만 한다.

 

   예화 : 베아테의 남편인 프란츠가 저녁에 집으로 돌아왔을 때 큰 일이 터졌다.

           프란츠가 다니는 은행은 경쟁사와 합병을 했고,

           주요 고객 담당부서의 책임자였던 그가 앞으로 어떻게 될지는 신만이 알고 있는 상황이었다.

           "당신이 상황을 어떻게든 바꿀 수 없어요?" 베아테가 물었다.

           프란츠는 절망적으로 고개를 흔들었다.

           "아니, 난 할 수가 없어, 그런 일은 위에서 하는 일이야"

           "만약 당신이 아무것도 바꿀 수 없다면, 이제라도 사표는 낼 수 있잖아요.."

           "사표?" 프란츠는 다시한번 고개를 흔들었다.

           "그래도 그렇게 까지는 하고 싶지 않아."

           "흠... "베아테는 깊은 생각에 빠졌다.

           "그러니까 당신은 아무것도 바꿀 수도 없고, 사표를 내기도 싫다는 거지요..

            그렇다면 내 생각에는 만족하는 것 외에는 다른 방법이 없어요.

            지금의 상태에서 최상의 것을 이끌어 내도록 노력해야만 해요.

            마치 지금 상황이 당신이 원했던 일인 것 처럼 그렇게 말이예요?"

* 현명한 베아테와 같은 사람을 만나고 싶다..


//2009.07.16
내가 할수 있는 일을 하는거다.. 누군가 내가 원하는대로 바꿔주길 바라는건 어리석을뿐이다.
두려움이 내 온몸을 휘감는다. 누군가 날 구원해 주기를 바랄뿐...
내가 선택하기에는 너무 두렵다. 변화가 두렵다. 선택지는 이미 정해져있는 것을..
하지만 내 자신은 알고 있다. 두려움 뒤에 따라 오는 것은 새로운 것에 대한 설레임인것을..
오늘 내가 변하지 않으면 내일의 나도 그대로 일뿐이다..^^

반응형


책 소개
소프트웨어를 해부해서 설계와 구현 내용, 심지어 소스코드까지도 알아낼 수 있어서 최근 보안업계의 화두로 떠오른 리버싱. 복제방지기술 무력화와 상용보안대책 무력화로 무장한 해커들의 리버싱 공격 패턴을 파악하기 위한 최신 기술을 담은 해킹 보안 업계 종사자의 필독서. 소프트웨어의 약점을 찾아내 보완하고, 해커의 공격이나 악성코드를 무력화하며, 더 좋은 프로그램을 개발할 수 있도록 프로그램의 동작 원리를 이해하는 데도 효율적인 리버스 엔지니어링의 비밀을 파헤친다.

★ 이 책에서 다루는 내용 ★

■ IA-32 호환 프로세서용 컴파일러가 만든 어셈블리 언어 코드를 읽는 방법
■ 문서화되지 않은 파일 포맷이나 네트워크 프로토콜 해석
■ 리버스 엔지니어링이 합법인 경우와 불법인 경우, 그리고 불법일 때의 이유
■ 리버싱을 활용해 해커가 복사 방지 기술을 무력화하는 방법
■ 리버스 엔지니어링을 적용해 악성코드를 무력화하는 방법
■ 코드 리버싱을 막는 방어책과 효과적인 수행 방법
■ 닷넷 플랫폼 리버싱과 어셈블리 언어인 MSIL
■ 실제 악성코드 프로그램 분석 방법
■ 악성코드 프로그램을 이용해 공격자가 감염된 시스템 제어권을 획득하는 과정


★ 이 책의 구성 ★

이 책은 크게 4부로 나뉘어 있다. 1부는 이 책 전반을 이해하는 데 필요한 기본 내용을 제공하고, 2부에서 4부까지는 각각 리버스 엔지니어링 시나리오와 실례를 설명한다.

■ 1부. 리버싱 입문: 이 책은 로우레벨 소프트웨어를 이해하는 데 필요한 모든 기본적인 내용에 대한 논의로 시작한다. 알다시피 1부에서 모든 내용을 다루는 것은 불가능하다. 다만 이미 알고 있는 내용을 다시 되새겨주는 기회가 될 것이다. 1부를 읽으며 내용이 생소하다고 느껴지는 독자라면 이 책은 적합한 책이 아니다. 1부에서 주로 다루는 주제는 다음과 같다. 리버스 엔지니어링 소개와 다양한 적용 분야(1장), 로우레벨 소프트웨어 개념(2장), 마이크로소프트 운영체제의 내부(3장). 이런 주제와 일반적인 로우레벨 소프트웨어를 많이 접해 봤다면 1~3장은 굳이 읽지 않고 건너 뛰어도 된다. 4장은 다양한 타입의 리버스 엔지니어링 툴을 소개하고, 다양한 상황에서 적절히 사용할 수 있는 특별한 형태의 툴을 설명한다. 이 책에서는 전반에 걸쳐, 리버스 엔지니어링에 사용되는 갖가지 툴을 설명한다.

■ 2부. 리버싱 실전: 2부에서는 실제 소프트웨어에 대한 실제적인 리버스 엔지니어링 프로젝트를 수행한다. 각 장마다 다양한 종류의 애플리케이션에 대한 리버스 엔지니어링을 설명한다. 5장에서는 윈도우 내부 서비스와 API를 좀 더 잘 사용할 수 있도록 운영체제나 다른 업체의 라이브러리를 리버스 엔지니어링하는 방법을 알려준다. 6장에서는 데이터 리버스 엔지니어링 기술을 적용해서 문서화되지 않은 파일 포맷을 해석하는 방법을 설명한다. 7장에서는 리버스 엔지니어링 기술을 사용해 실행 바이너리에서 보안 취약점을 발견해내는 방법을 배워본다. 마지막으로 8장에서는 바이러스나 웜과 같은 악성코드 소프트웨어를 설명한다. 8장에서는 실제 악성코드 프로그램을 리버스 엔지니어링 해본다. 이는 악성코드 프로그램을 연구하고 위험성을 평가하기 위해 반드시 필요한 작업이다.

■ 3부. 크래킹: 3부에서는 복사 방지와 디지털 저작권 관리(DRM) 기술과 같은 특정한 형태의 보안 관련 코드에 대한 리버스 엔지니어링에 초점을 맞춘다. 9장에서는 복사 방지 기술의 일반적인 원리를 소개하고, 10장에서는 복사 방지와 DRM 기술과 같은 안티 리버스 엔지니어링 기술들을 설명하며 그 기술의 유효성을 평가할 것이다. 11장에서는 크래커가 복사 방지 메커니즘을 무력화해서 복사 방지된 컨텐츠를 훔치기 위해 리버스 엔지니어링을 어떻게 이용하는지 알아본다.

■ 4부. 고급 디스어셈블리: 4부에서는 실행 프로그램의 디스어셈블리 이외 부분을 다룬다. 12장에서는 마이크로소프트 닷넷 기반 플랫폼에서 작성된 가상 머신 기반의 프로그램을 리버스 엔지니어링하는 과정을 설명한다. 또한 닷넷 플래폼을 소개하고 그것의 로우레벨 어셈블리 언어인 MSIL(Microsoft Intermediate Language)도 설명한다. 13장에서는 디컴파일의 이론적인 설명과 그것이 어떻게 작동하는지, 네이티브 어셈블리 언어 코드를 디컴파일하는 것이 왜 그렇게 어려운 것인지 설명한다.

■ 부록: 인텔 IA-32 어셈블리 언어로 작성된 프로그램을 해석하는 데 도움이 될 수 있는 내용을 부록으로 다룬다. 단순한 어셈블리 언어의 레퍼런스 가이드를 넘어서 이 책이 제공하는 부록에서는 많이 사용되고 있는 컴파일러에 의해 제거된 컴파일러의 표현 방법과 코드, 그들을 구별하고 해석하는 방법을 설명한다.

//2007.07.09
ㅎㅎ 학교후배인 설화를 졸라서 사달라고 했다. 생일이 한참 지났지만 집요한 선물 조르기로 득템!!
가격대가 만만치 않아서 조금 미안하기도 하지만 어쩔 수 없다. ㅋㅋ
우리 후배 유썰~!! 고맙다. 잙읽을께.. ㅋㅋ  오빠가 담에 맛난거 사줄께 ㅎㅎ 쌩유~!

+ Recent posts