프로그래머의 뇌 - 훌륭한 프로그래머가 알아야 할 인지과학의 모든 것, 2022 세종도서 학술부문 선정
펠리너 헤르만스 지음, 차건회 옮김 / 제이펍 / 2022년 1월
평점 :
장바구니담기


개발자, 뇌과학.
요즘 가장 핫한 분야이다.
이 둘이 만나 멋진 책이 나왔다.
뇌과학 중 인지과학과의 연관성에 대해 다양한 분야의 책들이 출간되고 있다.
이 책은 '인지과학'과 '프로그래머'와의 연관성에 말하고 있다.


책을 간단히 요약하면 '프로그래머는 어떻게 생각하고 사고하는 것이 가장 효율적인가'이다.
프로그래머가 가장 많이 하는 일은 코딩이다.
코딩은 비즈니스 모델을 다양한 자료구조와 알고리즘을 사용하여 최적화된 결과물을 제공하는 것이다.
프로그래머에 가장 중요한 것은 빠르고 정확하게 개발을 하는 것이다.
개발 범위가 커지면서 자신의 코드 뿐만 아니라 다른 사람의 코드를 읽고 이해하는 것도 중요해 지고 있다.
이를 위해 코드 컨벤션이 네이밍 룰을 정하는 것이다.
책은 그 이유에 대해 인지과학을 통해 친절하게 설명하고 있다.


앞부분에서는 뇌의 구조에 대해 설명하고 있다.
우리 뇌는 반영구적으로 기억하는 장기 기억 공간(long-term memory, LTM)과 잠시 기억하는 단기 기억 공간(short-term memory, STM), 그리고 이 정보들을 처리하는 작업 기억 공간(working memory)으로 나누어져 있다.
개발을 할 때 어느 타입이 부족한가에 대해 생각해 볼 수 있다.
초보 개발자는 지식이 부족할 것이고, 경험이 없는 개발자는 정보가 부족한 것이다.
이 둘의 부족은 처리 능력의 부족을 불러올 것이다.


개발자라면 이 부분에 공감할 수 있을 것이다.
가장 어려운 것 중 하나가 '이름 짓기'이다.
그래서 항상 개발을 하기 전 네이밍 룰을 정하는 것을 기본으로 하고 있다.
미리 정하지 않으면 개발자마다 자신만의 변수와 함수명을 쓰고 있어 분석에 어려움을 겪는다.


개발에 입문하는 분들에게 항상 강조하는 말이 있다.
'일단 제대로 하나의 언어에만 집중하라'고.
웹개발 같은 경우 처음에 프론트, 백앤드, DB, 심지어 앱까지 다양한 언어를 만나게 된다.
이 모든 것을 한번에 잘 할 수 없다.
(나중에라도 모두 잘하는 사람이 되기는 쉽지 않다. 풀스택 개발자가 귀한 이유이다.)
일단 하나의 언어를 마스터하면 다른 언어를 배우기가 용이하다.
바로 '전이'때문이다.


처음에는 모든 것을 기억하려고 한다.
'방식'이 아니라 '대상'을 기억하는 것이다.
하지만 점점 많은 개발을 하게 되면서 '방식'을 기억하는 것이 더 중요함을 알게 된다.
메소드, 라이브러리를 기억하는 것도 좋지만 그보다는 개발방식이나 프로세스를 기억해야 한다.

책을 보면서 '코드'에 대해서 많이 생각해 보게 되었다.
실행 가능한 코드를 넘어 '좋은 코드'가 무엇인지, 빠르게 코드를 이해할 수 있는 방법은 무엇인지, 협업을 위해 코드 베이스를 어떻게 가져가야 하는지...

경력 여부와 상관없이 프로그래머라면 꼭 읽어보기를 추천하고 싶은 책이다.
많은 글을 쓰는 것도 좋지만, 남들이 보기 좋은 글을 쓰는 것이 더 좋다.
이 책으로 프로그래머로서 레벨업을 할 수 있을 것이다.


댓글(0) 먼댓글(0) 좋아요(2)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
어떤 개발자가 살아남는가 - 인문학, AI를 이기는 소프트웨어
이경종 지음 / 비제이퍼블릭 / 2022년 3월
평점 :
장바구니담기


