-
-
데이터 과학을 위한 소프트웨어 엔지니어링 - 노트북에서 확장 가능한 시스템으로, 효율적이고 견고한 파이썬 데이터 과학 코드 작성하기
캐서린 넬슨 지음, 김정인 옮김 / 제이펍 / 2025년 2월
평점 :
▶▶해당 리뷰는 출판사로부터 책을 제공받아 솔직하게 작성한 서평입니다.

<데이터 과학을 위한 소프트웨어 엔지니어링>의 저자는
프로그래밍 언어에서 강조되는 체계적인 코드 작성 원칙을 데이터 과학에도 적용합니다.
그래서 이 책은 단순한 코드 작성법을 넘어, 견고하고 유지보수하기 쉬운 코드 설계 원칙에 중점을 둡니다.
초보 개발자부터 실무자까지 폭넓은 독자층을 대상으로 하며,
특히 데이터 과학을 실무에 적용하려는 이들에게 유용한 가이드를 제공합니다.

저자는 책을 14개의 장으로 구성하였으며, 저는 그중 1장, 2장, 7장에 집중하여 읽었습니다.
이 세 장은 중요한 주제인 코드 품질, 성능 최적화, 테스트 자동화와 밀접한 관련이 있기 때문입니다.
또한, 이 세 장은 코드 품질 > 성능 최적화 > 신뢰성 및 안정성이라는 논리적인 흐름을 따릅니다.
간단히 요약하면
1장에서는 좋은 코드의 원칙을 이해하여 유지보수성과 확장성이 높은 코드를 작성하는 방법을 배울 수 있습니다.
2장에서는 성능 분석을 통해 실행 속도를 최적화함으로써 대용량 데이터 처리에서도 효율적인 코드를 구현할 수 있습니다.
7장에서는 코드 테스트 기법을 활용하여 신뢰할 수 있는 데이터 과학 파이프라인을 구축하는 방법을 다룹니다.
따라서, 실무에서 중요한 요소를 고려했을 때 1, 2, 7장이 핵심적이라 생각합니다.
물론, 다른 장들에 비해서 빨리 적용가능하다는 점도 있습니다.
가령 8장의 설계와 리팩터링과 같이 훨씬 고민하고 생각해야하는 챕터들은
시간을 더 들여서 공부해야 하기에 1,2,7장에 먼저 집중을 한것도 있습니다.
다만, 읽는 목적에 따라 우선순위를 다르게 설정할 수도 있습니다.
코드 품질을 우선한다면: 1, 7, 8장
코드 성능을 우선한다면: 2, 3, 5, 6장
협업과 유지보수를 우선한다면: 9, 10, 12장
이처럼 목적에 따라 다양한 조합을 선택하여 읽으면 될 것입니다.

Chapter 1에서는 좋은 코드의 정의와 그 조건을 설명합니다.
저자는 좋은 코드의 핵심 요소로 가독성, 모듈성, 간결성을 강조하며,
DRY(Don't Repeat Yourself) 원칙과 같은 소프트웨어 엔지니어링의 주요 개념을 적용할 것을 제안합니다.
이를 통해 초보 개발자도 코드의 재사용성을 높이고 유지보수를 용이하게 할 수 있도록 유도합니다.
특히 코드 스타일과 문서화의 중요성을 강조하는 부분은
협업 환경에서 필수적인 요소임을 다시 한번 상기시켜 줍니다.
또한, 데이터 과학 프로젝트는 잦은 변경과 높은 복잡성을 수반하므로,
가독성, 모듈성, 안정성, 성능과 같은 요소가 더욱 중요합니다.
이 장에서 다루는 원칙들은 이후 챕터에서 제시하는 기술적 내용을 이해하는 데 기반이 됩니다.

Chapter 2에서는 코드 성능 분석과 최적화에 대해 다룹니다.
데이터 과학 프로젝트에서는 대량의 데이터를 다루므로 성능 최적화가 필수적입니다.
이를 위해 이 장에서는 코드 실행 속도를 분석하는 방법과 성능 저하를 방지하는 기법을 설명합니다.
책에서는 cProfile, line_profiler, Memray 등의 도구를 활용한 프로파일링 기법을 소개하며,
이를 통해 코드 실행 시간을 분석하고 병목 현상을 찾아내는 방법을 배울 수 있습니다.
또한, 시간 복잡도와 빅오 표기법을 활용한 성능 예측 개념을 다뤄 데이터 처리 최적화의 기반을 제공합니다.
초보 개발자도 쉽게 따라 할 수 있도록 실습 중심의 예제를 포함해,
실제 프로젝트에서 성능 최적화가 어떻게 적용되는지 직관적으로 이해할 수 있도록 구성했습니다.

Chapter 7에서는 코드 테스트의 중요성을 다룹니다.
이 장에서는 단위 테스트와 통합 테스트의 개념을 설명하고,
Pytest를 활용한 테스트 자동화 방법을 소개합니다.
또한, Pandera와 Pydantic 라이브러리를 활용한 데이터 검증 기법을 통해
데이터 무결성을 유지하는 방법을 설명합니다.
데이터 과학 코드는 단순한 분석용 스크립트가 아니라 재현 가능하고 신뢰할 수 있어야 하며,
예기치 않은 입력에도 견고하게 동작해야 합니다.
이를 위해 다양한 테스트 기법을 활용하여 데이터 품질과 코드의 정확성을 보장하는 방법을 다룹니다.
특히, 머신러닝 모델의 학습 및 추론을 테스트하는 방법까지 포함되어 있어 매우 유용합니다.
이 책은 데이터 과학 코드 품질 향상을 원하는 이들에게 훌륭한 가이드가 될 것입니다
체계적인 코드 작성 방법을 배우고자 하는 사람들에게 강력히 추천합니다.
특히 초보 개발자도 단계적으로 학습할 수 있도록 구성되어 있어 더욱 추천합니다.
#데이터과학을위한솦트웨어엔지니어링, #캐서린넬슨, #김정인, #제이펍, #JPub, #데이터과학, #소프트웨어엔지니어링, #소프트웨어, #개발자