코딩책과 함께 보는 소프트웨어 개념 사전 - 컴퓨팅 사고력과 문제해결능력을 위한 나만의 비밀 노트! 궁리 IT’s story 시리즈
김현정 지음 / 궁리 / 2019년 7월
평점 :
장바구니담기




본 리뷰의 대상은 잇츠 스토리 (IT’s story) 시리즈의 세번째 도서인 <코딩책과 함께 보는 소프트웨어 개념사전>이다. 잇츠 스토리 시리즈는 IT의 문화와 역사, 미래를 그림과 이야기로 알기 쉽게 풀어내어 어렵고 지루하게 느껴지는 디지털 용어를 친숙하게 접근할 수 있는 시리즈다. 그 중에서도 <코딩책과 함께 보는 소프트웨어 개념사전>는 이러한 잇츠 스토리 시리즈의 장점이 극대화된 책이라고 생각한다. 책의 저자인 김현정은 KAIST에서 소프트웨어공학을 전공하고 IT컨설팅 업계에서 현장을 경험하면서 10여년 동안 소프트웨어 분야 강의를 진행한 IT 전문가다. 저자는 현장감 있는 교육을 제공하기 위해서는 흥미롭고 재미있는 이야기와 경험을 공유하는 것이 무엇보다도 중요하다는 것을 깨닫고 단지 코딩 방법론 기술만이 아닌 컴퓨팅 사고력을 제고시키기 위해서 본 도서를 집필했다고 한다. (p. 11)


이를 위해 저자는 본 도서에서 4차 산업혁명 시대에 마치 공기처럼 우리 생활 모든 곳에 존재하며 동작하고 있는 소프트웨어와 하드웨어, 네트워크의 정의와 개념원리, 역사까지 아우르고 있다. 이 책의 장점과 다양한 활용도에 대해서는 IT 업계를 대표하는 이들의 추천사를 통해서도 확인할 수 있다. 개발자, 소프트웨어 기업의 대표, 교수 및 교사들이 추천사에서 공통적으로 언급하고 있는 것은 학생뿐만 아니라 교사, 코딩에 관심이 있는 성인에 이르기까지 도움이 되는 책이라는 것이다. 그리고 그 이유에 대해서 IT라는 큰 숲 안에서 소프트웨어의 개념과 원리와 유래와 역사에 대해서 적절한 비유를 통해 상세하게 설명하고 있다는 걸 언급하고 있다. 내가 궁리 출판의 잇츠 스토리 시리즈에 관심을 갖게 된 것도 소프트웨어에 대한 개념 정립을 통해 4차 산업혁명시대에 다양하게 언급되는 융복합 기술에 대한 이해도를 높일 수 있겠다는 판단 때문이었다.






“신입사원이 IT 회사에 입사하게 되면 아마 모르는 말투성이일 겁니다. 학교에서 실무를 경험하지 못했던 이들에게 레거시와 같은 익숙하지 않은 말들이 등장하면 당황스럽기 그지 없지요. 더구나 ‘레거시 (legacy)’를 국어사전에서 찾으면 ‘유산’으로 뜻을 알려주니, 신입사원이 회사에서 시행착오를 거치는 것쯤은 어느 정도 이해해줘야 하지 않을까요?” (p. 353)


저자가 레거시 시스템을 설명하면서 언급한 위 사례는 부끄럽지만 필자가 직접 경험한 것이다. IT 전공자는 아니었지만 IT 회사에 입사하여 기획과 경영지원 업무를 맡게 되면서 관련 사업부 및 고객과 소통해야 하는 상황이 있었는데, 외계어처럼 난무하는 IT 전문용어를 이해하지 못해 난처했던 기억이 있다. 이후에 IT의 개념과 전반적인 흐름을 이해하기 위해 나름대로 노력을 했지만, 비전공자로서 어떻게 접근해야할지 막막했었는데 궁리 출판의 잇츠 스토리 시리즈는 필자의 상황에서 정말 가뭄의 단비와 같은 존재였다.


<코딩책과 함께 보는 소프트웨어 개념사전>는 6개의 챕터로 구성되어 있다. 1장에서는 오피스 프로그램 부터 임베디드 소프트웨어와 펌웨어, 인공지능과 머신러닝까지 코딩 언어로 작성된 응용 소프트웨어들을 다룬다. 2장에서는 시스템 소프트웨어나 운영체제 등 컴퓨터를 통솔하는 소프트웨어를 소개하고 있다. 특히 운영체제의 중요성에 대해 설명하면서 운영체제가 없어서 스마트폰으로 진화하지 못하고 소멸된 피처폰의 사례를 언급한 것이 인상 깊었다.


“전화통화만 할 수 있던 당시에 피처폰은 문자 보내기, 알림 기능까지 제공하는 훌륭한 핸드폰이었죠. 다양한 기능을 제공한다는 의미로 ‘feature’라는 이름까지 붙었지만, 다양한 앱을 설치할 수 있는 스마트폰과는 견줄 바가 되진 못했습니다. 피처폰에는 운영체제가 없었기 때문에 지금처럼 핸드폰에 다양한 앱을 설치할 수 없었거든요.” (p. 75)