개발자에 대한 관심이 높습니다.
이전과 다른 대우와 작업 여건이 많은 젊은이들의 관심을 끌고 있는 것 같네요.
전반적으로 이전보다 좋아진 것은 맞습니다만 '누구나' 좋은 대우를 받는 것은 아닙니다.
AI는 다른 분야도 마찬가지이겠지만 '개발'분야에도 영향을 미치고 있습니다.


이 책의 저자는 20년차 소프트웨어 개발자로 '개발자란 무엇인가'란 주제에 대한 고민을 하였고, 그 대답을 인문학에서 찾았습니다.
결국은 '인간'을 향하고 있다는 것이 답이지요.
이 책은 그 답을 찾기 위한 과정을 보여주고 있습니다.

AI가 많은 것들을 대체하고 있지만, 결국 AI를 만드는 주체는 인간이며 궁극적으로 AI는 개발자를 대체할 수 없습니다.
단순히 폄하하자면 AI는 사람의 경쟁 상대가 아닌 도구에 불과합니다.
AI가 해야 하는 일은 무엇이고, 인간이 해야 할 일은 무엇일까요?
간단히 말하자면, 정답이 이미 존재하는 것은 AI가 하면 되고, 아직 답이 없는 것은 인간이 해야 할 일입니다.

이미 나와 있는 답을 보여주는 것은 기계가 더 잘합니다.
인공지능의 기술은 어느 정도 추론이 가능한 답도 인간보다 더 정확하게 뽑아낼 수 있습니다.
인간은 기계가 할 수 없는 답을 찾아야 합니다.
지금 하고 있는 일이 정답이 있는 일인지, 아닌지 생각해 볼 필요가 있습니다.
개발이 늘 새로운 답을 찾는 과정은 아닙니다.
지난 달에 했던 일을 지금도 똑같이 하고 있다면 이미 푼 문제를 또 풀고 있는 것입니다.
같은 일을 하더라도 새로운 방법을 찾으려고 노력해야 합니다.

미래를 보지 못하는 이유는 질문을 하지 못하기 때문입니다.
오로지 정답만을 향해 전진하는 것이 최선이 아닐 수도 있습니다.
때로는 쓸모없어 보이는 것들로부터 쓸모 있는 것들이 만들어 집니다.
창조의 밑거름은 상상력이고, 상상력은 여백에서 오기 때문입니다.

개발자로 어느 정도 이상의 경력이 되면 이 말에 공감할 수 있을 것입니다.
늘 새로운 일, 눈에 보이는 일만 할 수 없습니다.
하찮은, 귀찮은 일이 때로 큰 도움이 되곤 합니다.
그렇기에 쓸모없는 일은 없다고 생각합니다.
지금 당장은 번거롭고 도움이 되지 않는 것 같지만 언젠가 분명 쓸모가 있을 것입니다.

가장 완벽한 소프트웨어는 완벽을 추구해서 만들어지는 것이 아니라 실패를 이어 나가는 과정에서 만들어집니다.
실패로부터 성공을 만들어 내기 위해서 그리고 더 좋은 개발자가 되기 위해서는 철학이 필요합니다.

완벽한 소프트웨어가 존재할까요?
전 없다고 생각합니다.
늘 새로운 기능을 추가하고, 더 나은 개선을 위해 변경됩니다.
그 과정은 실수와 실패의 연속입니다.
실수와 실패를 하지 않을 수 없습니다.
다만 줄이기 위해 다양한 방법과 정책을 도입하는 것이지요.
실수와 실패를 용인하지 않는 회사는 개발을 하지 말라고 말하는 것과 같습니다.
가장 성공한 기업 중 하나인 아마존도 성공한 프로젝트보다 실패한 프로젝트 수가 몇십배는 더 많았음을 기억하시길...

프레임 속에 갇히면 창조와 통섭과는 멀어질 수 밖에 없다.
우리가 고개를 들어 바라보아야 할 것은 프레임의 바깥쪽이다.
모든 프레임을 둘러싸고 있는 것이 바로 인간과 그 인간들이 이루고 있는 조직과 사회다.

