Blog Archive

2023-12-27

(나만의) 2023년 올해의 책

2023년에는 총 21권의 책을 읽었습니다. 작년보다는 독서량이 조금 줄었습니다. 올해는 인생을 요동치게 만드는 큰 사건에 대한 여파로 하반기에는 집중해서 책을 보기가 매우 어려웠습니다. 반면에 당장 해결되지 않을 큰 짐과 난관이 올 때에, 책은 잠시나마 저만의 환상적인 메타버스를 제공해주고, 위안과 새로운 자극이 되었으며, 작은 희망을 가질 수 있게도 해주었습니다. 


2023년 올해의 책


올해의 책을 뽑으려면, 사실 시장 조사라도 광범위하게 해야 하고, 출판계의 흐름에 대해 조금이라도 알아야 하고, 또 독서량도 매우 많아야 하겠지요. 그러나, 저는 제가 오래 보았던 책 가운데, 인상 깊었고, 감동 받았고, 때로는 충격을 받았던 책들을 정리해봅니다. 연초에 읽었던 책들은 벌써 기억이 흐릿해지고 있네요ㅠㅠ.

소설/문학

압둘라자크 구르나의 『배반』
압둘라자크 구르나의 『배반』


올 초에는 저에게 가장 생경했던 책이라고 할 수 있는, 압둘라자크 구르나의 『배반』을 보았습니다. 동아프리카의 작은 자치 국가인 잔지바르 출신의 학생이 영국에 유학가서, 조국에 불어닥친 혁명의 광풍에 돌아가지도 못하고, 영국 사회의 온전한 일원이 되지도 못한 채, 과거의 이야기들을 풀어냅니다. 등장 인물들의 이름, 지명도 낯설고, 아프리카의 문화적, 시대적 배경을 잘 모르다보니, 한 페이지 한 페이지가 다 생소했지만, 고향에 대한 그리움과 안타까움이 잘 그려진 이야기는 대한민국의 한 독자에게도 진한 감동과 재미를 주었습니다.

아버지의 장례식에 온 온갖 사람들의 기억과 이야기를 토대로 아버지의 삶을 웃프게 소환해낸 정지아 작가의 『아버지의 해방일지』는 제가 유일하게 종이책을 서점에서 구해서 보았습니다. 

이영서 작가의 아름다운 문장과 그림이 빛나는 『책과 노니는 집』은 아이가 학교 과제로 읽던 아동 문학이었습니다. 

김진영의 『마당이 있는 집』은 괴로운 현실에서 상상의 세계로 도피하고 싶을 때 제가 찾은 스릴러 소설이었습니다. 스릴러 이상의 많은 생각할 거리를 제공해주었습니다. 

올해 마지막 소설은 백수린 작가의 『눈부신 안부』였습니다. 섬세하고 인간적인 이야기가 아름다운 문장에 담겨 있는 작가의 첫 장편 소설인데, 사실 마지막에 예상치 못했던 반전(?)도 있어서, 더 여운을 길게 남겼습니다. 

경제/경영

김정인의 『꼬리에 꼬리를 무는 한국경제사』
김정인의 『꼬리에 꼬리를 무는 한국경제사』


올해는 "경제" 관련 책들을 몇 권 보았습니다. KBS 서영민 기자가 쓴 『거대한 충격 이후의 세계』는 가장 큰 수확이었습니다. 코로나 팬데믹 이후, 세계 경제의 큰 변화와 사건들의 연결 고리를 심도있게 분석해서 이해할 수 있었을 뿐만 아니라, 경제적으로 취약한 계층에 대한 배려와 대책도 잊지 않은 수작이었습니다. 

김정인 작가의 『꼬리에 꼬리를 무는 한국경제사』는 역사책으로 분류되어 있는데, 너무 재미있어서 손을 떼기 어려운 한국의 경제 흑역사입니다. 오늘날 뒤돌아보면, 우리 나라에 이런 말도 안 되는 일들이 왜, 어떻게 일어났었고, 그것이 경제적으로, 역사적으로 어떤 의미가 있는지 명쾌하게 풀어냈습니다. 

박종훈 기자의 『자이언트 임팩트』도 전 세계 거시경제의 흐름을 세계사적인 맥락과 정치/사회적인 배경과 함께 이해할 수 있게 도와주었습니다. 

올해 베스트셀러에 올랐던 『세이노의 가르침』이 이 범주에 들어갈 수 있는지 좀 애매하긴 한데, 상당히 충격적으로 보았던 책이었습니다. 흔한 자기계발 서적에서는 공통적으로 "긍정적"인 마음과 시각으로 삶을 살아가면, "온 우주"가 나서서 도와준다는 식의 서사가 있습니다. 세이노의 가르침은 그런 이야기와는 전혀 다르게, 자수성가한 노인의 경험을 날 것으로 풀어낸 흔하지 않은 자기계발 서적이었습니다. 

인문/과학

하영원의 『결정하는 뇌』
하영원의 『결정하는 뇌』


경영학 교수 하영원의 『결정하는 뇌』는 경영학이나 사회심리학의 의사결정 이론을 한 학기 과정으로 개설했을 때 쓸만한 교과서에 가까웠습니다. 흥미로운 내용들이 쉬지 않고 나오기때문에 밑줄을 긋고, 하이라이트를 한다면 온전한 페이지가 남아있지 않을 것 같았습니다. 또 교과서이기 때문에 항상 옆에 놓고 참고하고 싶은 책이었습니다. 

유시민 작가의 『문과 남자의 과학 공부』는 과학도 이렇게 쉽고 친근하게 풀어내는 유시민 작가의 글솜씨와, 익숙하지 않은 분야에 대한 작가의 학습 능력을 유감없이 보여주었습니다. 

이 책에서 얻은 과학과 수학에 대한 호기심을 원동력 삼아, 폴 굿윈의 『숫자는 어떻게 생각을 바꾸는가』를 보았습니다. 정통 수학책은 아니지만, 일상에서 많은 숫자와 통계를 접하는 현대인들이 숫자를 어떻게 바라보아야 하는지, 또 인간이 숫자에 왜 이렇게 취약할 수 밖에 없는 지를 잘 보여주었습니다. 

다음 책

한 권의 책이 끝나면, 다음 책으로 무엇을 볼까 고민하면서 탐색하고 방황하는 시간이 꽤 길어질 때도 있습니다. 한편으론, 다음에 봐야 할 책들이 대기 목록에 올라와 있기도 합니다. 어떤 책이 대기 목록에 올라오는 경로가 몇 가지 있습니다. 

라디오에서 소개/추천해주는 것

저는 KBS 1 라디오를 많이 듣습니다. 운전할 때, 이동할 때, 그리고 집에서 집안일 할 때, 홍사훈의 경제 쇼, 김태훈의 시대음감, 생방송 주말 저녁입니다, 최경영의 최강 시사, 이대호의 성공 예감, 강원국의 지금 이 사람, 주진우 라이브 등을 즐겨 들었습니다. (제가 좋아하는 많은 프로그램들이 정권의 방송 장악 작전에 의해 하루 아침에 사라지는 아픔도 있었습니다.) 이런 프로그램들은 별도의 책 소개 코너가 있거나, 아니면 화제가 되는 작가의 인터뷰가 나오기도 합니다. 가만히 인터뷰를 듣고 있다가 이 사람이 누구지? 라고 사람에 관심이 생기고, 이어서 그 사람이 쓴 책에 관심이 가게 되기도 합니다. 신뢰할 만한 사람이 소개해주거나, 또는 작가의 인터뷰를 들어보니 참 괜찮다 싶은 경우, 다음에 읽어봐야겠구나 생각이 듭니다. 

같은 작가의 다른 책

좋은 책을 읽고 나면, 이 사람이 쓴 다른 책에도 자연스럽게 관심이 갑니다. 그렇게 해서 관심이 생긴 작가는 김승섭, 유현준, 애덤 그랜트, 문유석, 유시민, 박웅현 등이 있습니다. 

참고 문헌

작가들은 책 한 권을 쓰기 위해서 수백 권의 참고 도서를 본다고 합니다. 그 참고 도서 중에 내가 관심이 가는 책이 분명히 있습니다. 그렇게 해서 다음 책을 고르기도 합니다. 

책 광고/카드 뉴스

포털 사이트나 신문사 사이트에 책 소개가 나오기도 합니다. 요즘에는 단순히 텍스트로 책 소개가 나오기도 하지만, 광고인지 기사인지 모를 만화나 카드 뉴스로 나오기도 합니다. 간혹 이런 카드 뉴스를 보고, 그 책을 꼭 읽어보고 싶은 경우가 생깁니다. 

가용성

제가 보는 책의 90% 이상은 전자책입니다. 전자책 디바이스는 스마트폰입니다. 언제 어디에서나 휴대하고 다니는 유비쿼티와 극강의 접근성 때문에, 태블릿, PC, 전자책 전용 기기가 대체할 수 없는 편리함을 줍니다. 그리고 읽는 책의 90% 이상은 전자 도서관에서 빌려서 봅니다. 이렇게 전자책과 도서관이라는 두 집합의 교집합에 들어오는 책은 많지 않습니다. 그래서, 이 교집합 안에서 열심히 뒤져서 다음 책을 고르는 경우도 많이 있었습니다. 


2024년에 보고 싶은 책

여러 경로에서 얻은 내용을 바탕으로, 내년에 보고 싶은 책들을 몇 개 골라놓았습니다. 

김승섭의 『타인의 고통에 응답하는 공부』
김승섭의 『타인의 고통에 응답하는 공부』



안나의 집을 운영하는 김하종 신부의 『사랑이 밥 먹여준다』는 책은 강원국의 지금 이 사람이라는 프로그램에서 알게 되어서, 목록에 올려놓았습니다. 『타인의 고통에 응답하는 공부』는 김승섭 교수의 새 책이기 때문에 믿고 대기 리스트에 올립니다. 얀-베르너 뮐러의 『민주주의 공부』는 퇴행하는 한국 민주주의의 현실을 어떻게 바라볼 것인지 아이디어를 줄 것이라고 기대하며 읽을 목록에 올렸습니다. 『오리지널스』에서 깊은 인사이트를 주었던 애덤 그랜트 교수의 『기브 앤 테이크』는 오래 전부터 읽을 책 상위 목록에 있었는데, 가용성의 범위에 아직 들어오지 않았습니다. 마지막으로 올해 광풍을 일으키며 이미 엄청난 시장을 생성한 생성형 AI 툴들을 정리해놓은 백과사전이랄 수 있는 김덕진 소장의 『AI 2024』를 읽어보려고 합니다.

2023-12-16

이모들의 다정한 마음이 전해지는, 백수린 작가의 《눈부신 안부》

배수린 장편소설. 눈부신 안부

우리말 가운데 "이모"라는 단어가 주는 친근함을 과연 외국 사람들은 이해할 수 있을까? 소위 "파독 간호사"로 독일에 가서 젊은 시절을 낯선 땅에서 보내며 살아왔던 이모들의 이야기가, 누구의 마음도 다치지 않게 하려는 듯 선의의 거짓말처럼 세심하게 펼쳐진다. 처음에는 불의의 사고로 언니를 잃어버렸던 어린 시절 주인공 해미의 눈으로, 나중에는 해미가 자라면서 조금씩 성숙해진 시각으로 다시 바라본 주인공과 이모들의 이야기가 교차한다. 마치 커다란 유화를 돋보기를 대고 조금씩 조금씩 살펴보자, 저쪽 한편에서는 알지 못했던 색깔과 질감을 다른 한편에서 발견하면서 풍성함을 얻어가는 느낌이 들었다.

게으른 사람들은 자기가 알지 못하는 걸 배우려고 하는 대신 자기가 아는 단 한 가지 색깔로 모르는 것까지 똑같이 칠해버리려 하거든.
사람을 사랑하는 일에는 지극한 정성과 수고가 필요하니까.

지극한 정성과 수고는 곧 사랑이며 배려이다. 해미의 친구 레나, 한수가 선자 이모의 첫사랑을 찾아주려는 노력도 인간에 대한 사랑과 배려이다.

나는 유리병에 담아 대 대서양에 띄우는 마음으로 이 편지를 네게 보낸다. 나를 위해 너의 편지를 전해준 아이들의 마음이 나를 며칠 더 살 수 있게 했듯이. 다정한 마음이 몇 번이고 우리를 구원할 테니까.

