개발자에게 물어보세요/인사이트

트와일리오 창업자인 제프로슨이 적은 책이다. 

내가 이 책을 읽고 나서 든 생각은 한줄로 정리된다. 저자가 전달하고 싶은 메시지는 "개발자는 고객의 문제를 기술로 해결해서 비즈니스 가치를 더해주는 사람"이어야 한다는 것이다. 그렇기 때문에 고객을 중심에 놓고 커뮤니케이션을 할 수 있도록 조직을 구성하고, 그들이 하는 행동 하나하나가 고객의 느낌을 좋게 해주기 위한 실험이 될 때 더 큰 기업으로 성장할 수 있다. 원 제목은 "Ask your Developer"인데, 단순히 개발자에게 묻는 것이 아니라 개발자에게 요청하세요라는 의미로도 읽혀졌다.

 이 책을 읽는 동안 팟캐스트 "How I built this"에 Jeff Lawson이 나와서 트와일리오 이야기를 하는데, 책을 읽어서 그런지 조금 더 친숙하게 들렸다.

https://wondery.com/shows/how-i-built-this/episode/10386-twilio-jeff-lawson/

 

How I Built This Podcast with Guy Raz: E504: Twilio: Jeff Lawson

When Jeff Lawson co-founded Twilio in 2008, he had already been through a series of start-ups. Some succeeded, others fizzled out—but each provided insights that led him to build one of the most extensive communication platforms in business. Fueled by hi

wondery.com

 

책 읽으면서 밑줄친 몇 부분을 소개해 본다.

 


소프트웨어가 가속화와 비용절감을 통해 기업이 시장에서 어떻게 유리한 고지를 확보하게 만드는지를 보여주는 사례

수 많은 기업에서 개발자들은 그들이 해결하는 사업적 문제 및 서비스를 제공하는 고객에게서 괴리되어 있음.

하지만 사업가나 개발자 모두 같은 것, 고객을 기쁘게 하고, 고객에게 널리 채택되고, 돈을 많이 버는 멋진 제품을 만드는 것을 원한다.

기술은 제품 자체가 아니라 고객을 모우고, 제품을 유통하고, 궁극적으로 구매부터 제품 사용과정까지 전 과정 내내 고객으로 하여금 원하는 기분을 느끼게 하기 위해 적용된다.

고객의 니즈에 귀 기울인 뒤 학습과 이터레이션을 거듭함으로써 소프트웨어로 고객에 답해야 한다.

소프트웨어 피플이 된다는 건 기술이 아니라 사고방식의 차원. 소프트웨어를 만드는 회사가 되고 싶다면 조직 전체의 사고방식을 바꾸는 것 부터 시작해야 한다.

 책임에 기반한 내부 시스템은 모든 이들의 관심사를 일치시키고, 시간이 지나면서 효율성을 높이고자 하는 자연스러운 동기를 부여한다.

고객을 직접 상대하는 소프트웨어는 꼭 만들어라. 차별화된 경험은 구매할 수 없다. 직접 구축하지 않고는 길이 없다.

기술 책임자들은 코드만 작성하는게 아니고 역량을 발휘하여 사업적 가치를 더할 수 있는 환경을 조성해야 한다. 개발자가 잠재적으로 훌륭한 비즈니스 리더.

실험은 혁신의 전제조건. 더욱 빠르고 저렴하게 실험할수록 더욱 빨리 그럴싸한 결과를 얻기 마련

신속한 이터레이션, 실험, 고객과의 긴밀한 접촉은 혁신의 전제 조건

개발자와 기업가의 관계는 사업 문제를 해결하는 핵심.둘이 협업하려면 사업가는 해결책이 아닌 문제를 공유해야 한다. 사용자가 필요로 하는 것을 깊이 이해하고 그 니즈를 해결할 수 있도록 만드는 것이 핵심.

어떻게 해야할지 몰라서 배우고 익히고 이러는 것이 도전, 배움을 지속해 지평선을 넓혀 간다.

PM은 고객의 문제를 이해시키는데 노력하는 존재.

대자연은 실패한 수백만의 돌연변이를 슬퍼하거나 부끄러워 하지 않는다. 그저 계속 만들어 낼 뿐이다.

실패를 축하하는 것은 그 자체가 아니라 임무를 완수하는데 도움이 되는 깊이있는 배움. 학습 속도를 높여야 한다.

서두르지 말고, 안주하지 마라.

규칙체계를 만든다는 것은 필요없는 규칙을 제거한다는 것을 의미

'배우는 방법을 배우는 과정'

건설적 비판은 사람들을 비방하는게 아니라 그들이 나아지도록 돕는다. 사실상 존중의 한 형태이며 사람들이 배우는 방식중 하나

문제를 분석하고 해결하는 사고 방식을 만들자. 끊임없이 왜라고 물어야 한다.

실제 경험에서 배우는 진짜 학습. 가장 가치있는 학습형태는 실행을 통한 것.

