알라딘

헤더배너
상품평점 help

분류

이름:김기주

최근작
2024년 12월 <엣지 AI>

리눅스 실전 가이드

『리눅스 API의 모든 것』(에이콘출판, 2012)을 번역한 지 2년이 지났다. 그간 피처폰의 시대는 저물고 스마트폰의 세상이 됐고, 피처폰 소프트웨어를 개발하던 분도 이제 리눅스를 알아야 하는 시대가 됐다. 리눅스는 데스크탑을 정복하지는 못했지만, 이미 데스크탑보다 훨씬 많은 곳에서 사용되고 있다. 보이지 않는 곳에서 인터넷을 움직이는 서버와, 매일매일 들고 다니는 휴대폰과 태블릿, 자동차마다 달려 있는 내비게이션과 블랙박스, 아침에 일어나자마자 그리고 퇴근해서 집에 오면 무심코 켜는 TV, 셋톱박스, 블루레이 플레이어, 냉장고, 인터넷 공유기, 프린터, 가정용 파일 서버 등이 모두 리눅스로 구동된다. 앞으로는 인터넷과 스마트폰을 넘어 IOT(Internet Of Things)의 시대가 온다고 한다. Things의 상당수는 리눅스로 구동될 것이다. 요즘 핫이슈가 되고 있는 스마트시계 등 각종 착용형 장치(wearable device)뿐만 아니라, 자동차 계기판과 자동차 긴급 구난 요청 장치 등에도 리눅스가 쓰일 전망이다. 이 책은 리눅스와 맥 OS X을 사용할 때 쓰는 셸 명령과 유틸리티들을 설명한 책으로, 해당 명령의 사용법과 옵션, 리눅스와 맥 OS X에서의 차이점 등을 꼼꼼하게 정리했다. 임베디드 리눅스는 이 책에 설명된 모든 기능들을 제공하지 않겠지만, 기본적인 기능은 활용할 수 있을 것이다. 특히 임베디드 리눅스용 소프트웨어를 개발하기 위해서는 호스트 PC에 리눅스를 사용해야 하는 경우가 많은데, 그런 경우에도 이 책이 많은 도움이 될 것이다. - 대표 역자 김기주

엣지 AI

1956년 인공지능이라는 용어가 처음 언급된 이후 인공지능은 몇 번의 부흥기와 침체기를 맞으며 발전해 왔다. 현대 머신러닝의 뿌리라고 할 수 있는 퍼셉트론도 1958년에 고안됐으나 1969년 XOR을 해결할 수 없음이 수학적으로 증명되면서 한동안 잊혀졌다. 1980년대에는 입력된 규칙을 기반으로 판단을 내리는 전문가 시스템이 등장하여 충분한 데이터만 있으면 분야별 전문가를 대체할 수도 있겠다는 기대를 모으기도 했으나, 방대한 지식을 일일이 규칙으로 저장하는 데는 한계가 있어 다시 한번 인공지능의 겨울이 오기도 했다. 그러던 중, 1986년 다층 퍼셉트론 이론과 역전파 알고리듬을 적용하여 머신러닝의 불씨를 다시 되살리고, 2016년 지금도 잊을 수 없는 이세돌과 알파고의 대국을 기점으로 인공지능에 대한 기대가 다시 급성장했다. 2022년 챗GPT의 등장은 인공지능을 거스를 수 없는 대세로 만들었고, 인간의 최후의 보루로 여겨졌던 창의적인 작업조차 인공지능으로 대체될 수 있다는 위기감이 휘몰아쳤다. 진정 인공지능이 인간의 일자리를 모두 빼앗아 버릴지, 아니면 고도로 발전된 펜과 종이로서 여전히 인간을 돕게 될지는 앞으로 인간이 어떻게 대응할지에 달려 있겠지만, 현재로서는 대세에 역행하려고 부질없이 애쓰기보다는 기술을 어떻게 활용할지를 생각할 단계인 것 같다. 이 책은 날로 강력해지는 엣지 장치, 즉 인터넷 말단에 장착된 임베디드 시스템의 CPU 파워를 활용하여, 멀리 있는 클라우드 서버에 덜 의존하고 현장에서 즉각적인 판단을 내릴 수 있는 엣지 AI 시스템을 설계하는 방법을 다룬다. 또한 클라우드 AI와 엣지 AI 각각의 장단점을 실제 사례를 기반으로 네트워크, 경제성, 신뢰성, 윤리적 측면에서 살펴보고, 둘 사이에서 균형점을 찾을 수 있도록 도와준다. 특히 학습 데이터 준비와 프라이버시 측면은 엣지 AI에만 국한되지 않고 일반적인 AI 시스템을 만드는 사람이라면 누구든지 고려해야 할 사항을 실제 사례와 함께 자세하게 소개하고 있다. 마지막으로 엣지 임펄스에서 개발한 도구를 기반으로 엣지 AI 장치를 설계, 구현하는 실습 예제를 보여주고, 엣지 AI에 입문하는 사람이 직접 과정을 따라가면서 쉽게 배울 수 있는 기회를 제공했다.

