|
▶▶해당 리뷰는 출판사로부터 책을 제공받아 솔직하게 작성한 서평입니다.
<데이터 과학을 위한 소프트웨어 엔지니어링>의 저자는 프로그래밍 언어에서 강조되는 체계적인 코드 작성 원칙을 데이터 과학에도 적용합니다. 그래서 이 책은 단순한 코드 작성법을 넘어, 견고하고 유지보수하기 쉬운 코드 설계 원칙에 중점을 둡니다. 초보 개발자부터 실무자까지 폭넓은 독자층을 대상으로 하며, 특히 데이터 과학을 실무에 적용하려는 이들에게 유용한 가이드를 제공합니다. ![]() 저자는 책을 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, #데이터과학, #소프트웨어엔지니어링, #소프트웨어, #개발자 데이터 과학을 위한 소프트웨어 엔지니어링
|
|
book reviews sponsored by publishers (Lang : KR) 제이펍 출판사로부터 서평단 선발이 되어 책을 받았다. 데이터 과학자들을 대상으로 이루어져 있지만, 코드를 작성하는 누구에게나 유용할만한 도서이다. 이 책은 파이썬 코딩을 가르쳐 주는 것이 아니다. 이미 파이썬을 실무로 다루는 분들을 대상으로 진행된다. 책에 등장하는 파이썬 코드가 그리 난이도가 높진 않기에 코드를 읽을줄 안다면 도전해볼만한 책이다. 책에서 주 된 목적은 3가지이다. 1.) 협업 2.) 클린 코드 3.) 설계와 리팩터링 책의 전반적인 내용은 쉬운편이지만, 협업 프로젝트를 해보지 않은 분들은 공감하기 어려운 부분들이 몇 있다. 이 책의 독자는 -> 1.) 파이썬으로 클린코드를 배우고 싶은 자 2.) 혼자가 아닌 협업 프로젝트에 연관있는 자 3.) 데이터 과학자의 사고 마인드가 궁금한 자 필자가 책을 읽어보고 느낌점은 꼭 데이터 과학자가 아니더라도 파이썬 클린 코드와 협업에 대해 알고 싶다면 선택할만한 책 이라는 것이다. --- "제이펍 출판사의 도서 지원을 받아 작성한 리뷰입니다." --- https://youtube.com/@Certa6 제 유튜브 채널입니다. 도움이 됐다면, 구독 부탁합니다! 주변에 제 블로그, 유튜브를 알려주시면 감사하겠습니다~! :) Thank you for watching the blog. Please subscribe! I would appreciate it if you could share the blog around you. #제이펍 #제이펍출판사 #출판사 #서평단 #베타리더 #hackers #hacker #hacking #anonymous #cybersecurity #kalilinux #programming #hack #hacked #technology #cybercrime #linux #ethicalhacking #coding #programmer #computerscience #malware #hacks #bhfyp #redteam #tryhackme #hackthebox
|
|
얼마 전 데이터를 분석해 상위 3개를 뽑아내는 알고리즘을 짜서 파이썬 gui로 구현하는 프로젝트에 참여했었다. 근데 이걸 타 팀과 협업한다며 코드 전체를 달라고 하는 것이다. (!) 코드의 가독성, 효율성 등을 전혀 고려하지 않고 작성한 내 코드를 주기가 조금 민망했던 것 같다. 챗GPT와 폭풍 구글링으로 겨우겨우 정리해서 넘겼다. 그 후로 좋은 코드에 대한 고민을 많이 했는데, 막상 뭘 해야할지 모르겠더라. 관련 책을 찾아봐도 그 내용을 실무에, 그러니까 데이터 분석에 적용이 가능한가? 어떻게 적용하지? 싶은 고민이 많았다. 이 책은 넘파이, 판다스를 이용한 파이썬 예제로 내 코드에 직접적으로 적용해볼 수 있는 부분이 많아서 좋았다. 해당 내용에 대한 기본적인 이해가 있는 사람이라면 누구나 읽을 수 있을만큼 술술 읽힌다. 데이터 분석 각각의 단계에 소프트웨어 엔지니어링의 원칙을 어떻게 적용할 수 있는지를 알려준다. 간지러운 부분을 딱 긁어주는 책인 것 같다. 주변에 나랑 같은 고민을 하는 데이터과학자가 있다면 당장 추천해주고 싶은 책이다. 본 서평은 해당 도서를 지원받아 작성하였습니다. |