파이토치로 배우는 자연어 처리 - 딥러닝을 이용한 자연어 처리 애플리케이션 구축
델립 라오.브라이언 맥머핸 지음, 박해선 옮김 / 한빛미디어 / 2021년 6월
평점 :
장바구니담기



음성인식하면 'Her'이라는 영화가 떠오른다. 국내에서는 2014년에 개봉한 영화인데, 시리나 알렉사와 같은 음성인식 서비스와 사랑에 빠진 남자 이야기다. 2019년 코미디 영화 '하이 젝시'도 상황은 다르지만 인공지능을 다룬 비슷한 영화다. 처음 'Her'를 봤을 때는 가능은 하겠지만, 그래도 설마 그런 마음이 있었지만, 지금은 그 '설마'라는 단어가 사라졌다. 그만큼 지금의 음성인식은 빠른 속도로 발전하고 있는 것이다.


우리는 이미 많은 인공지능 서비스를 사용하고 있다. 음성인식을 통해 각종 정보 검색도 하고, 어학도 배우고, 아이들 교육에도 쓴다. 스마트폰에 음성비서 기능은 이제 기본이며, 콜센터를 통한 제품 문의나 예약, A/S 관련한 부분도 음성인식과 문자인식을 통해 서비스가 진행되고 있다. 이와 함께 대표적인 서비스가 번역 일 것이다. 번역 부분은 오래전부터 계속 시도되어 왔는데, 최근엔 확실히 과거에 비해 좀 더 자연스러워졌고, 사진 찍어 바로 번역도 할 수 있고, 유튜브 동영상에 바로 자막으로 볼 수도 있다.


이처럼 언어를 다루는 인공지능 쪽은 사람과 가장 가깝게 만나는 분야이며, 정서적으로도 무척 민감한 분야인 것이다. 그만큼 활용할 곳도 아주 무궁무진한 분야이다. 인공지능에서 이걸 주로 하는 분야가 자연어 처리인데, 내 기준에 있어서 이게 다른 인공지능 분야에 비해 익히기가 쉽지 않다. 일반적인 기계학습이나 이미지 인식과 처리, 문자 인식까지는 그래도 쉬운 편이다. 언어 영역은 여기에 몇 곱절 어려운 거 같다. 그러다 보니 계속 미루고 있던 파트이기도 하다.




사실 자연어 처리 쪽은 어려운 것도 있지만, 다른 분야에 비해 접할 수 있는 책도 무척 적다. 그런데 최신 이론과 논문 등을 잘 정리해서 담은 책이 하나 있어서 이번에 시간을 들여서 집중적으로 봤다. 바로 델립 라오, 브라이언 맥머핸의 '파이토치로 배우는 자연어 처리'라는 한빛미디어 책이다. 




이 책이 자연어 처리 입문 가이드북을 표명하는 책이지만, 어디까지나 자연어 처리 쪽 입문을 말한다고 생각한다. 인공지능이나 프로그래밍 입문을 대상을 하는 책이 아니다. 어느 정도 난이도가 있는 책이다. 최소 파이썬 프로그래밍은 알고 있어야 하고, 인공지능 관련한 지식도 좀 있어야 한다. 그리고 수학이 많이 나오는 것은 아니지만, 그래도 제대로 이해하려면 관련 수학 지식이 약간 필요하기도 하다. 


입문 가이드북이라는 말에 가벼운 마음으로 봤는데, 솔직히 이 분야는 아직 내가 많이 준비가 안 되어 있다는 것을 새삼 느끼게 했다. 차라리 입문 가이드북이라는 생각을 버리고 자연어 처리 개론 정도로 생각하며 읽으면 오히려 보기 편할 수 있을 것이다. 


아울러 인공지능 관련 책을 볼 때마다 느끼는 것이지만, 익숙하지 않은 전문용어들이 많이 등장하는 만큼, 노트 하나 마련해서 용어를 하나씩 적어가며, 정리하는 것이 이 책을 보다 쉽게 이해할 수 있는 길이 될 것이다. 물론 나중에 AI 관련 다른 책을 볼 때에도 많은 도움이 될 것이다.




그리고 '파이토치로 배우는 자연어 처리'는 파이썬을 위한 오픈소스 머신 러닝 라이브러리  PyTorch를 사용하므로 자연어 처리와 함께 파이토치 활용법을 잘 배울 수 있다. 파이토치는 엔비디아 GUP CUDA를 사용해서 보다 빠르게 처리할 수 있다. 텐서플로만 쓰다 처음 파이토치를 써보다 보니, 여러 가지로 색다르게 느껴졌다. 그러나 예제 코드에 설명도 잘되어 있고, 코드 자체가 간단하고 직관적으로 되어 있어 별다르게 어렵게 느껴지진 않는다.


