직접 설계하고 개발하는 IoT 백신 초급
얼마전에 있었던 랜섬웨어에 대한 이슈가 온 나라를 뒤 흔들었던 것 처럼
오늘날 보안은 더 이상 일부 전문가들만이 관련있는 특별한 일이
아닌 국민 전체의 생활에 중요한 문제입니다.
랜섬웨어까지는 아니더라도, '백신'이라는 것을 직접 '설계'하고
'개발'할 수 있는 '초급' 책이라는 이 책의 제목은 개인적인
호기심을 상당히 자극하는 내용이기도 했습니다.
뭔가 대단한 사람들이 모여서 엄청난 고난을 통해서 만들어지는
것이 아닌가라고 생각되었던 '백신'이라는 것을 직접 만들수
있다는 점은 꼭 소프트웨어에 대해 잘 모르는 사람들에게도
꽤 관심있는 주제가 되지 않았을까 싶습니다.
1. 준비
책은 표지를 제외하고 정확하게 300쪽입니다.
차례 및 모든 내용을 포함한 분량인데요. 다루는 주제를 생각한다면
그리 많지 않은 분량이라는 생각이 들었습니다.
책을 받고 가장 먼저 살펴봤던 것은 책의 뒷 표지에 있는
'사전 지식' 이었습니다. 과연 '초급'이라는 제목을 붙이고 있는
이 책이 '제목'만 '초급'인지 아니면, '실제'로 '초급' 책인지
알고 싶었기 때문입니다.
책에서 나온 사전 지식은
1) C 언어,
2) 간단한 소켓프로그래밍,
3) 리눅스 커널의 역할 이해
(단, 커널 개발 경험은 없어도 됩니다.)
4) UML과 VMWare 사용의 이해
이렇게 4가지가 나와있었습니다.
'백신'이라는 주제와 '초급'이라는 주제에 맞추다 보니
이렇게 되어 있지만, 실제 책을 읽다보면, '초급'이라고 부르기
애매한 경우가 곳곳에 나옵니다.
책을 읽고난 상황에서 보면, 1, 2 항은 미리 보는 것이 좋을 것
같고, 3 항은 몰라도 일단 들어가도 될 거 같고,
4 항 UML은 대략알아도 되고, VMWare는 좀 아는 것이 좋은 것
같습니다.
또한 우분투라는 리눅스를 주로 사용하기 때문에, 이에 대한
사용법을 조금 알고 들어가는 것이 학습을 진행하는데 도움이
될 것 같습니다.
2. 진행
책의 구성은 요구사항분석, 프로토타입, 설계, 구현, 테스트와
같은 흐름으로 진행됩니다. 이른바 꼭 백신이 아니더라도
소프트웨어를 개발하는 전형적인 방식을 따라가고 있습니다.
이를 통해 백신 개발에 대해 궁금한 사람들 뿐만 아니라,
'소프트웨어개발의 초보'들에게도 소프트웨어 개발의 흐름을
맛볼 수 있는 기회를 제공해 주고 있습니다.
앞서 말한 것 처럼, 여러가지 사전 지식이 있으면 좀 더 쉽게
접근하고 진행할 수 있지만, 부분적으로 잘 모른다고 하더라도
일단 부딪쳐서 전진해 나가면 될 만큼, 아주 어렵지는 않게
되어 있습니다.
3. 학습 효과
책의 앞부분에서 저자분도 이 책이 이른바 '상용 백신'수준의
복잡하고 다양한 내용을 알려주는 것이 아니라는 점을 분명히
하고 있습니다. 뭔가 백신에 대한 사명감이나 전문적인 기술을
배우려는 분들이라면, 작은 참고가 될 수는 있겠지만, 이 자체로
큰 도움이 될지는 잘 모르겠습니다.
다만, 이 책은 다음과 같은 경우에 도움이 될 것 같습니다.
1) 기본적인 소프트웨어 개발에 대한 프로세스를 잘 몰랐던 사람
2) 프로그래밍에 관심도 있었고, 프로그래밍 언어도 한 두개
배웠지만, 그 다음에 뭘할지 잘 모르겠던 사람
3) C 언어나, 소켓 프로그래밍, UML 처럼 몇 가지 특정 기술들을
배웠지만, 실제로 하나의 목적을 위해 다양한 기술이
어떻게 모여서 사용될 수 있는지 잘 몰랐던 사람
이런 사람들에게 실제 백신이라는 구체적인 결과물을 얻어내는
과정을 통해 소프트웨어 개발의 흐름과 과정을 이해할 수 있는
기회를 제공해 줍니다.
소프트웨어 개발이 어떤 과정을 거쳐 어떻게 이루어지는지 궁금한
분들에게 좋은 안내서가 되리라 생각합니다.