개발을 하다보면 방법과 프로세스에 집중하게 됩니다.
일종의 직업병으로 특정 분야에 편협한 사고를 하게 되지요.
그만큼 특화된 사고방식을 할 수 있다는 것은 장점이기도 합니다.
하지만 그 이상을 원한다면 그 사고방식을 깨야 합니다.
그것이 바로 통섭이고 융합입니다.
솔직히 쉽지 않습니다.
그리고 이제 막 개발을 시작한 분들에게는 권하고 싶지 않습니다.
일단 자신의 분야에서 어느 정도 전문성을 갖춘 후에 필요한 자질이라 생각합니다.

모방으로부터, 이미 만들어진 프레임으로부터 시작할 수 밖에 없지만 모방하기만 하고 프레임 안에만 머문다면 AI와 다를 바 없게 된다.
모방에만 그친다면 코더 이상의 프로그래머가 될 수 없다.
모방으로부터 시작하지만 그 이상의 가치를 만들어 내면 그것은 창조가 된다.
창조적 모방이 곧 창조다.

'코더'와 '프로그래머'의 차이가 뭘까요?
코드에 자신의 생각과 철학이 있느냐의 여부라 생각합니다.
예전에 일본 기업의 프로젝트에 참여한 적이 있습니다.
디테일한 민족성을 보여듯이 기획서가 무척 꼼꼼하더군요.
그냥 기획서대로 구현만 하면 되었습니다.
말이 좋아 구현이지 그냥 프로그래밍 언어를 알고 있는 사람이 할 수 있는 타이핑이란 생각이 들었습니다.
작업은 쉬웠지만 성취감을 느끼긴 어려웠던 프로젝트였습니다.
지금 코딩을 하고 있는지, 프로그래밍을 하고 있는지 생각해 보세요.


처음부터 복잡하고 어려운 프로그램에 도전하는 것은 좋지 않습니다.
아는만큼 보이고, 사용할 수 있습니다.
그러기 위해서는 일정량의 경험과 지식이 축적되어야 합니다.
지금 당장 멋진 프로그램을 짤 수 있을 것 같은 열정은 잠시 접어두면 좋겠습니다.
다만 그 열정을 포기하거나 잃어버리지 않았으면 합니다.

비난의 대상이 되는 것은 부주의하게 기존 코드를 복사해서 붙여넣기하는 것이지 정보를 가져다 쓰는 데 있는 것이 아니다.
소프트웨어 개발에서 많은 문제가 확실히 알지 못한 상태에서 복사해서 붙여 넣은 코드들 때문에 발생한다.

개발자 중에서 단 한번도 코드를 복사해서 쓰지 않은 분이 있을까요?
단연코 없다고 생각합니다.
자신이 만든 것이든, 공개된 오픈 소스든 자신이 생각하는 최고의 코드를 가져다 씁니다.
가져다 쓰는 것이 나쁜 것이 아닙니다.
개인적으로는 권장합니다.
이미 남이 잘 만들어 놓은 바퀴를 새로 만들 필요가 없습니다.
다만 '제대로 알고' 사용해야 합니다.
자동차 바퀴가 필요한 자리에 오토바이 바퀴를 넣으면 안되니까요.


그 아무리 멋지고 좋은 기술이라도 인간에게 유용하지 않다면 의미가 없습니다.
요즘은 보기 어렵지만 예전에 스타트업들 중에 기술만을 중시하는 회사들이 있었습니다.
그것을 이용할 사용자에 대한 고려보다는 가장 최신의, 가장 멋진 기술만을 고집했습니다.
개발자가 만드는 것도 결국 사람이 사용하기 위한 것입니다.
지금 내가 짜는 코드가 사람에게 어떤 의미가 있을지 한 번 더 생각할 수 있다면 훨씬 멋진 개발자가 될 것입니다.

미래의 인간은 두 부류로 나뉠 것이다.
그 둘은 프로그래밍을 하는 사람들과 프로그래밍을 당하는 사람들이다.