책에서는 전체 9장에 걸쳐 자연어 처리 NLP 소개와 함께 파이토치도 나오고, 신경망 기본 요소, NLP에 쓰이는 MLP, CNN, 시퀀스 모델, 어텐션 기반 모델 등의 딥러닝 구조를 소개하고 있다. 특히 시퀸스 모델링은 초급, 중급, 고급으로 나눠 단계적으로 심화 학습을 한다. 각 장 끝에는 참고문헌들이 나오는데, 비교적 최신의 서적과 논문을 참고한 것을 알 수 있다. 




자연어 처리 예제로 성씨 분류가 많이 나오는데, 이게 이렇게 복잡한 문제였다는 것을 처음 알았다. 이것도 그렇고 책을 다 보고 나서 예제 데이터인 말뭉치가 영어권 언어다 보니, 확실히 한글과는 처리가 많이 다를 수 밖에 없겠구나 크게 느껴졌다. 아울러 한글 자연어 처리에 대한 내용의 아쉬움이 좀 있었는데, 부록에 떡하니 pororo 뽀로로에 대한 내용이 들어 있었다.  번역자가 추가한 것이라 생각되는데, 이 책에서 돋보이는 부분이 옮긴이가 곳곳에 담은 각종 주석과 추가 설명이다. 책 내용 중에 팍팍 넘어가는 부분들이 있는데, 그것을 박해선 역자가 일일이 NOTE나 주석에 설명을 하고 있다. 수식을 어떻게 풀고, 어떤 책을 참고하라고 친절하게 담고 있다. 원래 책에 없는 설명까지도 담아 이해를 돕고 있다. 옮긴이가 인공지능, 특히 자연어 처리에 대한 이해가 없었다면 완전 불가능한 부분일 것이다. 워낙 곳곳에서 이런 노력이 보이다 보니, 고마움에 옮긴이 칭찬을 하지 않을 수 없다.




NPL 초보인 나에게 '파이토치로 배우는 자연어 처리'는 처음엔 만만한 책이 아니었다. 하지만, 포기하지 않고 읽다 보니, 자연어 처리라고 해서, 완전히 다른 것은 아니다. 그전에 알고 있던 것들과 함께 자연어 처리 부분이 결합되어 조금씩 이해되기 시작했다. 저자가 욕심이 많아서 그런지 참 많은 것을 담았다는 느낌인데, 덕분에 NLP에 관해, 전반적으로 많은 것을 얻고 이해하는데 큰 도움이 되었다. 특히 파이토치는 전혀 몰랐는데, 비교적 쉽게 활용법을 익힐 수 있었다.


자연어 처리 분야가 어렵긴 하지만, 음성인식, 번역뿐만 아니라, 인공지능 기사 작성, 보도, 아바타 등 쓰일 수 있는 곳이 워낙 많다 보니, 인공지능 딥러닝에 관심 있는 분들에겐 비즈니스적으로 좋은 블루오션 영역이라 생각한다. 자신의 IT 기술을 스킬업하거나 사업화하려는 분에게 이론적으로 도움이 될 것이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
홈 레코딩 마스터 교과서 - 프로처럼 녹음하고 실수를 줄이는 레코딩·믹싱·마스터링 노하우의 비밀 지적생활자를 위한 교과서 시리즈
김현부 지음, 윤여문 감수 / 보누스 / 2021년 6월
평점 :
장바구니담기



홈 레코딩은 이름 그대로 전문 스튜디오가 아닌, 집과 같은 개인 공간에서 노래나 연주 같은 것을 직접 녹음해서 음반을 만드는 것을 말한다. 컴퓨터와 지원 소프트웨어, 주변 기기들의 성능이 좋아지고 저렴해지면서, 가능하게 된 개인 스튜디오인 것이다.

과거에는 전문 음악인들이 주로 관심을 가졌지만, 지금은 유튜브와 같이 개인 방송이 가능한 SNS 채널이 많아지면서, 일반인들도 많이 하고 있는 상황이다. 홈 레코딩을 통해 자신이 창작한 곡을 홍보하기도 하고, 노래나 연주 실력을 뽐내기도 한다.


