전체 글

I work diligently to become lazy.
“의사소통이 글을 통해 이루어진다면 사람들은 그것을 의심할 여지 없는 사실로 받아들이거나 아예 완전히 거부해 버리기 쉽다.” 의사소통을 글로 하는 것과 대화로 하는 것의 장단점에 대해 특별히 고민을 해본 적이 없는 것 같다. 막연하게 글은 대화와 달리 감정을 담아내기 어렵기 때문에 오해할 가능성이 비교적 높겠다고 생각 했다. 반면 글을 남기는 것에 대해서는 대화를 했을 때와 달리 근거와 이력을 남기기가 편하다는 장점을 가지고 있다고 생각 해왔다. 저자가 말하는 것처럼 글은 대화와 달리 단방향 의사소통이라고 생각하지는 못했다. 이 부분에서 의심할 여지 없는 사실로 받아들이거나 완전히 거부하는 경우에 대해, 확인하지 못한 글들이 쌓이는 경우 빈번하게 발생한다고 생각 했다. 특별히 민감한 주제가 아니라고 (예..
“내가 가치 있게 생각하는 것과 정말로 가치 있는 것 사이의 차이에서 낭비가 생긴다.” 가끔 길을 잃은 기분이 들 때면 ‘모노크롬’ 이 부른 ‘니가 진짜로 원하는게 뭐야’ 를 찾아 듣고는 한다. 다양한 관점에서 생각해볼 수 있겠지만, 일을 할 때 ‘그래서 내가 진짜 하고 싶은게 (해야 하는게) 무엇이었을까?’ 를 고민한다. 그래서 사실 TDD 의 작업 순서와 할일 목록을 작성하는 것에 깊은 인상을 받았었다. 특히 TDD 같은 경우 눈에 보이는 명확한 pass/fail 을 마주하고 pass 하기 위한 최적의 방법을 고민하기 때문이었다. 다시 말해 군더더기 없는 결과물을 만든다는 게 인상 깊었다. 다시 생각해보면 기본적인 것이지만 깊이 빠져들면 온갖 걱정거리가 들러붙어 정말 내가 하고 싶었던 것은 무엇이었는..
“변화를 극복하지 못하는 우리의 무능력이 문제다.” 변화에 유연하게 대응할 수 있는 설계를 하고 애플리케이션을 만들어야 한다는 것에 대해서는 그렇게 고민과 노력을 하면서 왜 큰 의미의 변화에 대해서는 인지하지 못했을까? 변화에 유연하게 대응하는 애플리케이션을 만들려는 것처럼 왜 나 자신에 대해서는, 내가 속한 팀에 대해서는 유연하게 대응할 수 있도록 준비할 생각을 하지 못했을까? “실천사항 하나하나가 효율성, 의사소통, 자신감, 생산성을 개선하는 실험이다.” ‘실험’ 이라는 말을 사용한 것이 조금씩 방향을 고치면서 간다는 것의 연장선에 놓여있다고 생각 했다. “실천방법, 즉 우리가 실제로 하는 것들이라고 부르기로 하자. 실천방법은 여러분이 매일 하는 일이다.” 책에서는 실천방법을 실제로 우리가 하는 것들..
xp 는 ~ 이다. 라는 말을 많이 하면서 설명 하는 것으로 보아 xp 라는 것은 간결한 한 문장으로 정의하기엔 내포하고 있는 이야기가 많다고 느꼈다. "어떤 사람들에게는 이렇게 하는 것이 믿을 수 없을 만큼 두려운 일이겠지만, 다른 사람들에게는 그저 일상일 뿐이다." 다른 사람들은 좋다고 많이들 사용 하는데, 굳이 사용하지 않아도 괜찮다는 생각으로 새로운 것을 받아들임에 주저하는 경우가 있었다. 막연하게 새롭다라는 것에 거부감이었을 수도 있고, 시도하기엔 현재 문제가 없었기 때문이었을 수도 있다. 혹은 불편하지 않았다거나. 관점을 달리 하면, 불편하지 않았던 것이지 편한것은 아니었다. 이 문장을 보고, xp 를 적용할지는 둘쨰 치고, 보다 열린 마음으로 이해해보겠다고 다짐 했다. "XP는 가볍다" Sp..
기억에 남는 내용- 익스트림 프로그래밍 Extreme Programming, XP 의 목표는 뛰어난 소프트웨어 개발이다. - 처음 이 책이 출판될 때에는 극단적으로 보이던 실천방법들이 이제는 일반적인 것이 되었다. 앞으로 5년 후라면 이 책에 들어 있는 실천방법들은 분명히 보수적으로 보일 것이다. - 여러분들의 비결 목록에 넣을 만한 검증된 실천방법들을 제시한다.     - 지금 상황과 상관없이 여러분은 언제나 더 나아질 수 있다.     - 더 나아지는 일은 언제나 스스로부터 시작할 수 있다.     - 더 나아지는 일은 언제나 오늘부터 시작할 수 있다.  후기극단적이게 보이던 것들이 시간이 지나 보수적으로 보인다는 말에 공감했다.모든 창의적인 것은 시간이 지나면 식상해지기 마련이고, 지금의 번뜩이는 ..
기억에 남는 내용 - 최초에 탄탄한 설계를 갖추어도 어차피 시간이 프르면 각종 요구사항의 증가와 변화로 프로그램에 기능을 추가하거나 수정하기 마련 - 리팩토링은 수년간의 경험을 통해 발견한 구체적인 소프트웨어 개선 방법들의 공통 해결책을 발견해 일반화한 추상 개념이다. - 리팩토링은 기존의 소스코드를 가독성 readability, 재활용 reusability, 체계적 구조 well-structured 측면에서 개선하는 총괄 작업을 뜻한다. 후기 여기까지만 보더라도 리팩토링이 왜 해야하는 활동인지 어느정도 이해한것 같다. 옮긴이의 말을 보면서 한가지 걱정되는 부분이 생겼다. 내용은 어떨지 봐야 알겠지만, 이분의 문장 호흡이 긴 편이라고 느꼈다. 문장이 길면 한 문장을 온전히 이해하는데 아무래도 시간이 더 ..
기억에 남는 내용- XP 실천방법 가운데 일부를 우리는 아래와 같이 적용합니다. -애리히 감마     - 초기에, 자주, 자동화해서 테스트하라.     최신 빌드에서는 녹색 체크 표시를 받으려면 테스트를 21,000개 이상 통과해야 합니다.    - 점진적 설계      우리는 매일 설계에 일정 자원을 투자합니다. 하지만 우리에게는 API를 안정되게 유지해야 한다는 추가 제약이 있습니다.    - 매일 배치 deploy      컴포넌트마다 적어도 하루에 한 번은 배치하고, 즉각 피드백을 받고 문제도 초기에 잡기 위해 배치된 코드 위에서 개발을 진행합니다.    - 고객 참여      적극적인데다 지속적으로 피드백을 보내주는 활발한 사용자 공통체가 있다는 점에서 우리는 운이 좋습니다. 우리는 그들에게 귀..
기억에 남는 내용 - 팀장은 나중에 여유가 생기면 하겠다고 했다. - 코드를 정리한들 새로운 기능이 생기는 것도 아니고 그저 코드가 더 깔끔해 보일 뿐이다. - 긁어 부스럼 만들지 말라(돌아가기만 한다면 코드에 손대지 말라) 는 전톷적인 공학 격언이 맞는 말이라 생각하나? - 켄트는 작업 방식을 여러모로 달리했지만 그 중에서도 가장 핵심은 리팩토링을 이용해 코드를 꾸준히 정리하게 했다는 점이다. "리팩토링이란" - 리팩토링은 겉으로 드러나는 코드의 기능은 바꾸지 않으면서 내부 구조를 개선하는 방식으로 소프트웨어 시스템을 수정하는 과정이다. - 리팩토링한다는 것은 코드를 작성하고 난 뒤 설계를 향상시키는 일이다. - 리팩토링의 각 단계는 간단하다 못해 지나칠 정도로 단순하다. - 모든 설계를 미리 떠올리는..
nimkoes
한칸짜리책상서랍