레이블이 서평인 게시물을 표시합니다. 모든 게시물 표시
레이블이 서평인 게시물을 표시합니다. 모든 게시물 표시

2014년 8월 5일 화요일

서평 - IT엔지니어의 제로부터 시작하는 영어공부법

오늘의 주제는 영어공부다. 그것도 프로그래머를 위한 영어공부. 

IT엔지니어의 제로부터 시작하는 영어공부법
ITエンジニアのゼロから始める英語勉強法



제목에서 부터 medicine의 smell이 느껴지지 않는가?

 원래는 아는분께 선물할 요량으로 구입을 하였는데, 일본어를 전혀 못하는 분인지라 책 내용을 번역해 소개해 보기로 한다. 책 내용은 일본인을 대상으로 하였지만 한국어에도 대부분 그대로 적용되므로 일본어를 한국어로 바꾸었다.

 이 책은 저자인 牛尾剛Ushio Tsuyoshi씨(필자가 소속한 Mamezou와도 인연이 있으신 분이다)가 영어 강연(Agile2011)에 연사로 초청되어 10개월만에 직접 체득한 영어공부법을 설명한 책이다. 저자는 IT엔지니어 답게 시중에 나와있는 여러 영어공부방법을 분석하여 자신에게 적용시킨 후 이 책을 내 놓았다. (역자: 책 전체적으로는 정찬용씨의 '영어공부 절대로 하지마라(영절하)'에서 많은 영향을 받은듯 하며 책 내용중에서도 직접 서명을 언급하며 일독을 권하고 있다. 영절하의 일본어판은 현재 일본에서도 상당히 많이 팔리는 영어공부 관련 서적중에 하나다.)

 우선 저자는 여러 영어공부법을 벤치마킹하여 다음의 다섯가지 공통되는 원칙을 찾아내었다.


 영어 공부법의 다섯가지 원칙


 사운드 퍼스트의 원칙Sound First

 먼저 귀가 뚤려야 한다. 이해를 하지는 못하더라도 우선 말로서 들릴수 있어야 한다. 인간의 뇌는 소리에 대해서 필터링을 적용하여 언어와 그 외의 소리(노이즈)로 구분하여 처리하는데, 외국어에 대해서는 언어가 아닌 노이즈로 인식을 하게 된다. 귀를 뚫는데 있어서 저자가 제시한 포인트는 다음과 같다.
  • 원어민의 발음에 최대한 가깝게 소리를 낼 수 있게 발음과 억양을 연습하는것이 맨 처음 이뤄져야 한다. (역주: 저자는 American Accent Training을 이용하여 매일 30분씩 한달정도 연습하여 그렇저렇 쓸만한 발음을 낼 수 있게 되었다고 책에 적고 있다. 문제는 이 책의 저자가 영어로 강연하는 모습을 유투브 어디에서도 찾아 볼 수가 없기때문에 스스로 말하는 쓸만한 발음이 어느정도인지 확인할 길이 없다는 점 이다. 이 책이 일본인에 의해 쓰여졌다는 사실을 잊지 말자.)
  • 영어에 사용되는 음을 머저 이해하지 않으면 듣기도 읽기도 잘 늘지 않는다.
  • 처음에는 의미를 이해하지 못하는게 당연하다. "음"에 대한 감을 단련해 두자. 

다이렉트 이해의 원칙Direct Understanding

  • 영어를 번역해서 생각하지말고 영어 그대로 이해한다.
  • 영어는 한국어로 1대1 번역이 불가능하다.

스피킹중심의 원칙Speaking Centered

  • 네이티브의 발음과 억양을 흉내내어 음독하는것은 영어를 유창하게 말하기 위한 초필살기이다.
  • 단, 한국식 발음으로는 해 봤자 아무소용 없다. 반드시 네이티브의 발음을 최대한 흉내낼것!
  • 음독시에는 스마트폰의 녹음기 기능등을 이용해 자신의 발음을 체크해 볼 것

문맥이해의 원칙Contextual Experienced

자잘한 단어나 문법이 아닌 전체적인 문맥으로서 대량의 문장을 이해하는 방법.
  • 단어도 표헌도 그 상황 안에서 의미를 파악해야 함.
  • 같은 상황에서 몇번이고 같은 표현을 마주함으로서 그 의미가 자연히 통하게됨.
  • 단어나 문법을 따로 공부할 필요는 없다. 그것보다 실생활의 영어를 대량으로 접해보자. 그러면 자연스럽게 몸에 익혀진다. 