임베디드 리눅스 프로그래밍 완전정복 2/e

지난 10년간 임베디드 장치에서 리눅스의 쓰임은 엄청나게 늘어났다. 2007년 안드로이드가 발표된 이후 리눅스 커널은 임베디드 장치에서, 어쩌면 PC를 포함한 모든 디지털 기기에서 가장 널리 쓰이는 운영체제 커널이 된 것으로 보인다. 안드로이드 외에도 삼성전자의 일부 스마트폰과 기어, 스마트 TV에 사용되는 타이젠(Tizen)(https://www.tizen.org)과 미국 팜 사에서 개발해 HP를 거쳐 LG전자에 인수돼 스마트 TV에 사용되고 있는 WebOS(http://webostv.developer.lge.com)도 리눅스에 기반을 두고 있으며, 자동차 업계에서도 GENEVI(https://www.genivi.org) 등 리눅스를 이용한 범용 플랫폼을 만들려는 노력을 하고 있다. 이 책은 원서 『Mastering Embedded Linux Programming - Second Edition』을 번역한 것으로, 임베디드 리눅스를 이용해 장치를 만들 때 고려할 하드웨어 관련 사항, 툴체인과 부트로더 선택, 커널 구성과 루트 파일시스템 생성, 빌드 시스템 선택, 플래시 메모리, 장치 드라이버, 시스템 부트 과정, 그리고 만들어진 임베디드 리눅스 플랫폼 위에서 프로그래밍할 때 고려해야 할 프로세스와 스레드, 메모리 관리, 디버깅, 프로파일링, 실시간 프로그래밍 관련 내용 등을 다룬다. 특히 2판에서는 OTA over-the-air 업데이트를 다루는 8장, '소프트웨어 업데이트', 배터리 수명 연장과 에너지 절약을 통한 환경 보호에 도움이 되는 11장, '전원 관리'가 추가됐다. 임베디드 리눅스 플랫폼을 만들고 그 위에서 프로그래밍하기 위한 전반적인 내용을 다루고 있으므로, 기존에 VxWorks나 퀄컴 BREW 같은 플랫폼을 사용하다가 리눅스로 전환하려는 사람들에게 도움이 될 것으로 보인다. 빌드 시스템의 경우 요즘 리눅스에 기반을 둔 플랫폼과 응용 프로그램들을 한꺼번에 빌드하도록 도와주는 Yocto 프로젝트가 많이 쓰이고 있는데, 이에 대해서도 다루고 있으므로 도움이 될 것이다. 스레드에 대해서도 일반 스케줄링 정책과 실시간 스케줄링 정책을 구별해 설명하고 있어 그 차이를 이해하는 데 도움이 될 것이다. 리눅스는 임베디드 시스템뿐만 아니라 전통적으로 유닉스가 주로 쓰이던 서버에도 널리 사용된다. 내가 몸담고 있는 elastic.co에서 개발하는 검색 엔진인 일래스틱서치(Elasticsearch)는 리눅스와 윈도우만 지원할 뿐 그 밖의 유닉스는 지원하지 않는다. 메모리 크기만 다를 뿐 기본적인 작동 방식은 같으므로, 리눅스에 익숙하면 임베디드 시스템에서 서버까지 쉽게 적용해 사용할 수 있다는 뜻이다. 처음으로 임베디드 시스템 소프트웨어를 작성할 때에 비해 개발 환경이 많이 좋아지고 임베디드 시스템의 성능도 획기적으로 향상돼 응용할 수 있는 영역이 매우 넓어졌으므로 이 책을 통해 많은 분이 흥미로운 임베디드 시스템 소프트웨어를 개발할 수 있게 되기를 바란다.

임베디드 리눅스 프로그래밍 완전정복 3/e

2007년 안드로이드가 발표된 이후 리눅스 커널은 임베디드 장치에서, 어쩌면 PC를 포함한 모든 디지털 기기에서 가장 널리 쓰이는 운영체제 커널로 자리매김했다. 안드로이드 외에 삼성전자의 스마트 TV에 쓰이는 Tizen(https://www.tizen.org)과, 미국 팜(Palm)사가 개발한 후 HP를 거쳐 LG전자 스마트 TV에 탑재된 webOS(http://webostv.developer.lge.com)도 리눅스에 기반을 두고 있다. 또한 자동차 업계에서도 리눅스를 이용한 범용 플랫폼을 만들고자 계속 노력 중이다. 이런 흐름 속에서 이 책의 2판에 이어 3판을 번역하게 돼 기쁘다. 이 책은 임베디드 리눅스를 이용해 장치를 만들 때 고려해야 할 하드웨어 관련 사항, 툴체인과 부트로더 선택, 커널 구성과 루트 파일시스템 생성, 빌드 시스템 선택, 플래시 메모리, 장치 드라이버, 시스템 부트 과정뿐 아니라 만들어진 임베디드 리눅스 플랫폼 위에서 프로그래밍할 때 고려해야 할 프로세스와 스레드, 메모리 관리, 디버깅, 프로파일링, 실시간 프로그래밍 관련 내용 등도 다룬다. 3판에서는 리눅스와 Yocto 프로젝트 버전을 비롯해 전체적으로 최신 내용을 반영해 업데이트되고 상세한 설명이 추가됐으며, 모던 빌드 시스템인 CMake와 파이썬 관련 내용이 추가됐다. 임베디드 리눅스 플랫폼을 만들고 그 위에서 프로그래밍하기 위한 전반적인 내용을 다루고 있으므로, 기존에 RTOS를 사용하다가 리눅스로 전환하려는 사람들에게 도움이 될 것이다. 빌드 시스템의 경우 요즘 리눅스에 기반을 둔 플랫폼과 애플리케이션들을 한꺼번에 빌드하도록 도와주는 Yocto 프로젝트가 많이 쓰이고 있는데, 이 역시 다루고 있으므로 유용하다. 또한 스레드에 대해서도 일반 스케줄링 정책과 실시간 스케줄링 정책을 구별해 설명하고 있어 그 차이를 이해하는 데 도움을 줄 것이다. 리눅스는 임베디드 시스템뿐만 아니라 전통적으로 유닉스가 주로 쓰이던 서버에도 널리 사용된다. 메모리 크기만 다를 뿐 기본적인 작동 방식은 같으므로, 리눅스에 익숙하면 임베디드 시스템에서 서버에 이르기까지 쉽게 적용해 사용할 수 있다는 뜻이다. 2판을 번역한 세 역자가 다시 힘을 모았다. 바쁜 와중에도 애써주신 두 분께 감사드리며, 좋은 기회를 주신 에이콘출판사 여러분께 다시 한 번 감사드린다. 내가 처음으로 임베디드 시스템 소프트웨어를 개발하던 때에 비해 개발 환경이 많이 좋아졌고 임베디드 시스템의 성능도 획기적으로 향상돼 응용할 수 있는 영역이 매우 넓어졌으므로, 이 책을 통해 많은 분이 흥미로운 임베디드 시스템 소프트웨어를 개발할 수 있게 되길 바란다.

페도라로 실습하는 리눅스 시스템 관리 Vol.1

코로나19가 본격화되기 직전에 시작해 포스트 코로나로 접어들 때 작업을 마무리하게 됐다. 처음에는 코로나19가 이렇게 오래 지속될 줄은 몰랐다. 6개월이면 정리되겠지, 1년이면 정리되겠지 하다가 어느덧 시간이 이렇게나 흘렀다. 영원히 마스크를 벗지 못하게 될까 봐 걱정할 지경이었는데, 그나마 이제 실외에서라도 마스크를 벗을 수 있게 됐으니 다행이다. 그동안 재택근무가 많이 확산됐고 클라우드 서비스도 보편화됐다. 비대면 업무와 수업용으로 유명해진 화상회의 솔루션도 클라우드 서비스의 일종이다. 클라우드 서비스는 대부분 리눅스를 이용해 구동된다. 다른 OS를 이용할 수도 있지만 현실적으로 리눅스의 비중이 압도적이다. 클라우드 서비스를 개발하고 운영하는 현대의 소프트웨어 엔지니어에게 리눅스에 대한 지식의 중요성이 더 커졌다고 할 수 있다. 꼭 클라우드가 아니더라도 서버를 운영한다면 리눅스를 사용할 가능성이 매우 높다. 검색엔진이자 NoSQL 데이터베이스인 엘라스틱서치(Elasticsearch)도 리눅스와 함께 윈도우를 지원하지만 실제로 업무에 사용하는 경우를 보면 대부분 리눅스에 설치해서 사용한다. 이 책은 버추얼박스라는 무료 VM(Virtual Machine)을 이용해 리눅스 시스템 사용과 관리를 실습할 수 있게 해준다. 1권에서 운영체제와 리눅스가 무엇인지 살펴본 뒤 기본적인 셸과 커냄드라인 도구들로 시작해 2권에서 디스크, 파일, 프로세스, 프린터, 네트워킹, 사용자와 보안 관리 등 보다 전문적인 영역까지 다룬다. 3권은 DHCP, DNS, SSH, 방화벽, 이메일, 웹 서버, NFS, SAMBA 등 많이 쓰이는 네트워크 서비스를 자세히 살펴본다. VM을 이용하므로 실제 서버가 없더라도 본인의 PC에 손쉽게 설치해서 익힐 수 있다. 조금 위험한 실습을 하더라도 최악의 경우 VM만 다시 만들면 될 뿐 PC에 손상을 일으키지 않으므로 안심하고 실습할 수 있다. 가상 네트워크를 이용한 실습은 PC 한 대로 서버 2개 사이의 네트워크 서비스 설정을 실습할 수 있는 좋은 기회가 될 것이다. VM을 이용해서 실습이 진행되기 때문에 VM 설정 자체에 대한 설명도 나오는데, VM은 업무에 많이 쓰이므로 사용법을 익히는 것은 하나의 덤이라고 생각하자. - 김기주

한눈에 빠져드는 셸 스크립트 2/e

셸 스크립트는 1977년에 만들어져 41년이 지나도록 꾸준히 사용되는 언어다. 유닉스 계열 운영체제에 들어 있는 여러 가지 유틸리티를 함수처럼 사용할 수 있다. if, for 등의 제어문과 간단한 연산도 지원한다. 셸 스크립트의 장점은 펄과 파이썬 등과 같은 다른 스크립트 언어도 많지만, 유닉스 계열 운영체제 어디서나 별도의 설치 과정 없이 사용할 수 있다는 것이다. 컴파일하지 않고 간단히 몇 줄 뚝딱 적어 복잡한 시스템 관리 업무를 척척 해낸다. 정말 멋지지 않은가? 유닉스의 파이프 기능을 이용하면 여러 유틸리티를 엮어 하나의 애플리케이션처럼 작동하게 할 수 있다. 이 책은 일반적인 셸 스크립트 학습서가 아니다. 유닉스 명령들을 하나씩 설명하고 셸 스크립트 문법을 설명하는 대신, 당장 실무에 사용할 수 있는 셸 스크립트들을 소개한다. 스크립트가 어떻게 동작하는지 알아보고 개선할 점을 찾아본다. 업무도 효율화할 수 있고, 셸 스크립트도 배울 수 있다. 꿩 먹고 알 먹고다! 한편으로는 셸 스크립트 학습서가 아니라서 약간은 부담스러워 할 사람들도 있을 텐데, 2판에는 셸 스크립트에 대한 기초 지식을 다지기 위해 0장, '셸 스크립트 특강'이 추가됐다. 셸 스크립트에 아직 익숙하지 않은 사람들에게 도움이 되길 바란다. 부록에서는 윈도우 10에 bash를 설치하는 방법도 소개했다. 앞으로 리눅스나 맥뿐만 아니라 윈도우에서도 cygwin 등의 도움 없이 손쉽게 셸 스크립트를 사용할 수 있길 바란다.

가나다별 l l l l l l l l l l l l l l 기타
국내문학상수상자
국내어린이문학상수상자
해외문학상수상자
해외어린이문학상수상자