누군가의 미래를 가늠하는 최고의 첫도는 그 사람이 과거에 걸어온 길을 살피는 것이다. 우리는 배우고자 하는 사람을 원하고, 직업을 전환한 부트캠프 졸업자들은 배움의 의지를 보여준다.

머리속에 전체적인 그림을 담고 매일 함께 일하면 놀라울 정도로 빠르게 일을 진행할 수 있다. 소규모 팀의 힘.

튼튼한 고객, 확실한 미션, 성공 지표. 이런 내용은 위에서 만들어지는 것이 아니라 팀에서 만들어지는 것. 그래야 업무를 개인화할 수 있다.

고객, 미션, 핵심 지표, 코드 베이스를 팀과 함께 묶는 것 -> 조직 구조 설계시 고민 포인트

협업을 개선하는 것이 목표가 되어선 안되며, 협업을 줄이는 것이 목표. 내부 협력을 위한 회의 시간을 줄이고 혁신에 더 많은 시간을 할애할 수 있다.촘촘한 피드백 순환과 결과물에 대한 부서를 막론한 주인의식

 

고객중심: 결정의 중심에 고객을 두기 위해 끊임없이 자기교정을 하는 조직을 만드는 것

서비스는 기술적으로 제품을 제공하는 것. 환대는 제품을 제공할 때 받는 사람이 어떤 기분을 느끼도록 만드는 것.

 

 

 

개발자에게 물어보세요 - YES24

스마트 팩토리 구축, 데이터가 흐르는 조직, 실험하는 문화··· 가야 할 곳은 알지만 가는 방법은 막막한 레거시 조직이 21세기 API 경제에서 디지털 공급망으로 승리하는 법기회는 사라지지 않

www.yes24.com

 

반응형

요즘은 게임을 만들려면 게임엔진을 활용하는 것이 일반적이다. 그중에서도 양대산맥은 유니티와 언리얼이다. 특히 유니티는 유연한 라이선스 모델과 풍부한 리소스 덕분에 캐주얼 게임이나 인디게임 등에서 많이 채택하여 사용되고 있다.  하지만 유니티가 워낙 많은 기능을 제공하다 보니 초반에 유니티를 배워볼까 하는 사람들에게는 어떤 책을 선택할까도 또 하나의 고민거리가 되곤 한다. 지인을 통해 추천받았던 유니티 도서들 중 하나가 Retr0님의 유니티 에센스 책이었는데, 이번에 개정판이 나와서 한번 살펴보면서 그동안의 지식을 업데이트해보았다. 참고로 나는 게임 개발자는 아니다.

전과수준으로 두꺼운 유니티.. 에센스면 정수만 뽑은건데.. 

첫 느낌...두껍다.

1070쪽의 두꺼운 분량이다. 두께가 주는 첫인상을 무시할 수는 없다. "아... 이 정도를 봐야 유니티의 개념을 익힐 수 있단 말이지"하는 생각이 절로 든다. 다행히 500쪽 정도로 2권이 분철되어 있어서 그래도 가볍게 들고 다니면서 볼 수 있었다. 분철된 도서는 처음이었는데, 사용경험이 생각보다 괜찮았다. 앞으로도 두꺼운 책은 분철된 형태로 구매하게 될 것 같다. 회사 다니면서 이 책의 내용을 전부 해보면서 읽었는데 대략 2주 정도 소요되었다.

 

4가지 게임 만들기

이 책의 흐름은 4개의 게임을 만들어보면서 유니티를 익히는 것이다.  4개의 게임을 잘 선택했다고 본다. 첫 번째로 만드는 <닷지>를 통해 유니티 인터페이스와 기본적인 에셋을 추가하고 스크립트를 적용하면서 MonoBehaviour,에 대한 개념을 익힌다. Unity의 좌표 시스템을 통해  캐릭터를 움직이고, Collider를 적용하면서 캐릭터의 충돌 감지 개념을 익힌다. 이 모든 것을 컴포넌트 기반으로 쌓아 올려서 게임을 만들 수 있구나 하는 생각을 하면서 게임을 따라 만들어 보았다.

두 번째로 만드는 게임은 <유니런>이라는 2차원 플랫폼 게임이다. 닷지를 통해 기본적인 내용을 익힌 상태에서 애니메이션 클립과 유한 상태 머신을 이용하는 방법을 배울 수 있는 좋은 예제였다. 여기까지가 1권의 내용이다.

2권에서는 좀비 서바이버라는 탑다운 슈팅 게임(마치 플레이어를 내려보는 관점에서 슈팅 게임)을 만들고 이를 네트워크 게임 플레이가 가능하도록 확장하는 내용으로 이루어져 있다.  유니티가 제공하는 인공지능 컴포넌트를 이용하여 좀비가 돌아다니면서 플레이어를 쫓아다니는 기능을 만든다거나, C# 인터페이스를 통해 코드의 재사용성을 높이기 위한 방법, 3D 모델에 레이어 개념을 적용하여 효과적인 애니메이션 효과를 얻는 방법, 포톤 엔진을 이용하여 다중 플레이어 게임을 만드는 방법(로비 기반)까지 설명하고 있다. 

