메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

컬럼/인터뷰 >

[Interview] 〈앵귤러 첫걸음〉 : 성실한 저자 조우진 편

한빛미디어

|

2017-06-13

|

by 조우진

19,371

저자 인터뷰 - 조우진

조우진 저자님을 한마디로 표현한다면, ‘성실하다’입니다. 『앵귤러 첫걸음』의 뼈대를 만들어가면서, 먼저 출간된 도서들을 분석하는 일도, 어떤 것이 실무에 더 도움이 될지 내용을 선정하고 조직하는 일도 게을리하지 않으셨습니다.『앵귤러 첫걸음』이 나오기까지, 그리고 나온 이후에도 문자와 메신저로 저자님을 무수히 많이 괴롭혔습니다. 그때마다 친절한 설명과 답변을 해주셨습니다. 이제는 제 뒤를 이은, 많은 독자님과 소통하시겠지요? 이 책이 저자님의 첫 책이라니! 조우진 저자님이 꾸려나갈 다음 책들이 벌써 기대됩니다.

읽는 것을 좋아하는 개발자입니다. 사실 읽는 것보다 멋진 책을 모으는 것에서 더 큰 즐거움을 느낍니다. 대학원 시절 워드프레스로 NGO단체 홈페이지를 만들어 주면서 기술로 누군가에게 도움을 주는 일에 흥미를 느꼈습니다. 티켓몬스터에서 2년간 상품 등록/연동 업무를 했고 지금은 라인플러스에서 SNS 서비스 개발팀 일원으로 새로운 도전을 하고 있습니다.

1. 조우진 저자의 첫 도서 집필 스토리를 들려주세요.

2016년 1월 앵귤러가 베타 버전이 된 순간부터 앵귤러를 쓰기 시작했습니다. 프로젝트에서 반 년 가까이 앵귤러를 쓰면서 그동안 공부했던 내용을 블로그로 남기는 것이 이 책의 시작이었습니다. 불과 1년 전만 해도 앵귤러가 출시 후보(Release Candidate) 버전이 되었음에도 리액트에 비해 많이 알려지지 않았습니다. 그 이유는 '앵귤러가 타입스크립트라는 새로운 언어를 사용한다', '개발환경 설정이 복잡하다', '리액트보다 퍼포먼스가 떨어진다'는 우려가 있었기 때문입니다. 앵귤러 프레임워크가 은탄환 같은 존재는 아니었지만, 분명히 앵귤러가 주는 매력이 있음을 프로젝트를 진행하면서 느낄수 있었습니다. 이를 다른 사람들과 공유하고 싶었습니다. 이런 마음으로 책을 쓰게 되었습니다.

책을 쓰는 과정은 녹록치 않았습니다. 무엇보다 긴 호흡의 글을 쓴다는 것이 어려웠습니다. 전체 내용의 일관성을 유지하면서 머릿속의 개념을 풀어 놓는 것이 특히 쉽지 않았습니다. 책의 예제코드를 수십 번씩 고치면서 많은 시간을 보냈습니다. 그러다 보니 수정한 예제를 계속해서 원고에 반영하느라 시간이 많이 들었습니다. 어떤 예제의 경우에는 저도 모르게 코드에 집중하다 보니 설명에 필요한 개념 외의 내용이 너무 많이 들어가 예제 전체를 버리고 다시 작성한 경우도 있었습니다.

책 집필 중간에 잠시 고민했던 기간이 있었습니다. 내가 쓴 글이 매뉴얼이나 다른 블로그에 있는 내용과 큰 차이가 없다면 굳이 책으로 낼 필요가 있는가 하는 생각 때문이었습니다. 내 만족을 위해 책을 쓰는 건 아닐까 생각했습니다. 시간이 지나 주제가 같더라도 글쓴이의 관점과 경험에 따라 해석이 다를 수 있다는 답을 찾고난 뒤에야 글을 이어서 쓸 수 있었습니다. 또한 책을 쓰는 동안 『안드로이드를 위한 Gradle』의 저자 유동환 님께서 '같은 내용을 다루더라도 그 내용을 설명하는 코드는 저자만의 것'이라며 격려해 주신 것도 큰 힘이 되었습니다.

책이라는 매체의 특성상 한 번 인쇄되면 다음 쇄까지 수정할 수 없다는 사실도 큰 부담이었습니다. 블로그에 자연스레 글을 쓰던 것과 달리 글이 조금 딱딱해 진 것이 아닌가 생각도 들었습니다. 또한 블로그에 글을 쓸 때는 논리적인 공백이나 약간의 오류가 있더라도 언제든 수정할 수 있어 그리 큰 부담이 없었지만 책으로 쓸 내용을 작성하는 것은 틀리면 안 된다는 부담감도 있었습니다. 앵귤러 공식 사이트의 매뉴얼에서 모호한 설명이 있을 때는 직접 소스코드를 다 읽어보고 난 후에야 글을 쓸 수 있었습니다.

