|
"모던 소프트웨어 엔지니어링" 읽고 간단하게나마 느낌을 정리합니다. 오해의 소지를 없애기 위해 먼저 나의 이력에 대해 먼저 이야기하자면 나는 소프트웨어 엔지니어다. 누구나 알만한 대기업에 입사해서 지금까지 SW 개발과 관련된 업무를 해오고 있고 지금도 하고 있다. 그것도 SE Lab이라 부르는 부서로 입사해서 지금은 SE Group이라는 부서에서 일하고 있으니 말이다. (중간에 개발부서 모바일 브라우저 개발과 모바일 자바를 개발하며 보낸 몇 년을 제외해도 20년 이상을 소프트웨어 엔지니어로 일해왔다. 이렇게 긴 시간을 SE 업무를 했지만 내가 알기론 소프트웨어 공학(SE: Software Engineering)은 소프트웨어 개발자들이 별로 좋아하지 않는다. 물론 필요성은 인정하지만 말이다. 이 책(모던 소프트웨어 엔지니어링))의 여는 글에 나오는 것처럼 "실제로 코드를 작성하고 애플리케이션(Software)를 제공하는 데 방해물"로 여기다는 편이 더 맞는 말일지도 모른다. 사실 소프트웨어 분야만큼 빠르게 변화하는 분야도 없다. 내가 입사한 즈음인 90년대 말에는 OOP와 JAVA, Web이 주된 관심사였고 Visual Studio 등의 GUI 기반 개발 도구가 인기를 막 얻기 시작했다. 2000년대 들어서면서 웹은 Web 2.0으로 발전했고 이에 따라 스크립트 언어들이 인기를 얻기 시작했다. 더불어 다양한 오픈소스 프로젝트를 통해 리눅스, 아파치 등의 여러 소프트웨어가 주류로 편입하기 시작했다. 뒤이어, 클라우드 컴퓨팅, 모바일, MSA, 애자일, 데브옵스, CI, CD, 도커, 쿠버네티스 등 신기술들이 정신차리기 힘들 정도로 쏟아져 나왔다. 이러한 신기술을 따라가기도 벅찬데 이젠 인공지능, 로우코드, 블록체인, 사이버보안 등 알아야 하는 SW 개발 관련 지식은 계속 쌓여만 가고 있다. 한마디로 개발자의 삶은 고되고 지난하다. 이러한 변화 동안 소프트웨어 공학은 다소 진부하면서도 발목을 잡는 분야로 인식되었다. 내가 지금까지 읽은 소프트웨어 공학 책은 지금 리뷰하는 모던 소프트웨어 엔지니어링을 포함해 모두 4권이다. "소프트웨어 공학(8판, Ian Sommerville)", "객체지향 소프트웨어 공학(8판, Stephen R. Schach)", "임베드디 시스템을 위한 소프트웨어 공학 총론(Robert Oshana)", 지금 리뷰하는 "모던 소프트웨어 엔지니어링(David Farley)"이다. 이러한 소프트웨어 공학 책들을 보면 모던 소프트웨어 엔지니어링을 제외한 나머지 책들은 읽기를 시작하기 부담스러운 두께를 자랑한다. 백과 사전식으로 SDLC 소개부터 SW 공학의 모든 분야를 다루기 때문이다. 개발을 하기도 바쁜 개발자들에게 읽으라고 하기에는 너무 양도 많고 내용도 진부하다. 그리고 SWEBOK의 변화에서 알 수 있듯이 이들이 SW 공학에서 다루는 분야가 계속 늘어나고 있다. 따라서, 현재의 트랜드를 이해하고 개발에 도움이 되는 소프트웨어 공학을 다루기 위해서는 좀 더 트랜디한 내용의 책이 필요하다고 본다. 이러한 목적에 적합한 책이 앞서 말한 책 중에서 가장 얇으면서도 필요한 부분을 간추린(?) "모던 소프트웨어 엔지니어링"이라고 하겠다. "모던 소프트웨어 엔지니어링"은 이전의 소프트웨어 공학 책들과는 뭔가 다른다. 이전의 소프트웨어 공학 책들이 딱딱하고 모든 것을 다루는 백과사전식의 나열형 내용이라면 이 책은 "조엘 온 소프트웨어"를 현재의 상황에 맞게 다시 쓴 책같은 느낌이다. 무엇보다 이 책의 내용은 현실적이다. "속도와 품질 중 하나를 선택할 수 있어도 둘 모두를 선택할 수 없다"라던지 프로세스 개선을 위한 실천 방안 같은 내용은 읽어볼만하다. 개인적으로 3부의 복잡성 관리를 위한 내용은 소프트웨어 아키텍처/설계 관련 내용이라 최소한으로 줄이가 SW 조직 구성과 SW 품질/테스팅 관련 내용이 조금 추가되었으면 더 좋았을 것 같다는 생각을 해 본다. 그래도 개선을 위해 반복, 점짐적인 접근 방식, 경험주의를 강조하는 것은 다른 책들과는 확실하게 차별화에 성공했다고 느낀다. 마지막으로 이 책은 깔끔한 번역 덕분인지 쉽게 읽힌다. 역자인 박재호 님은 이미 네임드이니 번역의 품질은 따로 걱정않아도 될 듯 하다 (참고로 오해를 줄이기 위해 이야기 하자면 나는 박재호 님과 아무런 연도 없고 서로 알지도 못한다). "모던 소프트웨어 엔지니어링"은 간만에 나온 소프트웨어 공학 관련한 추천서로 모자람이 없다. 소프트웨어 공학책을 읽는다는 부담감을 줄일 수 있다는 점에서 SW 관련한 업무에 있다면 이 책은 확실히 한번은 읽을만한 가치가 있다고 생각한다. |