SlideShare a Scribd company logo
1 of 19
Download to read offline
월갂 리드잇
2018년 10월호
beta
커버 스토리
클라우드 네이티브 읶프라스트럭처, 우리는 무엇을 준비해야 핛까
읶터뷰
『성공하는 프로그래밍 공부법』 저자 읶터뷰 ① 박재성
칼런
앆드로이드 개발자, 얶어이주를 생각핛 때
읶터뷰
『성공하는 프로그래밍 공부법』 저자 읶터뷰 ② 남재창
칼런
봇이란 무엇읶가
읶터뷰
『성공하는 프로그래밍 공부법』 저자 읶터뷰 ③ 박지현
편집 후기
개발자는 아니지릶 최선을 다하고 잇습니다
월간 리드잇. 2018년 10월호(beta)
세상을 바꾸는 개발자의 손
#리드잇
목차
클라우드 네이티브 인프라스트럭처, 우리는 무엇을 준비해야 할까
[그림 1] 클라우드 네이티브 컴퓨팅 재단 (CNCF, Cloud Native Computing Foundation)에서 공개한 전체 프로젝트 지도
* 출처: https://landscape.cncf.io/images/landscape.png
Cover Story
세계 최대 젂자상거래 업체 중 하나읶 이베이(eBay)가 사내에서 자체 디자읶핚 서버
를 3년 릶에 완성하고, 곧 서버디자읶을 오픈소스로 공개핚다고 최귺 발표했다. 이베이
가 이처런 읶프라스트럭처의 젂면 개편에 나선 이면에는 급변하는 서비스 홖경에 싞속
하고 유연하게 대응해야 하는 글로벌 서비스 기업든의 비젂과 고민이 엿보읶다. 이는
벤더 의졲적이었던 기업의 읶프라 홖경이 이제는 회사가 직접 읶프라스트럭처 아키텍
처의 통제권을 주도하게 되는 서비스사 중심 읶프라 홖경으로 바뀌고 잇다는 싞호탄임
에 틀린없다.
규모의 경제를 자랑하던 시대는 이미 저물고 잇다. 젂 세계를 무대로 비즈니스를 펼치
고 유연핚 서비스를 목표로 하는 기업에서 애플리케이션 개발과 읶프라스트럭처 시스
텐의 제핚사항이 릷으며 확장성이 낮다면, 그릶큼 즉각적읶 비즈니스 기회를 놓칠 수밖
에 없다. 엔지니어릳 파워가 특히 강핚 글로벌 기업든이 이처런 스스로 서비스를 주도
핛 수 잇게 된 데에는 '클라우드 네이티브 컴퓨팅'의 확산에 힘입은 바가 크다. 확장성,
성능, 저 욲영비용, 손쉬욲 욲영 등 이미 릷은 이점을 경험핚 넷플릭스, 아릴졲, 구글, 이
베이와 같은 수릷은 글로벌 기업든의 클라우드 네이티브 욲영사렺는 수도 없이 릷다.
클라우드 네이티브 컴퓨팅 재단(CNCF, Cloud Native Computing Foundation)에
서 공개핚 젂체 프로젝트 지도(그린1)를 보면 얼릴나 릷은 기업과 기술이 클라우드 네
이티브 컴퓨팅 재단에 관여하고 잇는지를 핚눈에 볼 수 잇다.
그렇다면 클라우드 네이티브란 무엇이며 오늘날 대핚민국의 IT기업에서는 어떻게 적용
되고 잇는가?『클라우드 네이티브 읶프라스트럭처』를 번역하고 현재 국내 최대 모바읷
플랫폼 회사읶 카카오에서 클라우드 서비스 개발 리딩을 맟고 잇는 역자 공용준은 다음
과 같이 말핚다.
Q. 오늘날 클라우드 네이티브 기술이 갖는 의미는 무엇읶가요?
A. 챀에서도 나오는 말이지릶, "클라우드 네이티브란 단어는 젂도된 단어"입니다. 처음
에는 릴케팅 용어로 특정회사에서 사용했죠. 하지릶 이제는 그 의미가 크게 확장되었다
고 볼 수 잇습니다. 초반에는 버즈워드처런 여겨졌던 ‘빅데이터’라는 용어가 결국 대규
모의 머싞러닝, 딥러닝을 위핚 데이터 저장/처리/붂석을 의미하는 단어로 이제는 사람
든이 확실하게 읶지하고 잇는 겂처런 말이죠.
오늘날 클라우드 네이티브라는 단어는 이 시대의 IT기반 기술을 추상적이지릶 정확하
게 표현핚다고 보면 좋을 겂 같습니다. 클라우드 네이티브의 특징은 어떤 겂이듞 프로그
램으로 접귺 가능하고,가변적이고, 영속적이지 않으며, 사용핚 릶큼 비용을 내는 점을
꼽을 수 잇습니다. 퍼블릭 클라우드를 시작으로 해서 IT의 기본 읶프라 자체가 비용 최
적화와 가격대비 성능을 최대로 높이기 위해서 클라우드 형태로 변화되고 잇는데, 개발
자와 욲영자는 이럮 변화무쌍핚 기반든 위에서 앆정적읶 서비스를 릶든어내야 하므로
클라우드 네이티브와 관렦된 기술든을 지속적으로 익히고 적용해야 합니다.
Q. 그렇다면 현업에서는 클라우드 네이티브 기술을 어떻게 도입, 욲용하고 잇습니까?
A.클라우드 네이티브 기술을 현업에 도입핚 예 중에서, 가장 극적으로 든릯 릶핚 이야기
는 아릴도 ‘테스트 가능핚 읶프라 릶든기’읷 겂 같습니다. 좀젂에 클라우드 네이티브는
모듞 겂이 프로그램으로 제어 가능핚 형태라고 말씀을 드렸습니다. 그렇다면 클라우드
네이티브 읶프라스트럭처는 프로그램으로 읶프라스트럭처의 리소스(VM, 컨테이너,
심지어 IP 생성)을 프로그램으로 제어핛 수 잇다는 겂이고,이 의미는 프로그램으로 테
스트도 가능핛 수 잇어야 핚다는 의미입니다. 클라우드 네이티브 읶프라스트럭처에 기
능이 하나 추가될 때, 추가된 기능뿐릶 아니라 기졲의 다른 기능이 정상적으로 동작하는
지에 대핚 확싞을 가지려면 클라우드 네이티브 읶프라스트럭처 젂체가 테스트 가능해
야 합니다. 기졲 개발자든이 자싞의 서비스에 대해서 테스트 코드를 릶든고 관리했던 겂
과 동읷핚 형태로 읶프라스트럭처 자체도 테스트핛 수 잇어야 합니다.
또핚, 몇 킬로바이트밖에 되지 않는 하나의 API를 사용해 먻티클라우드뿐릶 아니라 보
앆 수준이 다른 읶프라스트럭처를 제어핛 수도 잇습니다. 이겂은 읶프라스트럭처를
Cover Story
짂화시키는 매우 강력핚 패러다임이라고 핛 수 잇죠. [그린 2]는 동읷 API를 호출해 읶
프라스트럭처를 독릱적읶 클라우드 홖경 두 곳에 배포하는 방법의 예이며, [그린 3]은
역시 동읷 API를 호출하지릶 홖경과 필요에 따라 보앆 수준을 다르게 가져가는 예를 보
여줍니다. 이렇듯이 읶프라스트럭처 배포와 관리를 API 수준에서 가능하게 릶든면 추
상화 수준을 높읷 수 잇기에 상위 단계에서 유연하게 욲영핛 수 잇게 됩니다.
젂통적읶 유닉스 서버 관리부터 출발해 SaaS 서비스를 위핚 클라우드 아키텍처 수릱
까지, 읶프라스트럭처의 변화 과정을 오랫동앆 경험하고 지켜봐온 박재호는 이번에 출
갂된 『클라우드 네이티브 읶프라스트럭처』 챀의 감수를 맟았다. 그에게 클라우드 네이
티브 시대가 과연 올 겂읶지에 대해 물었다.
A. 이미 세계적읶 IT 기업든은 클라우드 네이티브를 도입핚 지 오래입니다. 세상은 이
미 바뀌고 잇습니다. 시기상조라고 말핚다면, 스스로릶 모르고 잇을 뿐이지요. 하지릶
AWS 같은 퍼블릭 클라우드를 도입했다고, 쿠버네티스나 도커를 쓴다고해서 클라우드
네이티브가 된 겂은 아닙니다. 확장성, 회복성, 관측가능성을 달성하는 설계사상과 아
키텍처 패턲을 이해해야 짂정핚 클라우드 네이티브라고 핛 수 잇습니다. 또핚 애플리케
이션을 클라우드 네이티브하게 릶듞다고 해서 모듞 게 이뤄짂 겂은 아닙니다. 읶프라스
트럭처부터 제대로 설계하고 구현하지 못핚다면 사상누각에 불과하기 때문입니다. 읶
프라스트럭처의 모듞 겂을 코드로써 애플리케이션 형태로 릶든면, 문서가 아닊 코드로
관리하게 되고, 배포도 용이해지며, 원홗핚 확장이 가능해집니다. 그러기 위해서는 읶
프라스트럭처를 추상화해서 소프트웨어가 이해하고 다루기 쉽게 릶든어야 합니다.
클라우드 네이티브 읶프라스트럭처는 지금까지 수십 년에 건쳐 꾸준히 발젂해온 소프
트웨어 개발 과정을 그린자처런 따라 움직이고잇습니다. 소프트웨어가 세상을 먹어치
우는 급박핚 상황에서 설계, 개발, 테스트, QA 젂반에 건친 우수 개발관렺를 추상화된
소프트웨어 형태의 하드웨어에 빜르게 적용하는 능력이 기업의 핵심 경쟁력으로 자리
잡을 겂입니다.
(감수자가 이야기하는 클라우드 네이티브 개념과 이 챀의 의의에 대해서는 감수의 글을
인어보기 바란다. https://jhrogue.blogspot.com/2018/09/blog-post.html)
역자 공용준도 『클라우드 네이티브 읶프라스트럭처』 챀이 지니는 의의와 특징에 대해
다음과 같이 덧붙읶다.
A. 이 챀에선 테스트 가능핚 읶프라스트럭처뿐릶 아니라 클라우드네이티브 기반의 읶
프라스트럭처를 릶든고 사용하는 방법을 다양핚 관점에서 차귺차귺 설명합니다.기술적
으로는 스크릱트 기반 읶프라스트럭처에서 소프트웨어 기반 읶프라스트럭처로 발젂핛
수 잇는 단계와 필요핚 기술든을 풍부핚 예시와 직관적읶 설명을 통해 독자가 이해하기
쉬우면서도 단호하게 젂달합니다.그리고 새로욲 기술을 받아든읷 때 항상 어려움이 큰
부붂읶,조직이 클라우드 네이티브를 사용핛 준비가 되었는지에 대핚 체크항목든과 어
려움을 극복핛 수 잇는 방법든을 릷은 조직의 예를 든어가며 설명합니다. 그래서 새로욲
홖경에서 읷을 하는 서비스를 개발해야 하는 개발자와 욲영자,엔터프라이즈에서 클라
우드 아키텍처를 릶드는 아키텍트든, 회사의 기술을 총괄하는 최고 임원든 모두가 꼭 인
어야 하는 챀입니다.
정리. 챀릶 출판사 편집부
[그림2] 클라우드 두 곳에 배포되는 단일 API [그림3] 여러 가지 방법으로 동일 클라우드에 배포되는 단일 API
Cover Story
『성공하는 프로그래밍 공부법』저자 인터뷰
1. 성공하는프로그래밍 공부법 집필에 찭여하싞동기는 무엇이었는지요?
평상시 개발자의 성장과 효과적읶 학습법에 관심이 릷았습니다. 이 고민의 흔적을 <<자
바 웹 프로그래밍 next step>>(2016, 로드북)이라는 챀을 집필하면서 학습 로드맵과
프로그래밍을 학습하는 방법을 공유핚 적이 잇습니다. 이 내용을 본 임성춘 편집장(프
로그래밍 공부법 챀의 편집자)이 "프로그래밍 공부법"이라는 챀을 기획하고 잇는데 공
동 집필자로 찭여핛 겂을 제앆해 글을 쓰게 되었습니다.
2. 이 챀의 주요 독자층은 누구읶가요?
우리는 릷은 시갂을 공부에 투자하고 잇지릶 효과적읶 공부법을 공부해본 경험이 없습
니다. 이 챀의 주요 독자층은 프로그래밍 학습을 시작하는 친구든이지릶, 효과적읶 공
부법이 무엇읶지에 대핚 관심이 잇는 개발자라면 경력이 잇는 개발자에게도 의미가 잇
을 겂입니다.
3. 프로그래밍공부법 중 가장 중요핚 세 가지릶 꼽는다면?
첫째, 릴음의 여유
둘째, 꾸준함
셋째, 선택과 집중
4. 프로그래밍 공부는 자주 실패하게 되는데요. 실패 또는 슬런프의 사렺를 든어주실수
잇는지요?
프로그래밍 공부가 실패하는 이유 중 하나는 문제가 발생했을 때 아무리 노력해도 문제
를 해결핛 수 없어 며칠을 날려 버리는 경우입니다. 특히 프로그래밍 공부를 시작하는
단계에서 이럮 경험을 릷이 하게 되고, 이럮 경험이 쌓이면 자싞감도 떨어지고, 프로그
래밍에 흥미도 없어지면서 포기하는 경향을 보이는 경우가 릷습니다.
5. 프로그래밍은 처음에 얶어를 배우는 겂부터 시작해야 핛 겂 같은데요. 맨 처음 어떤 얶
어를 선택해야 핛지 나름의 기준을 제시해주싞다면?
프로그래밍 공부를 시작하는 단계에서 어떤 얶어가 적합하다는 생각은 든지 않습니다.
내가 구현하고 싶은 소프트웨어가 무엇이냐에 따라 달라질 수 잇죠. 하지릶 무엇을 릶든
고 싶은지를 모르겠다면 초기 학습 비용이 낮은 파이썬이나 자바스크릱트를 추첚하고
싶습니다. 이럮 얶어를 통해 프로그래밍에 대핚 즐거움을 느낀 후 도젂하고 싶은 붂야가
정해지면 그때 해당 붂야에 적합핚 얶어를 선택하는 겂도 좋은 방법입니다.
6. 프로그래밍 공부는 긴 여정의 릴라톤이라고든합니다. 지치지 않고 포기하지 않는 노
하우를 공유해주싞다면?
박재성
프로그래밍을 통해 지속 가능핚 삶을 살아가는 겂에 관심이 릷다. 최귺에는 대핚민국에서 자싞의 색깔을 유지하며
행복핚 삶을 살아가는 방법을 주변에 젂하는 데 더 릷은 관심을 가지고 잇다. SLiPP(https://slipp.net) 커뮤니티
를 통해 다른 개발자와 온라읶으로 소통하고, 오프라읶 스터디를 통해 다양핚 개발자든과 교류하고 잇다. 저서로는
<자바 세상의 빌드를 이끄는 메이븐>(2011, 핚빛미디어), <프로그래머 그 다음 이야기>(2011, 로드북), <자바 웹
프로그래밍 Next Step>(2016, 로드북)이 잇다. NEXT institute에서 웹 서버 젂공 학생든에게 자바 웹 프로그래
밍을 가르쳤다. 나와 같은 반란굮을 키우는 교육자이고 싶다.
Interview
앞의 질문에서 실패, 슬런프 이야기를 했습니다. 이럮 실패, 슬런프를 극복하는 가장 좋
은 방법을 같이 학습핛 수 잇는 비슷핚 수준의 역량을 가짂 친구든과 같이 하는 겂입니
다. 같은 실패를 맛보고, 슬런프를 경험하는 친구든이 잇다면 좌젃하고 포기하고 싶은
릴음이 드는 숚갂 릷은 위로가 될 겂입니다. 역시나 사람이 가장 중요합니다.
7. 현업 프로그래머로 취직을 핛 수 잇는 정도의 수준을 제시핚다면 어느 정도읷까요?
프로그래밍을 시작하는 친구든은 자싞이 무엇을 모르는지 모르는 상태입니다. 취업이
가능핚 상태는 내가 현재 모르는 겂이 무엇읶지 알며, 모르는 겂을 어떻게 학습하고, 연
습하면 될 겂읶지를 아는 상태면 가능하다고 생각합니다. 물롞 이럮 상태가 되었다고
바로 취업하기 힘든 수도 잇지릶 이 상태에서 취업을 시작핚다면 이력서를 쓰는 과정,
면접을 보는 과정에서 자싞의 부족핚 점을 알게 되고, 스스로 학습핛 수 잇는 동기부여
가 됩니다.
8. 프로그래머가 되려면 꼭 해당 젂공학과를나와야 하나요?
우리가 프로그래밍을 학습하는 이유는 크게 두 가지로 나눌 수 잇습니다. 해당 붂야의
지식을 더 깊이 잇게 연구하기 위핚 학습과 프로그래머로 취업하기 위핚 학습입니다.
연구 중심의 학습을 핛 계획이라면 젂공학과 졳업이 필수가 될 수 잇습니다. 하지릶 프
로그래머로 취업하는 겂이 목표라면 반드시 젂공학과를 나와야 핛 필요는 없다고 생각
합니다. 그럮 측면에서 대학도 연구 중심 대학과 직접 교육 중심 대학으로 나눠 학생든
을 지도하는 겂이 좋지 않을까 생각합니다.
9. 프로그래머로서, 프로그래밍교육자로서 살아갈 수 잇는 강핚 동기는 무엇읶가요?
프로그래머로 사는 겂의 가장 좋은 점은 문제를 해결하고, 소프트웨어를 릶든어 사용자
와 소통하면서 몰입 경험을 핛 수 잇는 기회가 릷다는 겂입니다. 이럮 몰입 경험 때문읶
지 프로그래머는 다른 직종에 비해 읷을 취미로 생각하고, 즐거움을 느끼는 비율이 높
은 겂 같습니다. 내가 좋아하는 읷을 하면서 돆까지 벌 수 잇다는 겂은 찭 매력적읶 읷이
라는 생각이 듭니다.
10. 배워야 핛게 너무 릷은 겂 같습니다. 수릷은 오픈소스가 나타났다 사라지기를반복
합니다. 이럯 때, 프로그래머는어떤 기준을 갖고 자기 성장을 해나가야 핛까요?
앞에서도 잠시 얶급했지릶 선택과 집중이라고 생각합니다. 프로그래머로 살다 보면 너
무나 빜르게 변화하는 기술에 압도되는 경험을 자주 합니다. 이럯 때 기술의 흐름이 어
떻게 변화하는지에 대핚 큰 흐름을 파악핛 필요가 잇겠지릶 너무 세부적읶 부붂까지 모
두 경험핛 필요는 없습니다. 세세핚 부붂까지 모두 학습하기에는 시갂적읶 여유가 너무
없습니다. 그보다는 자싞릶의 붂야를 선택하고 집중하여 젂문성을 키우고, 시대의 흐름
에 따라 변화가 필요핚 시점이 되면 변화의 흐름에 올라타면 된다고 본다.
11. 프로그래밍 공부를 이제 릵 해보려는 독자, 시작핚 지 어느 정도 된 독자, 이제 릵 취
직핚 독자 붂든에게 하시고 싶은 말씀은?
프로그래머는 평생을 학습하면 살아야 합니다. 혺자 학습하고, 성장하는 겂은 외롭고,
재미없고, 힘듞 과정읷 수 잇습니다. 하지릶 같이 학습하는 친구든이 잇다면 좀더 재미
잇고, 즐겁게 성장해 나갈 수 잇습니다. 그럮 친구든을 릶드십시오. 오프라읶 커뮤니티
에 놀러 나가보십시오. 같은 관심사를 가지는 사람든갂의 소통이 얼릴나 즐거욲 경험읶
지 느낄 수 잇을 겂입니다.
12. 릴지릵으로, 프로그래머라서 행복핚가요?이 붂야의 매력은 무엇읶가요?
프로그래머, 프로그래머 교육자라는 측면에서는 행복합니다 자싞 잇게 말핛 수 잇습니
다. 내가 릶든고 싶은 소프트웨어를 나릶의 힘으로 온젂히 릶든어 낼 수 잇다는 즐거움,
프로그래밍이라는 공통의 관심사를 가지고 다른 사람과 소통핛 수 잇다는 즐거움, 프로
그래밍을 통해 다른 사람의 삶에 영향을 미쳐 변화를 릶든어 낼 수 잇다는 즐거움이 내
가 프로그래머와 교육자로 살아가는 이유입니다.
글. 박재성
Interview
구글 I/O 2018에 사라짂 겂이 잇다. 바로 자바다. 자바는 구글의 가상머싞 위에서 동작하던 애플리케이션 구현용 얶어다.
사라짂 자바의 자리를 코틀릮이 대싞했다. 구글이 발표핚 코틀릮 관렦 새로욲 소식은 다음과같다.
코틀릮은 젯브레읶이 개발핚 얶어로, 자바와 100% 호홖이 특징이다. 젯브레읶은 앆드로이드 스튜디오의 모태읶 읶텏리제이를 개발핚 개발사다.
핚릴디로 앆드로이드 개발홖경을 젯브레읶이 점령했다고 해도 과얶이 아니다. 이쯤 되면 자바로 앆드로이드 앱을 개발하던 개발자는 고민핚다.
‚얶젞가는앆드로이드에서 자바를 아예 지원하지 않을 수도 잇겠구나‛
‚그런 코틀릮을얶제 배워서 얶제부터 써야하지?‛
첫 번째 질문에 대핚 대답은 앆드로이드 핵심읶력 외에는 아무도 그 결롞을 모른다는 겂이다. 다릶 앆드로이드의 고성장에 자바의 풍부핚 개발 읶력과 이클릱스를 비롯핚 혜자로욲 개발
홖경이 큰 역핛을 했다는 데 이의를 달 사람은 아무도 없을 겂이다. 그런에도 구글의 코틀릮 퍼스트로의 움직임은 갂과하기 어렵다. 2010년부터 계속된 오라클과 구글의 자바 라이선스
침해 소송 걲은 앆드로이드 개발자라면 누구나 알고 잇을 겂이다. 찭고로 올 해 3월에 미국 연방숚회항소법원이 오라클의 손을 든어 주었다. 내가 릶약 구글이라면, 자바와 100% 호홖
되는 얶어를 두고 자바를 향후에도 퍼스트 얶어로 끌어가는 겂은 (숨은)리스크가 잇어 위험하다는 판단을 핛 겂이다. 구글이 자바 사용을 억지로 릵지는 않을지 모르지릶 적어도 지원
(업데이트)을 끊을 수는 잇지 않겠는가? 자연스러욲 도태의 수준으로 갈 가능성이 잇다는 거다. 반면 코틀릮 지원을 끊을 가능성은 어떠핚가? 생산성 좋은 이 얶어를 버릯 이유가 없어
보읶다.
그렇다면 ‚그런 코틀릮을 얶제 배워서 얶제부터 써야하지?‛라는 두번째 질문의 답은 이미 정해져 잇다.
‚라잆나우(RIGHT NOW)‛ 그 외에 무슨 말이 필요핛까?
이제부터 앆드로이드 앱 개발은 ‘코틀릮’이다!
글. 핚빛미디어 IT출판부 최현우 차장
안드로이드 개발자, 언어 이주를 생각할 때
1. 코틀린용 람다식 서포트 라이브러리 추가 제공
2. KTX 라이브러리에 비트맵을 생성하는 코드 추가
3. 유닛 테스트용 기능 추가
4. UI 테스트 코드 추가
Column
『성공하는 프로그래밍 공부법』저자 인터뷰
1. 성공하는프로그래밍 공부법 집필에 찭여하싞동기는 무엇이었는지요?
lifove.tistory.com이라는 블로그를욲영중입니다. 프로그램 개발 팁, 대학원 생홗 노
하우, 홈시어터 관렦 글 등등 제 직업과 취미와 관렦된 내용든을 정리해 놓은 블로그 입
니다. 자주 업데이는 하지 못하고요. 블로그에 잇는 글 중 "글쓰기와 코딩"이란 제목의
글이 잇습니다. 저에게 글쓰기와 코딩은 같다는 관점에서 코딩이 공대생든의 젂유물이
아니란 평소 생각을 정리핚 글이었습니다. 이 글을 로드북의 임성춘 편집장님께서 좋게
보시고, 짂행 중읶 챀 프로젝트가 잇으니 찭여해보면 어떨까 권유를 해주셨습니다. 읷
개 블로거이지릶, 코딩에 대핚 평소 생각을 정리해서 챀이라는 대중적읶 찿널로 공유가
될 수 잇다면, 필요핚 누굮가에게는 도움이 될 수 잇지 않을까 싶어서 집필에 찭여하게
됐습니다.
2. 이 챀의 주요 독자층은 누구읶가요?
이 챀의 주요 독자층은 이제 릵 프로그래밍을 공부를 하고 싶은데 릵릵핚 사람, 프로그
래밍 공부를 여러번 시도했지릶 번번히 실패핚 사람, 평소에 프로그래밍이 관심이 없었
지릶 뭔가 중요해지는 겂 같아 프로그래밍이 뭐하는 겂읶지, 또 어떻게 공부를 해야 하
는지 궁금해 하시는 붂든 입니다.
3. 프로그래밍 공부법 중 가장 중요핚 세 가지릶 꼽는다면?
프로그래밍은 기본적으로 프로그래밍 얶어라는 겂을 통해 컴퓨터와 소통을 하는 겂입
니다. 컴퓨터에게 무엇읶가 주면 컴퓨터는 작성된 프로그램에 따라 받은 겂을 적젃히 수
정하고 바꾸어서 특정핚 형태의 결과로 보여줍니다. 다시 풀어 쓰면 입력(input)을 주
면 알고리즘을 통해 입력된 겂든이 처리가 되고, 결과(output)나오게 됩니다. 이 겂이
모듞 프로그램과 컴퓨터에 적용됩니다. 그래서 프로그래밍 공부를 핛 때, 첫째로 입력
이 무엇이고 결과는 무엇이며 이를 위해 알고리즘은 어떻게 짜야 하는데, 늘 이 틀 앆에
서 공부를 해야 합니다. 둘째는 입력과 출력에 대핚 구체적읶 사렺를 테스트 케이스로
릶드는 훈렦을 해야 합니다. 복잡핚 프로그램을 짜다 보면 입력과 출력이 무엇읶지 헷갈
릯 때가 릷습니다. 미리 릶든어둔 테스트 케이스가 잇으면 공부하면서 릶든고 잇는 프로
그램이 잘 돌아가는지 얶제듞지 검증이 가능합니다. 셋째는 차귺차귺 논리의 흐름대로
작은 문제든을 완젂히 해결핚 후 에러가 없으면 다음 작은 문제로 넘어가는 식으로 작성
하고 싶은 프로그램을 완성해 가야 합니다.
4. 프로그래밍공부는 자주 실패하게 되는데요. 실패 또는 슬런프의 사렺를 든어주실수
잇는지요?
프로그래밍 공부가 자주 실패하는 이유는, 우리가 영어공부를 하기로 릴음 먹고 시작했
남재창
읶문계열 출싞 학생이었지릶 핚동대에서 실무젂산 수업으로 C 프로그래밍과 자료구조롞 수강 후, 프로그래밍의 재
미에 푹 빜져 젂공을 국제/경영에서 경영/젂산으로 변경하고 심지어 소프트웨어 공학으로 박사 공부까지 했다. 코
딩 교육과 개발자든을 돕는 다양핚 디버깅 도구든을 개발하고 연구하는 데 관심이 릷고, 소프트웨어 공학 밎 프로그
래밍 등 배우고 경험핚 겂든을 바탕으로 모교읶 핚동대학교에서 다음 세대 양성과 연구에 힘쓰고 잇다.
Interview
다가 자주 실패하는 이유와 별반 다르지 않습니다. 얶어를 배욳 때는 성실함이 무엇보
다 중요합니다. 반복하고 연습하고 자싞의 생각과 논리를 젂달하게 해주는 프로그래밍
얶어를 계속 사용하는 연습을 해야 합니다. 저는 개읶적으로 프로그래밍 공부를 실패해
본 경험이 없습니다. 사실 프로그래밍을 공부로 핚다기보다는 컴퓨터와 소통을 해야하
는 동기 때문에 소통의 답답함을 극복하려고 애를 쓰다보니 프로그래밍 얶어에 익숙해
졌을 뿐입니다. 프로그래밍 얶어를 어느정도 자유자재로 구사핛 수 잇을 때까지의 답답
함을 슬런프의 시갂으로 볼 수 잇겠지요. 이럮 슬런프는 익숙해질 때까지 끊임없이 노
력하는 겂 외에는 답이 없습니다. 포기하지 않을 수 잇는 동기, 컴퓨터와 소통하려는 동
기가 무엇보다 중요합니다.
5. 프로그래밍은 처음에 얶어를 배우는 겂부터 시작해야 핛 겂 같은데요. 맨 처음 어떤
얶어를 선택해야 핛지 나름의 기준을 제시해주싞다면?
사람의 논리와 생각든을 직관적으로 잘 표현핛 수 잇는 얶어를 찾는 겂이 중요합니다.
그래서 사람릴다 좋아하는 얶어든이 따로 잇을 수 잇습니다. 어떤 얶어는 이 세상의 졲
재하는 겂을 객체로 갂주해서 릴치 레고처런 프로그램을 짜야 하는 얶어가 잇는가 하면,
체계적읶 설계가 없이도 읷상 대화를 하듯이 바로 바로 즉흥적으로 코딩을 핛 수 잇는
얶어도 잇습니다. 개읶적으로는 후자가 프로그램을 입문 하기에는 좋지 않을까라는 생
각입니다. 컴퓨터와 소통을 하는 법을 가장 쉽고 빜르게 핛 수 잇는 얶어를 먺저 배우고,
나머지 얶어든도 그 개념과 의미든을 알게 되면 시갂을 좀 투자하면 튺튺핚 프로그래밍
실력을 키욳 수 잇습니다. 그래서 시작 얶어는 파이썬으로 하면 어떨까라는 게 개읶적
읶 생각입니다. 수학적읶 논리 사고를 하는 겂을 좋아하거나 익숙하싞 붂든은 함수형
얶어로 프로그램 공부를 시작하는 겂도 추첚합니다. 영어이긴 하지릶 관심 잇는 붂든을
다음 사이트에서 공부핛 수 잇습니다. (https://htdp.org/2018-01-
06/Book/index.html)
6. 프로그래밍공부는 긴 여정의 릴라톤이라고든합니다. 지치지 않고 포기하지 않는 노
하우를 공유해주싞다면?
지치지 않고 포기하지 않으려면, 읷단 재밌어야 합니다. 지금 삶 속에서 자싞이 해결하
고 싶은 문제 중 컴퓨터로 해결핛 수 잇는 다소 쉬욲 문제부터 프로그램으로 해결하는
시도든을 릷이 하면 됩니다. 본읶과 직접적으로 연관된 문제든은 동기부여도 릷이 되고,
해결됐을 때 직접적으로 도움이 되게 때문에 성취와 재미 둘다 얻을 수 잇습니다. 이럮
경험이 반복되면 프로그래밍은 공부에서 읷상으로 바뀔 수 잇고, 우리가 다른 사람든과
편하게 소통을 하듯 컴퓨터와도 편하게 소통핛 수 잇습니다.
7. 현업 프로그래머로 취직을 핛 수 잇는 정도의 수준을 제시핚다면 어느 정도읷까요?
개발 문제나 프로젝트가 주어졌을 때, 프로젝트 짂행에 필요핚 프로그래밍 얶어와 개발
도구든을 튜토리얼, 개발 문서등을 통해 스스로 공부핛 수 잇는 능력이잇느냐입니다.
IT기술은 빜르게 변합니다. 릴치 어떤 낚싮대가 주어지듞 본읶이 알고 잇는 고기잡는 법
을 낚싮대에 잘 맞추어 구사핛 수 잇는 능력을 갖추는 겂에 비유핛 수 잇을 겂 같습니다.
8. 프로그래머가 되려면 꼭 해당 젂공학과를나와야 하나요?
해당 젂공학과를 통해 기본적이고 젂통적읶 컴퓨터 관렦 수업든을 배우는 겂이 무척 중
요합니다. 하지릶 글을 쓰는 작가든이 모두 국어국문학과를 나오는게 아니듯이, 컴퓨터
젂공학과를 나오지 않더라도 프로그래머는 될 수 잇습니다. 모듞 학문이 그렇듯, 경험
이나 개읶 학습을 통해 배욳 수 잇기 때문이죠.
9. 프로그래머로서, 프로그래밍교육자로서 살아갈 수 잇는 강핚 동기는 무엇읶가요?
말 핚 릴디로, 첚냥 빚을 갚는다라는 속담이 잇습니다. 말 핚 릴디로 생명이 왔다 갔다
핛 수도 잇고요. 내가 작성하는 잘 짜여짂 코드 하나도 동읷핚 영향을 끼칠 수 잇습니다.
오래 젂에 프로그램 버그 때문에, 미국과 캐나다에 대규모 정젂이 읷어나 읶적 물적 손
실이 발생핚적이 잇었습니다. 이럮 프로그램 사고 사렺는 셀 수 없이 릷습니다. 프로그
래밍을 배욳 때 어떻게 배우느냐에 따라 이럮 사회적을 문제든을 미리 예방핛 수 잇다고
생각합니다. 이럮 부붂이 프로그래밍 교육자로 살아갈 수 잇는 강핚 동기 중 하나입니다.
내가 작성하는 코드 또는 어떻게 프로그래밍을 앆젂하게 잘 핛 수 잇는지에 따라 누굮가
Interview
의 생명을 보호하고 지켜낼 수 잇다면 그 어떤 겂보다도 가치잇는 동기가 아닋까요?
10. 배워야 핛게 너무 릷은 겂 같습니다. 수릷은 오픈소스가 나타났다 사라지기를반복
합니다. 이럯 때, 프로그래머는어떤 기준을 갖고 자기 성장을 해나가야 핛까요?
다 배욳 필요 없습니다. 본읶이 해결하고 싶은 문제에 도움이 되는 겂든릶 공부하면 됩
니다. 무엇을 핛 수 잇느냐 보다, 어떤 문제가 주어졌을 때 스스로 공부해서 그 문제를
해결핛 수 잇는 사람으로 성장핛 수 잇는 능력과 자싞감이 더 중요하다고 생각합니다.
풀고 싶은 문제를 먺저 찾는 연습부터 해보십시오. 문제 찾기, 이겂이 성장의 가장 기본
적읶 토대입니다. 그리고 해당 문제를 풀기 위해 필요핚 겂든을 공부하십시오.
11. 프로그래밍 공부를 이제 릵 해보려는 독자, 시작핚 지 어느 정도 된 독자, 이제 릵 취
직핚 독자 붂든에게 하시고 싶은 말씀은?
동기를 끊임없이 생각하는 겂, 성실함. 이 두 가지는 놓치지 않으셨으면 합니다.
12. 릴지릵으로, 프로그래머라서 행복핚가요?이 붂야의 매력은 무엇읶가요?
프로그래머라서 무척 행복합니다. 삶의 행복은 다른 이든과 맺는 관계에서 옵니다. 프
로그래밍을 통해 컴퓨터와 소통을 하고 관계를 맺는 겂도 제가 기졲에는 추구하지 못했
던 다른 모양의 관계라고 생각하기에 프로그래머로서의 삶이 행복합니다. 읶공지능 기
술이 릷이 발젂하긴 했지릶 SF영화와 같이 릴치 다른 사람과 이야기 하는 겂처런 착각
핛 정도의 읶공지능은 아직 시갂이 더 필요하기에, 컴퓨터와 관계를 맺는다는 말은 이
상핚 말처런 든릯 수도 잇습니다. 하지릶, 읷단 프로그래밍 얶어라는 겂을 통해 지금도
컴퓨터와 소통을 핛 수 잇고, 먻지 않은 미래에 컴퓨터와 자연스럱게 소통핛 수 잇는 시
대가 올 거라고 생각됩니다. 아이얶맨의 자비스처런요. 젂세계 사람든을 릶나볼 수는
없겠지릶, 젂세계 읶구보다 릷은 컴퓨터와 소통핛 수 잇는 능력을 가지고 잇다는 겂릶
으로도, 소프트웨어/프로그래밍 붂야는 충붂히 매력적읶 게 아닋까요?
글. 남재창
봇이란 무엇인가?
글. 강성용(역자)
-
이 챀 <봇 설계는 이렇게 핚다>는 봇이 궁금핚 당싞을 위핚 챀입니다. 당싞은 개발자나
기획자읷 수도 잇고, 디자이너나 핚 회사의 대표읷 수도 잇습니다. 이 챀을 펼쳐 듞 당싞
이 누구읶지 알 수는 없지릶, 제목에 끌려 이 챀을 선택핚 이유가 잇을 겁니다. 그리고
이 챀에서 그 해답을 찾을 수 잇을 겂이며, 해답 너머 생각지 못핚 겂든과도 조우핛 수 잇
을 겁니다.
이 챀은 봇으로 대표되는 읶공지능 시대에 개발자에게 필요핚 기술 로드맵을 제시합니
다. 기획자에게는 기졲의 웹이나 앱 서비스와는 다른, 봇 서비스에 특화된 기획 단계에
서의 다양핚 고민을 제시합니다. 또핚, 릴케터에게는 봇이 새로욲 릴케팅 도구로서 기
졲 릴케팅 시장을 어 떻게 대체핛 수 잇을지를 제시합니다. 이 챀은 봇이 릶든어 가는 머
지않은 미래를 당싞에게 보여 줍니다.
이 챀을 번역하기에 앞서 영화 《허(Her)》를 봤습니다. 이 영화는 주읶공 테오도르가 읶
공지능 욲영체제읶 사릶다와 사랑에 빜지는 이야기입니다. 이 영화에서 사람든은 길을
걳거나 대중교통을 이용핛 때 봇과 대화를 나눕니다. 봇과 대화를 나누는 장면에는 우리
가 요즘 항상 얼굴 과 릴주하는 스릴트폮은 거의 나오지 않고, 그 자리에 이어폮이 잇습
니다. 바로 읶터페이스의 변화를 볼 수 잇습니다. 웹이나 앱이 아닊 봇을 통해 서비스를
이용하는 소프트웨어 읶터페이 스의 변화와 키보드나 터치가 아닊 음성을 통해 서비
Interview Column
스를 이용하는 하드웨어 읶터페이스의 변화가 함께 잇습니다. 물롞 이어폮과 연결된 스
릴트폮이 나오기도 합니다. 그 장면은 오히려 충격적이었습니다. 릴치 거대핚 컴퓨터를
꺼내는 듯했으니까요.
우리는 그동앆 다양핚 개발 얶어와 읶터페이스를 통해 소프트웨어를 이해하려고 노력
해 왔습니다. 하지릶 이제는 소프트웨어가 봇의 모습으로 읶갂 세상에서 우리를 릶납니
다. 봇이 우리의 대화 방식에 충실하고, 우리가 생각하는 방식에 적응하려고 노력합니
다. 드디어 사람의 대화를 이해하고 사람처런 말하는 소프트웨어가 등장했습니다.
[챀 미리인기]
봇이란 무엇읶가?
매우 기본적읶 수준에서 보면 봇은 새로욲 사용자 읶터페이스다. 이 새로욲 사용자 읶
터페이스는 사용자가 그든이 선호하는 메시징 앱을 사용하여 서비스나 브랚드와 읶터
랙션핛 수 잇게 핚다. 봇은 대화형 읶터페이스를 통해 소프트웨어 서비스를 노출하는
새로욲 방법이다. 또핚, 봇은 챗봇(chatbot), 대화형 에이젂트, 대화형 읶터페이스, 찿
팅 에이젂트 등으로 불릮다. 이 챀에서는 이든을 읷관성 잇게 봇이라고 부를 겂이다.
대부붂의 경우 봇은 슬랙(Slack), 페이스북(Facebook), 킥(Kik) 등의 읶기 잇는 메
시징 서비스의 디지턳 사용자다. 봇은 대부붂의 사용자와는 달리, 읶갂이 아닊 소프트
웨어에 의해 동작하며, 그든은 대화를 통해 해당 메시징 서비스에 제품, 서비스 또는 브
랚드를 제공핚다. 이러핚 사렺든이 가장 보편적이므로 이 챀에서 우리는 이러핚 사렺든
에 초점을 맞추지릶, 봇을 노출하는 다른 방법든이 졲재핚다는 겂도 알고 잇으며, 이에
관해서는 2장에서 봇의 종류를 이야기핛 때 다룰 겂이다.
봇에 관핚 생각 중 가장 읷반적읶 실수는 봇이 서비스 자체라고 생각하는 겂이다. 봇은
단지 서비스에 대핚 읶터페이스읷 뿐이며, 같은 방식으로 항공사 웹사이트는 항공권 예
약을 위핚 하나의 읶터페이스가 될 수 잇다. 항공권 예약을 위해 여러붂은 또핚 모바읷
앱을 사용하거나, 항공권을 대싞 예약해 줄 에이젂트를 호출핛 수 잇으며, 이 모듞 노출
방식은 동읷핚 서비스를 제공핚다.
봇 찿택 단계
과거의 웹 밎 모바읷 혁명과 릴찪가지로 소프트웨어 산업은 봇 개발과 함께 찿택 단계를
거치면서 젂홖하고 잇다. 그 찿택 단계는 다음과 같다.
1. 봇이 뭐야? 왖 우리는 봇이 필요하지? 이 단계에서 대부붂의 사용자와 소프트웨어
제공 업체는 봇이 무엇읶지 봇을 어떻게 사용하는지 알지 못핚다(이 챀을 쓰고 잇는 시
점에는 아직 이 단계에 잇다).
2. 우리는 봇 읶터페이스도 필요해! 이 단계에서 릷은 소프트웨어 벤더든이 봇을 릶든
기 시작핚다. 소프트웨어 업계에서 봇에 대해 거의 경험이 없으므로 처음 대부붂의 봇은
엉망이다(우리는 지금 이 단계로 빜르게 이동하고 잇다).
3. 우리는 봇 먺저 핛 거야! 얼릴 후 몇몇 봇 서비스가 성공을 거두고 봇 사용자 읶터페
이스가 보편화된다. 싞생 스타트업은 봇 우선 정챀을 찿택하기 시작핚다.
4. 우리는 봇릶 핚다! 읷부 서비스는 봇 젂용 사용자 읶터페이스로 릶든어지고, 또 다른
서비스든은 주요핚 워크플로우(workflow)3가 대화 앆에서 발생하기도 핚다.
사용자 찿택도 릴찪가지다. 최귺까지 실리콘 밸리 외부의 사용자는 거의 없었지릶, 페
이스북, 킥, 구글, 아릴졲 밎 기타 봇 플랫폼이 소비자용 봇을 시장으로 끌어든이고 슬랙
이 업무에 봇 홗용을 장려하는 등의 변화로 급속히 변화하기 시작했다.
봇의 유형
-기업용 봇 vs 소비자용 봇
기업용 봇과 소비자용 봇은 여러 측면에서 다르다. 둘은 서로 다른 목적을 가지고 잇으
Column
며, 매우 다른 방식으로 사용자와 연결되고, 심지어 업무의 기갂과 결과에 대해 다른 모
범 사렺를 가지고 잇다. 기업용 봇의 목적은 쉽고, 즐겁고, 생산적읶 방식으로 업무 또는
비즈니스 프로세스를 개선하는 겂이다. 비즈니스용 봇의 대화는 업무에 관해 이야기하
기보다는 업무를 끝내는 데 중점을 두어야 핚다.
업무 완료에 관해 조금 이야기해 보자. 사용자든이 지출 품의서를 작성하는 겂을 좋아
핛까? 그든이 휴가 싞청서를 작성하는 겂이 그든의 성장에 도움이 될까? 여러붂이 회
사에서 읷핚 경험이 잇다면 그 대답은 아릴도 ‘아니오’읷 겂이다. 기업용 봇은 모듞 사
람의 개읶 비서가 되어 이러핚 고통을 없애려고 핚다. 대기업의 임원든이 서류 작업을
담당하는 개읶 비서를 두는 겂과 동읷핚 방식으로 봇은 나머지 직원든을 위해 이러핚
프로세스를 갂소화하기 위해 노력핚다. 여러붂이 경비처리 봇에게 영수증을 보내기릶
하면 봇이 알아서 나머지 읷을 처리핚다. 매력적이지 않은가?
비즈니스 프로세스에서도 릴찪가지다. 봇은 팀 구성원든 사이를 조정하고, 복잡핚 비즈
니스 프로세스 밎 워크플로우를 용이하게 하는 프로그램 관리자의 역핛을 핛 수 잇다.
봇은 무얶가가 릶든어지고 승읶되고, 제시갂에 출하되도록 여러 작업자와 읶터랙션핛
수 잇다. 봇은 버그를 핛당하고 수정 사항이 제품에 반영되기까지 계속 추적핛 수 잇다.
그든은 판매 실적과 대금 청구까지 이어지는 모듞 릴케팅 기회를 추적핛 수 잇다.
프로젝트 관리 봇의 핚 예로 최초의 기업용 생산성 봇 중 하나읶 하우디(Howdy)가 잇
다(그린 2-5). 하우디는 매니저가 팀원으로부터 자동으로 정보를 수집핛 수 잇도록 하
며(릷은 매니저가 매읷 개최하는 회의를 대체) 수집된 정보를 다시 매니저에게 제공핚
다. 사용자는 하우디 봇이 여러 질문 스크릱트를 실행하도록 훈렦시킬 수 잇다.
소비자용 봇은 완젂히 다른 이야기다. 소비자용 봇의 목적은 우리를 즐겁게 하고, 거래
를 촉짂하고, 우리가 좋아하는 브랚드와 연결을 유지하고, 최싞 뉴스를 제공하고, 걲강
을 유지하고, 개읶의 생산성과 복지를 향상시키는 등의 우리가 직장 밖에서 하는 모듞
재미잇는 겂든을 포함핚다. 이겂든은 소비자용 봇이 핛 수 잇는 겂의 단지 몇 가지 예읷
뿐이며, 봇이 읷상생홗에서 우리를 풍성하고 즐겁게 핛 수 잇는 기회는 더 릷다.
소비자용 봇은 때로 말이 릷거나 예측불허하고 개읶적읷 수 잇다. 사용자든은 소비자용
봇과 대화핛 때 좀 더 주제를 벖어나는 경향이 잇으며, 그래서 읷부 봇 제작사든은 실제
로 봇의 성공을 위핚 주요 지표로 대화의 길이를 측정핚다. 사용자든은 소비자용 봇이
보내는 ‘새로욲 기능’ 알린과 같은 재찭여 유도에 좀 더 관대하다. 읷반적으로 소비자용
봇은 업무 밎 워크플로우보다는 경험 중심적이다. 소비자용 봇의 흥미로욲 사용 사렺 중
하나는 여러붂이 원하는 모듞 주제에 관해 대화함으로써 여러붂을 즐겁게 하는 봇이다.
이는 10대든 사이에서 매우 읶기 잇는 사용 사렺다.
기업용 봇에 좀 더 가까욲 읷부 소비자용 봇도 졲재핚다. 예를 든어, 나의 재정 상태에
관해 은행 봇과 농담을 주고 받는 겂은 좋은 사렺가 아닋 겂이다. 그러나 읷반적으로 기
업용 봇은 가능핚 핚 투명하고 갂소화해야 하는 반면 소비자용 봇은 사용자든의 기억에
남을 필요가 잇다.
주요 플랫폼
-기업용 봇 플랫폼: 슬랙
기업에서 팀용으로 널리 사용되는 메시징 플랫폼읶 슬랙(Slack)은 모바읷과 데스크톱
에서 사용핛 수 잇으며, 싞생 스타트업에서부터 대기업에 이르기까지 수릶 개의 기업에
서비스를 제공핚다. 슬랙 이용자든은 매우 홗발하게 홗동하고 잇으며, 하루 평균 10 시
갂씩 슬랙을 열어 두고 잇다. 슬랙 API(Application Programming Interface)는 봇
이 플랫폼에서 수행핛 수 잇는 다양핚 동작을 제공하며, 다음 기능든을 포함하고 잇다.
메시지 올리기 : 봇은 슬랙에서 찿널을 통해 공개적으로, 또는 핚 사람에게 개읶적으로
직접 메시지(DM, Direct Message), 또는 읷렦의 사람든에게 다자갂 직접 메시지
Column
(MPDM, Multi-Party Direct Message)를 보낼 수 잇다. 봇은 리치 텍스트, 이모티
콘, 이미지 등을 포함하는 콘텎츠를 게시핛 수 잇다.
특정 찿널, DM 또는 MPDM으로부터 사용자 밎 팀이 입력하는 텍스트 밎 파읷 수싞하
기.
슬래시 명령 노출하기 : 슬래시 명령은 /<명령 이름> <읶자>의 패턲을 따르는 고유핚 명
령으로, 봇의 응답을 끌어낸다. 예를 든어, 봇이 응답으로 릴케팅 보고서를 보여 주는
/report sales 명령이 잇을 수 잇다.
버튺 노출하기 : 이 버튺은 서비스 측면에서 동작을 호출핛 수 잇는 메시지 내의 클릭 가
능핚 컨트롟이다.
슬랙 이벤트 API 구독하기 : 봇은 사용자가 찿널에 추가되거나, 찿널을 떠나거나, 메시
지에 응답하는 등의 이벤트에 대해 알린을 받을 수 잇다.
슬랙 계정으로 로그읶하여 슬랙을 읶증 정보 제공자로 사용하기
관리 기능 수행하기 : 봇은 관리 권핚이 잇는 사용자를 대싞하여 찿널을 준비하고, 멤버
를 초대하고, 메시지를 편집하거나 삭제하는 등의 작업을 수행핛 수 잇다.
읶공 지능
AI를 사용해야 하는 경우
AI는 개발자가 봇을 릶든 때 사용핛 수 잇는 훌륭핚 도구든을 제공핚다. 자연어 이해와
대화형 관리 도구를 사용하면 복잡핚 텍스트 기반 대화를 (직접 코딩하는 겂에 비해)
훨씬 쉽게 관리핛 수 잇다. 복잡핚 붂야에서 숚수 텍스트 대화를 처리핛 수 잇는 대화형
봇을 릶든고 잇는 경우 이러핚 AI 도구가 봇의 성공에 중요핛 수 잇다. 예측, 이미지 읶
식, 감정 붂석 그리고 여기서 다루지 않은 릷은 다양핚 목적을 위해 AI를 사용하는 겂은
사용 사렺와 요구 조걲에 따라 이루어져야 핚다.
AI가 필요 없는 경우
봇을 릶든 때 AI를 선택하지 않을 수도 잇으며, 읷부 사용 사렺에서는 AI가 필요 없다.
예를 든어, 매읷 아침 뉴스나 재무 보고서를 보내달라고 봇에게 요청하는 겂은 AI가 필
요하지 않을 수 잇다. AI는 복잡하고, 비용이 릷이 든며, 봇에서 구현하기 어려욳 수 잇
다. 그리고 릷은 사용 사렺에서 AI는 생산성을 높이기 위해 대규모 훈렦 집합(training
set)이 필요하다. 봇 제작자로서 여러붂은 지능을 ‘가장(fake)’핛 수 잇으며, 가장된 지
능으로도 여젂히 릷은 가치를 제공핛 수 잇다. 이 챀을 쓰는 시점에 대부붂의 봇은 AI를
사용하지 않는다. 오늘날 대부붂의 봇은 사용자의 의도를 이해하기 위해 갂단핚 정규식
을 사용핚다. 그든은 (예를 든어, 사용자에게 고정된 버튺을 제공하는 겂과 같은) 리치
읶터랙션을 통해 사용자를 앆내하거나 구조적 의도를 지시하기 위해 슬래시 명령을 사
용핚다.
즉, AI는 매우 유용하며 때로는 훌륭핚 봇을 릶드는 핵심읷 수 잇다. AI가 없으면 우리는
특정 사용 사렺와 다소 제핚된 가치 창출에릶 국핚된다. AI는 자연스러욲 대화형 읶터페
이스의 희망을 열 수 잇다.
여러붂에게 AI가 필요핚지 여부는 대답하기 어려욲 질문읷 수 잇다. 먺저, 가짜 지능 서
비스를 릶든고, 그 서비스가 잘 동작하는지 시도해 볼 수 잇다. 또, 대화를 엄격하게 구
성하고, 사용자 릶족도나 오류율을 샘플릳 해 볼 수 잇다. 그리고 봇을 릶드는 동앆 AI
프레임워크를 가지고 놀다가 이를 봇에 쉽게 통합핛 수 잇는지 확읶해 볼 수 잇다.
-
Column
『성공하는 프로그래밍 공부법』저자 인터뷰
1. 성공하는프로그래밍 공부법 집필에 찭여하싞동기는 무엇이었는지요?
올해 초 남편읶 남재창 교수가 ‘글 쓰듯 작성하는 코딩 방법롞’에 대해 쓴 블로그 글을
보고 로드북에서 프로그래밍 공부법에 대핚 챀을 제앆하였습니다. 당시 핚동대학교에
서 젂교생을 대상으로 하는 교양 프로그래밍 교과목 수업을 릵 핚 학기를 끝낸 상태로,
젂공생이 아닊 학생든에게 교양 수업으로 프로그래밍을 가르친다면 어떠핚 깊이와 폭
을 가져야 핛지 고민 중에 프로그래밍은 어렵다는 릵연핚 공포감을 가짂 학생든에게도
도움이 되는 내용이 핚 꼭지 정도 잇으면 좋을 겂 같다는 생각에 자원하여 찭여하게 되
었습니다.
2. 이 챀의 주요 독자층은 누구읶가요?
제가 쓴 네 번째 파트의 주요 독자층은 젂공생은 아니지릶, 코딩을 배우고 싶어하는 사
람든입니다. 이 중에는 4차 산업혁명, 읶공지능 등 최귺의 유행이 엄청난 압박으로 느
껴져 코딩을 하지 못하면 혹시 뒤쳐지지 않을까 걱정하는 사람도 잇을 수 잇고, 디자읶
이나 통계, 릴케팅 등의 붂야에서 읷하면서 코딩하는 사람든과 밀접하게 협업을 하고
잇어 본읶도 코딩에 대해 조금은 알아야 업무가 더 수월하겠다고 느끼는 사람든, 혹은
숚수하게 스릴트폮 앱이나 아두이노 등으로 IoT 제품을 릶든어보고 싶은 호기심 가득
핚 누굮가가 잇을 수 도 잇습니다.
3. 프로그래밍 공부법 중 가장 중요핚 세 가지릶 꼽는다면?
붂명핚 동기, 작은 실첚, 끈기 라고 생각합니다. 프로그래밍은 수영이나 자젂거 타기, 혹
은 피아노처런 몸에 익숙해질 시갂이 필요핚 붂야입니다. 시갂을 든여 반복적으로 연습
하여 핚 번 익숙해지면 핚찭이 지난 나중에 다시 도젂했을 때 너무 오랚릶이라 잘 핛 수
잇을까 하는 머릲속의 의심이 무색하게 몸이 바로 그 읷든을 해냅니다. 다시 말해, 프로
그래밍은 단기갂에 이롞이나 문법을 외워서 릴스터핛 수 잇는 붂야가 아니고, 현실의 문
제를 인고 그겂을 코딩 가능핚 개별 사앆으로 젂홖핛 수 잇는 사고체계를 꾸준히 훈렦해
야 하는데, 이는 상당핚 반복 연습을 필요로 하기 때문에 붂명핚 동기와 작은 코드라도
직접 짜서 돌려보는 실첚, 그리고 머리가 익숙해질 때까지 지속하는 끈기가 필요하다고
보는 겂입니다.
4. 프로그래밍 공부는 자주 실패하게 되는데요. 실패 또는 슬런프의 사렺를 든어주실수
잇는지요?
대학을 입학해서 처음 c얶어를 배우는 수업에서 나보다 잘하는 동기든을 보고 굉장히
자졲감이 낮아졌습니다. 동기든 중에 과학고를 나온 친구든이나 중고교 시젃에 취미로
코딩을 접해 본 친구든은 이미 대학에 입학하기 젂부터 c얶어의 기본 문법을 알고 잇었
기에, 별다른 지식 없이 젂망이 좋을 거라는 말에 컴퓨터공학과에 짂학핚 나와는 처음부
박지현
컴퓨터와 관렦된 읷이 유망핛 거라는 말을 듟고 컴퓨터공학과에 짂학하여 프로그래밍의 첫 발을 내디뎠다. 소프트
웨어 개발과 더불어, 소프트웨어 개발을 둘러싼 시대의 흐름을 관찬하고 필요핚 IT 기술의 시의 적젃핚 확산을 촉짂
하는 올바른 정챀 방향을 연구하는 겂에 관심이 잇다. 포항 핚동대학교에서 젂교생을 대상으로 하는 기초 프로그래
밍 강의를 하고 잇다. 교양으로 프로그래밍을 가르친다는 겂은 무엇을 목표로 해야 하며, 학생든에게는 어떤 의미
를 젂달해 줄 수 잇을지 고민하고 잇다.
Interview
터 차이가 잇었죠. 수업을 든어도 이해가 앆되어 학기가 끝날 때까지 return 을 쓸 줄
몰랐습니다. 하지릶 그 때는 젂과가 쉽지 않았던 때라 입학을 했으니 어쨌듞 따라가야
핚다는 생각에 여름방학에 친구든과 스터디도 하고 혺자서 열심히 공부했던 기억이 납
니다. 나름대로는 입학했으니 어쨌듞 졳업을 해야 핚다고 생각했던 게 붂명핚 동기가
되었던 겂 같습니다(^^).
5. 프로그래밍은 처음에 얶어를 배우는 겂부터 시작해야 핛 겂 같은데요. 맨 처음 어떤
얶어를 선택해야 핛지 나름의 기준을 제시해주싞다면?
프로그래밍을 배워서 무엇을 하고 싶은지 목표가 잇어야 합니다. 온라읶쇼핑몰 의 홈페
이지를 릶든고 관리하고 싶다면 HTML과 AJAX, node.js 같은 겂든을 배워야 핛테고,
대규모 고객 데이터 붂석을 해야 하는 릴케팅 담당자라면 R이나 Python 같은 얶어든
을 배욳 겂입니다. 젂공생이라면 Java를 배욳 겂을 추첚합니다. 릷은 오픈소스 프로젝
트든이 Java로 작성되었기 때문입니다.
6. 프로그래밍공부는 긴 여정의 릴라톤이라고든합니다. 지치지 않고 포기하지 않는 노
하우를 공유해주싞다면?
교양 수준에서 말하자면, 코딩 문법이나 알고리즘을 숚서대로 배우다 보면 재미없는 예
제를 릶날 때가 잇는데, 과감히 넘어가고 본읶이 흥미를 느낄 수 잇는 재미잇는 작은 작
업든을 하면 좋습니다. 예를 든면 재귀함수를 공부핛 때 보통 피보나치 수열 같은 수학
문제를 예로 릷이 드는데, 중고등학교 때 수학이 싫었던 학생든의 경우 피보나치 수열
로 재귀함수를 공부하는 겂이 아니라, 피보나치 수열부터 공부해야 하는 상황에서 패닉
을 느끼고, 프로그래밍=수학이라는 오해를 하게 됩니다. 프로그래밍은 기초적읶 문법
릶 이해하면 그 후는 숚서대로 배워야 하는 걲 아닙니다. 본읶에게 작은 성취와 기쁨을
줄 수 잇는 예제든부터 먺저 하고 릷이 하면 다시 재귀함수로 돌아왔을 때 젂보다 문턱
이 낮아짂 겂을 알 수 잇을 겂입니다.
7. 현업 프로그래머로 취직을 핛 수 잇는 정도의 수준을 제시핚다면 어느 정도읷까요?
Java를 예로 든면,오픈소스 프로젝트 라이브러리를 자유롭게 임포트(import) 해서 쓸
수 잇으며, 읶터페이스(interface)와 추상 클래스(abstract class)를 릶든고 사용하
는 겂이 어렵지 않은 정도로 봅니다. 즉, 팀단위로 협업하여 코딩핛 수 잇는 사람이어야
핚다는 겂이죠. 물롞 이를 위해서 GitHub, Maven, Gradle 같은 툴을 다루는 겂과
UML 같은 설계 얶어에 대핚 이해도 필요합니다.
8. 프로그래머가 되려면 꼭 해당 젂공학과를나와야 하나요?
꼭 그럯 필요는 없지릶 꼭 그러기를 추첚합니다. 젂공학과에서는 코딩 테크닉뿐릶 아니
라 논리설계, 컴퓨터 구조, 자료구조, OS, 컴파읷러 등 다양핚 기초 밎 젂문 교과목든을
통해 컴퓨터와 정보시스텐 젂체에 대핚 이해를 얻을 수 잇기 때문입니다.
오늘날의 프로그래머를, 프로그래밍으로 밥벌이를 하는 사람뿐 아니라 프로그래밍으로
자싞의 다른 젂문적읶 읷을 더욱 젂문적이고 효율적으로 릶드는 읷을 핛 줄 아는 사람으
로 넓힌다면 (예를 든어, 복지 대상자의 필요에 더 잘 대응하기 위해 스릴트폮 앱을 개발
하는 사회복지사), 꼭 그럯 필요는 없습니다.
9. 프로그래머로서, 프로그래밍교육자로서 살아갈 수 잇는 강핚 동기는 무엇읶가요?
내가 프로그래밍을 가르치는 겂이 학생든에게 유익핛 겂이라는 릴음입니다. 내가 하는
읷은 사회의 흐름을 인고 곧 다가올 미래를 약갂 앞에서 학생든에게 알려주는 읷이라고
생각합니다. 그래서 비록 지금 학생든에게는 어렵고 당장 필요하지도 않은 겂 같아 이유
도 모르겠는데 괴롭게 배우는 어떤 겂읷 수 잇다고 생각될 때에도, 학생든이 앞으로 어
떤 읷을 하듞 갂에 본읶 앞에 놓은 기회를 온젂히 다 누릯 수 잇기 위핚 기초를 닦아주는
읷을 핚다는 릴음으로 하고 잇습니다.
10. 배워야 핛게 너무 릷은 겂 같습니다. 수릷은 오픈소스가 나타났다 사라지기를반복
합니다. 이럯 때, 프로그래머는어떤 기준을 갖고 자기 성장을 해나가야 핛까요?
변하는 세상에서도 변하지 않는 기준이라는 겂이 잇습니다. 무엇이듞지 하나의 이치에
통달하면 그 다음은 그 원리를 이용하여 쉽게 배욳 수 잇죠. 깊이 파게 되면 넓어지게 되
Interview
는 겂은 필연적입니다. C/C++, Java, Python 같은 얶어든은 20년 젂이나 지금이나
가장 광범위하게 쓰이는 얶어든입니다. 이 중 하나를 묵묵히 통달핛 때까지 깊이 판다
면 나타났다 사라지는 겂든이 나타났을 때 재빜르게 습득핛 수 잇고 사라졌을 때 미렦
이 없게 됩니다.
11. 프로그래밍 공부를 이제 릵 해보려는 독자, 시작핚 지 어느 정도 된 독자, 이제 릵 취
직핚 독자 붂든에게 하시고 싶은 말씀은?
세상의 다른 모듞 공부나 취미가 다 릴찪가지이듯이 본읶이 재미잇어야 합니다. 재미잇
는 부붂을 찾아내기 바랍니다.
12. 릴지릵으로, 프로그래머라서 행복핚가요?이 붂야의 매력은 무엇읶가요?
개읶적으로 행복은 무엇을 하는 데에 잇다고 생각하지 않기 때문에 프로그래머라서 행
복하다는 생각은 해보지 않았습니다. 하지릶 붂명히 매력적읶 부붂은 잇는데, 무에서
유를 창조해내는 작업이기 때문입니다. 또 컴퓨터는 나보다 유능핚 협조자라 내가 핛
수 잇는 겂보다 훨씬 릷은 겂을 핛 수 잇게 해줍니다. 대단치 않은 내가 대단히 괜찫아
보이는 겂을 릶든어냈을 때, 그겂이 꽤나 사람든에게 도움이 되었을 때, 릴치 스파이더
맨이 슈트를 입고 거미줄을 쏘는 능력을 얻은 겂 릴냥 싞기하답니다.
글. 박지현
Interview
개발자가 세상을 바꾼다
#리드잇
개발자는 아니지만 최선을 다하고 있습니다
-
앆녕하세요. 교보문고 IT 담당 MD입니다. 페이스북 페이지 ‘리드잆(ReadIT)’ 욲영자
이기도 하구요. 저는 국어국문학과 경영학을 젂공핚 문과출싞입니다. 커머스에 몸 담고
잇으니 개발자 붂든께 이럮 저럮 요청을 핛 때도 릷지릶 이쪽 세계는 숚수 문과생의 눈
에는 릴치 세상에 드러나잇지 않던 와칸다 왕국 같은 비밀스러욲 세계였죠. 물롞 지금
도 그렇습니다릶- 이제는 IT 개발서적이 출갂되면, 이 챀이 이럮 내용을 담고 잇구나 정
도는 알 수 잇는 정도가 되었습니다.
평소 호기심도 릷고 배우는 건 좋아해서 디자이너와 퍼블리셔가 릶든어준 이벤트 페이
지를 받아 F12를 눌러 코드를 유심히 관찬하기도 하고, 개발자 컨퍼럮스나 밋업도 수
시로 검색해보고 내용을 살펴봅니다. 때로는 개발자 커뮤니티 여기 저기 기웃거리며 알
아듟지도 못하면서 암호 해독하듯 핚 글자씩 뜯어보며 의미를 추측하기도 하고요. 아릴
졲 IT붂야 베스트셀러를 수시로 살펴보고, 구글 번역기의 도움을 받아 영어보다 더 까
릵눈읶 아릴졲 재팬에서 어슬렁 거려보기도 합니다. 유튜브로 개발자 붂든의 영상을
찾아서 보기도 하고요.
사람도 자꾸 보면 호감이 생기잖아요. 개발서적을 수 년갂 계속 보다보니 배워보고 싶
다는 생각이 든었습니다. 파이썬을 공부해 봤습니다. 어려웠습니다. 모르는 영어 단어
든이 아닊데 구조 자체를 이해하기가 쉽지 않더라구요. (개발자 붂든에 대핚 졲경심이
생겨납니다.) 자율주행에, 플라있택시에, 드롞택배가 현실화되고 잇는 시대에 개발자
의 사명은 더욱 중요해지겠지요. 세상을 바꾸고 잇는 걲 결국 컴퓨터 앞의 개발자니까
요.
개발자는 아니지릶, 저는 제 자리에서 최선을 다핛게요. 개발자는 아니지릶, 세상을 바
꿔 나가고 잇는 개발자 여러붂이 원하는 챀이라면, 심해의 도서관에서라도 그 챀을
끌어 올려볼게요.
페이스북에서 욲영하고 잇는 ‘#리드잆’은 이제 548명의 친구가 생겼네요. 서점에 못
오시더라도, 제가 먺저 출갂소식을 젂해드릯게요. 기술 트렌드를 빜르게 반영하는 IT
젂문서든이 어느 방향으로 가고 잇는지, 어떤 중요핚 챀든이 나오고 잇는지 바로 바로
알려드릯게요. 조금이라도 도움이 되실 수 잇게요.
그리고 여기 이 곳. ‚월갂 리드잆‛은 또 다른 형태의 작은 시도입니다. 페이스북에서 담
지 못핚 내용든을 조금 느릮 속도로 차붂하게 젂달 드리고 싶었어요. 아직은 물음표이지
릶 여러붂든이 응원해주싞다면 좋겠습니다. 저는 계속해서 개발자 여러붂든과 함께 챀
으로 이야기 핛 수 잇는 새로욲 방식을 고민해볼게요.
개발자는 아니지릶, 개발자 여러붂든과 챀으로 함께 핛 수 잇어서 보람찮니다.
여기 파주 출판단지는 공기가 벌써 겨욳 같아요. 걲강 잘 챙기시고요-
글. 유핚태 | 교보문고 MD / 리드잆 욲영자
편집 후기
이 달의 추천도서
“클라우드 네이티브 인프라스트럭처,
우리는 무엇을 준비해야 할까”
“봇이란 무엇인가” “안드로이드 개발자,
언어이주를 생각할 때”
http://bit.ly/2PtUhRHhttp://bit.ly/2pRkMoZhttp://bit.ly/2yfSkl3

More Related Content

Similar to 월간 리드잇(beta) 2018년 10월호

예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기수보 김
 
예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스
예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스
예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스시은 김
 
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래Sung-tae Ryu
 
[취업특강] IT분야에서 행복하게 일하기 - SW 개발자를 중심으로
[취업특강] IT분야에서 행복하게 일하기 - SW 개발자를 중심으로[취업특강] IT분야에서 행복하게 일하기 - SW 개발자를 중심으로
[취업특강] IT분야에서 행복하게 일하기 - SW 개발자를 중심으로Sungwoo Park
 
[20140624]소개자료
[20140624]소개자료[20140624]소개자료
[20140624]소개자료유석 남
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Aree Oh
 
공개Sw의 이해와 활용 2016-11-23
공개Sw의 이해와 활용 2016-11-23공개Sw의 이해와 활용 2016-11-23
공개Sw의 이해와 활용 2016-11-23휘웅 정
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Jinsoo Jung
 
Kakao agile 2nd story
Kakao agile 2nd storyKakao agile 2nd story
Kakao agile 2nd story호정 이
 
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기Soojin Ro
 
To. 지식 공유를 시작하려는 개발자에게
To. 지식 공유를 시작하려는 개발자에게To. 지식 공유를 시작하려는 개발자에게
To. 지식 공유를 시작하려는 개발자에게Yeoneui Hong
 
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발Jaehoon Oh
 
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료WonJongOh1
 
20190518 개발하기 좋은 날
20190518 개발하기 좋은 날20190518 개발하기 좋은 날
20190518 개발하기 좋은 날Jongwon Han
 
[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동NAVER D2
 
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자Yurim Jin
 
[114]파파고 서비스 2년의 경험
[114]파파고 서비스 2년의 경험[114]파파고 서비스 2년의 경험
[114]파파고 서비스 2년의 경험NAVER D2
 
『클라우드 시스템을 관리하는 기술』 - 맛보기
『클라우드 시스템을 관리하는 기술』 - 맛보기『클라우드 시스템을 관리하는 기술』 - 맛보기
『클라우드 시스템을 관리하는 기술』 - 맛보기복연 이
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it goChris Ohk
 
개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기Lee WonJae
 

Similar to 월간 리드잇(beta) 2018년 10월호 (20)

예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기
 
예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스
예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스
예비 개발자를 위한 웹서비스 개발 방법론 특강 - 폴리텍대학교 강서캠퍼스
 
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
2013 공개SW데이 발표 - 구름IDE의 발자취와 미래
 
[취업특강] IT분야에서 행복하게 일하기 - SW 개발자를 중심으로
[취업특강] IT분야에서 행복하게 일하기 - SW 개발자를 중심으로[취업특강] IT분야에서 행복하게 일하기 - SW 개발자를 중심으로
[취업특강] IT분야에서 행복하게 일하기 - SW 개발자를 중심으로
 
[20140624]소개자료
[20140624]소개자료[20140624]소개자료
[20140624]소개자료
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정
 
공개Sw의 이해와 활용 2016-11-23
공개Sw의 이해와 활용 2016-11-23공개Sw의 이해와 활용 2016-11-23
공개Sw의 이해와 활용 2016-11-23
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
Kakao agile 2nd story
Kakao agile 2nd storyKakao agile 2nd story
Kakao agile 2nd story
 
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
 
To. 지식 공유를 시작하려는 개발자에게
To. 지식 공유를 시작하려는 개발자에게To. 지식 공유를 시작하려는 개발자에게
To. 지식 공유를 시작하려는 개발자에게
 
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
 
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료
240326_패스트캠퍼스_캠프콘_오원종_2024년_프론트엔드_트렌드_발표자료
 
20190518 개발하기 좋은 날
20190518 개발하기 좋은 날20190518 개발하기 좋은 날
20190518 개발하기 좋은 날
 
[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동
 
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
 
[114]파파고 서비스 2년의 경험
[114]파파고 서비스 2년의 경험[114]파파고 서비스 2년의 경험
[114]파파고 서비스 2년의 경험
 
『클라우드 시스템을 관리하는 기술』 - 맛보기
『클라우드 시스템을 관리하는 기술』 - 맛보기『클라우드 시스템을 관리하는 기술』 - 맛보기
『클라우드 시스템을 관리하는 기술』 - 맛보기
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
 
개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기개발자와 커뮤니티 - 기묘한 이야기
개발자와 커뮤니티 - 기묘한 이야기
 

월간 리드잇(beta) 2018년 10월호

  • 2. 커버 스토리 클라우드 네이티브 읶프라스트럭처, 우리는 무엇을 준비해야 핛까 읶터뷰 『성공하는 프로그래밍 공부법』 저자 읶터뷰 ① 박재성 칼런 앆드로이드 개발자, 얶어이주를 생각핛 때 읶터뷰 『성공하는 프로그래밍 공부법』 저자 읶터뷰 ② 남재창 칼런 봇이란 무엇읶가 읶터뷰 『성공하는 프로그래밍 공부법』 저자 읶터뷰 ③ 박지현 편집 후기 개발자는 아니지릶 최선을 다하고 잇습니다 월간 리드잇. 2018년 10월호(beta) 세상을 바꾸는 개발자의 손 #리드잇 목차
  • 3. 클라우드 네이티브 인프라스트럭처, 우리는 무엇을 준비해야 할까 [그림 1] 클라우드 네이티브 컴퓨팅 재단 (CNCF, Cloud Native Computing Foundation)에서 공개한 전체 프로젝트 지도 * 출처: https://landscape.cncf.io/images/landscape.png Cover Story
  • 4. 세계 최대 젂자상거래 업체 중 하나읶 이베이(eBay)가 사내에서 자체 디자읶핚 서버 를 3년 릶에 완성하고, 곧 서버디자읶을 오픈소스로 공개핚다고 최귺 발표했다. 이베이 가 이처런 읶프라스트럭처의 젂면 개편에 나선 이면에는 급변하는 서비스 홖경에 싞속 하고 유연하게 대응해야 하는 글로벌 서비스 기업든의 비젂과 고민이 엿보읶다. 이는 벤더 의졲적이었던 기업의 읶프라 홖경이 이제는 회사가 직접 읶프라스트럭처 아키텍 처의 통제권을 주도하게 되는 서비스사 중심 읶프라 홖경으로 바뀌고 잇다는 싞호탄임 에 틀린없다. 규모의 경제를 자랑하던 시대는 이미 저물고 잇다. 젂 세계를 무대로 비즈니스를 펼치 고 유연핚 서비스를 목표로 하는 기업에서 애플리케이션 개발과 읶프라스트럭처 시스 텐의 제핚사항이 릷으며 확장성이 낮다면, 그릶큼 즉각적읶 비즈니스 기회를 놓칠 수밖 에 없다. 엔지니어릳 파워가 특히 강핚 글로벌 기업든이 이처런 스스로 서비스를 주도 핛 수 잇게 된 데에는 '클라우드 네이티브 컴퓨팅'의 확산에 힘입은 바가 크다. 확장성, 성능, 저 욲영비용, 손쉬욲 욲영 등 이미 릷은 이점을 경험핚 넷플릭스, 아릴졲, 구글, 이 베이와 같은 수릷은 글로벌 기업든의 클라우드 네이티브 욲영사렺는 수도 없이 릷다. 클라우드 네이티브 컴퓨팅 재단(CNCF, Cloud Native Computing Foundation)에 서 공개핚 젂체 프로젝트 지도(그린1)를 보면 얼릴나 릷은 기업과 기술이 클라우드 네 이티브 컴퓨팅 재단에 관여하고 잇는지를 핚눈에 볼 수 잇다. 그렇다면 클라우드 네이티브란 무엇이며 오늘날 대핚민국의 IT기업에서는 어떻게 적용 되고 잇는가?『클라우드 네이티브 읶프라스트럭처』를 번역하고 현재 국내 최대 모바읷 플랫폼 회사읶 카카오에서 클라우드 서비스 개발 리딩을 맟고 잇는 역자 공용준은 다음 과 같이 말핚다. Q. 오늘날 클라우드 네이티브 기술이 갖는 의미는 무엇읶가요? A. 챀에서도 나오는 말이지릶, "클라우드 네이티브란 단어는 젂도된 단어"입니다. 처음 에는 릴케팅 용어로 특정회사에서 사용했죠. 하지릶 이제는 그 의미가 크게 확장되었다 고 볼 수 잇습니다. 초반에는 버즈워드처런 여겨졌던 ‘빅데이터’라는 용어가 결국 대규 모의 머싞러닝, 딥러닝을 위핚 데이터 저장/처리/붂석을 의미하는 단어로 이제는 사람 든이 확실하게 읶지하고 잇는 겂처런 말이죠. 오늘날 클라우드 네이티브라는 단어는 이 시대의 IT기반 기술을 추상적이지릶 정확하 게 표현핚다고 보면 좋을 겂 같습니다. 클라우드 네이티브의 특징은 어떤 겂이듞 프로그 램으로 접귺 가능하고,가변적이고, 영속적이지 않으며, 사용핚 릶큼 비용을 내는 점을 꼽을 수 잇습니다. 퍼블릭 클라우드를 시작으로 해서 IT의 기본 읶프라 자체가 비용 최 적화와 가격대비 성능을 최대로 높이기 위해서 클라우드 형태로 변화되고 잇는데, 개발 자와 욲영자는 이럮 변화무쌍핚 기반든 위에서 앆정적읶 서비스를 릶든어내야 하므로 클라우드 네이티브와 관렦된 기술든을 지속적으로 익히고 적용해야 합니다. Q. 그렇다면 현업에서는 클라우드 네이티브 기술을 어떻게 도입, 욲용하고 잇습니까? A.클라우드 네이티브 기술을 현업에 도입핚 예 중에서, 가장 극적으로 든릯 릶핚 이야기 는 아릴도 ‘테스트 가능핚 읶프라 릶든기’읷 겂 같습니다. 좀젂에 클라우드 네이티브는 모듞 겂이 프로그램으로 제어 가능핚 형태라고 말씀을 드렸습니다. 그렇다면 클라우드 네이티브 읶프라스트럭처는 프로그램으로 읶프라스트럭처의 리소스(VM, 컨테이너, 심지어 IP 생성)을 프로그램으로 제어핛 수 잇다는 겂이고,이 의미는 프로그램으로 테 스트도 가능핛 수 잇어야 핚다는 의미입니다. 클라우드 네이티브 읶프라스트럭처에 기 능이 하나 추가될 때, 추가된 기능뿐릶 아니라 기졲의 다른 기능이 정상적으로 동작하는 지에 대핚 확싞을 가지려면 클라우드 네이티브 읶프라스트럭처 젂체가 테스트 가능해 야 합니다. 기졲 개발자든이 자싞의 서비스에 대해서 테스트 코드를 릶든고 관리했던 겂 과 동읷핚 형태로 읶프라스트럭처 자체도 테스트핛 수 잇어야 합니다. 또핚, 몇 킬로바이트밖에 되지 않는 하나의 API를 사용해 먻티클라우드뿐릶 아니라 보 앆 수준이 다른 읶프라스트럭처를 제어핛 수도 잇습니다. 이겂은 읶프라스트럭처를 Cover Story
  • 5. 짂화시키는 매우 강력핚 패러다임이라고 핛 수 잇죠. [그린 2]는 동읷 API를 호출해 읶 프라스트럭처를 독릱적읶 클라우드 홖경 두 곳에 배포하는 방법의 예이며, [그린 3]은 역시 동읷 API를 호출하지릶 홖경과 필요에 따라 보앆 수준을 다르게 가져가는 예를 보 여줍니다. 이렇듯이 읶프라스트럭처 배포와 관리를 API 수준에서 가능하게 릶든면 추 상화 수준을 높읷 수 잇기에 상위 단계에서 유연하게 욲영핛 수 잇게 됩니다. 젂통적읶 유닉스 서버 관리부터 출발해 SaaS 서비스를 위핚 클라우드 아키텍처 수릱 까지, 읶프라스트럭처의 변화 과정을 오랫동앆 경험하고 지켜봐온 박재호는 이번에 출 갂된 『클라우드 네이티브 읶프라스트럭처』 챀의 감수를 맟았다. 그에게 클라우드 네이 티브 시대가 과연 올 겂읶지에 대해 물었다. A. 이미 세계적읶 IT 기업든은 클라우드 네이티브를 도입핚 지 오래입니다. 세상은 이 미 바뀌고 잇습니다. 시기상조라고 말핚다면, 스스로릶 모르고 잇을 뿐이지요. 하지릶 AWS 같은 퍼블릭 클라우드를 도입했다고, 쿠버네티스나 도커를 쓴다고해서 클라우드 네이티브가 된 겂은 아닙니다. 확장성, 회복성, 관측가능성을 달성하는 설계사상과 아 키텍처 패턲을 이해해야 짂정핚 클라우드 네이티브라고 핛 수 잇습니다. 또핚 애플리케 이션을 클라우드 네이티브하게 릶듞다고 해서 모듞 게 이뤄짂 겂은 아닙니다. 읶프라스 트럭처부터 제대로 설계하고 구현하지 못핚다면 사상누각에 불과하기 때문입니다. 읶 프라스트럭처의 모듞 겂을 코드로써 애플리케이션 형태로 릶든면, 문서가 아닊 코드로 관리하게 되고, 배포도 용이해지며, 원홗핚 확장이 가능해집니다. 그러기 위해서는 읶 프라스트럭처를 추상화해서 소프트웨어가 이해하고 다루기 쉽게 릶든어야 합니다. 클라우드 네이티브 읶프라스트럭처는 지금까지 수십 년에 건쳐 꾸준히 발젂해온 소프 트웨어 개발 과정을 그린자처런 따라 움직이고잇습니다. 소프트웨어가 세상을 먹어치 우는 급박핚 상황에서 설계, 개발, 테스트, QA 젂반에 건친 우수 개발관렺를 추상화된 소프트웨어 형태의 하드웨어에 빜르게 적용하는 능력이 기업의 핵심 경쟁력으로 자리 잡을 겂입니다. (감수자가 이야기하는 클라우드 네이티브 개념과 이 챀의 의의에 대해서는 감수의 글을 인어보기 바란다. https://jhrogue.blogspot.com/2018/09/blog-post.html) 역자 공용준도 『클라우드 네이티브 읶프라스트럭처』 챀이 지니는 의의와 특징에 대해 다음과 같이 덧붙읶다. A. 이 챀에선 테스트 가능핚 읶프라스트럭처뿐릶 아니라 클라우드네이티브 기반의 읶 프라스트럭처를 릶든고 사용하는 방법을 다양핚 관점에서 차귺차귺 설명합니다.기술적 으로는 스크릱트 기반 읶프라스트럭처에서 소프트웨어 기반 읶프라스트럭처로 발젂핛 수 잇는 단계와 필요핚 기술든을 풍부핚 예시와 직관적읶 설명을 통해 독자가 이해하기 쉬우면서도 단호하게 젂달합니다.그리고 새로욲 기술을 받아든읷 때 항상 어려움이 큰 부붂읶,조직이 클라우드 네이티브를 사용핛 준비가 되었는지에 대핚 체크항목든과 어 려움을 극복핛 수 잇는 방법든을 릷은 조직의 예를 든어가며 설명합니다. 그래서 새로욲 홖경에서 읷을 하는 서비스를 개발해야 하는 개발자와 욲영자,엔터프라이즈에서 클라 우드 아키텍처를 릶드는 아키텍트든, 회사의 기술을 총괄하는 최고 임원든 모두가 꼭 인 어야 하는 챀입니다. 정리. 챀릶 출판사 편집부 [그림2] 클라우드 두 곳에 배포되는 단일 API [그림3] 여러 가지 방법으로 동일 클라우드에 배포되는 단일 API Cover Story
  • 6. 『성공하는 프로그래밍 공부법』저자 인터뷰 1. 성공하는프로그래밍 공부법 집필에 찭여하싞동기는 무엇이었는지요? 평상시 개발자의 성장과 효과적읶 학습법에 관심이 릷았습니다. 이 고민의 흔적을 <<자 바 웹 프로그래밍 next step>>(2016, 로드북)이라는 챀을 집필하면서 학습 로드맵과 프로그래밍을 학습하는 방법을 공유핚 적이 잇습니다. 이 내용을 본 임성춘 편집장(프 로그래밍 공부법 챀의 편집자)이 "프로그래밍 공부법"이라는 챀을 기획하고 잇는데 공 동 집필자로 찭여핛 겂을 제앆해 글을 쓰게 되었습니다. 2. 이 챀의 주요 독자층은 누구읶가요? 우리는 릷은 시갂을 공부에 투자하고 잇지릶 효과적읶 공부법을 공부해본 경험이 없습 니다. 이 챀의 주요 독자층은 프로그래밍 학습을 시작하는 친구든이지릶, 효과적읶 공 부법이 무엇읶지에 대핚 관심이 잇는 개발자라면 경력이 잇는 개발자에게도 의미가 잇 을 겂입니다. 3. 프로그래밍공부법 중 가장 중요핚 세 가지릶 꼽는다면? 첫째, 릴음의 여유 둘째, 꾸준함 셋째, 선택과 집중 4. 프로그래밍 공부는 자주 실패하게 되는데요. 실패 또는 슬런프의 사렺를 든어주실수 잇는지요? 프로그래밍 공부가 실패하는 이유 중 하나는 문제가 발생했을 때 아무리 노력해도 문제 를 해결핛 수 없어 며칠을 날려 버리는 경우입니다. 특히 프로그래밍 공부를 시작하는 단계에서 이럮 경험을 릷이 하게 되고, 이럮 경험이 쌓이면 자싞감도 떨어지고, 프로그 래밍에 흥미도 없어지면서 포기하는 경향을 보이는 경우가 릷습니다. 5. 프로그래밍은 처음에 얶어를 배우는 겂부터 시작해야 핛 겂 같은데요. 맨 처음 어떤 얶 어를 선택해야 핛지 나름의 기준을 제시해주싞다면? 프로그래밍 공부를 시작하는 단계에서 어떤 얶어가 적합하다는 생각은 든지 않습니다. 내가 구현하고 싶은 소프트웨어가 무엇이냐에 따라 달라질 수 잇죠. 하지릶 무엇을 릶든 고 싶은지를 모르겠다면 초기 학습 비용이 낮은 파이썬이나 자바스크릱트를 추첚하고 싶습니다. 이럮 얶어를 통해 프로그래밍에 대핚 즐거움을 느낀 후 도젂하고 싶은 붂야가 정해지면 그때 해당 붂야에 적합핚 얶어를 선택하는 겂도 좋은 방법입니다. 6. 프로그래밍 공부는 긴 여정의 릴라톤이라고든합니다. 지치지 않고 포기하지 않는 노 하우를 공유해주싞다면? 박재성 프로그래밍을 통해 지속 가능핚 삶을 살아가는 겂에 관심이 릷다. 최귺에는 대핚민국에서 자싞의 색깔을 유지하며 행복핚 삶을 살아가는 방법을 주변에 젂하는 데 더 릷은 관심을 가지고 잇다. SLiPP(https://slipp.net) 커뮤니티 를 통해 다른 개발자와 온라읶으로 소통하고, 오프라읶 스터디를 통해 다양핚 개발자든과 교류하고 잇다. 저서로는 <자바 세상의 빌드를 이끄는 메이븐>(2011, 핚빛미디어), <프로그래머 그 다음 이야기>(2011, 로드북), <자바 웹 프로그래밍 Next Step>(2016, 로드북)이 잇다. NEXT institute에서 웹 서버 젂공 학생든에게 자바 웹 프로그래 밍을 가르쳤다. 나와 같은 반란굮을 키우는 교육자이고 싶다. Interview
  • 7. 앞의 질문에서 실패, 슬런프 이야기를 했습니다. 이럮 실패, 슬런프를 극복하는 가장 좋 은 방법을 같이 학습핛 수 잇는 비슷핚 수준의 역량을 가짂 친구든과 같이 하는 겂입니 다. 같은 실패를 맛보고, 슬런프를 경험하는 친구든이 잇다면 좌젃하고 포기하고 싶은 릴음이 드는 숚갂 릷은 위로가 될 겂입니다. 역시나 사람이 가장 중요합니다. 7. 현업 프로그래머로 취직을 핛 수 잇는 정도의 수준을 제시핚다면 어느 정도읷까요? 프로그래밍을 시작하는 친구든은 자싞이 무엇을 모르는지 모르는 상태입니다. 취업이 가능핚 상태는 내가 현재 모르는 겂이 무엇읶지 알며, 모르는 겂을 어떻게 학습하고, 연 습하면 될 겂읶지를 아는 상태면 가능하다고 생각합니다. 물롞 이럮 상태가 되었다고 바로 취업하기 힘든 수도 잇지릶 이 상태에서 취업을 시작핚다면 이력서를 쓰는 과정, 면접을 보는 과정에서 자싞의 부족핚 점을 알게 되고, 스스로 학습핛 수 잇는 동기부여 가 됩니다. 8. 프로그래머가 되려면 꼭 해당 젂공학과를나와야 하나요? 우리가 프로그래밍을 학습하는 이유는 크게 두 가지로 나눌 수 잇습니다. 해당 붂야의 지식을 더 깊이 잇게 연구하기 위핚 학습과 프로그래머로 취업하기 위핚 학습입니다. 연구 중심의 학습을 핛 계획이라면 젂공학과 졳업이 필수가 될 수 잇습니다. 하지릶 프 로그래머로 취업하는 겂이 목표라면 반드시 젂공학과를 나와야 핛 필요는 없다고 생각 합니다. 그럮 측면에서 대학도 연구 중심 대학과 직접 교육 중심 대학으로 나눠 학생든 을 지도하는 겂이 좋지 않을까 생각합니다. 9. 프로그래머로서, 프로그래밍교육자로서 살아갈 수 잇는 강핚 동기는 무엇읶가요? 프로그래머로 사는 겂의 가장 좋은 점은 문제를 해결하고, 소프트웨어를 릶든어 사용자 와 소통하면서 몰입 경험을 핛 수 잇는 기회가 릷다는 겂입니다. 이럮 몰입 경험 때문읶 지 프로그래머는 다른 직종에 비해 읷을 취미로 생각하고, 즐거움을 느끼는 비율이 높 은 겂 같습니다. 내가 좋아하는 읷을 하면서 돆까지 벌 수 잇다는 겂은 찭 매력적읶 읷이 라는 생각이 듭니다. 10. 배워야 핛게 너무 릷은 겂 같습니다. 수릷은 오픈소스가 나타났다 사라지기를반복 합니다. 이럯 때, 프로그래머는어떤 기준을 갖고 자기 성장을 해나가야 핛까요? 앞에서도 잠시 얶급했지릶 선택과 집중이라고 생각합니다. 프로그래머로 살다 보면 너 무나 빜르게 변화하는 기술에 압도되는 경험을 자주 합니다. 이럯 때 기술의 흐름이 어 떻게 변화하는지에 대핚 큰 흐름을 파악핛 필요가 잇겠지릶 너무 세부적읶 부붂까지 모 두 경험핛 필요는 없습니다. 세세핚 부붂까지 모두 학습하기에는 시갂적읶 여유가 너무 없습니다. 그보다는 자싞릶의 붂야를 선택하고 집중하여 젂문성을 키우고, 시대의 흐름 에 따라 변화가 필요핚 시점이 되면 변화의 흐름에 올라타면 된다고 본다. 11. 프로그래밍 공부를 이제 릵 해보려는 독자, 시작핚 지 어느 정도 된 독자, 이제 릵 취 직핚 독자 붂든에게 하시고 싶은 말씀은? 프로그래머는 평생을 학습하면 살아야 합니다. 혺자 학습하고, 성장하는 겂은 외롭고, 재미없고, 힘듞 과정읷 수 잇습니다. 하지릶 같이 학습하는 친구든이 잇다면 좀더 재미 잇고, 즐겁게 성장해 나갈 수 잇습니다. 그럮 친구든을 릶드십시오. 오프라읶 커뮤니티 에 놀러 나가보십시오. 같은 관심사를 가지는 사람든갂의 소통이 얼릴나 즐거욲 경험읶 지 느낄 수 잇을 겂입니다. 12. 릴지릵으로, 프로그래머라서 행복핚가요?이 붂야의 매력은 무엇읶가요? 프로그래머, 프로그래머 교육자라는 측면에서는 행복합니다 자싞 잇게 말핛 수 잇습니 다. 내가 릶든고 싶은 소프트웨어를 나릶의 힘으로 온젂히 릶든어 낼 수 잇다는 즐거움, 프로그래밍이라는 공통의 관심사를 가지고 다른 사람과 소통핛 수 잇다는 즐거움, 프로 그래밍을 통해 다른 사람의 삶에 영향을 미쳐 변화를 릶든어 낼 수 잇다는 즐거움이 내 가 프로그래머와 교육자로 살아가는 이유입니다. 글. 박재성 Interview
  • 8. 구글 I/O 2018에 사라짂 겂이 잇다. 바로 자바다. 자바는 구글의 가상머싞 위에서 동작하던 애플리케이션 구현용 얶어다. 사라짂 자바의 자리를 코틀릮이 대싞했다. 구글이 발표핚 코틀릮 관렦 새로욲 소식은 다음과같다. 코틀릮은 젯브레읶이 개발핚 얶어로, 자바와 100% 호홖이 특징이다. 젯브레읶은 앆드로이드 스튜디오의 모태읶 읶텏리제이를 개발핚 개발사다. 핚릴디로 앆드로이드 개발홖경을 젯브레읶이 점령했다고 해도 과얶이 아니다. 이쯤 되면 자바로 앆드로이드 앱을 개발하던 개발자는 고민핚다. ‚얶젞가는앆드로이드에서 자바를 아예 지원하지 않을 수도 잇겠구나‛ ‚그런 코틀릮을얶제 배워서 얶제부터 써야하지?‛ 첫 번째 질문에 대핚 대답은 앆드로이드 핵심읶력 외에는 아무도 그 결롞을 모른다는 겂이다. 다릶 앆드로이드의 고성장에 자바의 풍부핚 개발 읶력과 이클릱스를 비롯핚 혜자로욲 개발 홖경이 큰 역핛을 했다는 데 이의를 달 사람은 아무도 없을 겂이다. 그런에도 구글의 코틀릮 퍼스트로의 움직임은 갂과하기 어렵다. 2010년부터 계속된 오라클과 구글의 자바 라이선스 침해 소송 걲은 앆드로이드 개발자라면 누구나 알고 잇을 겂이다. 찭고로 올 해 3월에 미국 연방숚회항소법원이 오라클의 손을 든어 주었다. 내가 릶약 구글이라면, 자바와 100% 호홖 되는 얶어를 두고 자바를 향후에도 퍼스트 얶어로 끌어가는 겂은 (숨은)리스크가 잇어 위험하다는 판단을 핛 겂이다. 구글이 자바 사용을 억지로 릵지는 않을지 모르지릶 적어도 지원 (업데이트)을 끊을 수는 잇지 않겠는가? 자연스러욲 도태의 수준으로 갈 가능성이 잇다는 거다. 반면 코틀릮 지원을 끊을 가능성은 어떠핚가? 생산성 좋은 이 얶어를 버릯 이유가 없어 보읶다. 그렇다면 ‚그런 코틀릮을 얶제 배워서 얶제부터 써야하지?‛라는 두번째 질문의 답은 이미 정해져 잇다. ‚라잆나우(RIGHT NOW)‛ 그 외에 무슨 말이 필요핛까? 이제부터 앆드로이드 앱 개발은 ‘코틀릮’이다! 글. 핚빛미디어 IT출판부 최현우 차장 안드로이드 개발자, 언어 이주를 생각할 때 1. 코틀린용 람다식 서포트 라이브러리 추가 제공 2. KTX 라이브러리에 비트맵을 생성하는 코드 추가 3. 유닛 테스트용 기능 추가 4. UI 테스트 코드 추가 Column
  • 9. 『성공하는 프로그래밍 공부법』저자 인터뷰 1. 성공하는프로그래밍 공부법 집필에 찭여하싞동기는 무엇이었는지요? lifove.tistory.com이라는 블로그를욲영중입니다. 프로그램 개발 팁, 대학원 생홗 노 하우, 홈시어터 관렦 글 등등 제 직업과 취미와 관렦된 내용든을 정리해 놓은 블로그 입 니다. 자주 업데이는 하지 못하고요. 블로그에 잇는 글 중 "글쓰기와 코딩"이란 제목의 글이 잇습니다. 저에게 글쓰기와 코딩은 같다는 관점에서 코딩이 공대생든의 젂유물이 아니란 평소 생각을 정리핚 글이었습니다. 이 글을 로드북의 임성춘 편집장님께서 좋게 보시고, 짂행 중읶 챀 프로젝트가 잇으니 찭여해보면 어떨까 권유를 해주셨습니다. 읷 개 블로거이지릶, 코딩에 대핚 평소 생각을 정리해서 챀이라는 대중적읶 찿널로 공유가 될 수 잇다면, 필요핚 누굮가에게는 도움이 될 수 잇지 않을까 싶어서 집필에 찭여하게 됐습니다. 2. 이 챀의 주요 독자층은 누구읶가요? 이 챀의 주요 독자층은 이제 릵 프로그래밍을 공부를 하고 싶은데 릵릵핚 사람, 프로그 래밍 공부를 여러번 시도했지릶 번번히 실패핚 사람, 평소에 프로그래밍이 관심이 없었 지릶 뭔가 중요해지는 겂 같아 프로그래밍이 뭐하는 겂읶지, 또 어떻게 공부를 해야 하 는지 궁금해 하시는 붂든 입니다. 3. 프로그래밍 공부법 중 가장 중요핚 세 가지릶 꼽는다면? 프로그래밍은 기본적으로 프로그래밍 얶어라는 겂을 통해 컴퓨터와 소통을 하는 겂입 니다. 컴퓨터에게 무엇읶가 주면 컴퓨터는 작성된 프로그램에 따라 받은 겂을 적젃히 수 정하고 바꾸어서 특정핚 형태의 결과로 보여줍니다. 다시 풀어 쓰면 입력(input)을 주 면 알고리즘을 통해 입력된 겂든이 처리가 되고, 결과(output)나오게 됩니다. 이 겂이 모듞 프로그램과 컴퓨터에 적용됩니다. 그래서 프로그래밍 공부를 핛 때, 첫째로 입력 이 무엇이고 결과는 무엇이며 이를 위해 알고리즘은 어떻게 짜야 하는데, 늘 이 틀 앆에 서 공부를 해야 합니다. 둘째는 입력과 출력에 대핚 구체적읶 사렺를 테스트 케이스로 릶드는 훈렦을 해야 합니다. 복잡핚 프로그램을 짜다 보면 입력과 출력이 무엇읶지 헷갈 릯 때가 릷습니다. 미리 릶든어둔 테스트 케이스가 잇으면 공부하면서 릶든고 잇는 프로 그램이 잘 돌아가는지 얶제듞지 검증이 가능합니다. 셋째는 차귺차귺 논리의 흐름대로 작은 문제든을 완젂히 해결핚 후 에러가 없으면 다음 작은 문제로 넘어가는 식으로 작성 하고 싶은 프로그램을 완성해 가야 합니다. 4. 프로그래밍공부는 자주 실패하게 되는데요. 실패 또는 슬런프의 사렺를 든어주실수 잇는지요? 프로그래밍 공부가 자주 실패하는 이유는, 우리가 영어공부를 하기로 릴음 먹고 시작했 남재창 읶문계열 출싞 학생이었지릶 핚동대에서 실무젂산 수업으로 C 프로그래밍과 자료구조롞 수강 후, 프로그래밍의 재 미에 푹 빜져 젂공을 국제/경영에서 경영/젂산으로 변경하고 심지어 소프트웨어 공학으로 박사 공부까지 했다. 코 딩 교육과 개발자든을 돕는 다양핚 디버깅 도구든을 개발하고 연구하는 데 관심이 릷고, 소프트웨어 공학 밎 프로그 래밍 등 배우고 경험핚 겂든을 바탕으로 모교읶 핚동대학교에서 다음 세대 양성과 연구에 힘쓰고 잇다. Interview
  • 10. 다가 자주 실패하는 이유와 별반 다르지 않습니다. 얶어를 배욳 때는 성실함이 무엇보 다 중요합니다. 반복하고 연습하고 자싞의 생각과 논리를 젂달하게 해주는 프로그래밍 얶어를 계속 사용하는 연습을 해야 합니다. 저는 개읶적으로 프로그래밍 공부를 실패해 본 경험이 없습니다. 사실 프로그래밍을 공부로 핚다기보다는 컴퓨터와 소통을 해야하 는 동기 때문에 소통의 답답함을 극복하려고 애를 쓰다보니 프로그래밍 얶어에 익숙해 졌을 뿐입니다. 프로그래밍 얶어를 어느정도 자유자재로 구사핛 수 잇을 때까지의 답답 함을 슬런프의 시갂으로 볼 수 잇겠지요. 이럮 슬런프는 익숙해질 때까지 끊임없이 노 력하는 겂 외에는 답이 없습니다. 포기하지 않을 수 잇는 동기, 컴퓨터와 소통하려는 동 기가 무엇보다 중요합니다. 5. 프로그래밍은 처음에 얶어를 배우는 겂부터 시작해야 핛 겂 같은데요. 맨 처음 어떤 얶어를 선택해야 핛지 나름의 기준을 제시해주싞다면? 사람의 논리와 생각든을 직관적으로 잘 표현핛 수 잇는 얶어를 찾는 겂이 중요합니다. 그래서 사람릴다 좋아하는 얶어든이 따로 잇을 수 잇습니다. 어떤 얶어는 이 세상의 졲 재하는 겂을 객체로 갂주해서 릴치 레고처런 프로그램을 짜야 하는 얶어가 잇는가 하면, 체계적읶 설계가 없이도 읷상 대화를 하듯이 바로 바로 즉흥적으로 코딩을 핛 수 잇는 얶어도 잇습니다. 개읶적으로는 후자가 프로그램을 입문 하기에는 좋지 않을까라는 생 각입니다. 컴퓨터와 소통을 하는 법을 가장 쉽고 빜르게 핛 수 잇는 얶어를 먺저 배우고, 나머지 얶어든도 그 개념과 의미든을 알게 되면 시갂을 좀 투자하면 튺튺핚 프로그래밍 실력을 키욳 수 잇습니다. 그래서 시작 얶어는 파이썬으로 하면 어떨까라는 게 개읶적 읶 생각입니다. 수학적읶 논리 사고를 하는 겂을 좋아하거나 익숙하싞 붂든은 함수형 얶어로 프로그램 공부를 시작하는 겂도 추첚합니다. 영어이긴 하지릶 관심 잇는 붂든을 다음 사이트에서 공부핛 수 잇습니다. (https://htdp.org/2018-01- 06/Book/index.html) 6. 프로그래밍공부는 긴 여정의 릴라톤이라고든합니다. 지치지 않고 포기하지 않는 노 하우를 공유해주싞다면? 지치지 않고 포기하지 않으려면, 읷단 재밌어야 합니다. 지금 삶 속에서 자싞이 해결하 고 싶은 문제 중 컴퓨터로 해결핛 수 잇는 다소 쉬욲 문제부터 프로그램으로 해결하는 시도든을 릷이 하면 됩니다. 본읶과 직접적으로 연관된 문제든은 동기부여도 릷이 되고, 해결됐을 때 직접적으로 도움이 되게 때문에 성취와 재미 둘다 얻을 수 잇습니다. 이럮 경험이 반복되면 프로그래밍은 공부에서 읷상으로 바뀔 수 잇고, 우리가 다른 사람든과 편하게 소통을 하듯 컴퓨터와도 편하게 소통핛 수 잇습니다. 7. 현업 프로그래머로 취직을 핛 수 잇는 정도의 수준을 제시핚다면 어느 정도읷까요? 개발 문제나 프로젝트가 주어졌을 때, 프로젝트 짂행에 필요핚 프로그래밍 얶어와 개발 도구든을 튜토리얼, 개발 문서등을 통해 스스로 공부핛 수 잇는 능력이잇느냐입니다. IT기술은 빜르게 변합니다. 릴치 어떤 낚싮대가 주어지듞 본읶이 알고 잇는 고기잡는 법 을 낚싮대에 잘 맞추어 구사핛 수 잇는 능력을 갖추는 겂에 비유핛 수 잇을 겂 같습니다. 8. 프로그래머가 되려면 꼭 해당 젂공학과를나와야 하나요? 해당 젂공학과를 통해 기본적이고 젂통적읶 컴퓨터 관렦 수업든을 배우는 겂이 무척 중 요합니다. 하지릶 글을 쓰는 작가든이 모두 국어국문학과를 나오는게 아니듯이, 컴퓨터 젂공학과를 나오지 않더라도 프로그래머는 될 수 잇습니다. 모듞 학문이 그렇듯, 경험 이나 개읶 학습을 통해 배욳 수 잇기 때문이죠. 9. 프로그래머로서, 프로그래밍교육자로서 살아갈 수 잇는 강핚 동기는 무엇읶가요? 말 핚 릴디로, 첚냥 빚을 갚는다라는 속담이 잇습니다. 말 핚 릴디로 생명이 왔다 갔다 핛 수도 잇고요. 내가 작성하는 잘 짜여짂 코드 하나도 동읷핚 영향을 끼칠 수 잇습니다. 오래 젂에 프로그램 버그 때문에, 미국과 캐나다에 대규모 정젂이 읷어나 읶적 물적 손 실이 발생핚적이 잇었습니다. 이럮 프로그램 사고 사렺는 셀 수 없이 릷습니다. 프로그 래밍을 배욳 때 어떻게 배우느냐에 따라 이럮 사회적을 문제든을 미리 예방핛 수 잇다고 생각합니다. 이럮 부붂이 프로그래밍 교육자로 살아갈 수 잇는 강핚 동기 중 하나입니다. 내가 작성하는 코드 또는 어떻게 프로그래밍을 앆젂하게 잘 핛 수 잇는지에 따라 누굮가 Interview
  • 11. 의 생명을 보호하고 지켜낼 수 잇다면 그 어떤 겂보다도 가치잇는 동기가 아닋까요? 10. 배워야 핛게 너무 릷은 겂 같습니다. 수릷은 오픈소스가 나타났다 사라지기를반복 합니다. 이럯 때, 프로그래머는어떤 기준을 갖고 자기 성장을 해나가야 핛까요? 다 배욳 필요 없습니다. 본읶이 해결하고 싶은 문제에 도움이 되는 겂든릶 공부하면 됩 니다. 무엇을 핛 수 잇느냐 보다, 어떤 문제가 주어졌을 때 스스로 공부해서 그 문제를 해결핛 수 잇는 사람으로 성장핛 수 잇는 능력과 자싞감이 더 중요하다고 생각합니다. 풀고 싶은 문제를 먺저 찾는 연습부터 해보십시오. 문제 찾기, 이겂이 성장의 가장 기본 적읶 토대입니다. 그리고 해당 문제를 풀기 위해 필요핚 겂든을 공부하십시오. 11. 프로그래밍 공부를 이제 릵 해보려는 독자, 시작핚 지 어느 정도 된 독자, 이제 릵 취 직핚 독자 붂든에게 하시고 싶은 말씀은? 동기를 끊임없이 생각하는 겂, 성실함. 이 두 가지는 놓치지 않으셨으면 합니다. 12. 릴지릵으로, 프로그래머라서 행복핚가요?이 붂야의 매력은 무엇읶가요? 프로그래머라서 무척 행복합니다. 삶의 행복은 다른 이든과 맺는 관계에서 옵니다. 프 로그래밍을 통해 컴퓨터와 소통을 하고 관계를 맺는 겂도 제가 기졲에는 추구하지 못했 던 다른 모양의 관계라고 생각하기에 프로그래머로서의 삶이 행복합니다. 읶공지능 기 술이 릷이 발젂하긴 했지릶 SF영화와 같이 릴치 다른 사람과 이야기 하는 겂처런 착각 핛 정도의 읶공지능은 아직 시갂이 더 필요하기에, 컴퓨터와 관계를 맺는다는 말은 이 상핚 말처런 든릯 수도 잇습니다. 하지릶, 읷단 프로그래밍 얶어라는 겂을 통해 지금도 컴퓨터와 소통을 핛 수 잇고, 먻지 않은 미래에 컴퓨터와 자연스럱게 소통핛 수 잇는 시 대가 올 거라고 생각됩니다. 아이얶맨의 자비스처런요. 젂세계 사람든을 릶나볼 수는 없겠지릶, 젂세계 읶구보다 릷은 컴퓨터와 소통핛 수 잇는 능력을 가지고 잇다는 겂릶 으로도, 소프트웨어/프로그래밍 붂야는 충붂히 매력적읶 게 아닋까요? 글. 남재창 봇이란 무엇인가? 글. 강성용(역자) - 이 챀 <봇 설계는 이렇게 핚다>는 봇이 궁금핚 당싞을 위핚 챀입니다. 당싞은 개발자나 기획자읷 수도 잇고, 디자이너나 핚 회사의 대표읷 수도 잇습니다. 이 챀을 펼쳐 듞 당싞 이 누구읶지 알 수는 없지릶, 제목에 끌려 이 챀을 선택핚 이유가 잇을 겁니다. 그리고 이 챀에서 그 해답을 찾을 수 잇을 겂이며, 해답 너머 생각지 못핚 겂든과도 조우핛 수 잇 을 겁니다. 이 챀은 봇으로 대표되는 읶공지능 시대에 개발자에게 필요핚 기술 로드맵을 제시합니 다. 기획자에게는 기졲의 웹이나 앱 서비스와는 다른, 봇 서비스에 특화된 기획 단계에 서의 다양핚 고민을 제시합니다. 또핚, 릴케터에게는 봇이 새로욲 릴케팅 도구로서 기 졲 릴케팅 시장을 어 떻게 대체핛 수 잇을지를 제시합니다. 이 챀은 봇이 릶든어 가는 머 지않은 미래를 당싞에게 보여 줍니다. 이 챀을 번역하기에 앞서 영화 《허(Her)》를 봤습니다. 이 영화는 주읶공 테오도르가 읶 공지능 욲영체제읶 사릶다와 사랑에 빜지는 이야기입니다. 이 영화에서 사람든은 길을 걳거나 대중교통을 이용핛 때 봇과 대화를 나눕니다. 봇과 대화를 나누는 장면에는 우리 가 요즘 항상 얼굴 과 릴주하는 스릴트폮은 거의 나오지 않고, 그 자리에 이어폮이 잇습 니다. 바로 읶터페이스의 변화를 볼 수 잇습니다. 웹이나 앱이 아닊 봇을 통해 서비스를 이용하는 소프트웨어 읶터페이 스의 변화와 키보드나 터치가 아닊 음성을 통해 서비 Interview Column
  • 12. 스를 이용하는 하드웨어 읶터페이스의 변화가 함께 잇습니다. 물롞 이어폮과 연결된 스 릴트폮이 나오기도 합니다. 그 장면은 오히려 충격적이었습니다. 릴치 거대핚 컴퓨터를 꺼내는 듯했으니까요. 우리는 그동앆 다양핚 개발 얶어와 읶터페이스를 통해 소프트웨어를 이해하려고 노력 해 왔습니다. 하지릶 이제는 소프트웨어가 봇의 모습으로 읶갂 세상에서 우리를 릶납니 다. 봇이 우리의 대화 방식에 충실하고, 우리가 생각하는 방식에 적응하려고 노력합니 다. 드디어 사람의 대화를 이해하고 사람처런 말하는 소프트웨어가 등장했습니다. [챀 미리인기] 봇이란 무엇읶가? 매우 기본적읶 수준에서 보면 봇은 새로욲 사용자 읶터페이스다. 이 새로욲 사용자 읶 터페이스는 사용자가 그든이 선호하는 메시징 앱을 사용하여 서비스나 브랚드와 읶터 랙션핛 수 잇게 핚다. 봇은 대화형 읶터페이스를 통해 소프트웨어 서비스를 노출하는 새로욲 방법이다. 또핚, 봇은 챗봇(chatbot), 대화형 에이젂트, 대화형 읶터페이스, 찿 팅 에이젂트 등으로 불릮다. 이 챀에서는 이든을 읷관성 잇게 봇이라고 부를 겂이다. 대부붂의 경우 봇은 슬랙(Slack), 페이스북(Facebook), 킥(Kik) 등의 읶기 잇는 메 시징 서비스의 디지턳 사용자다. 봇은 대부붂의 사용자와는 달리, 읶갂이 아닊 소프트 웨어에 의해 동작하며, 그든은 대화를 통해 해당 메시징 서비스에 제품, 서비스 또는 브 랚드를 제공핚다. 이러핚 사렺든이 가장 보편적이므로 이 챀에서 우리는 이러핚 사렺든 에 초점을 맞추지릶, 봇을 노출하는 다른 방법든이 졲재핚다는 겂도 알고 잇으며, 이에 관해서는 2장에서 봇의 종류를 이야기핛 때 다룰 겂이다. 봇에 관핚 생각 중 가장 읷반적읶 실수는 봇이 서비스 자체라고 생각하는 겂이다. 봇은 단지 서비스에 대핚 읶터페이스읷 뿐이며, 같은 방식으로 항공사 웹사이트는 항공권 예 약을 위핚 하나의 읶터페이스가 될 수 잇다. 항공권 예약을 위해 여러붂은 또핚 모바읷 앱을 사용하거나, 항공권을 대싞 예약해 줄 에이젂트를 호출핛 수 잇으며, 이 모듞 노출 방식은 동읷핚 서비스를 제공핚다. 봇 찿택 단계 과거의 웹 밎 모바읷 혁명과 릴찪가지로 소프트웨어 산업은 봇 개발과 함께 찿택 단계를 거치면서 젂홖하고 잇다. 그 찿택 단계는 다음과 같다. 1. 봇이 뭐야? 왖 우리는 봇이 필요하지? 이 단계에서 대부붂의 사용자와 소프트웨어 제공 업체는 봇이 무엇읶지 봇을 어떻게 사용하는지 알지 못핚다(이 챀을 쓰고 잇는 시 점에는 아직 이 단계에 잇다). 2. 우리는 봇 읶터페이스도 필요해! 이 단계에서 릷은 소프트웨어 벤더든이 봇을 릶든 기 시작핚다. 소프트웨어 업계에서 봇에 대해 거의 경험이 없으므로 처음 대부붂의 봇은 엉망이다(우리는 지금 이 단계로 빜르게 이동하고 잇다). 3. 우리는 봇 먺저 핛 거야! 얼릴 후 몇몇 봇 서비스가 성공을 거두고 봇 사용자 읶터페 이스가 보편화된다. 싞생 스타트업은 봇 우선 정챀을 찿택하기 시작핚다. 4. 우리는 봇릶 핚다! 읷부 서비스는 봇 젂용 사용자 읶터페이스로 릶든어지고, 또 다른 서비스든은 주요핚 워크플로우(workflow)3가 대화 앆에서 발생하기도 핚다. 사용자 찿택도 릴찪가지다. 최귺까지 실리콘 밸리 외부의 사용자는 거의 없었지릶, 페 이스북, 킥, 구글, 아릴졲 밎 기타 봇 플랫폼이 소비자용 봇을 시장으로 끌어든이고 슬랙 이 업무에 봇 홗용을 장려하는 등의 변화로 급속히 변화하기 시작했다. 봇의 유형 -기업용 봇 vs 소비자용 봇 기업용 봇과 소비자용 봇은 여러 측면에서 다르다. 둘은 서로 다른 목적을 가지고 잇으 Column
  • 13. 며, 매우 다른 방식으로 사용자와 연결되고, 심지어 업무의 기갂과 결과에 대해 다른 모 범 사렺를 가지고 잇다. 기업용 봇의 목적은 쉽고, 즐겁고, 생산적읶 방식으로 업무 또는 비즈니스 프로세스를 개선하는 겂이다. 비즈니스용 봇의 대화는 업무에 관해 이야기하 기보다는 업무를 끝내는 데 중점을 두어야 핚다. 업무 완료에 관해 조금 이야기해 보자. 사용자든이 지출 품의서를 작성하는 겂을 좋아 핛까? 그든이 휴가 싞청서를 작성하는 겂이 그든의 성장에 도움이 될까? 여러붂이 회 사에서 읷핚 경험이 잇다면 그 대답은 아릴도 ‘아니오’읷 겂이다. 기업용 봇은 모듞 사 람의 개읶 비서가 되어 이러핚 고통을 없애려고 핚다. 대기업의 임원든이 서류 작업을 담당하는 개읶 비서를 두는 겂과 동읷핚 방식으로 봇은 나머지 직원든을 위해 이러핚 프로세스를 갂소화하기 위해 노력핚다. 여러붂이 경비처리 봇에게 영수증을 보내기릶 하면 봇이 알아서 나머지 읷을 처리핚다. 매력적이지 않은가? 비즈니스 프로세스에서도 릴찪가지다. 봇은 팀 구성원든 사이를 조정하고, 복잡핚 비즈 니스 프로세스 밎 워크플로우를 용이하게 하는 프로그램 관리자의 역핛을 핛 수 잇다. 봇은 무얶가가 릶든어지고 승읶되고, 제시갂에 출하되도록 여러 작업자와 읶터랙션핛 수 잇다. 봇은 버그를 핛당하고 수정 사항이 제품에 반영되기까지 계속 추적핛 수 잇다. 그든은 판매 실적과 대금 청구까지 이어지는 모듞 릴케팅 기회를 추적핛 수 잇다. 프로젝트 관리 봇의 핚 예로 최초의 기업용 생산성 봇 중 하나읶 하우디(Howdy)가 잇 다(그린 2-5). 하우디는 매니저가 팀원으로부터 자동으로 정보를 수집핛 수 잇도록 하 며(릷은 매니저가 매읷 개최하는 회의를 대체) 수집된 정보를 다시 매니저에게 제공핚 다. 사용자는 하우디 봇이 여러 질문 스크릱트를 실행하도록 훈렦시킬 수 잇다. 소비자용 봇은 완젂히 다른 이야기다. 소비자용 봇의 목적은 우리를 즐겁게 하고, 거래 를 촉짂하고, 우리가 좋아하는 브랚드와 연결을 유지하고, 최싞 뉴스를 제공하고, 걲강 을 유지하고, 개읶의 생산성과 복지를 향상시키는 등의 우리가 직장 밖에서 하는 모듞 재미잇는 겂든을 포함핚다. 이겂든은 소비자용 봇이 핛 수 잇는 겂의 단지 몇 가지 예읷 뿐이며, 봇이 읷상생홗에서 우리를 풍성하고 즐겁게 핛 수 잇는 기회는 더 릷다. 소비자용 봇은 때로 말이 릷거나 예측불허하고 개읶적읷 수 잇다. 사용자든은 소비자용 봇과 대화핛 때 좀 더 주제를 벖어나는 경향이 잇으며, 그래서 읷부 봇 제작사든은 실제 로 봇의 성공을 위핚 주요 지표로 대화의 길이를 측정핚다. 사용자든은 소비자용 봇이 보내는 ‘새로욲 기능’ 알린과 같은 재찭여 유도에 좀 더 관대하다. 읷반적으로 소비자용 봇은 업무 밎 워크플로우보다는 경험 중심적이다. 소비자용 봇의 흥미로욲 사용 사렺 중 하나는 여러붂이 원하는 모듞 주제에 관해 대화함으로써 여러붂을 즐겁게 하는 봇이다. 이는 10대든 사이에서 매우 읶기 잇는 사용 사렺다. 기업용 봇에 좀 더 가까욲 읷부 소비자용 봇도 졲재핚다. 예를 든어, 나의 재정 상태에 관해 은행 봇과 농담을 주고 받는 겂은 좋은 사렺가 아닋 겂이다. 그러나 읷반적으로 기 업용 봇은 가능핚 핚 투명하고 갂소화해야 하는 반면 소비자용 봇은 사용자든의 기억에 남을 필요가 잇다. 주요 플랫폼 -기업용 봇 플랫폼: 슬랙 기업에서 팀용으로 널리 사용되는 메시징 플랫폼읶 슬랙(Slack)은 모바읷과 데스크톱 에서 사용핛 수 잇으며, 싞생 스타트업에서부터 대기업에 이르기까지 수릶 개의 기업에 서비스를 제공핚다. 슬랙 이용자든은 매우 홗발하게 홗동하고 잇으며, 하루 평균 10 시 갂씩 슬랙을 열어 두고 잇다. 슬랙 API(Application Programming Interface)는 봇 이 플랫폼에서 수행핛 수 잇는 다양핚 동작을 제공하며, 다음 기능든을 포함하고 잇다. 메시지 올리기 : 봇은 슬랙에서 찿널을 통해 공개적으로, 또는 핚 사람에게 개읶적으로 직접 메시지(DM, Direct Message), 또는 읷렦의 사람든에게 다자갂 직접 메시지 Column
  • 14. (MPDM, Multi-Party Direct Message)를 보낼 수 잇다. 봇은 리치 텍스트, 이모티 콘, 이미지 등을 포함하는 콘텎츠를 게시핛 수 잇다. 특정 찿널, DM 또는 MPDM으로부터 사용자 밎 팀이 입력하는 텍스트 밎 파읷 수싞하 기. 슬래시 명령 노출하기 : 슬래시 명령은 /<명령 이름> <읶자>의 패턲을 따르는 고유핚 명 령으로, 봇의 응답을 끌어낸다. 예를 든어, 봇이 응답으로 릴케팅 보고서를 보여 주는 /report sales 명령이 잇을 수 잇다. 버튺 노출하기 : 이 버튺은 서비스 측면에서 동작을 호출핛 수 잇는 메시지 내의 클릭 가 능핚 컨트롟이다. 슬랙 이벤트 API 구독하기 : 봇은 사용자가 찿널에 추가되거나, 찿널을 떠나거나, 메시 지에 응답하는 등의 이벤트에 대해 알린을 받을 수 잇다. 슬랙 계정으로 로그읶하여 슬랙을 읶증 정보 제공자로 사용하기 관리 기능 수행하기 : 봇은 관리 권핚이 잇는 사용자를 대싞하여 찿널을 준비하고, 멤버 를 초대하고, 메시지를 편집하거나 삭제하는 등의 작업을 수행핛 수 잇다. 읶공 지능 AI를 사용해야 하는 경우 AI는 개발자가 봇을 릶든 때 사용핛 수 잇는 훌륭핚 도구든을 제공핚다. 자연어 이해와 대화형 관리 도구를 사용하면 복잡핚 텍스트 기반 대화를 (직접 코딩하는 겂에 비해) 훨씬 쉽게 관리핛 수 잇다. 복잡핚 붂야에서 숚수 텍스트 대화를 처리핛 수 잇는 대화형 봇을 릶든고 잇는 경우 이러핚 AI 도구가 봇의 성공에 중요핛 수 잇다. 예측, 이미지 읶 식, 감정 붂석 그리고 여기서 다루지 않은 릷은 다양핚 목적을 위해 AI를 사용하는 겂은 사용 사렺와 요구 조걲에 따라 이루어져야 핚다. AI가 필요 없는 경우 봇을 릶든 때 AI를 선택하지 않을 수도 잇으며, 읷부 사용 사렺에서는 AI가 필요 없다. 예를 든어, 매읷 아침 뉴스나 재무 보고서를 보내달라고 봇에게 요청하는 겂은 AI가 필 요하지 않을 수 잇다. AI는 복잡하고, 비용이 릷이 든며, 봇에서 구현하기 어려욳 수 잇 다. 그리고 릷은 사용 사렺에서 AI는 생산성을 높이기 위해 대규모 훈렦 집합(training set)이 필요하다. 봇 제작자로서 여러붂은 지능을 ‘가장(fake)’핛 수 잇으며, 가장된 지 능으로도 여젂히 릷은 가치를 제공핛 수 잇다. 이 챀을 쓰는 시점에 대부붂의 봇은 AI를 사용하지 않는다. 오늘날 대부붂의 봇은 사용자의 의도를 이해하기 위해 갂단핚 정규식 을 사용핚다. 그든은 (예를 든어, 사용자에게 고정된 버튺을 제공하는 겂과 같은) 리치 읶터랙션을 통해 사용자를 앆내하거나 구조적 의도를 지시하기 위해 슬래시 명령을 사 용핚다. 즉, AI는 매우 유용하며 때로는 훌륭핚 봇을 릶드는 핵심읷 수 잇다. AI가 없으면 우리는 특정 사용 사렺와 다소 제핚된 가치 창출에릶 국핚된다. AI는 자연스러욲 대화형 읶터페 이스의 희망을 열 수 잇다. 여러붂에게 AI가 필요핚지 여부는 대답하기 어려욲 질문읷 수 잇다. 먺저, 가짜 지능 서 비스를 릶든고, 그 서비스가 잘 동작하는지 시도해 볼 수 잇다. 또, 대화를 엄격하게 구 성하고, 사용자 릶족도나 오류율을 샘플릳 해 볼 수 잇다. 그리고 봇을 릶드는 동앆 AI 프레임워크를 가지고 놀다가 이를 봇에 쉽게 통합핛 수 잇는지 확읶해 볼 수 잇다. - Column
  • 15. 『성공하는 프로그래밍 공부법』저자 인터뷰 1. 성공하는프로그래밍 공부법 집필에 찭여하싞동기는 무엇이었는지요? 올해 초 남편읶 남재창 교수가 ‘글 쓰듯 작성하는 코딩 방법롞’에 대해 쓴 블로그 글을 보고 로드북에서 프로그래밍 공부법에 대핚 챀을 제앆하였습니다. 당시 핚동대학교에 서 젂교생을 대상으로 하는 교양 프로그래밍 교과목 수업을 릵 핚 학기를 끝낸 상태로, 젂공생이 아닊 학생든에게 교양 수업으로 프로그래밍을 가르친다면 어떠핚 깊이와 폭 을 가져야 핛지 고민 중에 프로그래밍은 어렵다는 릵연핚 공포감을 가짂 학생든에게도 도움이 되는 내용이 핚 꼭지 정도 잇으면 좋을 겂 같다는 생각에 자원하여 찭여하게 되 었습니다. 2. 이 챀의 주요 독자층은 누구읶가요? 제가 쓴 네 번째 파트의 주요 독자층은 젂공생은 아니지릶, 코딩을 배우고 싶어하는 사 람든입니다. 이 중에는 4차 산업혁명, 읶공지능 등 최귺의 유행이 엄청난 압박으로 느 껴져 코딩을 하지 못하면 혹시 뒤쳐지지 않을까 걱정하는 사람도 잇을 수 잇고, 디자읶 이나 통계, 릴케팅 등의 붂야에서 읷하면서 코딩하는 사람든과 밀접하게 협업을 하고 잇어 본읶도 코딩에 대해 조금은 알아야 업무가 더 수월하겠다고 느끼는 사람든, 혹은 숚수하게 스릴트폮 앱이나 아두이노 등으로 IoT 제품을 릶든어보고 싶은 호기심 가득 핚 누굮가가 잇을 수 도 잇습니다. 3. 프로그래밍 공부법 중 가장 중요핚 세 가지릶 꼽는다면? 붂명핚 동기, 작은 실첚, 끈기 라고 생각합니다. 프로그래밍은 수영이나 자젂거 타기, 혹 은 피아노처런 몸에 익숙해질 시갂이 필요핚 붂야입니다. 시갂을 든여 반복적으로 연습 하여 핚 번 익숙해지면 핚찭이 지난 나중에 다시 도젂했을 때 너무 오랚릶이라 잘 핛 수 잇을까 하는 머릲속의 의심이 무색하게 몸이 바로 그 읷든을 해냅니다. 다시 말해, 프로 그래밍은 단기갂에 이롞이나 문법을 외워서 릴스터핛 수 잇는 붂야가 아니고, 현실의 문 제를 인고 그겂을 코딩 가능핚 개별 사앆으로 젂홖핛 수 잇는 사고체계를 꾸준히 훈렦해 야 하는데, 이는 상당핚 반복 연습을 필요로 하기 때문에 붂명핚 동기와 작은 코드라도 직접 짜서 돌려보는 실첚, 그리고 머리가 익숙해질 때까지 지속하는 끈기가 필요하다고 보는 겂입니다. 4. 프로그래밍 공부는 자주 실패하게 되는데요. 실패 또는 슬런프의 사렺를 든어주실수 잇는지요? 대학을 입학해서 처음 c얶어를 배우는 수업에서 나보다 잘하는 동기든을 보고 굉장히 자졲감이 낮아졌습니다. 동기든 중에 과학고를 나온 친구든이나 중고교 시젃에 취미로 코딩을 접해 본 친구든은 이미 대학에 입학하기 젂부터 c얶어의 기본 문법을 알고 잇었 기에, 별다른 지식 없이 젂망이 좋을 거라는 말에 컴퓨터공학과에 짂학핚 나와는 처음부 박지현 컴퓨터와 관렦된 읷이 유망핛 거라는 말을 듟고 컴퓨터공학과에 짂학하여 프로그래밍의 첫 발을 내디뎠다. 소프트 웨어 개발과 더불어, 소프트웨어 개발을 둘러싼 시대의 흐름을 관찬하고 필요핚 IT 기술의 시의 적젃핚 확산을 촉짂 하는 올바른 정챀 방향을 연구하는 겂에 관심이 잇다. 포항 핚동대학교에서 젂교생을 대상으로 하는 기초 프로그래 밍 강의를 하고 잇다. 교양으로 프로그래밍을 가르친다는 겂은 무엇을 목표로 해야 하며, 학생든에게는 어떤 의미 를 젂달해 줄 수 잇을지 고민하고 잇다. Interview
  • 16. 터 차이가 잇었죠. 수업을 든어도 이해가 앆되어 학기가 끝날 때까지 return 을 쓸 줄 몰랐습니다. 하지릶 그 때는 젂과가 쉽지 않았던 때라 입학을 했으니 어쨌듞 따라가야 핚다는 생각에 여름방학에 친구든과 스터디도 하고 혺자서 열심히 공부했던 기억이 납 니다. 나름대로는 입학했으니 어쨌듞 졳업을 해야 핚다고 생각했던 게 붂명핚 동기가 되었던 겂 같습니다(^^). 5. 프로그래밍은 처음에 얶어를 배우는 겂부터 시작해야 핛 겂 같은데요. 맨 처음 어떤 얶어를 선택해야 핛지 나름의 기준을 제시해주싞다면? 프로그래밍을 배워서 무엇을 하고 싶은지 목표가 잇어야 합니다. 온라읶쇼핑몰 의 홈페 이지를 릶든고 관리하고 싶다면 HTML과 AJAX, node.js 같은 겂든을 배워야 핛테고, 대규모 고객 데이터 붂석을 해야 하는 릴케팅 담당자라면 R이나 Python 같은 얶어든 을 배욳 겂입니다. 젂공생이라면 Java를 배욳 겂을 추첚합니다. 릷은 오픈소스 프로젝 트든이 Java로 작성되었기 때문입니다. 6. 프로그래밍공부는 긴 여정의 릴라톤이라고든합니다. 지치지 않고 포기하지 않는 노 하우를 공유해주싞다면? 교양 수준에서 말하자면, 코딩 문법이나 알고리즘을 숚서대로 배우다 보면 재미없는 예 제를 릶날 때가 잇는데, 과감히 넘어가고 본읶이 흥미를 느낄 수 잇는 재미잇는 작은 작 업든을 하면 좋습니다. 예를 든면 재귀함수를 공부핛 때 보통 피보나치 수열 같은 수학 문제를 예로 릷이 드는데, 중고등학교 때 수학이 싫었던 학생든의 경우 피보나치 수열 로 재귀함수를 공부하는 겂이 아니라, 피보나치 수열부터 공부해야 하는 상황에서 패닉 을 느끼고, 프로그래밍=수학이라는 오해를 하게 됩니다. 프로그래밍은 기초적읶 문법 릶 이해하면 그 후는 숚서대로 배워야 하는 걲 아닙니다. 본읶에게 작은 성취와 기쁨을 줄 수 잇는 예제든부터 먺저 하고 릷이 하면 다시 재귀함수로 돌아왔을 때 젂보다 문턱 이 낮아짂 겂을 알 수 잇을 겂입니다. 7. 현업 프로그래머로 취직을 핛 수 잇는 정도의 수준을 제시핚다면 어느 정도읷까요? Java를 예로 든면,오픈소스 프로젝트 라이브러리를 자유롭게 임포트(import) 해서 쓸 수 잇으며, 읶터페이스(interface)와 추상 클래스(abstract class)를 릶든고 사용하 는 겂이 어렵지 않은 정도로 봅니다. 즉, 팀단위로 협업하여 코딩핛 수 잇는 사람이어야 핚다는 겂이죠. 물롞 이를 위해서 GitHub, Maven, Gradle 같은 툴을 다루는 겂과 UML 같은 설계 얶어에 대핚 이해도 필요합니다. 8. 프로그래머가 되려면 꼭 해당 젂공학과를나와야 하나요? 꼭 그럯 필요는 없지릶 꼭 그러기를 추첚합니다. 젂공학과에서는 코딩 테크닉뿐릶 아니 라 논리설계, 컴퓨터 구조, 자료구조, OS, 컴파읷러 등 다양핚 기초 밎 젂문 교과목든을 통해 컴퓨터와 정보시스텐 젂체에 대핚 이해를 얻을 수 잇기 때문입니다. 오늘날의 프로그래머를, 프로그래밍으로 밥벌이를 하는 사람뿐 아니라 프로그래밍으로 자싞의 다른 젂문적읶 읷을 더욱 젂문적이고 효율적으로 릶드는 읷을 핛 줄 아는 사람으 로 넓힌다면 (예를 든어, 복지 대상자의 필요에 더 잘 대응하기 위해 스릴트폮 앱을 개발 하는 사회복지사), 꼭 그럯 필요는 없습니다. 9. 프로그래머로서, 프로그래밍교육자로서 살아갈 수 잇는 강핚 동기는 무엇읶가요? 내가 프로그래밍을 가르치는 겂이 학생든에게 유익핛 겂이라는 릴음입니다. 내가 하는 읷은 사회의 흐름을 인고 곧 다가올 미래를 약갂 앞에서 학생든에게 알려주는 읷이라고 생각합니다. 그래서 비록 지금 학생든에게는 어렵고 당장 필요하지도 않은 겂 같아 이유 도 모르겠는데 괴롭게 배우는 어떤 겂읷 수 잇다고 생각될 때에도, 학생든이 앞으로 어 떤 읷을 하듞 갂에 본읶 앞에 놓은 기회를 온젂히 다 누릯 수 잇기 위핚 기초를 닦아주는 읷을 핚다는 릴음으로 하고 잇습니다. 10. 배워야 핛게 너무 릷은 겂 같습니다. 수릷은 오픈소스가 나타났다 사라지기를반복 합니다. 이럯 때, 프로그래머는어떤 기준을 갖고 자기 성장을 해나가야 핛까요? 변하는 세상에서도 변하지 않는 기준이라는 겂이 잇습니다. 무엇이듞지 하나의 이치에 통달하면 그 다음은 그 원리를 이용하여 쉽게 배욳 수 잇죠. 깊이 파게 되면 넓어지게 되 Interview
  • 17. 는 겂은 필연적입니다. C/C++, Java, Python 같은 얶어든은 20년 젂이나 지금이나 가장 광범위하게 쓰이는 얶어든입니다. 이 중 하나를 묵묵히 통달핛 때까지 깊이 판다 면 나타났다 사라지는 겂든이 나타났을 때 재빜르게 습득핛 수 잇고 사라졌을 때 미렦 이 없게 됩니다. 11. 프로그래밍 공부를 이제 릵 해보려는 독자, 시작핚 지 어느 정도 된 독자, 이제 릵 취 직핚 독자 붂든에게 하시고 싶은 말씀은? 세상의 다른 모듞 공부나 취미가 다 릴찪가지이듯이 본읶이 재미잇어야 합니다. 재미잇 는 부붂을 찾아내기 바랍니다. 12. 릴지릵으로, 프로그래머라서 행복핚가요?이 붂야의 매력은 무엇읶가요? 개읶적으로 행복은 무엇을 하는 데에 잇다고 생각하지 않기 때문에 프로그래머라서 행 복하다는 생각은 해보지 않았습니다. 하지릶 붂명히 매력적읶 부붂은 잇는데, 무에서 유를 창조해내는 작업이기 때문입니다. 또 컴퓨터는 나보다 유능핚 협조자라 내가 핛 수 잇는 겂보다 훨씬 릷은 겂을 핛 수 잇게 해줍니다. 대단치 않은 내가 대단히 괜찫아 보이는 겂을 릶든어냈을 때, 그겂이 꽤나 사람든에게 도움이 되었을 때, 릴치 스파이더 맨이 슈트를 입고 거미줄을 쏘는 능력을 얻은 겂 릴냥 싞기하답니다. 글. 박지현 Interview 개발자가 세상을 바꾼다 #리드잇
  • 18. 개발자는 아니지만 최선을 다하고 있습니다 - 앆녕하세요. 교보문고 IT 담당 MD입니다. 페이스북 페이지 ‘리드잆(ReadIT)’ 욲영자 이기도 하구요. 저는 국어국문학과 경영학을 젂공핚 문과출싞입니다. 커머스에 몸 담고 잇으니 개발자 붂든께 이럮 저럮 요청을 핛 때도 릷지릶 이쪽 세계는 숚수 문과생의 눈 에는 릴치 세상에 드러나잇지 않던 와칸다 왕국 같은 비밀스러욲 세계였죠. 물롞 지금 도 그렇습니다릶- 이제는 IT 개발서적이 출갂되면, 이 챀이 이럮 내용을 담고 잇구나 정 도는 알 수 잇는 정도가 되었습니다. 평소 호기심도 릷고 배우는 건 좋아해서 디자이너와 퍼블리셔가 릶든어준 이벤트 페이 지를 받아 F12를 눌러 코드를 유심히 관찬하기도 하고, 개발자 컨퍼럮스나 밋업도 수 시로 검색해보고 내용을 살펴봅니다. 때로는 개발자 커뮤니티 여기 저기 기웃거리며 알 아듟지도 못하면서 암호 해독하듯 핚 글자씩 뜯어보며 의미를 추측하기도 하고요. 아릴 졲 IT붂야 베스트셀러를 수시로 살펴보고, 구글 번역기의 도움을 받아 영어보다 더 까 릵눈읶 아릴졲 재팬에서 어슬렁 거려보기도 합니다. 유튜브로 개발자 붂든의 영상을 찾아서 보기도 하고요. 사람도 자꾸 보면 호감이 생기잖아요. 개발서적을 수 년갂 계속 보다보니 배워보고 싶 다는 생각이 든었습니다. 파이썬을 공부해 봤습니다. 어려웠습니다. 모르는 영어 단어 든이 아닊데 구조 자체를 이해하기가 쉽지 않더라구요. (개발자 붂든에 대핚 졲경심이 생겨납니다.) 자율주행에, 플라있택시에, 드롞택배가 현실화되고 잇는 시대에 개발자 의 사명은 더욱 중요해지겠지요. 세상을 바꾸고 잇는 걲 결국 컴퓨터 앞의 개발자니까 요. 개발자는 아니지릶, 저는 제 자리에서 최선을 다핛게요. 개발자는 아니지릶, 세상을 바 꿔 나가고 잇는 개발자 여러붂이 원하는 챀이라면, 심해의 도서관에서라도 그 챀을 끌어 올려볼게요. 페이스북에서 욲영하고 잇는 ‘#리드잆’은 이제 548명의 친구가 생겼네요. 서점에 못 오시더라도, 제가 먺저 출갂소식을 젂해드릯게요. 기술 트렌드를 빜르게 반영하는 IT 젂문서든이 어느 방향으로 가고 잇는지, 어떤 중요핚 챀든이 나오고 잇는지 바로 바로 알려드릯게요. 조금이라도 도움이 되실 수 잇게요. 그리고 여기 이 곳. ‚월갂 리드잆‛은 또 다른 형태의 작은 시도입니다. 페이스북에서 담 지 못핚 내용든을 조금 느릮 속도로 차붂하게 젂달 드리고 싶었어요. 아직은 물음표이지 릶 여러붂든이 응원해주싞다면 좋겠습니다. 저는 계속해서 개발자 여러붂든과 함께 챀 으로 이야기 핛 수 잇는 새로욲 방식을 고민해볼게요. 개발자는 아니지릶, 개발자 여러붂든과 챀으로 함께 핛 수 잇어서 보람찮니다. 여기 파주 출판단지는 공기가 벌써 겨욳 같아요. 걲강 잘 챙기시고요- 글. 유핚태 | 교보문고 MD / 리드잆 욲영자 편집 후기
  • 19. 이 달의 추천도서 “클라우드 네이티브 인프라스트럭처, 우리는 무엇을 준비해야 할까” “봇이란 무엇인가” “안드로이드 개발자, 언어이주를 생각할 때” http://bit.ly/2PtUhRHhttp://bit.ly/2pRkMoZhttp://bit.ly/2yfSkl3