나도 전부터 홈 레코딩을 배워 보고 싶다는 생각을 해왔다. 이는 내가 놀라운 음악적 재능을 가지고 있어서 그런 것은 아니다. 가장 큰 이유는 음향적으로 좀 더 품질 좋은 동영상을 만들어 보고 싶다는 바람 때문이고, 그다음은 가끔씩 블로그에 올리고 있는 이어폰, 헤드폰 같은 오디오 기기 리뷰 때마다 느끼는 부족한 전문지식을 높여 보고 싶어서다. 


그러나 절실한 마음이 없어서 그랬는지, 여태 홈 레코딩을 배울 기회를 가지지 못했었다. 그러다 이번에 이해하기도 쉽고, 여러 가지로 큰 도움이 된 책을 만나게 되었다. 현직 사운드 엔지니어이자, 대학교수로 재직 중인 김현부 저자의 '홈 레코딩 마스터 교과서'가 바로 그것이다. 솔직히 처음에는 그저 홈 레코딩이라는 단어만 보고, 별다른 기대 없이, '이거라도 봐두자'하는 생각으로 본 책이다. '책도 두툼해서 뭐라도 얻는 게 있겠지' 했다.


그런데, 읽다 보니, 친절하고 쉬운 설명은 기본이고, 책 내용이 의외로 너무 좋았다. '홈 레코딩 마스터 교과서'는 기존에 많이 봐왔던, 단순히 홈 레코딩 기술을 나열하거나, 프로그램 매뉴얼과 같은 책이 아니었다. 잘 짜인 과정에 맞춰 진행되는 유명 학원 강의를 듣는 거 같았다. 




우선 홈 레코딩에 필요한 기본 장비 설명부터 다양한 사진과 자료 그림으로 이해하기 쉽게 설명하고 있고, 내용들이 부드럽게 연결되었다. 책에서 다루는 주제들도 드럼, 일렉 기타, 베이스 기타, 색소폰, 키혼, 키보드, 보컬과 같이 활용도 높은 것을 위주로 되어 있어, 독자의 필요에 맞게 중점 학습할 수 있다. 구성만 놓고 보면, 평범하다 생각되는데, 내용면에서 무척 디테일함을 느낄 수 있었다. 기타를 예로 들면, 바로 녹음 방법을 알려주는 것이 아니라, 기타의 구조, 구조에 따른 사운드 특성, 나무 재질에 따른 소리 차이, 오래된 기타 줄과 새 기타 줄의 차이 같이 전혀 생각지도 못한 이야기가 있었다. 대부분 몰랐던 것들이다 보니, 흥미롭고 재미도 있었다. 무엇보다 녹음을 하는데, 이런 것들까지 세심하게 생각해야 한다는 점이 놀라웠다. 이런 세세한 것을 알게 되니 그게 오히려 내용을 이해하는 데 크게 도움이 되었다.


그리고 저자는 책을 통해 일방적 주입식 설명을 피하고 있다는 느낌을 받았다. 드럼 녹음을 보면, 우선 마이크 하나로 이 방향, 저 방향, 높이도 바꿔가며, 어떤 차이가 있는지도 알아보고, 마이크를 두 개, 세 개로도 늘려 본다. 그러면서 마이크 테크닉을 조금씩 배워 나간다. 최종적으로는 괜찮은 드럼 소리를 녹음하기 위해선 몇 개의 마이크가 최소 필요한지 알아보고, 그 밖에 추가로 해볼 만한 방법이 무엇인지도 제시한다. 받아먹기만 하는 것이 아니라, 생각을 해보고 응용을 해보게 유도를 한다. 




'홈 레코딩 마스터 교과서'에서는 DAW 프로그램으로 로직, 큐베이스, 프로툴스 같은 것들이 나오는데, 녹음 세팅 설명은 로직을 기준으로 하고 있다. 보컬 튜닝에는 오토튠과 멜로다인 사용법도 다루고 있다. 각각의 차이점도 알아보고, 주용 사용법도 다룬다. 그런데 여기서도 소프트웨어 사용법보다는 프로그램에 종속되지 않고, 전반적으로 다룰 수 있는 기본 기를 닦는데 주력한다. 그러기 위해 설정값에 따른 차이 같은 것도 저자의 경험을 담아 구체적으로 설명하고 있는 것을 볼 수 있다. 이런 설명 또는 조언은 아주 중요하다. 설정값이 무엇을 의미하는 것인지 모르면, 편집 방향을 잡을 수 없기 때문이며, 나 같은 초보자에게는 나중에 기준으로 삼게 되는 아주 중요한 포인트인 것이다.


아울러 각종 노이즈 줄이는 법, 팝핑 대비법, 마이크에 고무줄로 연필을 묶어 과도한 치찰음 해결법과 같이 저자가 곳곳에서 알려주고 있는 초보 입장에서 전혀 들어보지 못한 각종 유용한 팁과 노하우는 무척 고마운 존재이기도 하다. 개인적으로 활자 크기가 큼직한 점도 마음에 드는 부분이다. 책을 보며, 실습해보기 편했다.




책 구성을 좀 더 살펴보면, 곳곳에 '용어 설명'과 '원포인트 레슨' 코너가 있어서 보강 설명을 하고 있고, 각 단원이 끝나면, '키 포인트'가 있어서, 단원의 중요 내용을 한눈에 볼 수 있게 정리하고 있다는 것도 알 수 있다.


참고로 '홈 레코딩 마스터 교과서'에서 강조하는 한 가지가 바로 귀 훈련이다. 레코딩 작업은 전적으로 자신의 귀에 달려 있기에 세밀한 부분까지 듣고 판단할 수 있는 능력이 필요하다. 이건 기술로 해결할 수 없는 시간과 공을 들여야 하는 지극히 개인적인 역량 부분일 것이다. 


이번 '홈 레코딩 마스터 교과서'를 통해 홈 레코딩 트레이닝을 제대로 받은 기분이다. 몰랐던 많은 것을 배울 수 있었고, 헷갈렸던 부분을 명확히 할 수 있었다. 무엇보다 나에게 이 책은 장비 선택부터 작업 방향 등 초보라서 방향을 못 잡고 갈팡질팡할 수밖에 없는 많은 것들에 길라잡이가 되어 주었다. 홈 레코딩의 첫걸음을 제대로 잘 뗀 거 같다. 


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
미적분의 쓸모 - 미래를 예측하는 새로운 언어 쓸모 시리즈 2
한화택 지음 / 더퀘스트 / 2021년 5월
평점 :
구판절판



학창시절 수학 공부하면서, 미적분 이거 배워서 어디다 써먹냐 많이들 투덜거려 봤을 것이다. 적어도 통계 같은 것은 평균 같은 거 구하고, 도형과 기하학은 부피나 면적 구하는 데라도 쓴다지만, 미적분은 그 쓰임새가 도통 떠오르지 않는다. 중요하다고는 들었지만, 이걸 제대로 설명해주는 사람은 드물다. 물론 공대 들어가면, 그 존재감을 뼈저리게 느끼겠지만, 일반적으로는 그저 쓰잘데기 없고 머리만 아플 뿐인 게 미적분이다. 


그러나 '미적분의 쓸모'를 보고 나면, 그런 생각을 완전히 바뀌게 될 것이다. 이 책은 책 제목 그대로 미적분의 쓸모를 수학과 과학적 측면뿐만 아니라, 공학, 의학, 영화, 경제 등 다양한 분야 속에서 알아보고 있다. 책 내용 전체가 오로지 미적분의 쓸모를 말하고 있어서, 책 제목과 주제가 찰떡같이 딱 들어맞는 이름 그대로인 책인 것이다.




아무리 미적분이 싫었다고 해도, 뉴턴과 라이프니츠가 미적분을 만들었다는 정도는 많이들 알고 있을 것이다. 책에서는 누가 만들고를 떠나 미분이 탄생하게 된 배경과 함께,  미분의 기본 개념부터 다시 살펴보고 있다. 학교에서 배우는 변화량 개념에 상태와 과정이란 개념도 추가하여 미분을 단순히 수학 공식으로 보는 것이 아니라, 주변에 발생할 수 있는 다양한 문제를 어떻게 미분 형태의 공식으로 만들어 나갈 수 있는지를 말하고 있다. 




나는 이점이 무척 중요하다고 생각한다. 그저 공식만 외워 문제를 푸는 것은 입시에나 필요한 것이다. 그보다 어떤 문제나 현상을 보고, 거기에 미적분을 응용해서, 답을 찾고, 더 나아가 새로운 공식을 만들어 낼 수 있어야 한다. 책에서 삽화로도 나왔지만, 소위 과학의 천재들이 보는 세상과 일반인이 보는 세상은 완전히 다른 것이다. 과학자들은 무지개며, 개울의 물 흐름, 번개 원리 등 다양한 자연 속 모습을 수학 공식으로 만들 수 있는 능력이 있는 것이다. 내가 전부터 참 궁금했던 것이 바로 이런 수학을 활용하는 능력이었는데, '미적분의 쓸모'가 그 접근 방법을 잘 보여주고 있었다. 


첫 장과 세 번째 장에서는 미분과 적분의 원리를 중점적으로 얘기하고 있다. 거리를 미분하면, 속도가 되고, 속도를 미분하면 가속도가 되는 것과 함께 미분을 했을 때, 기울기의 의미, 한번 더 미분했을 때는 0값이 가지는 것이 무엇인지 알아 보면서, 이런 미분을 통해, 과속방지 카메라가 어떤 원리로 속도 측정하는지 알려준다. 




아르키메데스의 원의 면적, 구의 부피 이야기와 함께, 코로나 확진자 발생률을 살펴보며, 적분의 의미와 활용을 함께 생각해보고 있다. 적분이 CT 촬영을 가능하게 했고, 푸리에 변환을 통해, 데이터 압축에도 활용되고 있다니 신기하고 재미있었다.


미적분은 드론에서도 쓰이고 있고, 일론 머스크의 스페이스 X 우주선에도 쓰이고 있다. 현재 IT에서 각광을 받고 있는 인공지능 분야에서도 경사하강법, 모멘텀법, 내그법 같은 최적화 알고리즘을 구현하는데도 큰 역할을 하고 있음을 알 수 있다. 저축과 투자, 미래예측 분야에서도 미적분은 활발하게 활용되고 있다.


만일 미적분이 없었다면, 세상은 지금과 많이 달라졌을 것이다. 특히 애니메이션 경우, 실제 같은 효과가 담긴 토이스토리나 겨울왕국 같은 것은 볼 수 없었을 것이다. 그만큼 애니나 영화의 각종 특수 효과에도 미적분이 포함된 각종 역학 공식이 들어가는 것이다. 


'미적분의 쓸모'에는 복잡한 계산은 없지만, 중간중간에 이상한 부호를 가진 복잡한 미분방정식과 공식들이 나온다. 전공자가 아니면 모를 수 있는 것들이긴 하지만, 이것들이 전체 내용을 이해하는데 크게 방해되지는 않는다. 잘 모르는 부분은 가볍게 살펴보고, 넘어가도 좋을 것이다. 


'미적분의 쓸모'는 분명 미적분을 잘하게 해주는 수학 학습서가 아니다. 그러나 책 속에 나오는 다양한 미적분의 활용을 통해 미적분의 개념을 확실히 다지게 해주고, 과학적, 수학적 사고를 하는 데, 많은 도움을 준다고 생각한다. 공학이나 과학 외, 사회, 문화, 심리 분야 등에서도 각종 공식들을 보곤 하는데, 이런 곳에 미적분 개념을 써서 활용할 수 있는 능력을 길러주는 것이다.



본 서평은 출판사에서 도서를 지원 받아 작성했습니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
파이썬 비동기 라이브러리 Asyncio - 대규모 병행성 작업을 위한 비동기 프로그래밍
케일럽 해팅 지음, 동동구 옮김 / 한빛미디어 / 2021년 5월
평점 :
장바구니담기



프로그래머로 본격적으로 일을 하기 위해서는 꼭 알아둬야 할 지식 중에 하나가 스레드 활용법이다. 센서를 실시간으로 모니터링한다든가, 전자기기의 각종 버튼 반응 처리,  연산 병렬 처리, 게임 등 곳곳에서 쓰이는 기능이며, 비동기 처리에 있어, 스레드는 필수 사항이기도 하다. 인터프리터 언어인 파이썬에도 스레드 기능이 당연히 들어 있다. 




그런데 이렇게 곳곳에서 쓰이는 요긴한 스레드에도 여러 문제를 가지고 있다. 대부분의 프로그래밍 언어에서 스레드 수를 가급적 많이 쓰지 말라고 권고하고 있다. 컴퓨터의 CPU 또는 메모리 자원을 많이 사용하는 비효율적 문제도 있고, 문법 자체는 어렵지 않으나, 프로그램 구조가 복잡해져, 타인이 수정하기 어렵고, 꼼꼼히 처리하지 않으면, 생각지도 않은 돌발 상황이 발생해, 개발자들을 골치 아프게 만드는 문제도 있다.


파이썬은 이런 문제를 해결하기 위해, asyncore 같은 새로운 비동기 기능을 만들어 발전해 왔으며, 파이썬 3.4에 스레드나 멀티프로세싱 보다 가벼운 병행 프로그래밍 도구 Asyncio가 등장했다. 이 책 '파이썬 비동기 라이브러리 Asyncio'는 바로 라이브러리 모듈 Asyncio를 정확히 이해하여 좀 더 쉽게 쓸 수 있는 방법을 알려주는 파이썬 프로그램 개발 실용서인 것이다. 집중적으로 Asyncio 라이브러리에 관한 필요한 것들만 다루고 있어서 책 부피마저도 군더더기 없이 두껍지 않다.


저자가 말하길 '파이썬 비동기 라이브러리 Asyncio'은 최종 사용자 개발자 즉 응용프로그램 개발자와 프레임워크 개발자 혹은 설계자를 대상으로 하고 있다고 말한다. 중급 이상 수준의 책으로 적어도 파이썬 기본, 특히 스레드, 코루틴 정도는 마스터한 사람을 위한 수준의 책으로 서버와 소켓 통신 같은 것도 알고 있다면, 좀 더 이해가 쉬울 것이다.  그렇다고 아주 난해한 정도까지는 아니다. 




Hello! Good bye!처럼 아주 간단한 코딩부터 단계적으로 수준을 높여가며, asyncio에 관해 학습하고, 예제 코드마다 자세한 설명도 잘 되어 있어, 비록 딱딱한 주제와 용어 때문에 살짝 지루함은 다소 느끼지만, 전반적인 내용을 이해하는데 많이 어렵지 않았다. 


책 구성은 제일 먼저 Asyncio를 간단히 소개하고, 스레드의 문제점과 차이를 알아 본 뒤, asyncio에 관해 구체적으로 살펴보면서, 관련된 다른 라이브러리에 대해서도 알아본다.


간혹 라이브러리 관련 책을 보면, 레퍼런스 매뉴얼 또는 공식 문서를 살짝 편집만 해서 내용 대부분 그대로 옮긴 것을 접하기도 하는데, '파이썬 비동기 라이브러리 Asyncio'는 완전히 격이 다르다. '한 땀, 한 땀 장인의 손길' 어쩌고 하는 그런 느낌이 드는 핸드메이드스러운 책이다.




케일럽 해팅 저자가 Asyncio를 완전 해부 분석하며, 하나하나 직접 테스트 코딩한 내용을 담고 있다. 옛날 방식의 코딩과 현대식 코딩의 차이, 추천과 비추천 함수, 주의할 점, 논란 부분, 어떤 때 써야 하는지 등등 무척 깊은 부분까지 잘 담고 있다.


경험 많은 개발자라면, 이것들이 얼마나 직접적으로 도움 되는지, 잘 알 것이다. 일일이 이 방법이 맞나, 저 방법이 맞나 테스트해보는 시간도 절약해주고, 잘못 적용해서 코드를 다시 뒤엎는 일도 막아 줄 수 있기 때문이다. 항상 일정에 쫓겨서 제대로 테스트할 여유 없는 대부분의 개발자 입장에서는 참 고마운 부분인 것이다.


그리고 asyncio뿐만 아니라, 스레드, 서버, 기타 라이브러리, API 등 본문과 관련된 다양한 것들의 참고 동영상, 관련 문서, 사이트도 책 곳곳에 본문과 주석 형태로 잘 정리해 놓아서 필요에 따라서는 독자가 더욱 깊게 파고들며 공부할 수 있는 여지도 남겨 두고 있다. 비록 책 두께는 얇지만, 담고 있는 내용은 그 몇 배를 넘는다.




책 4장의 '여러분이 사용하지 않는 Asyncio 라이브러리 20개'라는 주제도 같은 맥락이라 할 수 있다. 어떤 건지 잘 몰라서 안 썼거나, 아예 몰라서 못 써온, Asyncio, 비동기 기능에 적합한 라이브러리들을 소개하고 나름 중요 엑기스만 담은 코드도 함께 넣었다. 여기서는 메시지 대기열 서비스에는 ActiveMQ와 함께, HTTP, XMPP, FTP 등 인터넷 프로토콜에 다양한 기능을 제공하는 트위스티드, 스레드와 코루틴 간 통신 솔루션 Janus, 스마트 소켓도 제공하는 네트워킹 라이브러리 0MQ 등을 핵심 기능 위주로 가볍게 다루고 있다.


내 경우, 파이썬이 프로그램 개발 주력 언어가 아니라, 간단한 테스트 프로그램 정도로만 쓰다 보니, 파이썬의 깊은 곳을 잘 몰랐는데, '파이썬 비동기 라이브러리 Asyncio'를 통해 스레드, 멀티프로세싱, 병렬처리 등에 대해 지식을 다시 점검할 수 있었고, 미처 모르고 넘어갔던 부분을 제대로 파볼 수 있었다. 비동기 프로그래밍 관련해서 이만한 책은 없을 듯하다.


'파이썬 비동기 라이브러리 Asyncio'가 실제 개발에 유용한 주제를 담고 있고, 내용에도 깊이가 있는 만큼, 프로그램 실력을 확실히 한 단계 업그레이드하고 개발자의 시야를 넓혀 주는데 큰 도움을 줄 것이다. 비동기 쪽에서 더욱 효율적이고, 오류 적은 프로그램을 짜기 위해 이 책을 자주 참고할 생각이다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
[eBook] UX 디자인의 모든 것 - UX 디자이너가 고려해야 할 사용자 경험
한상훈 지음 / 비제이퍼블릭 / 2021년 4월
평점 :
장바구니담기



지금은 그나마 많이들 코딩과 디자인을 나눠서 프로그램 개발을 많이 하고 있지만, 과거에는 프로그래머가 디자인까지 다 했었다. 물론 지금도 규모가 있는 개발 외에는 단가 때문에 프로그래머에게 떠넘기는 경우도 많고, 1인 개발자는 기획부터 코딩, 테스트까지 다 해야 하는 입장이니 디자인도 선택의 여지가 없다. 


그러다 보니, 사용자 입장이 아닌, 개발자 입장의 프로그램 디자인이 될 수밖에 없다. 멋진 디자인에 대한 기대는 일단 접어야 한다. 색상도 뭔가 공돌이스런 칙칙함과 버튼만 잔뜩 큰 디자인을 많이 본다. 그런데 디자인 보다 더 큰 문제는 사용이 복잡하거나 화면을 바로 알아보기 어렵게 만들 것들이 있다는 것이다.


사용성 문제는 디자이너를 썼다고 해서 해결되는 것이 아니다. 화면만 보면, 너무 예쁘게 잘 만들었는데, 써보면, 너무 불편한 프로그램도 많다. 두 경우 모두 사용자 인터페이스 UI, 사용자 경험 UX 디자인 개념 없이 만든 경우이다.


이런 프로그램들을 접하게 되면, '난 절대 이러지 말아야지' 대뇌이곤 하는데, 말이 쉽지, 이게 절대 쉬운 일이 아니다. 사용자에 편리한 UX, UI는 기능면뿐만 아니라, 디자인 측면에서도 좋아야 한다. 


아마 경험 많은 프로그래머라면, 잘 알 것이다. 멋진 디자인과 함께 잘 짜인 영화 시나리오처럼 물 흐르듯 완벽한 내비게이션 맵 구조가 개발 초반에 딱 완성되어 있으면, 코딩하는 사람 입장에서 그보다 편한 것이 없다는 것을 말이다. 별다른 고민 없이 그저 화면에 맞게 기능만 딱딱 넣어주면 되기 때문이다. 


그래서 난 프로그램 개발 때마다 많은 시간을 들여 머리를 뜯어가며 고민하는 것이 화면 디자인이다. 좀 더 알아보기 쉽게 만들려고 노력하고, 마우스 클릭이나 터치 수를 줄이는 방법, 시선 측면, 마우스 이동 거리, 버턴 배치, 컬러, 에러 표시, 각종 메시지, 출력물 디자인 등 많은 것들을 생각하고 또 생각한다.


이렇게 고민을 해도 내가 제대로 만들었는지 매번 자신이 없다. UX에 대한 지식이 많지 않다 보니, 그만큼 자신이 없는 것이다. 이러한 이유로 인해 'UX 디자인의 모든 것'을 꼼꼼히 보게 되었다. 이 책은 UX나 UI를 직접 그리거나 툴을 사용하는 방법을 담은 책이 아니다. 'UX 디자인의 모든 것'은 어떤 UX를 사용해야 하는지, 어떤 UX가 좋은 것인지, UX UI 디자인 방향과 함께 기준이 될 수 있는 가이드와 노하우를 알려주고 있는 실무에 도움을 주는 책이다. 




이 책은 전체 7파트로 나눠 UX에 대해 많은 정보를 알려준다. 특히 첫 파트인 '사용자를 위한 디자인 UX'는 UX 디자인에 있어 시점을 어디에 둬야 하는지 명확히 설명해주고 있다. 가상의 페르소나를 만들어 프로그램 사용 타깃을 정하는 방법은 참 좋은 거 같다. 