예제를 통해 유니티 기초부터 활용까지 훑어볼 수 있게 설명했다는 점에서 저자가 고민을 많이 했다고 느껴졌다. 기능을 펼쳐놓고 이것저것의 기능을 설명하는 것이 아니라 백지상태에서 조금씩 기능을 추가로 사용하면서 익혔는데, 그 과정에서 4개의 게임이 만들어지도록 함으로써 흥미가 떨어지지 않고 끝까지 편하게 읽을 수 있었다.

 

친절한 설명

이 책의 독자가 누구일까? 나는 프로그래밍이 완전히 익숙하지 않은 유니티 게임 개발자가 되고 싶은 사람들을 위한 첫 책을 찾는 사람이라 생각한다. 책이 두꺼운 이유는 저자가 너무너무 상세하게 각 개발 과정을 설명하고 있다. 예를 들어 코드 설명도 초기 구조 설명 -> 각 부분별로 기능을 추가하면서 수정되는 내용 설명 -> 최종 완성된 전체 코드를 설명한다. 즉 깃헙으로 제공되는 기본 코드 골격에 이런 기능을 추가할 것이야 하면서 설명하고, 각 기능을 붙이면서 코드 한줄한줄 의도와 동작 방식을 설명한다. 그리고 그렇게 부분 부분 수정한 다음 완성된 전체 코드는 이런 모습이야 라고 보여줌으로써 초보자들의 실수를 막아준다. 예제대로 하다 보면 실수로(?) 뭔가를 빼먹었을 경우 여러 단계에서 쉽게 확인하여 수정할 수 있었다.

유니티를 사용하여 게임을 만드는 것 이외에도 C#의 기본적인 언어 특성을 설명하는데 꽤 많은 공을 들인 책이다. 하지만 언어 자체를 집중적으로 다루었다기보다는 게임 제작에 필요한 수준으로 설명하고 있다. 어느 정도 개발경험이 있는 독자라면 이런 부분은 다른 프로그래밍 서적과 유사하기 때문에 쉽게 진도를 나갈 수 있다. 예컨대 변수, 함수, 메서드, 제어문, 배열, 상속, 인터페이스, 풀링, 싱글톤, 람다식 등을 소개한 부분은 금방 넘길 수 있을 것이다. 초심자의 경우 개념을 익히는 수준에서 잘 설명되어 있다.

나의 경우 1권을 통해 유니티 개념을 살펴보고 2개의 예제 게임을 직접 만들어 보는데 3일,  2권을 통해 네트워킹까지 해보는데 4일 정도 소요되었다. 주로 주말에 집중해서 읽고 실제로 해보면 금방 저자가 전달하고자 하는 의도를 이해할 수 있었다.

 

나의 실수

책 읽으면서 한 가지 실수한 것이 있는데, 소스코드가 깃헙으로 공유되고 있다는 사실을 알고 있었다. 그런데 개정판 리포지토리가 이전 버전과 다른 것을 몰랐다. 저자분의 리포지토리를 구글링을 통해  방문했을 때 이전 버전이 맨 처음 노출되어서 이를 클론 하여 실습을 진행하였다. 그랬더니 가끔씩 책 내용에는 Asset 폴더에 있다는데 아무리 찾아봐도 없는 경우가 발생했다. 예컨대 Zombie 스크립트도 없어서 직접 작성하였다. 그 과정에서 ZombieData라는 객체를 사용하는 코드가 있는데 (750쪽) 이와 관련된 코드가 깃헙에 제공되는 코드가 없어서 결국 책 색인 부분에서 찾아서 774쪽에 나온 ZombieData 스크립트의 완성 버전을 입력하여 원하는 기능을 완성하였다.  오타를 발견한 줄 알고 출판사에 알려줘야지 하고 메모해 두었는데, 개정판 리포지토리가 따로 있는 것을 알고 방문했더니 떡하니 있는 게 아닌가.. 

저자분이 이전판 리포지토리에서 개정판 리포지토리를 안내하도록 README.md 파일을 수정해주면 나와 같은 실수를 겪는 독자가 없을 것이다.

 

 

요약

이 책을 한번 읽었다고 해서 자신이 원하는 게임을 쓱쓱 만들 수는 없을 것이다. 하지만 기본 개념들을 익히고, 자신이 원하는 게임을 만들고자 할 때 어떤 부분을 좀 더 봐야 하겠구나라는 방향타를 얻기에는 정말 좋은 책인 것 같다.

 

이 책을 다음 세 문장으로 소개하고 싶다.

  • 유니티에 대한 친절한 설명. 입문자용으로 매우 적합. 너무너무 친절한(기존 개발자에게는 지루할 정도의) 설명
  • c#이나 다른 언어에 익숙하다면 코드 부분은 정말 손쉽게 넘어간다.
  • 게임을 만들면서 개념을 익힐 수 있도록 잘 설계된 책.

 

 

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

반응형

+ Recent posts