선택과 집중의 원칙Choice and Focus

  • 영어는 크게 미국식과 영국식이 있어 어느쪽이든 선택해야만 한다.
  • 자신이 주로 사용하고 싶은 쪽으로 타겟팅을 해서 그쪽 분야의 영어를 집중적으로 공략한다. 예를들면 저자는 Agile개발이라는 분야에 타겟팅을 하여 집중적으로 공부했다고 함.

필자는 영어를 잘 하기 위해서는 뇌에 새로운 언어영역을 만들어야 한다고 말하고 있는데, 이를 영어뇌라 부른다.

이 책에서 제안하는 영어학습의 큰 그림

이 책의 저자가 제안하는 영어학습의 전체적인 모습은 다음과 같다.
 각각의 세부적인 사항은 인터넷에 공개된 정보가 많으므로 여기서 따로 설명하지는 않겠다. 다만, 기간을 정해놓고 각 기간마다 공부의 성과가 어느정도인지 스스로 체크해보고 레벨이나 학습법을 체크할 필요가 있다. 맞지 않는 레벨이나 방법이라면 셀프 피드백을 통해 자신에게 맞는 방법으로 바꿔 나갈 필요가 있다고 저자는 말한다. 이른바 영어공부의 린 방법론이다.

 위의 전체상에 대해 저자가 소개한 몇가지 팁은 다음과 같다.
  • 다독 : 영어에 기반이 아주 없는 사람이라면 우선은 영어동화책부터 시작한다. 이 책은 절대적인 '양'을 강조한다. 쉬운것 부터라도 많이 읽는것이 중요하다. (역자: 영어동화책 읽기는 필자 주변의 지인들도 많이 권하는 방법이다. 킨들이나 iBook,구글 플레이를  통해 무료 또는 상당히 저렴하게 구할 수 있다. 반드시 미리보기 등을 통해 자신의 레벨에서 사전 없이 읽을 수 있는 수준인지 살펴보고 구입하자. 참고로 필자는 수년전 동화책인줄 알고 헤리포터를 아마존서 샀다가 고스란히 헌책방에 헌납한 경험이 있다. 살아있는 영어를 접하고 싶다면 외국인의 SNS를 팔로우 하는것도 효과적이다. 자신이 배우고자 하는 영역의 인물이라면 자연스럽게 그 분야의 어휘를 늘려갈 수 있을것이다. 일단 관심사와 연관시켜 모든 생활의 주 사용 언어를 영어로 바꾸는 노력이 필요하다.) 
  • 슈퍼메모 : 단어 암기 툴로 유명한 anki를 사용해 본 단어들을 정리해 놓자. (역자주: 단기 기억에서 장기기억으로 옯겨가기위해서는 반복적으로 기억하는것이 반드시 필요하다. anki는 플래시 카드 툴 중에서도 가장 추천할만 하다.) 
  • 영영사전 : 필자는 롱맨 영영사전을 추천하고 있다. 영영사전으로 봐도 단어의 뜻이 이해가 가지 않을경우 구글 이미지 검색을 이용한다. (역자주: 이미지 검색 뿐만 아니라 그냥 구글 검색을 이용해도 관련된 생생한 정보들이 나열되므로 기억하는데 많은 도움이 된다.)

결론

 여기까지 책의 앞부분을 소개해 보았다. 뒷 부분은 피드백을 통해 영어공부법에 대한 자신만의 방법론을 확립하는 팁을 위주로 쓰여져 있다. 제목과는 달리 딱히 IT엔니니어를 위한 영어공부법이라는 느낌은 들지 않지만 어찌되었든 영어공부법의 이론적 방향을 잡는데는 참고가 되리라 본다.

 사실 필자는 영어공부법에 대한 책을 사는것에 반대하는 입장이다. 모처럼 마음잡고 공부를 해 보려던 귀중한 의욕을 책 한권 읽는데 다 써 버리고는 왠지 모를 달성감에 정작 공부는 흐지부지 된 적이 많기 때문이다. 다만, 이 포스팅을 한번 읽는 정도의 시간이라면 충분히 투자해 볼 만 하지 않을까?

 영어공부를 본격적으로 해 볼 요양이라면 반드시 검색엔진의 검색결과 언어설정을 영문으로 해 놓고 사용 하자. 브라우저에 영어 사전 확장기능을 넣어 놓자. 인터넷의 등장으로 비록 사이버상에서 이지만 마음먹기에 따라서는 얼마든지 영어권에서 생활하는 사람들과 같은 인터넷 환경을 누릴 수 있게 되었다. 영어권 커뮤니티에 가입하고 영어뉴스를 보고 영어권 사람들과 SNS를 즐기자. 어찌되었든 생활상에서 영어를 문화의 일부로서 정착시키려는 노력이 필요하다.

 모쪼록 실패하더라도 도전해 보자. 영어공부만큼 적은 투자로 많이 얻을 수 있는 공부도 없다. 인터넷 세상에선 영어구사가 가능한 것 만으로도 세상이 나와 직접 링크되기 때문이다.  마지막으로 필자가 좋아하는 영화의 대사를 소개하는것을 끝으로 포스팅을 마무리 짓고자 한다.

You, me, or nobody is gonna hit as hard as life. But it ain't about how hard ya hit. It's about how hard you can get it and keep moving forward. How much you can take and keep moving forward. That's how winning is done!
Robert "Rocky" Balboa, Sr.


2014년 3월 22일 토요일

책이야기 - 코딩호러가 들려주는 진짜 소프트웨어 개발 이야기


코딩호러가 들려주는 진짜 소프트웨어  개발 이야기


제법 긴 제목을 가진 이 책은 두가지 면에서 나에게 특별하다.

저자인 제프 앳우드는 책 제목과 같은 코딩호러라는 블로그를 운영하는 유명 블로거인데, 사실 블로그보다도 조엘 스폴스키와 공동으로 세운 스텍 오버플로의 창업자로서 더 유명하다. 인기 블로거인 그는 다른 블로거들이 그러하듯이 대단한 독설가이다. 생활속에서 접하게 되는 IT이슈들에 대해서 개발자의 시선에서 섬세하게 관찰하고 비평을 함에 있어서 거침이 없다. '얽힌 삼을 한 방에 자르다.'라는 뜻을 지닌 쾌도난마라는 단어가 잘 어울리는 블로거이고 이 책또한 그러하다.

또 한가지 특별한 면은 번역자인 임백준씨이다. 개인적으로 뉴욕의 프로그래머로 처음 저자의 이름을 알게 된후 최근의 ZDNet Korea의 컬럼에 이르기까지 저서와 번역서를 꼬박꼬박 챙겨보는 팬이다. 이 분의 글은 읽기가 편하다. 저서는 물론 번역도 모든 문장들의 의미가 명확하고 깔끔하다. 전문 번역가가 들어가지 못하는 기술자만의 영역을 저자는 잘 파악하고 있기 때문이 아닐까 한다. 그러한 이유로 임백준씨가 이름을 올린 책들을 구입함에 있어서는 그다지 고민을 하지 않는 편이다.

책 자체는 제프 앳우드의 코딩호러 블로그의 글을 중에 책의 부제인 '엉터리 개발자에서 벗어나 진정한 개발자로 거듭나라!'의 문맥에 속하는 글들을 모아 놓은것이다. 모든 글은 유머가 넘치고 지루하지 않다. 그러면서도 내용을 지닌다.

책 내용 자체를 여기서 소개하지는 않겠다. 내용을 들여다 보는데는 전자서점의 책 소개와 목차를 살펴보는것으로 충분하다. 다만 책이 지닌 가치에 대해서 의견을 적어보자면 '블로거 글 모아 놓은 것 으로 엉터리 개발자에서 벗어날 수 있을까?'라는 질문에 대해서 '그렇다. 정말이다.'라고 자신 있게 말씀 드릴 수 있다. 내가 20년 가까이 걸어온 엉터리 개발자의 길에서 벗어날 한줄기 빛을 이 책에서 발견했듯이 여러분도 진정한 개발자로에의 길을 찾아내길 바란다.

2013년 12월 5일 목요일

책 이야기 - 실천 반복형 소프트웨어 개발

왜 반복형 개발인가?

 Disciplined Agile Delivery (DAD)를 비롯해 애자일 개발에 가장 큰 영향을 끼치고 있는 인물인 Scot Ambler는 2007년부터 자신의 웹 사이트에서 비 정기적으로(거의 1-2년에 한차례)프로젝트 성공에 대한 설문을 진행해 오고 있다. (2013년 투표는 2013년 12월1일 현재 진행중이며 결과가 나오면 살펴볼 기회를 가져보려 한다.)

아래 표는 가장 최근 이뤄진 2011년의 조사 결과이다.



 여기서 눈여겨 보아야 할 것은 성공률 1위가 애자일 개발이 아닌 반복형 개발이라는 점이다.
 반복형 개발은 순차 점증적 개발(Iterative and incremental development)과 동일한 의미 이며 폭포수 개발 방식과 마찬가지로 여러가지 수정모델이 존재하는데, Rational Unified Process로 흔히 불리우는 Unified Process가 대표적이며,  2위와 3위에 오른 애자일 소프트웨어 개발 프로세스들 또한 반복형 개발에 근간을 두고 있다.


반복형 개발 VS 애자일 개발 VS 폭포수 모델

 애자일 개발과 반복형 개발은 실상 프로젝트 내부에서 이뤄지는 작업의 내용면에서는 사실상 큰 차이가 없다고 보는데, 두가지 개발 방식에 대한 차이는 무엇을 하는가 보다는 무었을 지향하는가에 있기 때문이다.

 애자일 개발은 가치 지향적이다. 애자일 개발은 프로세스나 계약, 절차보다 완성된 소프트웨어가 지니는 가치를 가장 중심에 놓고 프로세스를 바라보는 관점을 지닌다. 
반복형 개발은 폭포수 개발과 마찬가지로 기본적으로는 절차 지향적이다. 인적 자원에 크게 의존 할 수 밖에 없는 소프트웨어 개발 프로젝트가 필연적으로 지니게 되는 불가시성을 최대한 배제하기 위해 반복적이며 점진적으로 계획하고 실행하는 방법을 택하고 있다. 
XP나 스크럼과 같은 애자일 개발 프로세스들은 기본적으로 반복형 개발을 기초로 하여 개발 프로세스들을 확립하였다. 짧은 개발주기, 지속적인 통합/배포, 그리고 회고를 통한 피드백이 그것이다. 

 엔터프라이즈 어플리케이션 개발에 있어서 애자일 개발이 지니는 최대의 약점은 고객으로 부터 듣는 질문중 가장 단순하면서도 가장 흔히 듣는 질문인 "그래서 얼마면 되는거요?"라는 질문에 답변하기가 까다롭다는 점이다. 특히나 대규모의 프로젝트에서 "일단 한번 해 보시면 얼마나 좋은지 아실껍니다." 라는 답변으로 고객을 안심시키기는 쉽지가 않다는 이야기 이다.

 그렇다고 견적내기 편하다는 이유로 폭포수 모델을 택하기엔 너무나도 많은 대가를 감수해야만 한다. 폭포수 모델이 오늘날 천덕꾸러기 신세를 면치 못하는 이유는 만들어 내야 하는 소프트웨어에 대한 복잡성이 검토를 통해 예측 가능한 법위를 넘어섰기 때문이다. 

 현대의 사회 시스템은 끊임없이 복잡한 방향으로 변화하고 있으며 이를 추상화 하여 다루는 소프트웨어도 함께 복잡성을 더해가고 있다.  이에 대해 반복형 개발은 끊임없이 완성된 소프트웨어를 만들어 내고 그에 대한 피드백을 통해 프로젝트를 통제해 나가는 방식을 취함으로서 이러한 복잡성에 대응해 나가고 있다.

 즉, 고객이 진정 원하는 소프트웨어의 사양은 완성된 소프트웨어를 직접 만져보기 전에는 확정하기 어렵다. 따라서 검토만으로 해결 할 수있다고 주장하는것은 너무나 천진 난만한 생각이며, 이에 대한 대가로 지불되는 것은 대부분의 개발 현장에서 개발자들의 땀과 눈물이 될 것이다.  



실천 반복형 소프트웨어 개발에서 다루는 내용



이제 본론인 책 이야기를 할 시간이다.



 저자인 쓰다씨는 현재 일본 마이크로소프트에서 테스트 전문가로 활동하고 있으며 필자가 소속된 豆蔵Mamezou의 OB이기도 하다.

저자는 이 책의 대상 독자에 대해 책 머리에 다음과 같이 밝히고 있다.
  • 3~5년정도의 소프트웨어 개발 경험이 있는 분
  • 프로젝트 팀을 리드하는 위치이며, 팀운영방침을 정해야 하는 분
  • 지금부터 프로젝트팀을 리드하는 위치에 서게되는 분
  • 프로젝트팀의 운영에 대해서 문제의식을 가지고 있는 분
  • 개발중인 소프트웨어의 품질을 제어할 수 없어서 곤란을 겪고 있는 분
  • 개발을 지원하는 툴을 도입하고 싶지만, 조직의 문화적 저항에 부딧혀 뜻을 이루지 못하는 분
  • 툴을 도입하기는 하였으나 제대로 활용하는 방법을 알지 못하는 분
  • 폭포수개발 프로세스에서 벗어나고 싶은 분
  • 반복형 개발을 시험해 보고 싶지만, 몇번을 반복해도 끝이 나질 않아 실패한적이 있는 분

 이 책에서는 언어나 생산되는 소프트웨어에 관계없이 다양한 소프트웨어 개발 프로젝트에서 사용 가능한 범용적인 반복헝 개발의 원칙과 규율을 제시하고 있다.

 책에서 소개하는 원칙과 규울은 단순히 이론에 그치는것이 아니라 현재 나와있는 최적의 개발지원 환경들(빌드, 형상관리, 이슈트래킹, CI)이 개발 규모와 진행상황에 따라 어떻게 연동되어 운용 되어야 하는지를 구체적인 예제와 함께 설명하고 있다.

 개인적으로 이 책의 가장 맘에 드는 부분은 일방적으로 이러한 방식이 가장 좋습니다 라고 강요하는 식이 아니라 스스로 각자의 개발 현실에 맞는 프로세스를 찾아 나갈 수 있도록 다양한 힌트를 제시하고 있다는 점이다.

품질과 납기를 동시에 잡는 비장의 무기 - 타임박싱 관리 기법

 저자인 쓰다씨가 반복형 개발에서 특히 중요하게 생각하는 개념은 타임박싱기법 이다.
타임박싱이란 기간 안에 끝낼 수 있는 작업과 그렇지 못한 작업을 선별하여 다음 반복에 넘기는 프로젝트 관리 기법을 지칭하는 것으로 정해진 시간 속에서 개발 사이클을 반복해야 하는 반복형 개발에서 품질과 납기를 지켜내기 위해 매우 유용한 개념이라 할 수 있다.



타임박싱 기법에 대해서는 아래 포스팅에서 자세히 다루고 있다.

프로젝트 관리 기법 - 타임박싱(Timeboxing) 관리 기법


그래서 얼마면 되는거요?

 마지막으로 아까전에 했던 "그래서 얼마면 되는거요?"라는 고객의 질문에 대해서 필자는 다음과 같이 답변을 하고자 한다.


"반복형 개발이 더 싸지지는 않을지 모릅니다. 하지만 같은 비용의 폭포수 개발과 비교하자면 위험 요소들의 제어가 훨씬 쉬워지며, 무엇보다 좋은 품질의 소프트웨어를 생산하는것이 가능해 집니다."

 반복형 개발(또는 애자일 개발)은 개발자가 편해지자고 하는것이 아니다. 오히려 개발자는 폭포수형 개발에 비해 훨씬 많은 작업들을 수행 해야만 한다. 그렇기 때문에 빌드하고 에러를 체크하고 코드 품질을 유지하는 등의 작업들을 철저하게 자동화 해 나감으로서 사람만이 할 수 있는 창조적인 작업에 보다 많은 시간을 투자 하는것이 가능해지는 것이다.

 개발 현장에서 애자일 프로세스의 도입을 검토하고 있거나 이미 도입하였더라도 프로세스의 개선에 목말라 하는 모든 이들에게 이 책을 꼭 추천한다.

2013년 2월 19일 화요일

책 이야기 - 문장강화

문장강화.


대학교 교양수업시간에 읽은 이후 언제 다시한번 정독해야지 하고는 18년 이라는 세월이 흘러버렸다. (연수를 꺼내니 갑자기 울컥해진다.)

3년전 구입해서 충분히 숙성된 이 책을 지난 주말 아침 마눌님께서 주무시는 틈을 이용해서 읽어 보았다.


이 책의 놀라운점은 무려 쓰여진지 70년이 넘은 책 임에도 오늘날 글쓰기에 유용한 책을 거롤하는 자리에는 꼭 그 이름이 등장한다는 점과 책의 내용이  "고칠수록 좋아지는 것은 문장의 진리다" 라는 한줄로 요약이 된다는 점 일 것이다.

주옥같은 예문들은 읽는것 만으로도 내공이 쌓이는것을 느끼게 해 주는 말 그대로 무림 비급이라 할 수 있겠다.

집이 좁은 나같은 사람에게도 부담없이 eBook으로도 나와 있으니 모쪼록 글쓰기에 목마른 사람들에겐 꼭 읽어볼 것을 추천한다.

책을 다 읽고 보니 문득 옆에 놓여져 있는 맨먼스 미신에도 눈길이 간다. 문장강화에 비해서는 한참이나 어리지만 아직까지 읽히는 컴퓨터 관련 서적으로서는 최고령 (1975년 초판발행)이 아닐까 싶다.



뛰어난 통찰은 시대를 뛰어넘는다.