페르소나의 성별, 나이, 직업, 취미, 성향, 월급, 식비, 출퇴근 시간, 학력, 주량과 같이 무척 구체적인 설정을 통해, 사용자가 어떻게 사용할지 추측도 해보고, 어떤 점을 중점을 둬야 할지, 그림을 그리듯이 상상할 수 있는 것이다. 추가적으로 부정적 페르소나도 설정하면 블랙 컨슈머에 대한 대응 또한 상세히 예상해 볼 수 있다. 대상은 개발 프로그램 성격에 맞춰, 성인도 될 수 있고, 아동이나 청소년, 노년층도 가능하다. 'UX 디자인의 모든 것'에서는 연령에 따른 컬러, 클릭 성향, 시각적 요소, 폰트 크기, 인지 능력 등과 같이 참고가 되는 다양한 설명을 하고 있다. 결국 구체적으로 페르소나를 정하는 것이 UX 디자인의 시작점이라 말할 수 있는 것이다.




2번째 파트부터는 화면 디자인 요소인 버튼, CTA, 토글, 라디오 버튼, 체크박스, 플로팅 버튼, 내비게이션, 툴팁 등과 같은 것을 다룬다. 버튼의 색상이나 트렌드, 어느 정도 크기가 적당한지, 폰트 크기와 서체 선택, 자간, 행간은 얼마 주면 좋은 지도 구체적인 값을 제시하고 있다. 그리고 이런 기본적인 것 외에 광고 등에 많이 사용되는 캐러셀에 대해서 어떤 점이 좋고, 주의할 점, 노출 시간과 같은 것도 다루고, 토스트 사용 시 주의할 점도 잘 나와 있다.


회원가입, 로그인, 비밀번호, 404에러 페이지 등 직접적인 사용에 관련된 것은 별도 파트로 놓여 있는데, 입력 값의 보존이나 비밀번호와 이메일의 처리, 에러 상황에 대한 대처 같은 것은 프로그래머 입장에서도 꼭 알아 둬야 하고, 참고할 것들이었다. 


책에는 UX 평가법에 대해서도 잘 나와 있다. UX 디자인은 심리적인 요인이 많으므로 절대적인 정답이 있는 것은 아니다. 따라서 지속적으로 사용자 반응을 살펴봐야 한다. 'UX 디자인의 모든 것'에는 어떤 방법으로 어떤 것을 중점적으로 봐야 하는지, 어떤 툴이 도움이 되는지 잘 나와 있다. 




책을 보다 보니, 내가 화면 디자인하면서, 전혀 고려하지 않았던 부분이 있었다. 색맹이나 색약에 대한 배려였다. 이 부분은 진짜 단 한 번도 생각을 못했다. 아예 시각장애가 있는 분에 대한 부분도 언급하고 있는데, 책 마지막 파트에 나오는 앞으로의 UX 디자인 트렌드에서 말하고 있는 스마트 스피커나 시리와 같은 음성 비서 기능을 활용하거나 인공지능을 접목하는 방법도 괜찮을 거 같다.


이처럼 'UX 디자인의 모든 것'에는 미처 생각도 못한 다양한 측면을 다루고 있는데, 여기에 더욱 좋았던 점은 페이스북이나 틱톡과 같은 해외 사례뿐만 아니라, 배달의민족, 네이버, 카카오 등 국내 서비스도 책 곳곳에서 다루고 있다는 점이다. 이 책 자체가 한국적 페르소나가 모델이라고 말할 수 있다. 그래서 설명을 더 쉽게 이해할 수 있었고, 뭔가 더 현실성 있게 느껴졌다. 


'UX 디자인의 모든 것'을 통해 그동안 파편적으로 흩어져 알고 있던 UX UI 디자인에 대해 하나로 정리할 수 있었다. 내가 잘하고 있는 건지 알 수 없고, 자신 없던 부분도 명확히 할 수 있고, 많은 것을 배웠다. 책 크기나 분량에 비해 참 많은 내용과 노하우가 꾹꾹 눌러 담겨 있는 책이다. 디자이너, 프로그래머, 1인개발자 모두에게 고민 시간을 덜어주는 UX 디자인 표준 가이드 같은 책이다. 아울러 프로그램 발주 담당자도 읽어 두면 업무에 도움이 될 것이다.


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