UI의 중요성은 아무리 강조해도 지나침이 없다. 최초의 UI는 텍스트 위주의 환경을 GUI로 바꿔 사용자가 편리하게 사용할 수 있게 만들고자 하는 고민에서 시작됐다. 운영체제의 GUI를 거쳐 모바일 단말에 이르기까지 UI가 없는 기기는 찾아보기 힘들 정도로 많은 발전을 거듭해 왔고, UI는 모든 제품의 핵심 경쟁 요소로 부상됐다.
과거의 UI는 사용자의 편의성을 제공하는 데 관심이 집중됐으나, 현재의 UI는 프로젝트를 진행하는 과정의 각 단계마다 기획자와 디자이너를 연결해주고, 디자이너와 개발자, 개발자와 테스터 간의 소통을 원활하게 만들어주는 도구로써의 의미가 더욱 커졌다. 최종 인도물에서는 소비자가 생산자의 생각을 이해하고 교감할 수 있도록 하는 등 반드시 필요한 의사소통의 도구로 활용되고 있다.
이 책에서는 프로젝트의 각 과정을 진행하면서 좀 더 자연스럽고 정교한 안드로이드 UI 디자인을 만들어내는 데 활용할 수 있는 디자인 도구와 기법을 소개한다. 가장 핵심 부분인 구글 머티리얼 디자인을 준수해 사용자 인터페이스를 만드는 방법과 아이디어를 구체화하는 데 필요한 기법 소개 및 이를 활용하는 방법, 아이디어를 실체화하는 과정에서 발생하는 다양한 문제를 해결해 더 많은 사용자의 관심을 얻는 방법과 모범 사례를 소개하고 있다.
다루는 내용 대부분이 안드로이드 UI 설계와 구현에 초점을 두고 있지만 그 외의 기기나 UI 개발에서도 참고할 수 있는 부분이 많으므로, 반드시 안드로이드 UI와 관련이 있는 기획자나 개발자가 아니더라도 UI에 관심이 있는 독자라면 더 나은 아이디어를 얻기 위해 읽어보는 것도 좋겠다.
과거에는 자바스크립트를 단순히 클라이언트에서 동적인 효과를 주는 데 주로 사용했다. 그러다가 Ajax가 등장했으며, 이를 시작으로 jQuery 등 수많은 자바스크립트 라이브러리가 나왔고, 이러한 자바스크립트 라이브러리를 사용하지 않는 페이지를 찾아보기 힘든 자바스크립트 시대가 도래했다. 그 이후로도 백본(Backbone), 머스터치(Mustach) 등 화면에 표현해주기 위한 다양한 방법이 계속해서 등장하고 있으며, 이러한 플러그인과 템플릿, 프레임워크는 앵귤러(Angular)에서 정점을 찍게 된다. 하지만 초기 페이지 로딩 속도, 검색 엔진 최적화(SEO), 페이지 깜빡임(FOUC, flash of unstyled content) 이슈 등은 여전히 남아 있었다. 이 시점에 리액트(React)가 등장하면서 서버 측 렌더링을 통해 앞서 언급한 대부분의 이슈를 해결했고, 페이스북을 비롯해 인스타그램(Instagram), 에어비앤비(AirBnb), 넷플릭스(Netflix), 플립보드(Flipboard), 드롭박스(Dropbox) 등 여러 대규모 사이트에 적용하고 있다.
이 책에서는 리액트와 Node.js, 그 밖의 다양한 플러그인을 활용해, 서버와 클라이언트에서 동일한 코드를 사용할 수 있는 동형(Isomorphic) 웹 앱을 구현하는 기법을 소개한다. 적절한 예제를 따라 하면서 자연스럽게 습득할 수 있으며, 개발 경험이 많지 않더라도 기본적인 웹 개발 지식과 Node.js 사용 경험이 있으면 쉽게 이해할 수 있다. 만약 관련 경험이 전혀 없다면, 책을 잠시 덮어두고 Hello World나 튜토리얼을 먼저 확인하고 돌아와서 보면 된다. 출판사의 링크를 통해 내려 받을 수 있는 예제의 동작하는 코드를 확인하려면 package.json 파일에 포함돼 있는 라이브러리를 모두 직접 설치해야 한다. 자, 그럼 즐거운 배움의 시간이 되길 바란다.
이 책은 현대 IT 자동화의 핵심 도구로 자리 잡은 앤서블에 대한 깊이 있는 이해를 제공한다. 초보자부터 전문가까지 다양한 수준의 독자들이 앤서블을 통해 인프라 관리와 애플리케이션 배포를 어떻게 간편하고 효율적으로 자동화할 수 있는지 배울 수 있도록 구성되어 있다. 앤서블의 기본 개념과 동작 원리의 설명을 시작으로, 앤서블이 왜 개발됐는지, 어떤 문제를 해결하는지, 그리고 기존의 자동화 도구와 어떤 차이점이 있는지 쉽게 이해할 수 있도록 풀어낸다. 이를 통해 앤서블의 에이전트리스(Agentless) 아키텍처와 인간이 읽기 쉬운 YAML 형식의 플레이북을 작성하는 방법을 배우게 된다. 이러한 기초 지식은 앤서블을 처음 접하는 독자들이나 비기술적 배경을 가진 독자들도 쉽게 이해할 수 있다. 더불어, 앤서블을 실제로 어떻게 사용할 수 있는지를 다양한 예제를 통해 자세히 설명한다. 서버 설정 자동화, 클라우드 환경 관리, 애플리케이션 배포와 같은 일반적인 IT 작업부터 복잡한 네트워크 머신의 구성까지 다양한 시나리오를 다루고 있어, 실무에서 앤서블을 어떻게 활용할 수 있는지를 명확하게 이해할 수 있다. 이 과정에서 앤서블의 모듈과 플러그인을 활용해 효율적이고 재사용 가능한 자동화 작업을 구성하는 방법을 배울 수 있다. 또한 고급 사용자를 위한 심화 내용도 다룬다. 앤서블 타워(Ansible Tower) 같은 관리 도구를 통해 대규모 인프라를 어떻게 모니터링하고 관리할 수 있는지, 그리고 멀티 클라우드 환경에서 앤서블을 활용하는 방법을 설명한다. 해당 장은 이미 앤서블을 사용하고 있는 전문가들이 좀 더 높은 수준의 자동화와 통합을 달성할 수 있도록 돕는다. 마지막으로, 앤서블의 최신 기능과 향후 발전 방향에 대한 통찰을 제공한다. 커뮤니티에서 활발히 기여하고 있는 오픈소스 프로젝트로서 앤서블이 어떻게 진화하고 있는지, 그리고 앞으로의 자동화 기술이 IT 인프라 관리에 미칠 영향을 살펴본다. 이를 통해 앤서블을 단순한 도구로서가 아닌, IT 자동화의 미래를 이끌어 갈 중요한 기술로 인식하게 될 것이다. 이 책은 앤서블을 배우고자 하는 모든 이에게 훌륭한 가이드가 될 것이다. 초보자에게는 친절한 입문서로, 전문가에게는 깊이 있는 참고서로 사용될수 있으며, 누구나 IT 자동화의 혜택을 누릴 수 있도록 돕는다. 앤서블을 통해 자동화의 세계를 탐구하고, 복잡한 인프라 관리의 효율성을 극대화하고자 하는 모든 이들에게 이 책을 추천한다.
자바스크립트는 더 이상 자세한 설명이 필요 없는 중요한 언어로 자리매김했다. 클라이언트와 서버에서 사용되며, 수많은 대규모 프로젝트에서 채택해 사용하고 있다. 또한 여러 가지 프레임워크와 라이브러리가 커뮤니티를 통해 계속해서 만들어지고 지속적으로 발전하고 있다.
이러한 자바스크립트의 수요에 따라 이 언어를 배우고 활용하기 위한 개발자를 위한 기초 문법과 라이브러리, 프레임워크를 소개하는 좋은 안내서가 시중에 많이 나와 있다. 이 책은 그러한 기본서와 활용서 사이에 부족한 부분을 보완할 수 있는 좋은 책이다. 참고로, 잘 알려진 모질라 개발자 네트워크MDN 사이트에도 중급 개발자용 도서로 소개돼 있다.
간단한 예제부터 적당한 규모의 프로젝트까지 다양한 예제를 통해 자연스럽게 자바스크립트 고급 기술을 습득할 수 있도록 구성돼 있다. 웹 사이트로 공개 출판된 버전에서는 샌드박스를 제공하며, 이를 통해 별도의 개발 환경이나 에디터가 없어도 PC나 모바일 브라우저에서 예제 코드를 실행하고 결과를 확인할 수 있다. 책으로 출판된 버전에는 웹에서 공개되지 않은 자바스크립트 성능 개선을 위한 챕터가 포함돼 더 많은 내용을 확인할 수 있다
자, 그럼 즐거운 배움의 시간이 되길 바란다.
풀스택 개발자나 풀스택 개발이라는 말이 흔한 만큼 이들이 수요가 있을 것이라고 짐작할 수 있다. 인터넷을 검색해보면 풀스택 개발자의 정의도 다양하고 풀스택에 관한 여러 가지 주장도 확인된다. 풀스택 개발에 사용되는 기술을 모두 다 잘 알거나 골고루 잘할 수는 없으므로 풀스택 개발자는 존재하지 않는 허상이라고 주장하는 사람도 있다.
책 제목에서도 알 수 있듯이, 풀스택 개발은 어떤 정의처럼 거창한 내용이 아니라 프론트엔드와 백엔드를 모두 포함한 아주 단순한 웹 개발을 의미한다. 누군가의 주장처럼 프론트엔드와 백엔드를 모두 완벽하게 잘 아는 것은 불가능할지도 모르겠다. 하지만 각 영역에서 어떤 기술이 사용돼야 하는지 알고 기본적인 구현과 동작 방식을 이해해야 하는 것은 풀스택 개발자만의 소양은 아닐 것이다.
이 책에서는 리액트와 타입스크립트, GraphQL 그리고 노드를 사용한 풀스택 웹 개발을 다룬다. 웹 애플리케이션을 만들어보고, 클라우드 서비스에 개발한 웹 애플리케이션을 배포하고 운영하는 방법을 살펴본다. 그 밖에도 개발에 도움이 되는 여러 가지 도구와 정보를 제공한다. 또한 저자의 경험에서 나오는 다양한 오류 해결 방법도 제시한다. 깃허브에 예제와 최신 버전의 소스 코드가 제공된다.
예제를 따라 학습하다 보면 기본적인 내용뿐만 아니라 전반적인 웹 개발을 이해할 수 있게 될 것이다. 더불어 자신의 아이디어를 추가해 확장시키다 보면 보다 더 많은 내용을 습득하고 경험할 수 있을 것이다. 이 책으로 풀스택 개발을 경험하고 더 나은 개발자로 성장할 수 있기를 바란다.
십수 년 전 프로그래밍을 처음 시작하면서 사용했던 언어가 C#이다. 당시 C#의 버전은 1.2였고 개발 도구는 비주얼 스튜디오 2003, .NET 프레임워크의 버전은 1.1이었다. 다른 개발 언어에 비해 도구는 강력했고, 얻을 수 있는 장점도 많았다. 어느덧 세월이 흘러 이 책이 출간되는 시점인 2019년 4월, C#은 8.0 preview가 준비되고 있고 비주얼 스튜디오는 2019가 출시됐다. 또한 크로스 플랫폼을 지원하는 오픈소스 .NET core는 3.0까지 진화 발전했다. C#과 비주얼 스튜디오 그리고 .NET은 개발자에게 양보할 수 없는 다양하고 강력한 기능을 제공하고 있으며, 다른 언어가 가진 장점까지 받아들여 더욱 매력적이고 멋진 언어이자 도구가 됐다.
이 책에서는 이러한 강력한 도구의 사용 방법과 함께 .NET 응용 프로그램 개발에서 중요한 요소인 객체지향 설계 원칙과 프로그래밍의 원리, 실전에서 활용할 수 있는 다양한 오픈소스와 유용한 도구 및 플랫폼의 사용 방법을 적절한 예제를 통해 쉽게 설명하고, 코드를 모듈화 하고 손쉽게 코드를 공유하며 공유한 코드를 확장하는 방법을 소개한다.
기본적으로 C#에 익숙한 사용자면 좋겠지만, 그렇지 않더라도 마이크로소프트에서 제공하는 방대한 양의 온라인 자습서를 통해 기본적인 내용을 쉽게 배울 수 있으며, 이 책의 예제를 설명하는 곳에도 관련 링크를 친절하게 안내하고 있다.
이러한 도구를 배우고 익숙하게 다루게 되면 적은 양의 코드로 개발 생산성을 극대화할 수 있으며 윈도우뿐만 아니라 리눅스나 맥OS와 같은 다양한 플랫폼을 대상으로 자신의 아이디어를 쉽고 빠르게 적용하면서 확장해 나갈 수 있을 것이다.
독자에게 당부하고 싶은 점이 있다. 이 책에서 소개하는 내용들은 바뀌지 않는 부분도 있지만, 자주 업데이트되는 내용이 많으므로 자신의 모니터 앞에 펼쳐진 내용이 책에 있는 스크린샷과 다르거나 많이 바뀌었더라도 당황하지 말기 바란다. 이는 신기술을 배우고 있다는 증거다. 변경된 부분을 찾아보면서 우직하게 진행하기를 기대하지만, 그럼에도 문의 사항이 있다면 출판사나 역자 또는 저자에게 연락을 해도 좋다.
세계적인 IT 자문기관 가트너는 '2018년 이후 주목해야 할 10대 전망'에서 봇과 챗봇에 더 많은 투자를 하게 될 것이라고 발표했다. 2021년에는 기업의 50% 이상이 전통적인 모바일 앱보다 봇과 챗봇 개발에 더 많이 투자할 것으로 예상했다.
기업들은 고객과 소통하기 위해 상담센터, 전용 앱 등을 사용하고 있으며, 유지와 제작에 들어가는 비용이 적지 않다. 앱의 경우, 잘 만들어서 사용자의 폰에 설치까지 성공했다고 해도 사용자가 기대처럼 사용하지 않는 경우가 많다. 스마트폰을 여러 번 사용한 경험이 있는 사용자는 자신이 필요한 앱 외에는 설치하지 않는 것이 보통이다. 혹 설치했다고 해도 거의 사용하지 않을 가능성이 높다. 전용 앱을 자주 사용하는 사용자라고 해도 앱의 알림이나 푸시 기능을 꺼두는 경우에는 그 효용이 떨어진다.
반면 사용자가 자주 사용하는 앱, 그중에서도 특히 메신저 앱은 사용자가 수시로 확인하고 응답도 아주 빠르다. 이러한 메신저 플랫폼에 통합된 챗봇은 활용 가치가 높고 전용 앱의 단점을 보완하는 것 이상의 대안이 될 수 있다.
모바일 인프라와 모바일 사용자 경험의 성숙, 자연어 처리와 머신 러닝, 인공지능 등 관련 기술의 발전, 다양한 메신저 플랫폼에서 제공되는 자동화된 기능과 API를 통해 봇의 생태계가 만들어지고 확장되고 있다. 사용자와 공급자는 자연스러운 대화를 통해 적시에 쉽고 빠르게 적절한 정보를 획득하고 공급할 수 있게 됐다. 봇의 제작은 쉬워졌고, 기업과 소규모 단체, 개인 등 커뮤니케이션이 있는 곳이라면 어디나 그 쓰임새를 찾아볼 수 있다.
이 책에서는 다양한 예제를 통해 봇을 만들고 여러 가지 플랫폼과 통합하고 기능을 확장하는 내용을 다루고 있다. 국내외 다른 메시지 플랫폼에서도 유사한 방식으로 적용하고 확장해보면서 더 나은 아이디어를 얻을 수 있기를 바란다.