3장에서는 월드와이드웹과 URL, 데이터베이스 서버, 사물인터넷 등 전 세계 웹을 연결하는 소프트웨어에 대해 설명하고 있고, 4장에서는 데이터베이스 관리 시스템 (DBMS), 정형 데이터와 비정형 데이터 등 빅데이터를 위한 소트트웨어를 다룬다. 5장은 보안과 보호를 위한 소프트웨어에 대한 내용인데 화이트 해커 (white hacker)의 유래에 대한 소개한 내용이 재미있었다. 화이트 해커는 사이버 공격을 대비하기 위해 선의의 목적으로 사이버 공격을 수행하는 선의의 공격자를 의미한다. 이들은 화이트햇 (white hat, 하얀색 모자)으로도 불리는데 이는 1920년대 미국영화에서 그 유래를 찾을 수 있다고 한다. 그 당시 영화에서 영웅들은 흰색 모자를 쓰고, 악당들은 검은색 모자를 쓰며 선과 악을 대표했던 것이다.


마지막으로 6장은 코딩을 위한 소프트웨어들을 다룬다. 6장에서는 최근에 왜 코딩의 패러다임이 컴퓨터에게 명령을 내리는 순서대로 코드를 작성하는 ‘절차적 프로그래밍’에서 객체를 중심으로 객체의 행동과 속성 등을 정의하는 ‘객체 지향 프로그래밍’으로 진화하고 있는지 해당 언어와 프로그래밍 방식의 특성과 연관지어 설명하고 있어 쉽게 이해할 수 있었다. 또 코딩언어의 유래와 역사에 대해 설명한 부분이 특히 흥미로웠다. 역사와 전통을 자랑하는 코딩 언어인 ‘C언어’의 이름은 왜 ‘C’가 되었을까? 그것은 바로 유닉스 운영체제를 만들기 위해 만들어진 ‘B언어’ 다음으로 탄생한 언어이기 때문이라고 한다. ‘B언어’의 능력 부족으로 ‘C언어’의 필요성이 대두되었고, 이로서 수많은 코딩 언어에 영감을 주는 인플루언서 ‘C언어’가 탄생하게 된 것이다. (p. 304) 또한, 전세계 사용률 1위이자 가장 배우기 쉬운 코딩언어로 알려져 있는 ‘파이썬 (python)’의 이름은 대중적으로 큰 인기를 끌었던 ‘몬티 파이썬 플라잉 서커스’라는 코미디쇼에서 따온 것이라 한다. (p. 305) ‘모든 사람을 위한 컴퓨터 프로그래밍’이라는 철학을 가지고 누구나 활용할 수 있고 이해하기 쉬운 프로그래밍 언어를 만들고자 한 파이썬의 창시자 ‘반 로섬’의 생각과 너무나도 잘 어울리는 이름이지 않은가?


코딩은 키보드로 코드를 작성하는 단순노동을 의미하는 것이 아니라 컴퓨터에서 소프트웨어가 작동하도록 소프트웨어 기술을 이용하는 것을 의미한다. 따라서 저자는 소프트웨어를 폭넓게 이해하는 것이 코딩을 잘할 수 있는 비법이라고 주장한다. 본 도서를 통해 IT의 과거와 현재, 미래의 흐름을 느끼고 소프트웨어의 개념과 원리에 대해 이해하게 되면서 저자의 생각에 동의할 수 밖에 없었다. 끝으로 이 책의 장점이 집약되어 있다고 생각하는 6장의 모듈과 인터페이스를 설명한 부분을 소개하고자 한다.


“하드웨어 부품처럼 소프트웨어에서도 모듈이 있고 이 모듈을 연결하는 인터페이스가 필요합니다. 케이블과 같이 손에 잡히는 것은 없지만 인터페이스는 두 모듈이 통신할 수 있는 수단을 제공하지요.” (p. 360)


이 대목을 읽으며 소프트웨어의 모듈화에 대한 아이디어는 자동차의 사례와 같이 하드웨어에서 얻었다는 사실을 알게 되었고 모듈화를 통해 한 부품에 문제가 발생해도 다른 부품에 영향을 주지 않기 때문에 수리가 간단해지고 비용도 줄일 수 있다는 것, 부품의 규격 통일을 통해 브랜드간 호환성을 높일 수 있다는 것, 부품 재활용에 이점이 있다는 것 등 모듈화의 장점도 쉽게 이해할 수 있었다. 또한 이러한 모듈화의 장점을 취하면서 소프트웨어를 완성하기 위해 모듈을 연결하는 역할을 하는 것이 인터페이스이며, 대표적으로 API는 애플리케이션 개발에 활용할 수 있도록 제공하는 인터페이스의 한 종류로 우리가 웹에서 회원가입을 하고, 웹쇼핑을 할때 흔히 접할 수 있는 것이라는 것도 알게 되었다. IT 용어의 개념과 유래, 장점 그리고 적용까지 이렇게 쉽고 체계적으로 정리한 책이 또 있을까? 코딩과 소프트웨어, IT에 대해 관심이 있는 학생 및 초심자 부터 개념정립을 하길 원하는 실무 개발자들 모두에게 본 도서를 추천한다.






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