2. 앵귤러를 처음 접하는 독자들에게 앵귤러를 알려주신다면?

앵귤러는 규모가 큰 웹 애플리케이션 개발을 고려하시는 분께 소개하고 싶은 프레임워크입니다.앵귤러는 이전 버전인 앵귤러JS의 성공에 힘입어 최신 프론트엔드 기술을 근간으로 구글이 만든 사용자용 애플리케이션 개발 프레임워크입니다.

이전 버전인 앵귤러JS를 쓰면서 느꼈던 가장 큰 아쉬운 점은 애플리케이션의 규모가 커지고 코드가 늘어날수록코드가 복잡해지고 가독성이 떨어진다는 점입니다. 앵귤러는 앵귤러JS의 단점을 보완하여완전히 새로운 아키텍처 위에서 재탄생하였습니다. 새 프레임워크 덕분에 앵귤러JS보다 애플리케이션을 구조화하기가 훨씬 더 쉬워졌습니다. 거기다 타입스크립트를 앵귤러의 공식 언어로 채택하면서 대규모 웹애플리케이션 개발이 용이해졌습니다.

프레임워크로서 앵귤러는 학습곡선이 다른 기술에 비해 가파른 것이 사실입니다. 그렇다고 해서 앵귤러 프레임워크가 들어본 적 없는 전혀 새로운 개념들로 가득찬 것은 아닙니다. 언어가 타입스크립트이고 실행환경이 브라우저일 뿐 기존 언어와 프레임워크의 내용과 크게 다르지 않습니다. 오히려 백엔드 개발자에게는 앵귤러 프레임워크를 보면서 친숙함마저 느끼지 않을까 생각합니다.

최근 프론트엔드 웹 기술은 그야말로 춘추전국시대와 같습니다. 자바스크립트 생태계의 성장과 맞물려 다양한 기술이 쏟아져 나오고 있습니다. 앵귤러와 비교할 수 있는 리액트나Vue.js 모두 훌륭한 기술입니다. 저 또한 근래에는 간단한 사내 시스템 조회 툴을 Vue.js로 만들기도 했습니다. 그럼에도 앵귤러는 나름의 장점과 고유한 특징이 있습니다. 구조화된 프레임워크와 다양한 API는 대규모의 웹 애플리케이션 개발을 고려할 때 이점이 될 것입니다.

새롭게 탈바꿈한 앵귤러로 학습량이 많아 고민하신 분께 일단 한번 사용해 볼 것을 권합니다.

3. 같은 분야의 도서들과 비교했을 때, 이 책만이 가지고 있는 장점은 무엇인가요?

이 책만이 가지는 장점은 예제코드의 활용입니다. 개발서적이 전달해야 하는 가치에는 2가지가 있다고 생각합니다. 첫째는 개념과 이론이고 둘째는 실용 예제입니다. 책이란 매체는 개념과 이론 및 설명을 위한 간단한 예제에는 적절한 매체입니다. 과정을 설명해야 하는 예제는 영상매체와 달리 책으로 설명하기가 쉽지 않습니다.

예제코드의 과정을 어떻게 전달할 것인가 문제의식을 갖게 되었습니다. 그래서 내린 결론은 책과 함께 보조로 Git을 사용하는 것이었습니다. 책에는 각 예제의 개선 과정, 변경된 내용을 담되 전체 변경내역은 Git을 활용하여 독자가 예제를 한 단계씩 따라올 수 있도록 하였습니다. 책을 읽으면서는 개념과 이론을 익힌 후 예제의 변경내역 커밋을 옮겨가면서 어떻게 앵귤러를 활용하는지를 보여 주려고 노력했습니다. 더불어 간단한 예제의 경우 웹에서 바로 실행할 수 있는 링크를 제공하여 가능한 살아있는 예제 코드를 제공하려고 했습니다.

Github을 단순히 전체 예제코드를 제공하는 용도로 쓰고 싶지 않았습니다. 궁금한 것이 있거나 코드의 이슈가 있을 때 언제든 보고하고 수정해 나가는 이력을 남기고 싶어서 Github에 예제코드를 올렸습니다. 몇몇 발빠른 독자분이 코드의 궁금한 점과 이슈 사항을 알려주고 계십니다. 책을 읽으면서 Github의 코드도 꼭 함께 봐 주시면 좋겠습니다.

이 책이 가지는 또 다른 장점은 기술 이면의 맥락을 다루려고 노력한 점입니다. 제가 기술서적을 읽으면서 느꼈던 아쉬운 점은 '왜'라는 질문에 대한 답이 부족한 경우가 있다는 점입니다. 어떤 기술의 탄생에는 반드시 배경이 따라 붙습니다. 예를 들어, 앵귤러의 서비스를 간단히 설명하면 '애플리케이션에서 사용할 비즈니스 로직 등을 담는 범용적인 클래스'로 정의할 수 있습니다. 하지만 이 설명에는 '왜' 서비스를 분리해서 코드를 짜야 하는지에 대한 답이 없습니다. 책에서는 앵귤러 프레임워크가 사용하는 여러 개념과 기술이 왜 필요한지를 설명하고자 노력했습니다.

4. 이 책의 여러 파트 중에서 가장 중점적으로 기술하신 부분은 어딘가요? 그 이유는?

이 책의 핵심 장(Chapter)을 꼽으라면 저는 3장과 6장을 들 수 있습니다. 3장은 앵귤러 아키텍처를 거시적으로 조망하는 장입니다. 상세한 설명은 2부에서 하되, 초반에 독자가 길을 잃지 않으면서 앵귤러 아키텍처를 한눈에 조감할 수 있도록 3장을 작성했습니다. 또한 개념만 설명하면 이해하기 어려울 수 있기 때문에 간단한 예제 애플리케이션을 곁들였습니다. 하나의 예제 애플리케이션을 점진적으로 발전시켜 나가면서 아키텍처의 각 요소를 활용하며 설명했습니다.

6장은 컴포넌트를 깊이 있게 다루는 장입니다. 앵귤러뿐 아니라 최근 웹 프론트엔드 기술은 모두 컴포넌트 개념을 사용합니다. 이 책에서는 왜 '컴포넌트' 기반으로 웹 애플리케이션을 개발하는지 그 배경을 설명합니다. 또한 앵귤러에서 컴포넌트를 어떻게 활용할 수 있는지 구체적인 예제를 통해서 설명합니다. 이 장 역시 마찬가지로 하나의 예제를 점진적으로 개선하면서 앵귤러의 특징을 체감할 수 있도록 내용을 구성했습니다.

마지막으로 최근 프론트엔드 웹 기술의 변화가 익숙하지 않으신 분께는 부록을 꼭 읽기를 권합니다. 부록에서는 자바스크립트의 최신 변화를 살펴보았습니다. ES6와 Webpack을 간단히 살펴보면서 '왜' 이런 기술이 최근 프론트엔드 분야에 나오게 되었는지 그 배경을 설명하였습니다. 본래 부록은 초기 원고에서는 1장의 내용에 자리했을 만큼 제가 중요한 부분입니다. 다만 독자마다 프론트엔드 개발 환경의 이해도가 다양하다는 것을 감안하여 부록으로 내용을 옮겼습니다.

5. 저자가 좋아하는 도서의 분야와(또는 도서) 그 이유를 설명해주세요.

주로 교양과학, 사회과학 및 경영/경제 서적을 좋아합니다. 20대 초반 제러미 리프킨이란 저자를 알게되어 종말 시리즈, 『수소혁명』 등의 책을 즐겁게 읽었고 특히 『엔트로피』를 감명깊게 읽었습니다.

개인적으로 책에 흥미를 가지고 읽게 된 계기는 12주 과정 독서지도교육을 받으면서부터입니다. 이 기간 동안 동화부터 시작해서 다양한 분야의 서적을 함께 읽으면서 책 읽기의 즐거움을 알게되었습니다. 특히 극장판 영화로도 나온 『마당을 나온 암탉』을 읽으면서 눈물을 훔쳤던 기억이 납니다. 더불어 당시 읽었던 책 중 모티머 J. 애들러의 생각을 넓혀주는 독서법은 독서하는 방법과 관련해서 큰 도움을 받은 책이라 학습할 것이 많은 개발자 분들에게도 한 번쯤 추천하고 싶은 책입니다.

6. 늘 읽어야겠다고 생각했지만 아직 읽지 못한 책이 있으신가요? 소개해주세요.

기술서적 두 권을 소개하고 싶습니다. 하나는 『25개 애플리케이션으로 배우는 오픈 소스 소프트웨어 아키텍처』(인사이트, 2015)입니다.이 책은 사실 온라인에서 영어로 무료로 읽을 수 있는 시리즈 중 하나입니다. (링크: http://aosabook.org/en/index.html) 주니어 개발자로서 잘 작성된 소프트웨어란 무엇인지 궁금했을 때, 이 시리즈의 존재를 알았습니다. 출퇴근 시간에 여러 번 영어로 읽기를 시도했다가 실패했는데 시리즈 중에 한 권이 번역되었다는 소식을 듣고 책을 구매했습니다. 다만 아직도 읽지 못하고 있어 올해는 꼭 읽으려고 계획하였습니다.

다른 하나는 『해커와 화가』(한빛미디어, 2014)입니다. 책의 존재를 어떻게 알게 되었는지는 기억나지 않지만 전부터 목차와 소개를 보고 읽으려고 한 책입니다. 아무래도 당장 실무에서 필요한 내용이 아니기에 책에 손을 대지 못했습니다. 이 자리를 빌어 책을 소개하고 꼭 올해 이 책을 읽어 보도록 하겠습니다.

 

인사이드 자바스크립트

더 읽어보기

자바스크립트를 말하다

더 읽어보기

댓글 입력
자료실