파이썬 비동기 라이브러리 Asyncio - 대규모 병행성 작업을 위한 비동기 프로그래밍
케일럽 해팅 지음, 동동구 옮김 / 한빛미디어 / 2021년 5월
평점 :
장바구니담기


한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지!

1

이 책은 파이썬의 비동기 라이브러리인 asyncio를 설명한 책이다. 5월 23일에 발매된 파이썬 교재 중에서 2021년 1월에 출간된 진지한 파이썬과 함께 가장 주목해야 될 책이다. 일반적으로 파이썬 교재가 기초 문법이나 머신러닝/딥러닝 관련 교재가 많이 출간된다. 이 책은 중급자 이상의 개발자가 꼭 알아야 될 동기/비동기 관련 기술을 아주 자세히 소개하고 있다.

asyncio에 대해서 간단히 소개하자면, asyncio는 Python 3.4에 포함되기 시작해서 파이썬 3.5 버전의 provisional API를 거쳐서, 3.6이 되면서 API에 대한 명세가 사실상 확정되었다. 대부분의 파이썬 개발자들이 CPU 연산의 경우 여러 쓰레드를 사용하는 것에 대해서 다양한 관점과 방법을 제안하지만, I/O 작업의 경우 GIL을 해제하여 쓰레드를 사용하는 것에 대해선 효율성이 높다는 것을 알고 있다. 파이썬 3.4에 generator가 추가되면서 하나의 쓰레드를 사용하면서 동시에 다양한 일을 할 수 있는 코루틴 기반의 asyncio에 대한 관심이 높아졌다.

2

책을 처음받고 asyncio를 튜토리얼 정도로 가볍게 소개하는 교재로 생각했다. 책이 176쪽으로 매우 얇기 때문이다. asyncio에 대해서 가볍게 소개하고, 몇가지 예제를 보여주고 끝날 것으로 생각하고 책을 읽기 시작했는데, (너무 즐겁게도) 내용이 깊었다. 심지어 2페이지를 기준으로 30~40% 정도는 코드를 담고 있어서 교재 분량에 비해서 시간이 제법 오래 걸린다.

내용은 좀 과도하게 충실하다. 책의 분량을 생각하면 말이 안되는 것 같지만, 책을 읽어보면 대부분의 필요한 내용은 각주로 설명하고 있다. 각주에 있는 내용을 잘 참고하면 웬만한 500~600쪽 교재 분량을 능가한다. 다시 말해서 선택과 집중을 매우 잘 한 책이다.

그리고 이 책을 읽는데 팁을 드리자면, 해당 교재를 읽으면서 각주를 신경쓸 여력이 없다면 ThreadingBot 예제를 중심으로 책을 가볍게 먼저 읽어보길 권한다. 해당 예제는 비동기/동기 문제를 손쉽게 재현할 수 있게 구성되어 있기 때문에 시간이 없다면 일단은 예제를 중심으로 진행해보자.

책표지!

3

컴퓨터 공학을 전공한 학생분들의 경우 OS 시간에 ‘생산자/소비자’나 ‘식사하는 철학자’ 문자등을 통해서 동기/비동기 문제를 접했을 것이다. 현재 파이썬으로 학습을 진행하는 분들은 동기/비동기 문제를 직접적으로 겪어보지 않을 수도 있지만, 데이터분석/머신러닝을 하는 과정에서 동기/비동기 문제를 한번은 만나게 된다.

자바로 웹 서비스를 개발하다 보면, 알게 모르게 쓰레드 문제로 고생을 하는데 많은 개발자들이 조슈아 블로크의 자바 병렬 프로그래밍 등의 교재를 통해서 해당 문제를 이해하고 해결해나간다. 파이썬도 동기/비동기 문제를 만나게 되면 이 교재를 통해서 기술을 익히고 해결할 수 있을 것으로 기대한다.

좋은 책을 리뷰할 수 있어서 좋은 시간이었다. 앞으로도 중급자 개발자에게 유익한 이런 책이 많이 출판되길 기원한다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
MongoDB 완벽 가이드 - 실전 예제로 배우는 NoSQL 데이터베이스 기초부터 활용까지, 3판
크리스티나 초도로우 외 지음, 김인범 옮김 / 한빛미디어 / 2021년 3월
평점 :
장바구니담기


한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지!

0

2021년에 JavaScript(이하, JS) 관련 기술을 계속해서 공부하고 있다. 평생을 먹고 살게해주었던 Spring을 잘 활용하기 위해서 Kotlin과 JUnit5는 작년부터 계속해서 진행하고 있었고, 학위과정에서 관심이 있는 Haskell은 활용할 곳이 마땅하지 않아서 학문적인 수준에 머물러있는데 반해서 JS는 사용할 곳이 많아지고 다양한 곳에서 활용되기 때문에 열심히 배우고 있다.

1

