라벨이 Software Craftmanship인 게시물 표시

개발다운 개발에 대해...

어쩌다가 2년 반 전에 내가 했던 프로젝트의 코드를 보게 되었다. 코드가 너무 구렸다. 그때도 나는 나름 설계나 코드 품질에 신경을 많이 썼었는데, 지금 돌이켜보면 역량이 많이 부족했었던 것 같다. 내가 개발다운 개발을 한 지가 얼마나 됐을지에 대해 생각해보았다. 길게봐도 반년이 채 안되는 것 같고, 깐깐하게 보면 아직도 많이 부족한 것 같다. 이제서야 슬슬 뭘 좀 알아가고 개발다운 개발을 시작하는 단계라고 생각이 들었다. 아무튼 그래서 내가 생각하는 "개발다운 개발" 의 기준에 대해 써보려고 한다. 물론, 지극히 개인적인 생각이며 각자가 일하는 도메인과 상황에 따라 매우 다를 것임을 인정한다. 1. 프로그래밍 언어와 Good Practice 들에 대한 깊은 이해. "언어는 도구에 불과하다" 라는 말이 있다. 그냥 문장 자체적으로만 보면 물론 맞는 말이다. 하지만, "불과하다" 라고 표현하기에는 언어는 너무나도 중요한 도구이다. 그리고 정말 공부를 많이 해야하는 도구이다. 언어는 사고를 지배하고, 언어를 공부하고 이해한다는 것은 생각하는 법과 철학을 배우는 것이다. 오랜 시간동안 전 세계적으로 여러 프로젝트들이 개발/연구되고 다양한 사람들이 토론/합의하면서 발전한 소프트웨어 기술과 패러다임들이 프로그래밍 언어에 그대로 녹아들어간다. 즉, 언어를 깊게 공부함으로서 소프트웨어 개발에 대한 철학과 통찰, 패러다임, 트렌드를 알 수 있다. 그리고 언어를 깊게 공부한다는 것은 그 언어에서의 Good Practice 들을 공부하고 숙달하는 것을 포함한다. 언어의 feature spec 이 도구라고 한다면, Good Practice 는 도구를 사용하는 방법이다. 단순히 언어의 문법을 익히고 라이브러리에서 어떤 기능을 제공하는 지 아는 것이 중요한게 아니라, 어떤 상황에서 어떻게 사용해야하는 지에 대한 Good Practice 를 제대로 아는게 핵심이다. 내 개인적 기준에서, 이 부분에 대...

소프트웨어 장인 (The Software Craftsman) 리뷰

별점 : ★★★★ 한줄평 : 더 나은 소프트웨어 개발자가 되고자 노력하는 모든 이들의 필독서. 소프트웨어 장인의 길로 안내하는 이념서. 번역 :  http://book.naver.com/bookdb/book_detail.nhn?bid=9585753 원서 :  https://www.amazon.com/Software-Craftsman-Professionalism-Pragmatism-Robert/dp/0134052501 이 책은 Robert C. Martin Series 5권 중에 하나로서, "소프트웨어 장인정신" 에 대한 책이다. (저자는 밥아저씨가 아니라 다른 분이지만, 마틴 시리즈로 분류되고 있다..) 소프트웨어 장인정신은 마스터가 되어가는 긴 여정이다. 소프트웨어 장인정신은 소프트웨어 개발자 스스로가 선택한 커리어에 책임감을 가지고, 지속적으로 새로운 도구와 기술을 익히며 발전하겠다는 마음가짐이다. 소프트웨어 장인정신은 책임감, 프로페셔널리즘, 실용주의 그리고 소프트웨어 개발자로서의 자부심을 의미한다. 위는 이 책의 저자가 말하는 소프트웨어 장인정신의 정의이다. 아래는 이 책을 읽고 생각하면서 내가 이해하고 받아들인 "소프트웨어 장인정신" 에 대한 내용이다. (개인적인 생각이 포함되어 있다.)     소프트웨어 장인정신이란, 다른 것은 무시하고 단순히 아름다운 코드만을 추구하는 것이 아니다. 철저히 프로페셔널리즘과 실용주의에 입각하고, 비지니스적인 가치를 첫째로 추구한다. 다만, 비지니스 가치를 극대화시키고 고객을 만족시키며 끊임없이 추가되고 변경되는 요구사항에 대응하기 위해서는, 결국에 높은 수준의 소프트웨어 품질을 성취해야한다 .     소프트웨어 장인은 비합리적인 것들과 잘못된 의사결정에 대항하며 , 회사와 비지니스 가치를 위해 올바른 실행 관례를 배우고 실천하며 널리 퍼뜨린다. 그러한 실행 관례로서, 책의 저자는 애자일, XP, TDD 등을 들고 있다. 하지만, 이러한...