다정한 마음은 첫사랑에 대한 그리움을 억누르면서도 눈부신 독일의 햇살에 감탄했던 선자 이모에게도, 그리고 사고로 가족을 잃은 주인공에게도, 선자 이모의 첫사랑 K.H.에게도, 그리고 책을 읽는 독자들에게도 안부를 걱정해주며 위로해준다.

내 삶을 돌아보며 더이상 후회하지 않아. 나는 내 마음이 이끄는 길을 따랐으니까. 그 외롭고 고통스러운 길을 포기하지 않았다는 자긍심이 있는 한 내가 겪은 무수한 실패와 좌절마저도 온전한 나의 것이니까.

2023-12-05

숫자는 어떻게 생각을 바꾸는가. 숫자를 이용하는 것은 결국, 인간!

제가 초기 회사 생활을 하면서, 가장 인상 깊게 들어서, 항상 마음에 새기고 살았던 조언이 몇 가지 있었습니다. 그 중에 하나는 다음과 같은 것입니다.

측정할 수 없으면, 개선할 수 없다.

무엇이든 정량화하고, 순위를 매기고, 척도를 만들고, 범주를 나눔으로써 소통이 쉬워지고, 애매모호한 것이 명확해지고, 취약점이 드러나고, 데이터에 기반한 정당한 의사 결정이 이루어진다고 믿어왔습니다. 그런 맹목적인 "수(number)"에 대한 권위 부여는, 숫자가 빠진 의사 소통에 대해서는 객관적이지 않고, 비과학적이며, 확실하지 않은 것으로 간주하게 만듭니다. 통계학자인 폴 굿윈의 《숫자는 어떻게 생각을 바꾸는가》에서는 두 가지 측면에서 숫자와 관련된 우리의 실수를 짚어줍니다.

숫자는 어떻게 생각을 바꾸는가: 데이터를 바라보는 새로운 시각. 폴 굿윈 지음. 신솔잎 번역
숫자는 어떻게 생각을 바꾸는가: 데이터를 바라보는 새로운 시각.
폴 굿윈 지음. 신솔잎 번역

전반부에서는 숫자가 잘못 쓰이거나 지나치게 강조되어 현실을 왜곡할 가능성에 대해 다룹니다. 숫자, 지표, 측정치를 만드는 것도 사람이고, 이것을 발표하고, 공유하고, 읽고, 해석하고, 의사결정하는 것도 사람이기 때문에 그 모든 과정에서 왜곡과 오류가 발생할 가능성이 있습니다. 일일이 열거하기에는 정말 많은 역사적 에피소드와 현실 사례들이 나옵니다. 후반부에서는 정확하고 정직한 숫자가 제시되어도, 그것을 놓치고, 외면하고, 무시하게 되는 이유와 위험에 대해 다룹니다. 

1장에서는 순위에 대해 다룹니다. 입학, 졸업, 입사, 성과 평가, 입찰, 선거, 오디션, 베스트셀러 선정, 올해의 배우 등 우리는 순위에 의해 희비가 엇갈리는 많은 사건들을 경험하게 됩니다. 과연 이것을 순위로 매기는 것이 타당한가? 라는 의문이 생기는 경우도 매우 많습니다. 충격적이었던 것은 케네스 애로우의 불가능성 정리(impossibility theorem)였습니다. 세 개 이상의 서로 다른 대안이 있을 때, 투표권을 가진 심사위원들의 공통된 선호 순위를 잘 반영하는 투표 시스템을 구성하는 것이 불가능하다는 것을 수학적으로 증명한 것입니다. 특히 여러 가지 지표를 종합한 종합 순위를 매기고, 그것을 정말 중대한 곳에 활용하는 것의 문제점이 잘 나와 있습니다. 그런 종합 순위 대신에 왜곡의 가능성이 적은 개별 척도(hot indicator)에 대한 이야기도 나옵니다.

2장에서는 프록시 지표에 대해 다룹니다. 우리가 어떤 것을 직접적으로 측정하기 어려울 때, 대상의 속성을 반영할 것으로 보이는 간접적인 측정치를 프록시 지표라고 합니다. 프록시 자체의 타당성도 문제이지만, 지표 자체가 목표가 되어 부정적인 결과를 나을 수 있다는 것이 굿하트의 법칙(Goodhart's law)입니다. 폭스바겐은 배기가스 배출 기준이라는 지표만을 만족시키기 위해, 극단적으로 소프트웨어를 조작하는 부정까지 저지르게 된 것이 대표적인 사례입니다. 프록시 지표로서 오랫동안 확고한 지위를 누려온 국내 총생산(GDP), 지능지수(IQ)에 대한 문제점, 오용된 사례들도 나옵니다.

3장에서는 대표성(representativeness) 문제를 다룹니다. 가장 많이 쓰이는 "평균"이라는 대표값은 사실 집단 구성원 누구도 대변하지 못하는 것일 수 있습니다. 평균값을 근거로 집단의 특성을 간편하게 특징짓고, 유형화(stereotype)하는 것의 위험을 이야기합니다. 2018년에 보았던 토드 로즈의 《평균의 종말》이라는 책이 떠올랐습니다. 전투기 좌석을 설계할 때, 모든 조종사들의 평균 체형을 고려하여 만든 결과, 어떤 조종사에게도 맞지 않은 좌석이 나왔다는 이야기가 인상적이었습니다. 어쨌든, 복잡하고 다면적이고, 개별적인 개체들을 단 하나의 대표값으로 단순화해서 의사소통할 때에는 항상 조심해야 하겠습니다.

평균의 종말: 평균이라는 허상은 어떻게 교육을 속여왔나. 토드 로즈 지음
함께 읽으면 좋은 책. 평균의 종말

4장에서는 범주화(categorization)와 경계(border, boundary) 문제를 이야기합니다. 논문을 쓸 때, 연구자들은 통계적인 유의 수준(significant level)으로 피셔가 제안한 0.01 또는 0.05를 많이 사용합니다. 그래서 영가설이 참일 때, 이런 실험 결과가 나올 확률은 5%나 1%보다 낮으니, 영가설을 기각한다라는 논리를 사용합니다. 저도 논문 쓸 때, 유의미한 극단적인 확률값이 나오면, "별이 떴다!"라고 하면서 좋아했던 기억이 납니다. 그런데 이 5%, 1%라는 기준은 아무런 근거가 없습니다. 그리고 임의의 경계선 안에 들어가기 위해 합법적이거나 편법적인 방법으로 데이터를 조작하고 싶은 유혹에 쉽게 빠집니다. 89.5로 B 학점을 받은 사람과 90점으로 A학점을 받은 사람은 완전히 다른 범주로 분류되고 큰 차이로 지각되지만, 99점을 받은 사람과 90점으로 A를 받은 사람은 같은 범주로 묶이게 됩니다.

5장에서는 특이하게 라이프트래커, 라이프로깅 이야기가 나옵니다. 스마트워치와 같이 24시간 나와 함께 하는 디바이스의 등장으로 나의 많은 신체 활동과 상태를 숫자로 기록할 수 있게 되었습니다. 그런데, 그런 숫자들이 나의 다채롭고 복잡한 삶에, 무슨 의미가 있는지 의문을 제기하고 있습니다.

6장에서는 여론 조사 이야기가 나옵니다. 여론 조사는 원칙적으로 무작위 샘플링을 해야 하지만, 현실적으로 거의 불가능합니다. 게다가 질문 상황, 답변하는 과정에서 수많은 오염과 왜곡이 생깁니다. 보통은 조사 기관에서 밝히는 오차 범위보다 훨씬 큰 오차 범위를 갖는 경우가 많습니다. 언론에서는 사소하게 발생할 수 변화에 대해 과도한 서사를 붙여서 여론을 왜곡하거나 유도할 수도 있습니다. 게다가 언더독 효과, 밴드왜건 효과, 헤딩(herding) 효과 등 여론 조사 결과를 왜곡시킬 수 있는 심리사회적인 기제들도 많습니다.

7장은 주관적인 판단에 의존하는 행복도, 삶의 질, 고통의 정도 등의 지표에 대해 다룹니다. 전세계에서 가장 행복한 나라 1위부터 후순위에 있는 나라까지 발표되면, 각 나라 정부와 정치인들은 자기에게 유리한 방향으로 순위를 해석하고, 정책을 세우게 됩니다. 그런데 과연 "행복"이 무엇인지에 대해 응답자들은 비슷한 생각을 공유하고는 있었던 것일까요? 순간적인 다른 변수에 의해 응답이 매우 달라질 수도 있는 불안정하고 불분명한 것에 대해 현미경을 들이대어, 소수 세째 자리로 갈리는 행복도 순위는 무슨 의미인지 생각해볼 필요가 있습니다. 요즘 오픈AI의 이사진들이 지향했었다는 (피터 싱어의) 효율적 이타주의의 이야기도 잠깐 나옵니다. 자선단체에 기부하는 것과 같은 이타주의를 실행하는 데에 있어서도 정량화된 지표에 기반해서, 가장 "효율적"이고 효과가 큰 곳에 기부해야 한다는 이야기입니다. 그 효율성을 타당하게 어떻게 정량화하느냐 문제가 제기됩니다.

8장은 많은 사람들이 무시하고 있는, 사전 확률에 대한 고려를 이야기합니다. 즉, 베이즈 정리(Bayes' theorem) 이야기입니다. 검사의 오류(presecutor's fallacy) 이야기를 보니, 잘못된 확률 판단으로 인해 유무죄를 판단하는 형사법정에서는 한 사람의 인생을 망치는 판결이 나올 수도 있더군요. 코로나19 백신의 효과, 음주 운전자의 식별, 범죄 용의자나 테러리스트의 식별, 거짓말 탐지기의 효과와 같이 매우 민감하고, 치명적인 곳에서 기저 확률을 고려하지 않은 확률 판단에 오류가 생길 경우, 그 여파는 심각할 수 있습니다.

9장에서는 정확한 숫자가 제시되어도 우리의 기존 신념에 반하는 경우, 왜 우리는 그것을 종종 무시하고 받아들이지 않는지를 다룹니다. 수학적으로 말하면, 사전 확률을 0 또는 1로 놓은 상태에서는 아무리 새로운 증거가 제시되어도, 우리의 믿음을 바꿀 수 없게 됩니다. 이것은 교육 수준이 높거나 과학적인 사고를 훈련받은 사람들에게서도 발견되어 노벨병(Nobel disease)라고도 불립니다. 또, 역화 효과(backfire effect)는 기존 믿음을 반박하는 사실(예: 이라크에 대량 살상 무기가 없었다!)이 나와도, 기존 믿음이 오히려 더 견고해지는 현상을 말합니다. 때로는 집단이 객관적인 정보를 무시하고, 집단 사고(group thinking)에 빠질 경우, 케네디 대통령의 쿠바 피그스만 침공과 같은 역사적인 사건에서 보듯이 극단적인 위험에 노출될 수도 있다고 합니다. 최근에는 부산 엑스포 유치에 대한 과장된 기대와 유치 실패의 원인을 집단사고로 설명하기도 합니다.

10장에서는 과장된 공포 마케팅에 대한 이야기입니다. 여러 가지 지표들은 현대 사회가 옛날보다 나아졌다고 말합니다. 그러나, 미디어에서 주목하는 것은 낮은 확률이지만 극적으로 보이는 비행기 사고, 끔찍한 흉악 범죄들입니다. 공포를 조장해 이득을 보는 세력들과, 부정적인 뉴스에 더 주의를 쏟게 되는 우리의 뇌가 함께 작용하여 세상이 점점 더 험악해지고, 미래는 더 어둡다고 생각하게 됩니다. 공포 마케팅은 언론, 기업, 종교, 선동적인 정치인들이 즐겨 사용하여, 때로는 잘못된 투표 결과로 이어지기도 합니다. 그러니 정확한 숫자와 사실을 파악하기 위해 노력하고, 그런 메시지가 나오게 된 동기를 잘 살펴봐야 합니다.

11장에서는 통계적 사고의 중요성을 이야기합니다. 의심스런 통계치나 숫자를 대할 때에 직관적이고 즉각적인 판단(시스템 1 사고)과 함께, 느리고 깊게 생각해보는 시스템 2 사고를 병행해야 한다고 이야기합니다. 정보가 한결같이 편향되어 있어도, 일관성이 있고, 명쾌하게 일치할 때 우리는 타당하다는 착각(타당성 착각, illusion of validity)에 빠진다고 합니다.

어쩌다보니 책의 내용의 주요 부분을 인용 부호 없이 거의 인용, 요약해버렸습니다. 그만큼 곱씹어보고 싶은 내용이 정말 많았습니다. 이 책은 서점에서 "자연과학", 수학 관련 책으로 분류되어 있지만, 숫자가 많이 나오지 않고도 숫자 이야기를 쉽게 전해줍니다. 그리고 사실, 숫자를 만들고, 가공하고, 조작하고, 읽어들이고, 해석하고, 공유하고, 적용하는 인간의 특성에 대한 이야기가 더 많이 나옵니다. 그런 면에서 훌륭한 심리학 서적입니다. 2023년을 시작할 때 서강대학교 하영원 교수의《결정하는 뇌》를 재미있게 보았던 기억이 납니다. 수많은 의사 결정(decision making)을 해야 하는 우리 인간은, 매우 많은 실수를 하고, 합리적이지 않고, 편향에 휘둘린 결정을 합니다. 숫자가 중요한 이유는, 숫자를 기반으로 의사 결정을 하는 경우가 많기 때문입니다. 인간의 제한적인 특성을 이해하고, 또 드러난 숫자 뒤에 숨겨진 숫자와 의도, 의미를 파악하려고 더 노력하면, 조금은 더 합리적인 의사 결정을 할 수 있지 않을까 생각해봅니다.

함께 읽으면 좋은 책. 결정하는 뇌
함께 읽으면 좋은 책. 결정하는 뇌

2023-11-24

자이언트 임팩트, Those were the good old days!

KBS 박종훈 경제 기자가 쓴 《자이언트 임팩트》를 읽어보았습니다. 원래 자이언트 임팩트 또는 테이아 가설로 불리우는 이 용어는, 45억년 전에 지구가 화성만한 크기의 테이아와 충돌하여 달이 탄생했다는 유력한 과학적 가설입니다. 저자는 그것에 견줄만한 세계 경제의 커다란 변화와 충격 4가지를 거론하며, 미국 주도의 세계화에 의한 글로벌 분업 시대, 초저금리 시대, 인플레이션이라는 단어를 잊고 살았던 시대, 고성장 시대는 이제 지나간 이야기가 될 수 있다고 경고합니다. 그래서 과거 30~40년의 경제 작동 방식을, 앞으로도 비슷하게 적용하여 예측을 한다면 틀린 예측이 될 가능성이 높다는 것입니다.

자이언트 임팩트. 박종훈 지음
자이언트 임팩트. 박종훈 지음.

그 네 가지 자이언트 임팩트는 인플레이션, 금리, 전쟁, 에너지입니다. 경제학적 기본 지식이 없는 저같은 사람도 비교적 쉽게 읽을 수 있도록 설명해놓았습니다. 책의 내용을 여기에 요약하는 것은 저의 능력 밖의 일이라서, 각 항목에 대한 생각과 느낌을 적어봤습니다.

첫 번째는 '인플레이션'입니다. 지난 수십 년 동안, 우리는 특별히 물가 걱정을 하지 않고 살아왔습니다. 그런 장기적인 저물가를 유지할 수 있었던 큰 이유로, 미국이 움켜쥔 세계의 패권에 따라, 선진국과 개발도상국 사이에 원활하게 이루어진 분업이 있었습니다. 그런데 코로나19 팬데믹 이후, 그리고 우크라이나 전쟁 이후 갑자기 찾아온 공급망의 문제, 그리고 피부로 느껴지는 고물가에 우리는 고통스러워하고 있습니다. 그래서 미국 연준이 물가를 잡기 위해 금리를 계속 올리고, 우리 나라는 정부가 물가를 인위적으로라도 잡으려고, 가히 관치 경제라고 할 만큼 깊게 개입도 하고 있습니다. 그러나 이런 인플레이션이 과연 일시적인 현상인지, 아니면, 여러 가지 환경의 변화로 이제 더 이상 물가 걱정을 하지 않아도 되는 그 좋던 시절(the good old days)은 다 지난 것인지 알 수는 없습니다.

두 번째는 물건의 값인 물가에 이어, 돈의 값인 '금리'가 오르고 있다는 것입니다. 지난 40년 동안 이례적으로 저금리 현상이 지속되어 왔습니다. 그런데, 미국 연준이 빅스텝, 자이언트 스텝이라 불리는 금리 인상을 연속해서 단행하고, 이제 언제 기준 금리를 동결할 것인지가 관심사가 되고 있습니다. 그러나, 이제 과거처럼 저금리가 오랫동안 지속되는 시대는 끝났다는 것입니다. 중국의 높은 저축률에서 비롯되었던 풍부한 자금이 줄어들고, 인플레이션을 잡기 위해서는 금리를 다시 올리는 것을 검토해야 합니다. 게다가 고령화로 인한 자금 시장의 변화, 그리고 세계 곳곳에서 일어나는 정치적인 리스크가 저금리를 계속 유지하기 어렵게 만들고 있습니다. 사실, 경제 뉴스를 볼 때마다, 금리와 다른 경제 변수와의 관계를 이해하는 것이 저같은 경제학 맹에게는 항상 어려웠습니다. 예를 들면, 금리와 채권 가격의 관계 같은 것 말이죠. 어쨌든 그동안 저금리 현상에 잘 적응하여 주식이나 부동산 가격의 상승을 이용한 과거의 투자 전략을 그대로 적용하기 어렵게 되어간다고 할 수 있겠네요.

세 번째는 바로 전쟁입니다. 미국이라는 원톱 초강대국 체제의 세계 패권이 이제 미국과 중국이라는 투톱으로 바뀌고, 거기에 유럽, 동아시아의 신흥국, 에너지 패권을 쥔 러시아, 중동 나라 등이 각자의 이해관계가 얽히고 있습니다. 곳곳에서 직접적인 무력 도발인 전쟁, 또는 패권 전쟁, 공급망 전쟁, 기술 전쟁, 국지 전쟁의 위험성이 커지고 있습니다. 많은 전문가들도 러시아가 우크라이나를 정말로 침공할 것이라고 생각을 못했었지요. 게다가 그 전쟁이 이렇게 오랫동안 출구를 찾지 못하고 계속되리라고도 생각하지 못했습니다. 그러는 와중에 이스라엘과 팔레스타인(또는 하마스)간의 전쟁이 발발했습니다. 전쟁은 당사국 국민들에게는 당연히 말할 수 없는 고통이고, 그 여파는 에너지, 식량, 인플레이션 등으로 전세계에 미치고 있습니다. 게다가 전쟁을 대하는 나라들의 이해관계도 단순하지가 않아서, 이제 나라들도 각자도생, 개인들도 각자도생의 시대가 오며, 예측 가능성은 낮아지고, 변동성은 매우 커지게 되었습니다.

네 번째로 언급된 것이지만, 결코 덜 중요하다고 할 수 없는 '에너지'입니다. 한 때, 원유 고갈에 대한 대안으로 셰일 가스가 새로운 에너지원으로 주목받았었던 기억이 납니다. 셰일 가스가 발견되면서 미국은, 중동이나 러시아와 같은 원유 생산국에 대한 의존과 간섭을 줄이려고 했었죠. 그러나, 셰일 가스가 여러 이유로, 미국이 바라는 대로 안정적인 에너지 공급원의 역할을 잘 못합니다. 바이든 대통령이 독재자라고 비난했던 빈 살만 사우디아라비아의 왕세자를 찾아가 원유 생산을 늘려달라고 싹싹 빌었지만, 아무런 성과를 얻지 못했습니다. 사우디와 중동 패권을 놓고 경쟁하는 이란은 미국과 핵 합의 복원을 하려고 하면서도, 우크라이나 전쟁, 이스라엘 전쟁과 핵무기 기술 확보 등의 여러 가지 변수가 앞을 가로막고 있습니다. 유럽은 어떻습니까? 우크라이나 전쟁으로 인해, 러시아에 크게 의존했던 천연가스 공급이 어려워지자, 겨울 난방까지 걱정해야 하는 상황이 왔습니다. 또, 화석 연료에 대한 의존도를 낮추고, 신재생 에너지로 전환하려고 해도, 발전에 필요한 원자재와 부품은 대부분 중국이 키를 쥐고 있습니다. 비교적 안정적으로 풍부한 화석 연료 에너지를 활용해서, 고성장을 이룩했던 시대는 또 하나의 옛날 이야기가 되어가는지도 모릅니다.

어느 것 하나, 쉬운 것이 없습니다. 불확실성과 변화만이 확실하게 말할 수 있는 미래인지도 모르겠습니다. 이런 시대에 변화를 읽는 거시적인 안목을 갖추고, 거기에 국가, 사회, 개인이 어떤 대비를 해야 하는지에 대한 통찰을 얻고 싶다면, 한 번 읽어보십시오.

거대한 충격 이후의 세계: 알아두면 반드시 무기가 되는 맥락의 경제학. 서영민 지음
거대한 충격 이후의 세계: 알아두면 반드시 무기가 되는 맥락의 경제학. 서영민 지음

이전에는 서영민 기자의 《거대한 충격 이후의 세계》라는 책을 정말 재미있게 보았던 기억이 납니다. 코로나19라는 거대한 충격 이후 급하게 변화하는 세계 경제를 변화시키는 여러 가지 현상과 요인들, 특히 반도체 문제, 인구와 기후 위기, 빈곤의 문제 등을 포함해 깊게 파헤치는 책이었습니다. 기자란 모름지기 발생하는 "피상적인 사건에 숨겨져 있는 고구마 줄기와도 같은 원인들을 깊게 파헤쳐 분석해주는 역할을 하는 직업이구나"라는 생각을 다시금 상기하게 만들었습니다. 이 책도 같이 보면, 거시 경제의 흐름을 파악하는 데에 많은 도움이 될 것 같습니다.

2023-11-14

수 백 페이지 상담일지를 깔끔하게: Airtable Page designer

지난 번에 구글 설문(Google Forms)의 확장 프로그램인 폼 퍼블리셔(Form Publisher)를 이용해서 설문받은 결과지를 한 장 한 장 PDF 양식에 맞게 변환, 저장하는 방법을 알아보았습니다. 마찬가지로 잣폼(Jotform)이라는 툴을 이용해서 설문받은 결과지를 PDF 양식에 맞게 저장하는 방법도 살펴보았습니다.

이번에는 대표적인 노코드 툴인 에어테이블(Airtable)을 이용해서, 사용자에게 설문으로 받았거나, 또는 사용자가 직접 데이터에 입력한 내용들을 PDF 양식에 맞게 출력하는 방법을 알아봅니다. 실제 업무 활용 사례를 하나 공유합니다.

상담 관리와 상담 일지 정리

프로젝트 개요/문제

한 프로젝트에서는, 여러 명의 상담사가, 여러 내담자를 여러 번 상담하는데, 매회 상담시마다 상담일지를 적어야 했었습니다. 이런 상담 운영은 관리 시스템이 있지 않으면, 여러 상담사의 일정을 조율하고, 상담 시간을 배치고, 원하는 문서를 제시간에 수집하고, 필요할 때에 안내를 보내는 것이 상당히 어렵습니다. 프로젝트 기간이 달랑 5~6개월 이내인데, 그것을 위해서 거대한 관리 시스템을 개발하려면 배보다 배꼽이 커지게 됩니다. 그렇다고, 적당히 엑셀이나 구글 시트로 운영을 하기에는 너무 복잡하기도 하고, 일정 관리, 협업이 어렵습니다.

상담 일지도 문제였습니다. 상담 일지에는 반복적으로, 상담자, 내담자, 상담장소, 시간, 유형 등이 들어가고, 상세한 상담 내용을 적어야 합니다. 이것을 처음에는 파워포인트나 워드프로세서 양식으로 만들어서 양식을 채워오라고 상담사에게 부탁했습니다. 그러나 사람마다 양식을 조금씩 변경해서 쓰기도 하고, 글꼴, 문단, 페이지 나누는 방법 등이 개인마다 미묘하게 달라지기도 합니다. 가장 큰 문제는 결과가 파일로 나오기 때문에 파일명을 일관성있게 붙이고, 상담사는 파일을 제출하고, 관리자는 취합해서 파일 관리를 하나하나 꼼꼼하게 해주어야 합니다.

솔루션: Airtable 기반의 상담 관리 시스템

그래서, 에어테이블로 상담 관리 시스템을 만들었습니다. 실제 초기 구축은 3~4시간 정도에 끝났고, 운영하면서 조금씩 보완해나갔습니다. 상담이 남아있는 내담자는 누구이고, 완료된 내담자는 누구이며, 상담사별로 얼마나 상담을 했고, 어떤 일정이 근간에 예정되어 있고, 지금 어떻게 진행되고 있는지 등이 한 눈에 보이는 것은 당연합니다.

Airtable로 구현된 상담관리 시스템. 상담 일정 테이블 뷰
Airtable로 3~4시간만에 구현된 상담관리 시스템. 상담일정 테이블 뷰

상담관리 시스템. 캘린더 뷰
상담관리 시스템. 캘린더 뷰

상담 일지 입력

제가 추가로 기대했던 것은 바로 상담 일지의 관리였습니다. 각 상담사들이 에어테이블에 직접 들어가서 상담일지 작성 필드에 상담 내용을 서식이 있는 리치 텍스트(rich text)로 입력할 수 있게 했습니다. 에어테이블의 리치 텍스트 입력은 마크다운(Markdown)을 지원하며, 마크다운에 익숙하지 않은 사람들을 위해 아래 그림과 같이 보조 툴박스가 떠서, 금방 익숙하게 서식이 있는 문서 작성이 가능합니다.

상담일지 작성하는 화면. Rich text 입력을 위한 툴박스가 제공된다.
Airtable에서 상담사가 상담일지를 입력하는 화면. Rich text 입력을 위한 툴박스가 제공되며, Markdown도 쓸 수 있다.

결과보고 및 상담 일지 출력

6개월 정도 되는 프로젝트가 종료되고, 발주처에 상담일지 원본을 상담사별, 내담자별, 주제별, 날짜별 등으로 정렬하여 제출해야 했습니다. 만약에 상담 일지를 파일로 만들었다면, 파일들 정리하느라고 하세월이 걸렸을 것입니다. 에어테이블에는 상담 일정 등 메타 데이터와 상담 내용(상담 일지)가 같이 정리되어 있으니, 원하는 방식으로 그룹핑하고, 정렬하는 것은 매우 쉬운 일입니다. 그리고, 상담 일지 양식은 에어테이블의 페이지 디자이너(Page designer)를 이용해서 1시간 정도 걸려서 템플릿을 만들었습니다.

Airtable의 Page Designer를 이용해 상담일지 템플릿을 만드는 모습
Airtable의 Page Designer를 이용해 상담일지 템플릿을 만드는 모습

그리고, 드디어! 데이터베이스에 상담사들이 입력한 수백 건의 데이터와 내용들이 다음과 같이 깔끔하게 상담일지 양식으로 변환이 되었습니다. 그리고 수 백 페이지의 상담 일지는 그냥 클릭 한 번으로 PDF 파일 하나로 제작되었습니다.

한 건의 상담이 상담일지 양식에 맞게 한 장씩 출력됩니다.
상담일지를 PDF로 출력한 예시. 상담 한 건이 한 장으로 생성되며, 수 백 장도 한꺼번에 생성된다.

데이터베이스의 리포트 생성

데이터가 많고, 계속 변한다면, 그것의 구조를 만들고, 관리하는 것(structure, logic)과, 보여주는 것(presentation)이 분리되는 것이 바람직하겠죠.

구글 설문에 들어간 데이터, 그리고, 잣폼에 들어간 데이터도 마찬가지였습니다. 데이터 입력은 편하게 하되, 보여주는 아웃풋은 예쁘게 원하는 모양으로 보여야 합니다. 그래서 반복적인 템플릿이나 반복적인 데이터가 있는 자료들은 되도록이면 데이터베이스를 이용해 관리하는 것이 좋겠지요. 일상적인 업무에서도 데이터를 기반으로, 원하는 형식으로 만드는 일이 많이 있습니다. 예를 들면, 수 백 명의 상장, 수료증을 만든다거나, 인보이스를 출력한다거나, 재직증명서를 만든다거나, 특정한 형식의 요청서를 만드는 경우, 여러 명의 주소를 기반으로 우편 레이블을 만드는 경우, 수백 명의 고객에게 이름과 몇 가지 정보만 바꿔서 메일을 보내는 경우 등입니다. 이런 문서들은 양이 적으면, 워드프로세서 프로그램의 템플릿을 이용해 직접 작성할 수도 있지만, 조금 양이 많아지면, 보통 스프레드시트와 연계하여 소위 "메일 머지"를 사용해서 만들 수 있습니다. 그러나 데이터가 지속적으로 들어오고, 계속 업데이트되며, 여러 사람으로부터 수집해야 하는 데이터라면 데이터를 입력, 수집, 관리하는 시스템이 같이 따라줘야 합니다. 그리고 최종적으로 데이터를 원하는 형식(포맷)으로 만들어서 출력해주는 리포트(Report) 기능이 필요합니다.

간단한 데이터베이스와 쉬운 리포팅을 구현하는 방법으로 지금까지 구글 설문의 폼 퍼블리셔, 잣폼의 PDF 생성 기능, 그리고 에어테이블의 페이지 디자이너를 살펴보았습니다. 각각의 경우 약간의 특징과 장단점이 있습니다.

스프레드시트(엑셀, 구글시트 등)와 워드프로세서 메일 머지(워드, 한글 등)
  • 변화가 없는 한정된 데이터를 가지고 있고, 특별히 입력 인터페이스는 필요없으며, 딱 한 번 작업하면 끝나는 경우에 적합.
  • 워드프로세서에서 스프레드시트 데이터를 한 번 불러오면 끝남.
  • 보통 우편 레이블 출력, 상장 출력, 청구서 등에 많이 활용

구글 설문의 폼 퍼블리셔(Form Publisher for Google Forms)
  • 사용자로부터 설문으로 받은 내용을 원하는 양식으로 변환하여 출력할 때 유용
  • 최종 출력 양식에 PDF 뿐 아니라, 워드프로세서, 스프레드시트, 프리젠테이션 프로그램을 지정할 수 있어서 유연함.
  • 양식 하나하나는 파일로 관리되어 편하기도 하지만, 나중에 대량으로 정리할 때에는 번거로울 수도 있음.
  • 계산, 차트 등의 기능을 이용해서 매우 복잡한 개인별 리포트를 생성 가능(예: 심리검사 결과 리포트)

잣폼의 PDF 변환
  • 페이퍼로 된 PDF 파일을 온라인 설문으로 변환시킬 때 편리함.
  • 특히, 서명이 포함되어 있는 경우도 온라인으로 바로 처리할 수 있어서 편리함.
  • 사용자로부터 받은 데이터는 깔끔하게 잣폼 테이블 데이터로 관리되고, 각종 연산 처리가 가능함.
  • 개별 또는 여러 개의 PDF 파일을 만들 수 있음. 기능이 많다 보니 사용법이 약간 까다로운 편

에어테이블의 페이지 디자이너 (Page designer for Airtable)
  • 초기에 데이터베이스를 구축해야 한다는 점에서 부담이 있음.
  • 강력한 데이터베이스를 기반으로 한, 관리자용, 사용자용 인터페이스 구축이 비교적 쉽게 이루어짐.
  • PDF 리포트도 파일이 아니라, 데이터베이스에 들어가 있으므로, 개별 또는 그룹별로 관리하기가 쉬움.

2023-11-11

스마트폰에 중독된 현대인을 위한 책, 호모 아딕투스

호모 아딕투스: 알고리즘을 설계한 신인류의 탄생. 김병규 지음.

김병규 교수가 쓴 《호모 아딕투스》를 읽어보았습니다.

현대를 살아가는 거의 모든 한국인이 가지고 있는 스마트폰의 등장으로, 새로운 경제 메카니즘이 시작되었다고 합니다. 물건 자체가 귀하던 제품 경제의 시대에서, 사람들의 관심을 끌기 위한 관심 경제의 시대, 이제는 알고리즘으로 사람들의 시간을 하염없이 붙잡아 둘 수 있는 중독 경제의 시대로 접어들었다는 것입니다. 과거에 중독 대상은, 고통이 따르는 지출을 동반하거나, 일상적으로 구하기 힘들기 때문에 심각성이 좀 덜 할 수 있었다고 합니다. 그런데, 스마트폰 세상 속에서 우리가 접하는 쇼핑, 뉴스, 게임, 쇼셜 미디어, 유튜브 등은 많은 경우 공짜이기도 하고, 매우 적은 노력으로 손 안에서 바로 실행 가능한 점이 다르다고 합니다. 게다가 내 손 안의 현금이 줄어드는 것이 잘 느껴지지 않는 카드 결제, 앱 안에서의 포인트 사용 방식으로 지출을 하면, 소비할 때 느껴지는 고통이 훨씬 덜하다고 합니다. 많은 데이터를 가진 빅테크 기업들이 정교하게 짜놓은 알고리즘으로 인해, 우리는 우리가 보고 싶은 것을 보는 게 아니라, 사실은 보여지는 것을 계속 볼 수 밖에 없습니다. 그러니 거대 기업들의 정교한 낚시에 걸려 점점 대상에 중독되어 가면서도, 내가 주도적으로 선택했다는 착각에 빠져 살게 됩니다.

저 자신을 한 번 돌아봅니다. 나는 무슨 중독에 빠져있을까? 다행히도, 저는 게임이나 쇼핑을 그다지 좋아하지 않습니다. 그런데, 한 때 뉴스에 강박적으로 빠져 살았던 적이 있었던 것 같습니다. 어떤 중요한 일에 몰입하거나, 진지한 독서를 못 하게 하는 가장 큰 훼방꾼은 뉴스였습니다. 스마트폰으로 언제든지 확인 가능하고, 끝없이 업데이트되고, 부정적이고 자극적인 소식이 가득한 뉴스를 계속 확인하게 되는 상태가 계속 되었습니다. 물론, 뉴스를 전혀 모르고, 현 사회를 살아가기는 힘들지만, 나에게 아무런 연관도 없고, 쓸데도 없는 "최신" 뉴스가 무엇인지 끊임없이 확인하는 것은 분명히 좋지 않았습니다. 소셜 미디어에서 "좋아요"라는 간헐적 보상도 있지만, 올라오는 소식의 "최신성"이 더 중독적인 측면이 있었습니다. 지하철을 타고 이동할 때, 독서를 하거나, 라디오를 듣거나, 다른 공부를 하면 기분이 좋았습니다. 그런데, 그 시간 내내, 포털 사이트를 뒤적거리며 최신 뉴스를 확인하고 나면, 너무 허무했습니다.

책에서는 중독 경제 메카니즘을 잘 이해하고, 거대 기술 기업들이 주도하는 중독 경제 세상에서, 소규모 비즈니스 주체가 살아남는 전략을 몇 가지 제시합니다. 마이크로 어딕션(micro-addiction) 전략은 비교적 작은 스케일로 중독 모델을 만들어내는 것입니다. 그런 예로 10대들이 좋아하는 틱톡, 자신이 드러나지 않는 소셜 미디어 레딧, 고도의 큐레이팅이 들어간 쇼핑몰 29CM 등의 사례가 나옵니다. 두 번째는 중독에서 벗어나는 것을 도와주는 서비스를 제공하는 어딕션 프리(addiction free)전략입니다. 이 전략을 적용한 비즈니스 사례로 결심을 실행하게 도와주는 챌린저스, 광고 없이 고품질의 글이 유통되는 플랫폼 미디엄 등을 제시합니다. 그 외에도 책을 읽어보면, 더 세분화된 비즈니스 이야기가 많이 나옵니다.

후반부에서는, 중독 경제 시대에 중독에 빠지지 않고, 현명하게 개인이 살아가는 방법들이 나옵니다. 예를 들면, 광고를 꺼놓는다든지, 스마트폰의 알람을 꺼놓는다든지, 소비를 미루는 습관을 들이는 것 등을 제시합니다. 나아가, 중독 경제 시대를 이끌어가는 데에 필요한 인재상과 역량을 제시합니다.

책에는, 갤럽이 시행한 한 관찰과 행동 분석에 따르면, 직장인들이 방해를 받지 않고 한 가지 업무에 집중하는 시간이 평균 3분 5초 밖에 되지 않는다는 결과가 소개됩니다. 더 놀라운 것은, 업무를 방해받기 전의 상태로 돌아가는 데 걸리는 시간이 평균 23분 15초가 걸린다는 것입니다. 그래서 칼 뉴포트는 멀티태스팅을 강조하는 사회에서 진정한 생산성은 중요한 일에 집중하는 딥 워크에서 나온다고 하는 것 같습니다. 의도하지 않게 어떤 것에 집착하게 되는 것을 중독이라고 한다면, 의도한 일에 의식적으로 집중하는 것은 갈수록 어려워지고 있습니다.

딥 워크: 강력한 몰입, 최고의 성과. 칼 뉴포트 지음. 김대훈 옮김.

중독 경제 메카니즘은 이제 부정할 수 없는 현상이고, 전략입니다. 그 안에서 비즈니스 주체로서, 또는 일의 주체인 개인으로서 어떻게 대처할 지에 대해 책과 함께 고민해보시기 바랍니다.

2023-11-07

전자 계약(PDF 서명 요청) 솔루션 비교

전자 계약 솔루션의 필요성

지난 번에는 어떤 PDF 문서든 상관 없이, 무료로 쉽게 전자 서명(eSign)을 넣는 4가지 방법을 알아보았습니다. 이 말은, 특별히 서명할 수 있게 만들어진 PDF가 아니어도, 아무 PDF에나 전자 서명은 추가할 수 있습니다.

그러나, 실제 비즈니스에서 상대방에게 전자 서명할 수 있는 필드를 넣지 않고, 그냥 모양만 서명할 수 있게 보내면, 잘 모르는 상대방은 인쇄해서, 종이에 서명하고, 다시 스캔받아서 회신해줄 가능성이 많습니다.

좀 더 친절한 방법은 PDF 문서 안에 "서명 필드"를 추가하여, 이메일이나 카카오톡과 같은 메신저로 상대방에게 보내주는 것입니다. 그렇게 하면, 상대방은 문서를 받자마자, "특별한 소프트웨어가 없어도", 바로 그 자리에서 서명을 할 수 있습니다. 이런 기능을 핵심적으로 가지고 있는 것들을 통상 전자 서명(electronic signature) 또는 전자 계약 솔루션이라고 합니다.

Adobe Acrobat에서 서명 요청 보내는 화면(출처: Adobe Acrobat 도움말)
Adobe Acrobat에서 서명 요청 보내는 화면(출처: Adobe Acrobat 도움말)

솔루션 비교 (롱리스트)

그렇게 서명 요청을 하는 툴과 솔루션은 수 백 가지입니다.


일반적 전자 서명 요청 프로세스

서명 요청을 보내는 방식은 거의 동일합니다.

  1. 상대방의 서명을 필요로 하는 문서를 업로드하거나, 오픈합니다.
  2. 내 서명이 필요하다면, 먼저 내 서명을 합니다.
  3. 상대방 서명이 필요한 곳에 서명 필드를 삽입합니다.
  4. 서명 요청을 받을 수신자의 이메일 또는 메신저 아이디를 지정합니다.
  5. 상대방이 이메일/메시지를 받으면, 아무런 소프트웨어 없이 바로 그 자리에서 전자 서명을 추가할 수 있습니다.
  6. 서명이 완료되면, 문서의 이해관계자 모두에게 이메일 통보가 가고, 서명된 문서가 공유됩니다.
  7. 서명 요청자는 이 모든 과정을 관리자 페이지에서 트래킹할 수 있습니다.

몇 가지 차이는, 한꺼번에 서명 요청을 몇 명에게 보낼 수 있느냐, 서명 필드 외에 다른 필드를 어떤 식으로 추가하느냐, 전자 서명 외에 디지털 서명을 추가하느냐, 계약서 템플릿을 제공하느냐 정도입니다.


솔루션 비교 (숏리스트)

오늘은, 아주 소규모 사업자나 프리랜서, 자영업자 또는 개인을 위해서, 실질적으로 무료로 사용할 수 있는 PDF 서명 요청 소프트웨어를 알아봅니다. 아래 표에 제가 직접 하나하나 직접 확인해서 PDF 전자 서명 요청 기능이 있는 솔루션들을 열거했습니다. 비교적 관대한 무료 플랜이 있는 것도 있고, 무료 요금제가 없는 것도 있습니다. 유료 최저 요금제로 가더라도 서명 요청 건수에 차이가 좀 있습니다.


PDF 전자 서명 요청 주요 솔루션 비교 (2023년 11월 7일 현재)
서비스명 무료 요금제
서명요청 건수
유료 요금제
서명요청 건수
최소 요금 (/월) 주 기능
Adobe Acrobat Standard - 무제한 15,000원 종합 PDF 솔루션
Box Sign 월5건 월15건 13,375원 클라우드 스토리지
DigiSigner 월3건 무제한 $12.00 전자 계약
DocHub 월3건 무제한 $10.00 전자 계약
Dropbox Sign (Dropbox와는 별도 상품) - 무제한 $15.00 클라우드 스토리지인 Dropbox와 통합 상품도 있음
ilovePDF 총 문서 크기 500MB 이내 무제한 $4.00 종합 PDF 솔루션
Jotform Sign 월10건 월100건 $34.00 온라인 폼, DB 테이블
PandaDoc - 무제한 $19.00 전자 계약
Paperless.onl 최초20건 월15건 10,000원 전자 계약
SignFree (서명 필드 추가 없음.) 무제한 무제한 무료 전자 계약
SignNow - 무제한 $8.00 전자 계약
SignWell 월3건 무제한 $8.00 전자 계약
Smallpdf 일2건 무제한 10,500원 종합 PDF 솔루션
글로싸인 - 월5건 5,000원 전자 계약
모두싸인 - 월5건 7,900원 전자 계약
싸인오케이 2023년 무료 10건 20,000원
(종량제)
전자 계약
이싸인온 - 무제한 (개인) 9,900원 전자 계약
이폼사인 최초100건, 30일간 월50건 (Personal) 10,000원 전자 계약

SignFree는 무제한으로 서명 요청을 할 수 있고, 수신자도 바로 그 자리에서 서명을 할 수 있긴 한데, 정확히 어디에 서명을 해야 하는지 서명 필드를 지정해주지 않고, 수신자가 서명을 알아서 정확한 위치에 넣어야 한다는 점에서, 다른 유료 솔루션들과는 좀 차이가 있습니다.


개인적 선택/추천

회사/조직에서 계약서, 전자 서명을 많이 써야 한다면 Adobe Acrobat Standard나 Pro 또는 수많은 국내 솔루션 중에 하나를 추천합니다.

개인, 프리랜서, 일인 사업자이거나, 일회성 서명 요청, 소량의 계약을 해야 한다면, 간단하고 빠른 솔루션으로 Smallpdf나 iLovePDF를 추천합니다.

조금 사용법이 복잡하지만, 비즈니스에서 필요하다면, 온라인 양식(폼)을 매우 정교하게 만들고 관리해주는 Jotform도 사용해보십시오. Jotform은 오프라인 PDF 문서를 쉽게 온라인 문서로 만드는 데에도 유용합니다. 구글 설문보다 복잡한 온라인 양식을 만드는 데에 적합하고, 온라인 양식이나 PDF 문서에 쉽게 서명 요청란을 넣을 수 있습니다.

저는 전자 서명 요청 용도로 현재 Smallpdf를 쓰고 있습니다.

2023-11-02

여러 개, 다른 종류, 다른 환경 브라우저 사이의 북마크 동기화 방법

데스크톱 PC 몇 대와 모바일 기기 몇 대를 왔다갔다 하면서, 어느 한 쪽에서 북마크(즐겨찾기)해둔 것이 다른 쪽에서도 똑같이 기록되어 있으면 좋겠죠. 그것도 같은 브라우저끼리 말고, 데스크톱 크롬과 모바일 오페라가 동기화되면 좋겠습니다. 오늘은 북마크 동기화 방법을 정리해봤습니다.

같은 종류의 브라우저끼리 북마크 동기화

다행히 요즘 브라우저들은 기본적으로 같은 벤더의 브라우저끼리는 북마크, 로그인 정보, 확장 프로그램 정보 등을 다 동기화 해줍니다. 방법도 그리 어렵지 않습니다. 대부분은 그냥 해당 브라우저에서 제공하는 계정에 로그인하면 알아서 여러 대의 데스크톱과 모바일 기기에 동기화를 해줍니다.


소셜, 클라우드 북마크 관리

오래 전에는 브라우저의 북마크 관리를 위해 소위 소셜 북마크 서비스라 할 수 있는 del.icio.us (현재는 서비스 중단), 거기에 노트나 하이라이트 기능 등을 추가한 diigo를 썼습니다. 그러다가 클라우드에 북마크를 저장해주는 Google Bookmarks (현재는 서비스 중단)를 잠깐 썼습니다. 그리고 여러 브라우저간에 북마크를 동기화해준다는 xBrowserSync를 써보기도 했습니다. 이런 서비스는 그다지 수요가 많지 않아서인지, 대부분 중단되었습니다. 현재는 xBrowserSync가 오픈 소스이며, 빅테크 회사들처럼 많은 정보를 수집해가지 않는 무료 서비스로 남아있는데, 문제점이 좀 있습니다. 서로 다른 종류의 브라우저 사이에 북마크 동기화를 지원하는 대신, 같은 종류의 브라우저 북마크 동기화 기능을 꺼야 하고, 동기화 총 용량이 제한적인 몇 개의 퍼블릭 서비스 서버 중에 하나를 골라야 합니다. 마지막으로, 위의 서비스들 대부분이, 브라우저에 내장된 북마크 추가, 삭제, 관리 기능과는 조금 다른 사용자 인터페이스를 사용하는 것도 잘 쓰지 않게 되는 요인이었습니다.

xBrowserSync 데스크톱 화면. 출처: https://www.xbrowsersync.org/
xBrowserSync 데스크톱 화면. 출처: https://www.xbrowsersync.org/

결론: EverSync

저의 욕구는 단순합니다. 그냥 여러 대의 데스크톱과 모바일 기기, 그리고 서로 다른 종류의 브라우저(크롬, 엣지, 파이어폭스 등등) 상관없이 똑같은 북마크를 쓰고 싶은 것입니다. 브라우저의 고유한 북마크 관리 기능은 그냥 건드리지 말고, 그대로 사용했으면 좋겠습니다. 그래서 결국에는 에버씽크(Eversync)라는 프로그램을 쓰게 되었습니다. 크롬 확장(크롬, 엣지, 오페라, 비발디, 웨일 등) 프로그램파이어폭스 애드온 프로그램이 있으니, 사실상 거의 모든 브라우저를 커버합니다.

확장 프로그램을 데스크톱의 모든 브라우저에 설치합니다. 그리고 아래와 같은 동기화 옵션을 이용해서 동기화를 한 번만 시켜주면, 나중에는 알아서 추가 동기화가 됩니다. 모바일 브라우저는 원래, 같은 종류의 데스크톱 브라우저와 동기화가 되므로, 이제 내가 쓰는 모든 브라우저의 북마크 동기화가 됩니다.

Eversync의 동기화 옵션
Eversync의 동기화 옵션: 합치기, 로컬 북마크를 서버에 올리기, 서버 북마크를 로컬에 내리기, 60분마다 정기적 동기화 등

everhelper.me/client 사이트에서 북마크를 직접 관리하고 수정할 수도 있습니다. 제가 유용하게 썼던 기능은, 중복 북마크 찾아서 제거하기와 빈 폴더 찾아서 제거하기였습니다.

Eversync 북마크 관리 기능에서 중복 북마크 제거 및 빈 폴더 제거 기능도 유용합니다.

2023-11-01

(인쇄, 스캔 없이, 무료로) PDF 문서에 서명하는 4가지 방법

PDF 문서에 전자 서명을 추가하려고 합니다. 여기서 말하는 전자 서명은 우리가 종이에 서명(싸인)하는 것을 단지 전자 문서상에서 싸인하는 것입니다. 이런 전자 서명도 법적 효력이 있습니다. 하지만 발신자의 신원 증명 등을 위해 암호 키와 공개 키를 사용하는 디지털 서명과는 다른 이야기입니다.

상대방이 쉽게 전자 서명할 수 있도록 도와주고, 서명이 포함된 계약서를 관리하는 상용 솔루션은 아주아주 많습니다. 서명 및 계약서를 일대일로 주고 받거나, 다수에게 배포할 수 있습니다. 이런 솔루션들은 PDF 파일 내에 전자 서명이 가능하도록 별도의 필드를 제공합니다. 문서 수신자가 어디에 어떻게 서명해야 할 지 몰라도, 서명란을 쉽게 알 수 있고, 그 자리에서 서명을 추가할 수 있습니다. 그리고, 그 이후 워크플로우가 연계되어, 서명 문서를 클라우드에서 관리하는 방식입니다.

오늘의 시나리오는, 입력 및 서명이 필요한 양식 문서를 PDF로 받았는데, 전자 서명을 전혀 고려하지 않은 문서일 경우입니다. 단지 서명을 추가하기 위해서 인쇄하고, 종이에 서명하고, 다시 스캔하는 번거로움을 겪을 수는 없잖아요? 모양만 있는 서명란에, 서명을 해야 하는 "최종 사용자" 입장에서, 간단하게 전자 서명을 무료로 추가하는 방법을 알아봅니다.


1. 어도비 애크로밧 리더(Adobe Acrobat Reader) (거의 모든 OS에서)

이게 꼭 있어야만 PDF 파일을 볼 수 있다고 생각하는 분들이 많아서, 아마도 대부분의 PC / 맥 / 안드로이드 / 아이폰 사용자들이 가지고 있는 프로그램일 것입니다. 어도비 애크로밧 리더는 무료이며, 기본적으로 PDF 파일을 열어서 보고, 주석을 달거나, 양식(form)을 채우고, 서명을 추가할 수 있습니다.

방법도 간단합니다. 서명을 넣고 싶은 위치에 포인터를 클릭하고, 메뉴에서 Fill & Sign을 선택합니다. 서명을 넣는 방법은 직접 그려넣기, 이니셜을 영어로 타이핑하기, 또는 기존에 스캔받은 이미지를 가져오기가 있습니다. 이렇게 사용된 서명은 어도비 클라우드에 저장이 되어서 모바일이나, 다른 PC에서도 사용할 수 있습니다. 또 서명된 문서는 어도비 싸인이 인증하고, 읽기 전용 문서로 바뀌어 사본 또는 링크를 상대방에게 보낼 수 있습니다.

애크로밧 리더에서 서명 추가하기. 이니셜을 추가하는 화면
애크로밧 리더에서 서명 추가. 이니셜을 추가하는 화면

2. PDF24 (클라우드 또는 윈도우즈 환경)

생각보다 덜 알려져 있는데, PDF24는 개인과 기업에서 100% 무료로, 아무런 제한 없이 사용할 수 있는 훌륭한 PDF 도구입니다. 프린터 드라이브, 합치기, 나누기, 회전, 변환, 페이지 정렬, 편집 등 수많은 기능들이 있는데, 그 중에 서명 기능도 아주 요긴합니다. 윈도우즈용 PDF24 프로그램을 다운로드받아도 되고, 아니면 그냥 PDF24 온라인 서비스를 이용해도 됩니다. 도구 모음에서 "PDF 파일에 서명" 아이콘을 선택하고 원하는 파일을 열면, 바로 서명 도구가 있습니다. 직접 서명을 그리거나, 파일을 올리거나, 또는 카메라로 서명을 찍을 수 있습니다. 애크로밧 리더가 설치되어 있지 않거나, 클라우드에 로그인하는 것이 부담스러울 때, PDF24 온라인 서비스는 좋은 대안이 될 것입니다.

PDF24에서 제공하는 여러 도구들
PDF24에서 제공하는 여러 도구들

PDF24를 이용해 문서에 서명을 추가
PDF24를 이용해 문서에 서명을 추가하기

3. 맥의 미리보기 (macOS)

맥(Mac)에서는 내장된 미리보기(Preview) 프로그램에서 PDF 파일에 바로 서명을 추가할 수 있습니다. PDF 파일을 미리보기로 연 상태에서, 마크업 도구 막대 보기 버튼을 클릭한 다음(마크업 도구 막대가 보이지 않는 경우) 서명 버튼을 클릭하면 서명을 추가할 수 있습니다.

맥에서 PDF 파일에 서명을 추가하는 모습 (이미지 출처: Jotform 블로그
맥에서 미리보기를 이용해 PDF에 전자 서명을 추가하기 (이미지 출처: Jotform Blog)

서명을 추가하는 방법은 세 가지인데, 트랙패드에서 직접 그리기, 카메라로 찍어 올리기, 마지막은 아이폰/아이패드와 연계해서 서명 올리기가 가능합니다. 애플 지원 사이트를 참조하시거나, 전자 서명 방법을 자세히 안내한 잣폼 사이트를 참조하십시오.


4. Microsoft 365 (Office) (안드로이드용, 아이폰용, 아이패드용)

마이크로소프트 365 앱은 워드, 엑셀, 파워포인트 등을 모바일에서 보고, 편집 가능한 통합 오피스 앱입니다. 당연히 원드라이브와도 연동되고, 좋은 것은 PDF 편집, 양식 채우기, 그리고 서명 추가가 가능하다는 점입니다. 모바일이기 때문에 오히려 데스크톱에서보다 자연스러운 서명을 추가할 수 있지요. PDF 파일을 불러와서 더보기 메뉴에 보면, "PDF 서명" 메뉴가 있습니다. 그러면 아래 그림처럼 PDF 파일의 원하는 위치에 서명을 넣을 수 있습니다.

Microsoft 365 앱에서 PDF 파일에 서명 추가하는 화면
Microsoft 365 앱에서 PDF 파일에 서명 추가

출력을 염두해서 만들어진 PDF 파일이라도, 요즘 프로그램들은 알아서 입력 양식을 찾아서 상당히 간편하게 양식 값을 넣을 수 있게 해줍니다. 그리고 전자 서명을 고려하지 않고 만들어진 문서라도, 출력하고, 스캔하는 번거로움 없이 서명을 추가할 수 있습니다. 요약하면, 데스크톱에서는 어도비 애크로밧 리더 또는 맥에 내장된 미리보기 프로그램을 이용합니다. 모바일 환경에서는 어도비 애크로밧 리더 또는 마이크로소프트 365를 이용합니다. 그냥 아무 환경에서나 브라우저가 있다면 PDF 24의 PDF 서명 도구를 이용하면 됩니다.

다음에는 PDF 문서를 만들면서 서명란을 생성하는 "생성자" 입장에서 쉽게 서명란을 만드는 방법을 알아보겠습니다.

2023-10-25

Airtable 자동화 예시: 내일 이벤트를 영업일 하루 전에 자동으로 안내

요즘 많은 노코드 툴들이 그러하듯이, 에어테이블(Airtable)에도 강력한 자동화(automations) 기능이 있습니다. 즉, 여러 앱들간의 프로세스를 엮어주는 재피어(Zapier)메이크(Make) 등을 쓰지 않아도, 상당한 수준의 워크플로우 자동화를 구축할 수 있습니다. 저의 개인적인 경험으로는 재피어나 메이크는 트리거(trigger)나 액션(action)을 정의할 때, 앱 내부의 동작을 세부적으로 정의하는 데에는 좀 한계가 있었습니다.

오늘은 아주 초보적인 자동화를 예시로 소개합니다. 예전에 다루었던 행사 운영 관리 베이스에 간단한 자동화를 얹어보겠습니다. 행사 운영 관리 베이스에는 매일 이벤트(교육, 행사, 모임 등)가 있고, 이벤트에는 담당 강사가 있습니다. 강사는 별도의 테이블에 연결된 Linked records 필드이고, 강사 이메일은 Lookup 필드입니다.

강사들은 조직 내부 구성원이 아니므로, 이벤트를 까먹지 않고 준비하도록 별도의 안내를 보내려고 합니다. 10일 전 안내, 3일 전 안내, 하루 전 안내 등 필요한 시기에 안내를 메일이나 문자로 보내주면 좋겠지요. 이번 예시에서는 하루 전에 자동 안내 메일을 보내봅니다.

자동화할 작업 정의 및 시작하기

무엇을 자동화할 것인지 명확히 하는 게 좋겠죠. 날마다 있는 행사에서 일일이 안내 메일을 보내기 어려우니, 정확히 하루 전에 행사 담당 강사에게 자동으로 행사 안내 메일을 보내기로 합니다. 에어테이블에서 자동화 시작은, 화면 왼쪽 위에 베이스 이름 옆에 [Automations]를 누르면 시작합니다. 참고로, [Data]는 기본적으로 테이블과 컬럼을 만들고, 데이터를 추가하는 곳이고, [Interfaces]는 데이터 시각화 툴입니다.

Airtable 화면 위쪽에 Automations를 선택하면 자동화 정의를 시작합니다.
에어테이블 화면의 왼쪽 위에, 베이스 이름 옆에서, Automations를 선택해서 자동화 화면으로 들어갑니다.

트리거(trigger) 설정

가장 간단한 자동화는 트리거 하나와 액션 하나로 구성됩니다.

트리거는 자동화를 일으키는 조건입니다. "만약 행사가 다음 날 있으면, 안내 메일을 보내라!"라는 자동화에서, "만약 행사가 다음 날 있으면"이라는 것이 바로 트리거입니다.

에어테이블 트리거 유형(trigger type)은 주로 다음과 같은 것들이 있습니다.(물론 그 밖에 외부 앱과 직접 연동되는 트리거도 있습니다.)

When record matches conditions
레코드의 데이터 값이 특정 조건을 만족할 때
When a form is submitted
사용자자 양식(form)에 값을 제출할 때
When record created
새로운 레코드가 생성될 때
When record updated
기존 레코드 값이 변경될 때
When record enters view
특정 뷰를 기준으로 레코드가 생성될 때(정확히는, 조건에 맞는 레코드가 들어올 때)
At scheduled time
특정 시간이 되면
When webhook recieved
(외부 앱에서) 웹훅 이벤트를 받을 때
When a button is clicked
버튼(필드)이 눌릴 때
Airtable의 Trigger 종류
에어테이블에서 자동화 시발점인 트리거의 종류

우리는 제일 첫 번째 트리거를 사용합니다. 행사 운영 관리 베이스에서는 영업일 기준으로 {시작일} 필드의 날짜를 검사하는 수식을 이미 만들어 놓았습니다. 따라서 조금 더 구체적으로 트리거를 다음과 같이 정의할 수 있습니다. {영업일 기준}의 값이 "다음날"이면, 뭔가 액션을 취해라. 간단하죠? 아래 그림과 같이 트리거 유형, 테이블, 조건(conditions)를 차례로 설정해주면 됩니다.

트리거 설정: 트리거 유형, 테이블, 조건을 설정한다.
트리거 유형에서 레코드가 특정 조건에 맞을 때를 선택하고, 테이블은 "일정" 테이블을, 조건은 {영업일 기준} 필드값이 "다음날"인 경우로 설정했다.

액션(actions) 설정

트리거 조건을 만족하면, 무엇을 시킬 것인가가 바로 액션이죠. 우리는 강사에게 메일을 보냅니다. 다음과 같은 액션 유형(action type) 중에 Send email을 고르면 됩니다.

Send email
메일을 보낸다.
Create record
새로운 레코드를 생성(추가)한다.
Update record
기존 레코드 값을 변경한다.
Find records
(조건에 맞는) 레코드를 찾아낸다.
Run script
스크립트를 실행한다.
Airtable 자동화 액션의 유형
에어테이블 자동화에서 액션의 유형

이 밖에도, 에어테이블에서 직접 슬랙이나 마이크로소프트 팀즈에 메시지를 보낸다든지, 구글 캘린더, 구글 시트, 지라 등에 내용을 추가하는 등의 액션 유형도 있습니다.

메일을 보내기로 했으니까, 수신자, 주제, 메일 내용과 같은 필수값들을 설정해주면 됩니다. 물론 데이터베이스에서 특정 필드를 변수로 포함시킬 수 있습니다. 특정 필드값을 변수로 사용하기 위해서는 파란색 ⊞ 버튼을 누르고, Insert value from field 목록에서 원하는 필드명을 고르면 됩니다.

액션에 대한 레이블(label)은 "강사 안내 메일"로 설명을 넣어줍니다.

수신자에는 {강사 메일}이라는 이메일 주소값 필드를 넣어줍니다.

메일 제목은 아래와 같이 작성했습니다.

다음 날({시작일}) {이벤트} 안내
액션에서 액션 레이블, 메일 수신자, 메일 제목을 설정합니다.
액션 설정: 액션의 제목을 넣어주고, 이어서, 메일 수신자, 메일 제목을 넣습니다.

메일 내용에는 간단히 아래와 같이 세 개의 필드를 포함시켰습니다.

{강사}님, 안녕하세요?
{시작일}에 {이벤트}이/가 시작되어요. 
미리 준비하시고, 당일날 늦지 않게 와주세요. 
감사합니다.
메일 내용 설정 화면
메일 내용 설정 화면

테스트 및 미리 보기

이제 트리거와 액션을 만들었으니, [Generate a preview] 버튼을 눌러 메일 모양이 어떻게 나올지 확인해봅니다. 또는 [View results] 버튼을 눌러 자동화 실행 결과가 성공적인지 확인해봅니다.

액션 결과 미리보기
액션 결과 미리 보기

활성화(activate)

마지막으로 방금 만든 자동화가 아직 비활성화(inactive) 상태이므로, 활성화(active) 상태로 바꿔줍니다.

지금까지 정의한 자동화를 active 상태로 바꿔준다.
지금까지 정의한 자동화를 활성 상태(active)로 바꿔준다.

이제 다 되었습니다. 앞으로는 운영자들이 일일이 사전 안내를 하지 않아도, 담당 강사에게 하루 전 메일이 자동으로 나갑니다. 물론 이 예시에서는 극단적으로 간단한 조건들을 사용했지만, 보다 복잡한 조건, 복합 트리거, 복합 액션, 조건부 분기 액션을 만드는 것도 크게 어렵지 않습니다.

다음 기회에는 메일 말고, 문자나 카카오톡 메시지를 자동으로 보내는 것을 살펴보겠습니다.

2023-10-19

SQL과 연관지어본 Airtable: linked records, lookup, count, rollup 필드

에어테이블(Airtable)은 기본적으로 관계형 데이터베이스입니다. 요즘에는 비정형 데이터와 빅데이터가 부상하면서 NoSQL 데이터베이스도 많이 쓰이지만, 여전히 관계형 데이터베이스는 매우 중요합니다. 에어테이블을 사용하기 위해 데이터베이스의 개념이나 질의 언어인 SQL을 알 필요는 전혀 없습니다. 그러나, 기존에 SQL을 조금이라도 써왔던 분들은, SQL과 연관시켜서 에어테이블의 주요 개념들을 좀 더 쉽게 이해할 수 있을 것입니다.

에어테이블에서 한 개의 데이터베이스를 베이스(base)라고 부릅니다. 그리고 베이스 안에는 여러 개의 테이블(table)을 담을 수 있습니다. 다시 테이블은 여러 개의 다른 방식으로 표현된 뷰(view)를 가질 수 있습니다. 이 때 기본적으로 테이블과 테이블이 관계를 맺으면(에어테이블에서 link to라고 표현함. SQL에서 말하는 join), 현재의 테이블에 관계 맺어진 다른 테이블의 값을 불러오거나(lookup), 가져와서 요약 정리하거나(rollup), 갯수를 셀 수(count) 있습니다. 이 글에서는, 관계형 데이터베이스를 설명하려는 것은 아니므로, 간단히 에어테이블에서 이런 것들이 어떤 필드로 표현되는지, 그것을 SQL로 표현하면 어떻게 대응되는지만 살펴봅니다.

어떤 예제로 설명을 해야 하나 고민하다가, 그냥 제가 개인적으로 사용하고 있는 독서 목록이라는 베이스를 사용하기로 했습니다. 읽은 책들을 정리하기 위한 베이스의 구조는 아주 간단합니다. 책 목록과 작가 목록 두 개의 테이블로 되어 있고, 책의 저자가 작가의 이름과 연결(link)되어 있습니다. 책 목록에 같은 작가가 쓴 책이 여러 권 있을 때, 작가 이름을 매번 새롭게 치는 것이 아니고, 작가 테이블에서 불러온다는 것입니다.

예시 (데이터)베이스

예전부터 공개된 독서 카드(특정 뷰)

에어테이블에서는 미리 테이블 안에 linked records 필드 (또는 link to 필드), lookup 필드, count 필드, rollup 필드를 만들어놓게 되므로, 컬럼(필드) 수가 다소 많아지게 됩니다. 그래서, 필요 없는 컬럼은 숨기기하면서 목적에 맞는 여러 개의 뷰(view)를 만들면 됩니다.

실제로는 아래 두 개의 테이블명과 필드명으로 한글을 사용했습니다. 다만, 일반적인 데이터베이스에서 한글을 테이블과 필드 이름으로 사용하는 데에는 제약이 따르므로, 여기 예시에서는 편의상 영문으로 합니다.

Books 테이블 구조
필드명필드 유형비고
Book_titleSingle line textPrimary field
AuthorLinked records저자 테이블과 연결
RatingRating1점~5점
About_authorLookup저자 테이블에서 인물소개 값을 참조

Authors 테이블 구조
필드명필드 유형비고
Author_nameSingle line textPrimary field
DescriptionLong text저자에 대한 소개글
BooksLinked records해당 저자가 쓴 책 목록. 책 테이블과 연결
N_of_booksCount이 작가의 책이 책 테이블에 몇 개 있는지 셈
Average_ratingRollup이 작가가 쓴 책의 평균 별점 계산

Linked records 필드

Airtable의 확장 프로그램인 Base schema를 이용해 독서 목록이라는 베이스의 스키마를 시각적으로 표현한 그림. 두 테이블 사이에 Linked records 필드만 보여주도록 설정한 경우
에어테이블 확장 프로그램인 Base schema를 이용해 독서 목록이라는 베이스의 스키마를 시각적으로 표현한 그림. 두 테이블 사이에 Linked records 필드만 보여주도록 설정한 경우

Linked records 필드는 두 개의 테이블을 연결하는 것입니다. Books 테이블에서 저자는, Authors 테이블에 있는 저자명과 연결됩니다. 에어테이블에서는 한 테이블에서 Link to 필드를 만들면, 자동으로 다른 테이블에도 Link to 필드가 생깁니다. 다시 말해, Books 테이블의 저자를 Authors 테이블의 저자명과 연결하면, 거꾸로 Authors 테이블에는 Books 테이블의 책이름과 연결되는 Link to 필드가 자동 생성되어, 해당 저자가 쓴 책 목록이 모두 표시됩니다. Books 테이블에서는 글쓴이가 보여지는 방식을 SQL로 표현하면 다음과 같이 되겠지요.

SELECT b.book_title, a.author
FROM books b
INNER JOIN authors a ON b.author = a.author_name;

Lookup 필드

Lookup 필드는 연결된 다른 테이블에서 특정 필드 값을 조회해서 가져오는 것입니다. Books 테이블에서는 매번 저자의 인물 소개가 들어가지 않지만, Authors 테이블에서 Description의 값을 조회해서 보여주는 방식입니다.

SELECT b.book_title, b.author, a.description AS about_author
FROM books b
INNER JOIN authors a ON b.author = a.author_name;

Count 필드

에어테이블에서 Count라는 유형의 필드는 실제 SQL에서 count 함수를 쓰는 것과 비슷합니다. 아래 쿼리는 저자별로 Books 테이블에 몇 권의 책이 있는지 세어서 보여줍니다.

SELECT a.author_name, COUNT(*) AS n_of_books
FROM books b INNER JOIN authors a 
ON b.author = a.author_name
GROUP BY a.author_name;

Rollup 필드

에어테이블의 Rollup 필드는 연결된 다른 테이블의 특정 필드를 요약해서 보여줄 때 사용합니다. 위에서 저자별로 여러 권의 책이 있고, 각 책들의 별점이 있는데, 저자별로 모든 책들의 별점의 평균을 보여주기 위해 Authors 테이블에 Rollup 필드를 넣었습니다. Rollup 필드는 평균 외에도, 합계, 갯수, 최대값, 최소값, 문자열 함수, 논리 함수 등 여러 가지를 사용해서 요약할 수 있습니다.

에어테이블의 평균별점 필드의 수식은 다음과 같이 정의됩니다. 별점이 있는 경우, 있는 레코드만 모아서 평균을 보여달라는 것이죠.

IF(values, AVERAGE(values))

SQL에서 저자와 저자별 별점 평균을 보여주려면 다음과 같이 하면 되겠죠. (소수 첫째 자리까지만)

SELECT a.author_name, ROUND(AVG(b.rating), 1) AS average_rating
FROM books b
INNER JOIN authors a ON b.author = a.author_name
GROUP BY a.author_name;

제가 겪은 실무에서는, 단순하게 lookup, rollup, count를 쓰기보다는 조건부(conditional) 필드를 사실 더 많이 쓰게 됩니다. 에어테이블에서는 상당히 직관적으로 코딩 없이 조건부 lookup, rollup, count를 사용할 수 있고, 그것에 따라 여러 개의 뷰를 만들 수 있습니다. 그리고 각각의 뷰에서 할 수 있는 일을 제한해놓습니다. 그러면, 데이터베이스나 프로그래밍에 대한 지식이 거의 없어도, 상당히 복잡한 업무 처리를 이것만으로 구현하게 됩니다.

따뜻한 사람들의 이야기와 그림이 있는 동화책, 《책과 노니는 집》

책과 노니는 집. 이영서 글. 김동성 그림
책과 노니는 집. 이영서 글. 김동성 그림

초등학교 5학년 아이가 읽어보고, 내용과 단어가 너무 어렵다고 하여, 도움을 주기 위해 저도 읽어보았습니다. 제9회 문학동네 어린이 문학상 대상을 받은 작품이라니 어떤 작품일까 궁금하기도 했습니다.

아버지의 죽음

이야기의 배경은 조선 후기 천주학이 학문으로 들어오기 시작할 무렵에 서울입니다. 주인공 장이는 책을 필사하는 것을 업으로 삼은 아버지와 살고 있는 어린 소년입니다. 그런데 아버지가 천주학 책을 필사했다는 이유로 죽도록 맞아, 소년은 세상에 홀로 남겨질 것을 두려워합니다.

죄 없는 사람을 이 지경으로 만들어 놓다니...... 모진 놈들......

아버지에게 일감을 주었던 책방 주인 최 서쾌가 아버지가 죽기 전에 찾아와 이렇게 말합니다. 보편적인 사람의 상식과 정서에서 아버지는 죄 없는 사람이었고, 한 사람을 이 지경으로 만들어놓은 국가의 무자비한 폭력에 대해 탄식하는 것이지요. 그 시대에서 받아들일 수 없는 말과 행동을 하는 것이 국가가 보았을 때 죄가 됩니다. 그러나 통치자가 만들어놓은 합법의 테두리라는 것은 시대에 따라 달라지기도 합니다. 설사, 그 시대 기준으로 죄가 있다고 하더라도, 사람이 죽을만큼 맞는 것이 옳다고 할 수는 없습니다. 죄가 있다고 신체적인 형벌을 주는 일, 그리고 사람의 목숨까지 국가가 빼앗아가는 일이, 현대 사회에서는 이제 많이 사라져가고 있습니다. 얼마나 다행인 걸까요.

국가의 정책, 지배자의 통치 방향과 다르다는 이유로 조선 말기에 천주학과 조금이라도 관련이 되었다고 의심받는 것은 매우 위험한 일이었습니다. 그럼에도 불구하고, 서학을 접한 사람들은 더 많아집니다. 그리고 그들은 엄격하게 계급이 구분되어 날 때부터 귀한 사람과 천한 사람이 구분되는 신분 사회의 모순을 인식하게 됩니다. 이런 사람들의 생각과 정서를 따라가지 못한 국가는 가혹한 탄압을 행합니다. 왕조 시대와 식민지 시대를 거쳐서 민주 공화국이 되고, 절대적인 통치자, 왕에 의한 지배에서, 법에 의한 지배(rule by law) 사회가 된 우리 나라! 정말 많이 진보했습니다. 그러나, 그 법이 정의, 평등, 인권, 사상의 자유 등 인간의 이상을 반영하지 못한 상태에서, 법 통치자에 의해 잘못 휘둘러지는 경우는 없는지도 생각해봅니다. 

혼자였던 장이를 도와주는 사람들

아버지가 돌아가시고, 최 서쾌의 도움으로 필사한 책 배달을 하게 된 소년, 장이. 이번에는 동네 불량배인 허궁제비에게 큰 괴롭힘을 당하고 난처한 처지에 빠집니다. 가족도, 도와줄 사람도 없는 장이는 혼자서 끙끙대며 힘들어합니다. 그러나, 장이는 고립무원의 약자가 아니었습니다! 가족이 없는 장이에게 일터를 주었던 최 서쾌, 도리원에서 만난 낙심이, 청지기 아저씨, 미적 아씨, 지물포 주인 오씨 등이 모두 합심하여 도움을 주었습니다! 최 서쾌는 이렇게 말합니다.

네가 감당할 수 없거든 도움을 청하란 얘기다....... 휴우.

도움을 제공한 장이

관아에서 다시 천주학 관련자를 대대적으로 색출하여 잡아가는 일이 벌어집니다. 이번에는 그동안 신분의 차이를 뛰어넘어 장이를 따뜻하게 대해주었던 홍 교리에게 장이가 큰 도움을 제공합니다! 많은 사람들과 부대끼며 살아가지만, 외로운 현대인들은 각자 도생의 세계로 더 깊이 들어갑니다. 그런데, 장이는 도움을 받고, 또 도움을 줄 수 있는 행복을 가졌습니다. 국가 폭력이 지금보다 훨씬 더 거대한 과거 왕조 시대로 결코 돌아가고 싶진 않습니다. 하지만, 이렇게 사람들이 어려울 때 서로 도움을 주고 외면하지 않는 것이 조상들의 보편적인 정서였다면, 현대인으로서 그런 옛날이 그리워지기도 합니다.

마무리

소년 장이의 성장 소설일 수도 있고, 조선 후기의 역사 소설일 수도 있습니다. 장이라는 순진한 어린이의 시선을 따라 책과 관련된 이야기가 담담하게 그려지면서, 책읽기를 권장하는 어린이 문학일 수도 있습니다. 이런 여러 성격을 다 갖고 있지만, 어느 것 하나 과함이 없습니다. 어린이들에게 책을 많이 보라고 강요하지도 않고, 역사가 너무 도드라지지도 않으며, 사회 문제를 직접적으로 제기하지도 않습니다. 이야기는 알차게 꽉 차 있지만, 이를 읽는 독자들에게는 각자의 생각과 느낌, 상상으로 채울 수 있는 여백이 아주 많습니다. 마지막으로, 이야기와 한 몸이 된 듯한, 아름답고 따스한 삽화가 없었다면, 책읽기의 즐거움이 반감되었을 것입니다.

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

2023-10-16

종이 PDF 양식을 온라인 양식으로 변경, 결과도 PDF 양식으로 저장 (Jotform 이용)

지난 번에 구글 설문(Google Forms)로 응답받은 내용이 개인별 PDF 파일로 생성되는 방법을 살펴보았습니다. 이번 시나리오는, 기존에 오프라인으로 쓰던 입력 양식이 이미 있다고 가정하고, 그것을 최대한 살려서, 온라인 양식을 만든 다음, 온라인 양식으로 응답을 받으면, 오프라인 양식에 값이 저장되게 하는 것입니다. 


온라인 양식(form) 생성 도구 중에 가장 세세한 기능과 옵션을 제공하는 잣폼(Jotform)이라는 서비스를 이용합니다. 잣폼에서는 온라인에서 PDF 양식을 직접 만들 수도 있고, 기존 PDF 파일을 불러와 온라인 폼과 연결시킬 수도 있습니다. 온라인 폼을 통해 받은 데이터를 잣폼 테이블(Jotform Tables)을 이용해 데이터베이스로 관리할 수 있고, 하나하나의 받은 데이터를 원래의 PDF 파일 형식으로 내보낼 수 있습니다. 

1. 종이 PDF 양식 파일 준비


출력하여 종이로 입력받는 가상의 동아리 가입 신청서를 아래와 같이 PDF 파일로 준비하였습니다. 아래 그림을 선택하면, 여기에서 사용된 PDF 파일을 다운로드 받을 수 있습니다.

종이 출력용 가입 신청서 양식 PDF
종이로 된 가입 신청서 양식 PDF


2. 잣폼에서 폼 생성하기


잣폼에 가입하고 처음 들어가면 My Forms 화면에서 [CREATE FORM] 버튼이 있습니다. 이것을 누르면, 어떤 방법으로 폼을 만들 것인지 물어봅니다. 미리 PDF 모양을 만들어놨으므로 Import Form 을 선택하고, Import PDF form 을 선택한 다음, 만들어놓은 PDF 파일을 불러옵니다.

Jotform에서 Create Form 선택
Create Form 선택

Import Form 선택
Import Form 선택

Import PDF Form 선택
Import PDF Form 선택


3. 온라인 폼과 PDF의 연결

PDF 파일 Import 완료된 모습
PDF 파일 Import 완료된 모습. 이제 Add Form Element 버튼을 눌러 온라인 양식들을 만들기 시작한다.
불러온 PDF 파일을 보면서 잣폼에서 순서대로 양식 요소(Form Element)를 만들어줍니다. [Add Form Element] 버튼을 누르고 차례대로 폼을 생성합니다. 맨 처음에 '성명'은 'Short Text'로 생성하면 되겠지요. 

Form Element중에 Short Text를 골라 성명 필드를 만든다.
Form Element중에 Short Text를 골라 성명 필드를 만든다.



왼쪽 온라인 폼 창에서는, "Type a question"이라고 뜬 폼 레이블에 "성명"을 입력합니다. 오른쪽 PDF 창에서는, 초록색 사각형 텍스트 필드가 PDF 파일 위에 나타납니다. 그것의 위치와 크기를 성명 옆에 갖다 놓습니다. 

생성된 성명 필드를 PDF 파일의 성명란에 옮겨놓는다.
생성된 성명 필드를 PDF 파일의 성명란으로 옮긴다.


이어서 성별에 쓰이는 Single Choice 를 추가하고, 레이블을 "성별"로 입력합니다. 생성된 초록색 동그라미 버튼을 남, 여, 비공개 버튼에 각각 옮깁니다.

이런 식으로 휴대전화에는 다시 Short Text를, 회원 구분에는 Single Choice를, 가입경로에는 Multiple Choice를, 신청일에는 Date Picker를 추가합니다. 마지막으로 신청자 서명에는 Signature 폼을 추가합니다.

4. PDF Preview 및 온라인 폼 테스트


오른쪽 상단의  Preview Form 버튼을 누르면, 방금 만든 양식들을 온라인으로 테스트해볼 수 있습니다. 온라인으로 변환된 동아리 신청서에 값들을 넣어봅니다.

온라인과 연결 완료된 PDF 양식. 오른쪽 위 Preview Form을 눌러 데이터 입력 테스트를 할 수 있다.
온라인과 연결 완료된 PDF 양식. 오른쪽 위 Preview Form을 눌러 데이터 입력 테스트를 할 수 있다.


양식 작성 후에는 Preview PDF를 통해, 내가 넣은 값들이 PDF 종이 신청서에 어떤 모양으로 들어갈지 미리 확인해볼 수 있습니다. 최종 제출(Submit) 버튼을 누르면 이제 테스트로 넣은 값이 들어갑니다.

입력 테스트 화면. 입력 후 Preview PDF를 누르면, PDF 종이 신청서에 값이 어떤 모양으로 들어가는지 확인 가능. Submit을 누르면 최종 제출 완료
입력 테스트 화면. 입력 후 Preview PDF를 누르면, PDF 종이 신청서에 값이 어떤 모양으로 들어가는지 확인 가능. Submit을 누르면 최종 제출 완료

데이터 입력 후 Preview PDF를 통해 확인한 PDF에 데이터가 입력된 모습
데이터 입력 후 Preview PDF를 통해 확인한 PDF에 데이터가 입력된 모습

5. 최종 만들어진 폼을 공개(Publish)


이제 온라인 폼으로 만든 것을 상단 메뉴 중에 PUBLISH 를 선택해 공개적인 링크를 만듭니다. 이 링크를 홈페이지나 소셜 미디어에 올리면, 공개적인 신청/설문을 받을 수 있습니다. 

PUBLISH를 선택하면, 공개적인 데이터 입력 링크가 만들어져 데이터 입력을 받을 수 있다.
PUBLISH를 선택하면, 공개적인 데이터 입력 링크가 만들어져 데이터 입력을 받을 수 있다.

여러분도 데이터 입력을 직접 테스트할 수 있습니다. 최종 제출 전에 Preview PDF를 선택하면, 내가 입력한 데이터가 PDF 양식에 어떻게 들어가는지 확인할 수 있고, 다운로드도 받을 수 있습니다. 입력 양식 안에 이메일 필드가 있는 경우, 응답자의 이메일로 입력된 PDF를 보내게 할 수 있습니다.



6. 데이터 수집


여러 사람이 온라인 폼으로 제출한 데이터는 Jotform Tables에서 확인하고 관리가 가능합니다. Jotform 메인 메뉴에서 Tables를 선택합니다. 지금까지 수집한 데이터들이 깔끔하게 테이블에 들어가 있습니다. Jotform Tables는 Airtable과 매우 비슷하게, 관계형 데이터베이스를 기반으로 데이터 관리를 쉽게 해주는 도구입니다.

메인 메뉴에서 Tables를 선택하면, 수집된 데이터를 테이블에서 확인할 수 있다.
메인 메뉴에서 Tables를 선택하면, 수집된 데이터를 테이블에서 확인할 수 있다.

7. 결과를 다시 PDF 양식으로 출력


이제 입력받은 결과를 다시 PDF 양식으로 출력도 가능합니다. 출력을 원하는 데이터 레코드의 추가 메뉴(⋮)를 누르고, Download as PDF 를 누르면 아래와 같이 값이 채워진 PDF 파일을 얻을 수 있습니다.

테이블에서 입력된 데이터를 개별 데이터, 또는 전체 데이터 모두에 대해 종이 PDF 양식에 값이 채워진 모습으로 다운로드받을 수 있다.
테이블에서 입력된 데이터를 개별 데이터, 또는 전체 데이터 모두에 대해 종이 PDF 양식에 값이 채워진 모습으로 다운로드받을 수 있다.

입력된 값이 종이 PDF 양식에 맞게 들어간 PDF 샘플을 여기에서 확인해보십시오.


잣폼은 현재 나와있는 온라인 양식, 설문조사 도구 중 가장 세세한 설정이 가능하고, 기능이 많아서, 구글 설문과 같이 널리 쓰이는 도구 외에 하나 더 알아둘 만 합니다. 그 중에 오늘은 온라인 폼과 PDF 폼을 연동하는 방법을 알아보았습니다. 다음에는 제가 일상적으로 사용하는 Airtable을 이용햐여 비슷한 작업을 한 번 해보겠습니다.

2023-10-14

완벽해 보이는 가정의 균열, 《마당이 있는 집》

김진영 작가의 마당이 있는 집
김진영 작가의 마당이 있는 집


현실이 원하는 대로 되지 않으면, 나는 소설을 든다. 소설에 빠져들며, 현실의 아픔을 잠깐 잊고 싶어서. 이번에는 오랜만에 읽은 스릴러 소설. 운명이 다른 두 여자의 가정이 무너져가는 이야기가 짧은 며칠 사이에 극적으로 전개되며 쉽게 책을 놓을 수 없게 만드는 매력이 있었다.

그러나 2023년 나의 현재의 암담한 상황과 소설 속의 상황이 자꾸 오버랩 되면서 읽는 동안 계속 깊은 계곡으로 빠지는 느낌이 들었음을 부정할 수 없었다. 추리 소설이라고 하면 보통은 사실이 상당히 나중에 밝혀지는 반면, 이 작품은 중간중간에 두 주인공의 독백을 통해 사실들이 하나 둘씩 드러나게 되므로 추리물은 아니다. 그러나 끝까지 결말이 어떻게 전개될지 궁금하게 만들고 긴장하게 만든다는 점에서 영화 시나리오를 써본 작가의 소설적 재미를 만들어내는 능력에 감탄하게 된다.

완벽해 보이는 의사 남편을 둔 김주란의 가정에서 남편과 아내의 미묘한 균열을 세밀하게 그려지고, 아마 그런 점에서 공감이 가는 부부들도 많지 않을까 생각된다. 남편은 아내를 자상하게 보호해주는 것 같고, 아내는 그의 틀 안에서 행복을 누리는 것 같아 보인다. 그러나, 김주란이 문제 제기를 할 때마다 그냥 미안하다, 그만하자로 대충 마무리해버리는 남편의 모습. 그리고 그런 상황에서 오히려 내가 잘못된 것은 아닌가 의문을 갖고, 자신을 믿지 못하는 아내, 김주란의 모습. 그냥 참고 넘기면 그냥 계속 평온할 지도 모를 관계에서 조그마한 균열이 파국을 향해 급하게 달려간다. 완벽한 가정이란 이 세상에 없는 것인가? 괜찮아 보이는 가정, 그리고 처음부터 문제가 있어 보이는 두 개의 가정의 모습을 보고, 이 세상 많은 가족 구성원들이 피해갈 수 없는 질문을 던져본다. 가족의 구성원 모두가 동의할 이상적인 가정은 어떤 모습일까?

같은 제목을 가진 드라마로도 작품화되었는데, 아직 보지는 못했다. 김진영 작가의 차기작을 기대해본다.

마당이 있는 집:, 김진영 저, 엘릭시르

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.