책머리에 있느 글입니다.
개발을 하고 있다는 것이 프로그래밍을 하고 있다는 것과 동의어가 아닙니다.
이 책을 보면서 프로그래밍을 하고 있는지, 당하고 있는지 생각해 보았으면 합니다.
중급 이상의 개발자분들에게 '개발'에 대해 새로운 시각을 보여줄 수 있는 좋은 책입니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
실무에 바로 적용하는 파이썬 코드 레시피 302
구로즈미 다카유키 지음, 김모세 옮김 / 제이펍 / 2022년 4월
평점 :
장바구니담기


책 표지가 무척 귀엽다.
표지에 나와 있는 이 모든 것들을 자유자재로 다룰 수 있다면 매우 좋은 프로그래머일 것이다.
이 책은 그것을 가능하게 해 줄 좋은 가이드이다.

제목대로 이 책에는 302가지의 파이썬 코드가 담겨있다.
레퍼런스로 공부하면 방법만 알고 어떻게 적용해야 하는지 막막할 때가 있다.
이 책에 담긴 코드는 그런 막막함을 해소시켜 준다.

각각의 코드는 위 그림과 같이 소개한다.
코드는 간결하면서, 내용에 대해 쉽게 설명하고 있다.
한두장의 내용을 통해 핵심을 빠르게 익힐 수 있다.
파이썬을 처음 접하는 분들에게도, 빠른 해결방법을 찾는 분들에게도 아주 유용한 책이다.

앞부분에서는 파이썬을 모르는 분들도 쉽게 배울 수 있는 내용들로 구성되어 있다.
변수, 제어문, 함수는 물론이고 로그, 설정파일도 소개하고 있다.

위처럼 핵심적인 내용만을 쉽게 설명하고 있다.
로그 포멧이나 코딩 규약처럼 코드와 직접적으로 연관되지 않은 내용들도 있기에 파이썬에 대한 전반적인 이해도를 높일 수 있다.

후반부에서는 DB 연동, HTTP 요청, 데이터 분석 등 파이썬을 가장 많이 사용하는 부분들을 알려준다.
실무에서 가장 필요한 것이다.
아직 파이썬이 익숙하지 않다면 이 책을 곁에 두고 바로 찾아보면 좋을 것이다.

이 글을 쓰면서 가장 많이 사용한 단어가 '쉽다'라는 것이다.
정말 강조하고 싶기 때문이다.
뒷부분에 나오는 넘파이, 팬더스, 맷플롯립 등을 제외하면 별도로 설치할 프로그램도 없다.
그냥 파이썬만 설치하고 책에 있는 코드 그대로 타이핑하면 원하는 결과를 볼 수 있다.

이 책의 내용을 모두 숙지한다면 표지의 요리사처럼 많은 것들을 다룰 수 있을 것이다.
얼마나 맛있게 만들 수 있는가는 숙련의 차이일 것이다.
이 책으로 맛있는 파이썬 요리사가 되시길~


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
NFT 실체와 가치 - NFT와 블록체인이 이끌어갈 메타버스 시대의 경제 생태계
장세형 지음 / 위키북스 / 2022년 3월
평점 :
장바구니담기


4차 산업혁명, 그리고 코로나로 인한 팬데믹.
이들이 만나 복합적 상황이 되면서 비대면과 연관된 기술의 발전과 확산이 증폭되었다.
그 중 대표적인 것이 바로 NFT이다.
암호화폐의 거래로 누군가 엄청난 부자가 됐다, 자신의 사진에 NFT를 접목시켜 높은 가격에 거래를 했다 등 심심찮게 뉴스에 나오곤 한다.
그런데... NFT가 뭘까?

이 책은 NFT의 본질에 대해 설명하고 있다.
코인의 가격이나, NFT 개발 방법을 보여주는 책들은 있다.
그런데 NFT의 본질에 대해 이처럼 상세하게 설명해 주는 책은 이 책이 유일하지 않을까 싶다.

NFT(Non-fungible token)
'대체 불가능 토큰'이라고 한다.
도대체 무엇을 대체할 수 없다는 것일까?
유일하다면 어떤 장점이 있을까?
그리고 저자의 말처럼 대중들은 '토큰'이 아닌 '대체 불가능'에 더 관심을 가지는 것 같다.

책의 시작은 '증서'로 시작된다.
증서가 왜 만들어졌는지, 어떤 식으로 발전해 왔는지를 보여준다.
NFT를 설명하는데 왜 증서의 역사가 필요한가 싶겠지만 NFT도 결국 '토큰', 즉 증서이다.
증서의 역사를 통해 NFT가 만들어진 배경을 알 수 있고, 그 속성도 제대로 이해할 수 있다.
그리고 대중적으로 가장 많이 알려진 비트코인과 이더리움에 대해 설명하고 있다.
이 둘을 설명하면서 빠질 수 없는 것이 '블록체인'이다.
블록체인이 없었다면 이 코인들은 만들어질 수 없었을 것이다.
메타버스에서의 NFT 활용 방안과 미래 전망까지 소개하고 있다.

코인과 토큰을 구분하여 설명할 때 일반적으로 독자적인 블록체인 플랫폼을 가지고 있느냐 아니냐로 구분한다.
독자적인 블록체인 플랫폼을 가지고 있으면 코인이고, 그렇지 않으면 토큰이라 부른다.

'코인'과 '토큰'은 같은 것이라 생각했는데, 분명한 차이가 있다.
플랫폼의 유무.
일론 머스크가 트위터를 인수하자 도지코인의 가격이 엄청 상승했다.
도지코인의 트위터에서 사용될 수 있을 것이라는 기대감 때문이다.
코인 그 자체에는 가격이 없다.
어디에서 얼마나 잘 사용되느냐에 따라 가격이 달라진다.


가상화폐와 NFT의 구분을 잘 보여주고 있는 그림이다.
사실 이 모두를 같은 하나의 것으로 생각했었다.
각각의 특성에 따라 구분되고 '대채 불가'의 개념에 대해서도 잘 이해할 수 있다.

이 책은 NFT의 가격 전망이나 개발 방법을 말하고 있지 않다.
아주 쉽고 재미있는 NFT 개론서이다.
NFT의 본질을 제대로 이해한다면 그것과 관련된 것들-가격, 개발 방법 등-에 대한 이해도 빠를 것이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
게으르다는 착각 - 우리는 왜 게으름을 두려워할 필요가 없는가
데번 프라이스 지음, 이현 옮김 / 웨일북 / 2022년 4월
평점 :
장바구니담기


책 제목이 눈길을 끌었다.
게으르다는 착각?
게으르지 않으면서 게으르다고 생각한다는 것일까, 게으름이 나쁘지 않다고 말하는 것일까?
이 책의 주제는 두가지 모두를 말하고 있다.


대부분의 사람들은 충분히 게으르지 않은 삶을 살고 있다.
한국인이라면 '빨리빨리'와 '성실'이 민족성이라고 할 정도이다.
그렇기에 '게으름'은 꼭 피해야 할 것이고, 해서는 안 될 것이라고 생각하고 있다.
바쁠 때는 아무것도 하지 않을 진정한 휴식을 원하지만, 막상 쉴 시간이 주어지면 아무것도 하지 않는 자신이 불안해진다.

저자가 말하는 게으름은 해야 할 일을 하지 않고 농땡이 치는 것을 말하는 것이 아니다.
지나치게 일만 열심히 하는 것을 경계하는 것이다.
매일 10시간 이상씩 일하다가 8시간을 일하면 상대적으로 게을러 보일 수 있겠지만, 절대적인 기준으로 본다면 게으른 것은 아니다.
저자는 이런 시각에 경종을 울리는 것이다.

우리가 게으름으로 판단하는 겉보기에 '나쁜' 행동들은 실제로 우리 삶에서 무언가가 바뀌어야 할 필요가 있다는 강력한 신호다.
빈둥거리기는 삶의 정상적인 일부다.
맑은 정신과 건강을 유지하려면 한가로운 시간을 가져야 한다.
게으르고 싶은 마음은 더 많은 휴식이 필요하거나 해야 할 일을 줄여야 한다고 우리에게 알리는 강력한 내면의 경고이기도 하다.

격렬하게 아무것도 하고 싶지 않다.
예전에 광고에 나왔던 카피인데, 무척 공감이 갔다.
가끔은 아주 격하게 아무것도 하고 싶지 않을 때가 있다.
당장 급하게 처리해야 할 일들이기에 그 감정을 숨겼지만, 그건 내 몸이 보내는 신호이다.
이 신호를 너무 자주 무시하면 번아웃이 올 수도 있다.
번아웃보다는 잠깐의 게으름이 더 좋지 않겠는가.

우리가 휴식을 취하고 게으름을 피울 때, 자신에 대해 새로운 것을 알게 되거나 일에 집중할 때라면 절대 떠오르지 않았을 환상적인 통찰이 떠오를 수 있다.
게으름이 그런 순간에 도달하는 가장 효과적인 방법들 중 하나라는 것이다.
통찰과 창의력의 순간들은 억지로 한다고 해서 나오지 않는다.
정신 활동을 하지 않는 기간이 필요하다.
"일단 그것에 대해 깊게 생각해. 그러고 나서 잊어. 그러면 아이디어가 갑자기 떠오를 거야."

항상이라고 말하기는 어렵지만, 꽤 자주 그러하다.
샤워할 때, 산책할 때, 멍하니 있을 때...
이럴 때 그동안 막혔던 일의 해결책이 생각나고, 좋은 아이디어가 떠오른다.
우리가 알고 있는 '유레카'가 가장 좋은 예일 것이다.
단, 여기에는 조건이 있다.
해결방법과 아이디어가 떠오를 정도의 충분한 노력이 선행되어야 한다.
아무런 노력도 하지 않고 답을 얻기를 바라는 것은 바보나 하는 짓일 것이다.

행동으로 나타내기는 행복하길 원하고 삶을 제대로 인식하길 원한다면 기쁨을 느꼈을 때 그것을 보여주어야 한다고 제시한다.
행복감을 높여주는 또 다른 방법은 삶의 즐거운 순간에 오롯이 머무는 것이다.

행동으로 나타내기, 오롯이 머물기.
행복감을 높이기 위한 방법이다.
얼마나 행복한지 행동으로 표현하고, 그 순간을 즐겨라.
행복은 눈에 보이지 않는 것이지만, 눈에 보이게 표현하면 더욱 크게 느낄 수 있다.

무언가를 배울 때 좀 더 느리고 사색적인 접근법을 취하면 더 신중해지고 비판적으로 바라보며, 불안을 줄일 수 있다.
중요한 것은 노력의 질과 그 이면의 의도성이지 얼마나 열심히 스스로를 압박하느냐가 아니다.

공부하는 학생들의 성적에 대한 압박감을 어떻게 표현할 수 있을까?
아이러니한 것은 그 압박감에서 벗어나면 더 좋은 성적을 받을 수 있다.
'성적'을 위한 공부가 아니라 '성취'를 위한 공부를 하기 때문이다.
'어떤 의도'를 가지고 있느냐가 '질'을 좌우한다.
양과 질.
모두 중요하겠지만, 질을 떨어뜨리면서 양을 늘리지는 말아야 한다.
굳이 선택해야 한다면 난 질을 선택할 것이다.

타인과 진정성 있고 안전한 관계를 형성하려면 타인을 실망시키는데 편안해져야 한다.
고통스러울 정도로 많은 업무량과 다른 책임을 줄이는 법을 배워야 하는 것처럼 관계에서도 싫다고 말할 수 있어야 한다.
이 두 문제에 대한 해법은 우리의 진정한 욕구를 받아들이고, 싫다고 말하는 게 우리를 게으르게 하면 어쩌나 하는 걱정을 그만하는 것이다.

관계와 게으름의 관계가 신선한다.
거절의 표현이 결코 게으른 것은 아니다.
오히려 스스로에게 더 충실하고 있다는 증거이다.
자신만 생각해서도 안되지만, 자신을 생각하지 않아서는 더더욱 안된다.
자신을 아끼고 사랑한다면 적절한 거절은 필요하다.

책은 게으름을 찬양하지 않는다.
적당한 휴식과 여유를 통해 삶과 일의 조화를 찾아야 한다고 말하고 있다.
바로 워라밸이다.
게으름보다는 번아웃을 택하겠다는 사람들도 있다.
하지만 우리가 인생을 사는 목적, 이유를 생각해 본다면 적당한 휴식과 여유가 결코 게으르다고 평가되어서는 안 될 것이다.


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