JS를 공부할 때 언제나 그렇듯이 API를 만들기 위해서 Express를 배웠고, async/await를 활용하기 시작하면서 koa를 사용했다. 하지만 API를 JSON 파일을 사용해서 파싱을 했다가, DB와 연결하면서 가장 많이 등장하는 2개가 있는데 하나가 MongoDB이고 다른 하나가 MySQL이다. 대부분의 튜토리얼이나 교재는 대부분 MongoDB를 선택한다. 개인적으로 MongoDB를 사용했던 경험은 log를 수집하기 위해서 사용했고, 프로젝트에 적극적으로 사용할 땐 Spring에서 제공하는 JPA를 사용해서 진행했기 때문에 MongoDB를 진지하게 사용해본적은 없는 듯 싶었다. JS에서 워낙에 많이 사용하는 듯 해서 이번에 MongoDB에 대해서 좀 심도 깊게 공부할 수 있는 기회가 있어서 MongoDB 교재의 리뷰를 선택하였다.

적절한 이미지를 사용한 설명

2

책 제목이 모든 것을 말한다. 정말 MongoDB에 대한 “거의” 모든 범위를 설명하고 있다. 이 책 한권이면 MongoDB에 대한 사용법이나 의문점 문제등은 해결된다고 할 수 있다. 즉, Query에서 시작해서 배포까지 알려준다. 번역도 무난하게 되어있기 때문에 큰 어려움이 없이 MongoDB에 대해서 배울 수 있다.

하지만, 한 권에서 모든 것을 설명한다는 점에서 부담감이 될 수 있기 때문에 이 책을 사용할 때는 몇가지 주의사항이 필요하다. 예를 들어, 나처럼 JS를 기반으로 개인 개발을 진행하고 계시다면 “1장,2장,3장,4장,7장,8장”만 읽어도 충분할 듯 싶다. 반면, 회사에서 log를 분석하거나, 데이터를 수집하는 용도로 사용하신다면 “1장,2장,3장,4장,5장,6장,7장”을 읽어보시고 샤딩이나 복제와 같은 것은 필요한 시점에 읽어도 충분하듯 싶다. 배포 및 인프라 담당자는 “IV. 샤딩, V. 애플리케이션 관리, VI. 서버관리” 부분을 참고하면 된다.

JSON을 자주 사용하자!

3

결론적으로 말하자면, 한 권에서 모든 것을 설명하고 있기 때문에 이 책을 처음부터 다 읽기 보다는, 자신의 역할(Role)과 필요에 따라서 목차를 참고해서 선택하고 읽으면 좋을 듯 싶다. MongoDB에 대한 개략적인 소개 뿐만 아니라 사용법, 배포까지 포함하고 있기 때문에 JS를 기반으로 개발하시거나, JSON을 표준 인터페이스로 활용하신다면 이 교재는 많은 도움을 된다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
객체지향 사고 프로세스 - 프로그래밍보다 먼저 익혀야 하는 생각의 기술, 제5판
맷 와이스펠드 지음, 박진수 옮김 / 제이펍 / 2020년 7월
평점 :
장바구니담기


Java를 처음 배웠거나, 객제치향 교과목을 수강한 학생이라면 이 책을 함께 읽어보자. 이 책을 읽고 토끼책(객체지향의 사실과 오해)에 도전해보자!

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
리액트 머티리얼 UI 쿡북 - 머티리얼 UI를 사용한 룩앤필 개선 에이콘 웹 프로페셔널
아담 보두치 지음, 류영선 옮김 / 에이콘출판 / 2020년 9월
평점 :
장바구니담기


CSS 안 배우고 뭘 좀 해볼려고, 책을 열심히 보고 공부했지만 쉽지 않아서 GG를 선언하였다. React.js를 배우면서 공부해서 그런지 난이도가 조금 높았다. CSS에 대해서 좀 알면 좀 더 쉽게 접할 수 있을 듯 한데, 그것도 아니라서 다음을 기약하며 턴을 접었다.

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
더 괜찮은 웹 개발자가 되기 위한 리액트 스타일 가이드 - 프런트엔드를 아우르는 사용자 중심의 모던 UI 컴포넌트 설계와 개발
이시바시 케이타 지음, 구멍가게 코딩단 외 옮김 / 프리렉 / 2019년 5월
평점 :
절판


1

개발 인생의 2/3를 Spring으로 먹고 살아서 그런지 React.js 가 너무 힘겨웠다. 그럼에도 불구하고 꾸역꾸역 하다보니 적당히 사용할 수 있게 되었다. 좀 더 잘 사용해볼까 싶어서 React.js와 JavaScript 책을 싹 쓸어서 읽고 있는데, 이 책은 내 수준을 넘어가고 있었다.

2

이 책을 보고 있으니, 주변에 존잘러들이 ‘올드스쿨’이야 라고 했지만, 나에겐 ‘신 에반게리온 극장판:∥’ 같은 느낌이었다. 그래도 이 책 덕분에 React의 다양한 생태계를 이해할 수 있는 단초를 마련해주었다.

3

나처럼 React.js를 처음 접해서 컴포넌트와 Hook에 허덕이고 있다면, 이 책으로 React.js의 생태계를 좀 이해한다면 즐거운 학습을 가능할 듯 합니다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo