개발자를 위한 구글 검색 노하우 후기 2편
출처 : https://blog.naver.com/skabin/221266322873
2018년 4월 25일 오후 7:30. 선정릉에 있는 eBrain에서 열린 '개발자를 위한 Google 검색 노하우'라는 세미나에 참석했다. 그 내용을 한번 더 정리하고, 혹시라도 도움이 될 개발자가 있을까 싶어 글을 작성한다.
강의자는 김환규라는 분으로 이분의 이력은 아래와 같다.
김환규
- devpis.com 700건+의 답변, 30건+ 강좌, okky 300건+의 답변
- Microsoft 초대 MVP
- 2010년 Startup TalesApp.com 창업 : 무료 USB 앱 DriveS 개발자
- Open Mobile Alliance Games Services Working Group, W3C AR,
Mobile Web Application 국제 표준화 기고 20건 이상, 10건 채택
- 중소기업부터 대기업, 창업까지 두루 경험
- 2018년 4월 현재 프리랜서로 활동 중
지난 번 1편에 이어 마저 담지 못한 이야기들을 2편을 통해 담으려 한다. 지난 1편에서는 문제 해결의 단계, 실질적인 구글 검색 노하우와 해당 케이스, 좋은 답변을 찾는 법, solution provider가 되기 위해 지니고 있어야 할 마인드에 대해서 이야기했다. 이번 2편에서는 답변자들이 답변을 통해 얻는 이득, 개념이 잘 잡히지 않는 기술을 정확히 익히는 법, 참여자들의 질문과 답을 정리해보고자 한다.
궁금해 해본 적 없으셨나요?
이 사람들은 도대체 왜 자신의 시간을 써서 이런 답변을 해주고 있는 것일까..
꼭 개발에 한정된 이야기는 아닐 것이다. 인터넷 세상에서는 '질문하는 자'와 '답변하는 자'로 나뉜다고 해도 과언이 아닐만큼 수많은 정보를 찾는 사람과 제공하는 사람들이 존재한다. 예전에 나도 이런 생각을 했었다. 도대체 이 사람들은 왜 이렇게 다른 사람들이 궁금해 하는 것에 대한 답변을 해주는 것인가, 혹은 왜 자신이 알고 있는 정보를 시간과 에너지를 써가며 올리는 것인가.
사람들마다 그 목적은 다를 수 있다. 김환규님이 답변을 하게 만드는 원동력은 '자신의 실력을 키우는 방법'의 하나라고 여기기 때문인 것으로 느껴졌다. 1편에서도 언급했듯, 김환규님은 자신은 미처 생각하지 못했던 질문을 올려주는 이들에게 고마움을 느낀다. 왜냐하면, 자신은 하지 못한 고민을 그들의 질문을 통해 하고, 이로써 더욱 많은 것을 탐구하고 알아갈 수 있는 기회를 얻기 때문이다. 스스로 고민해 보지 않는 한, 질문자는 계속 질문자로 남아 실력을 키울 수 없고, 답변자는 계속해서 더욱 잘하게 된다. 회사 내에서도 마찬가지. 계속해서 문제 해결을 하는 사람이 실력이 올라간다. 이것은 내가 얼마전 면접 때 들었던 한 대표님에게서도 들었던 이야기이다. 그 대표님이 회사를 다니던 시기, 아무도 하고 싶지 않아하는 어려운 문제를 맡아 해결하는 과정을 통해 실력을 쌓을 수 있었고, 그것을 인정 받아 많은 연봉을 받고 높은 지위도 얻을 수 있었다고. 그래서 자신이 제일 중요하게 여기는 것은 다른 무엇보다 배움, 그리고 어려운 문제를 스스로 해결해보려는 의지라고 했다.
그래서 이들은 조언한다. 10가지의 문제에 닥쳤다면 딱 1문제만이라도 자신이 스스로 해결해보라고. 날밤을 새더라도, 몇날 며칠을 고민하더라도 해보라고. 설사 그 문제가 해결되지 않더라도, 그래서 결국 다른 사람에게 물어보게 되더라도 스스로 고민하고 해결하려 시도 했느냐 아니냐는 큰 차이가 난다고 말한다. 처음에는 1가지의 문제로 시작하다가 점차 범위를 넓혀나가다 보면, 어느새 나도 누군가의 문제를 대신 풀어줄 수 있을 만큼의 실력자가 되어 있을지도 모른다.
개념이 잘 잡히지 않는 기술을 정확히 익히는 법
기술은 변한다. 새로운 개념은 계속해서 나온다. 그러나 그 개념을 정확히 이해하기란 쉽지 않을 때가 많다. 어떻게 하면 이 개념들을 잘 익힐 수 있을까?
처음 접하는 개념, 기술을 최대한 정확하게 익히기 위해서 초반에는 조금 더 공을 들여야 하는 것 같다. 김환규님의 방법은 이러하다. 일단 처음 시도해보는 기술의 경우 무작정 쓰기보다는 쓰기 전 해당 플랫폼이나 기술을 왜 쓰는지, 어떤 장점이 있는지 등등을 최대한 이해하려 노력한다. 그 방법중의 하나는 유투브 동영상 강의를 찾아보는 것이다. 팁은 이와 같다.
- 컨셉 이해를 위해서는 초보를 위한 강의를 들어라. (김환규님이 즐겨듣는 어떤 강의자의 경우, 깊은 내용과 기술을 다루지는 않지만 초보적인 지식을 짧게 전달함으로써, 그 컨셉을 익히기에 좋았다고 한다.)
- 동영상은 3~5분 이내에 어떤 샘플이 돌아가는 형태를 찾아라. 따라했을 때, 동작하는 형태로 끝나는 것. 한시간짜리는 지루해서 다 보지도 못하고 따라하지도 못한다!
- 대체로 좋은 강의는 영어로 이루어지는 것이 많다. 유투브 자동자막 기능(ASR. Automatic Speech Recognition)을 활용해라.
- 직접 타이핑하라. 툴을 활용하지 말고, 손수 하나하나 타이핑하고 적어보는 것이 좋다. 구조적인게 파악이 되면 기본 베이스가 쌓이면서 응용력이 생긴다.
- 자신 있는 언어의 경우에도 훌륭한 강의들이 많다. 해당 언어를 사용하는 새로운 트렌드에 대한 강의도 있으니, 꾸준히 찾아보고 공부할 것.
※추천 동영상 예
1. Node.js 기초 관련
2. React
Q&A
Q1. 개발시 작성하면 좋은 문서들의 샘플을 얻기 위해 검색해 본 적 있으신지?
A) 사람이 적은 개발 환경에서는 효율성이 중요하다고 생각한다. 따라서 주로 공유가 필요한 부분들만 구글닥스나, 구글 슬라이드로 간단히 작성해 공유하는 편이다. 특히나 내가 참고한 링크나 검색했던 키워드 같은 것들 위주로.
일정 관리는 아사나(ASANA)나 인스타간트(Instagantt) 툴로 관리한다. 프로젝트의 프로세스를 보여주기 좋아서 쓴다. 디자이너와 커뮤니케이션 하는 경우, 제플린(Zeplin)을 즐겨 쓴다. 어떤 요소를 수정해달라는 요구를 할 때, 만나서 하지 않아도 되게 해주는 툴이라 생각한다.
리포트가 중요한 프로젝트의 경우, uml 도구로는 스타UML(StarUML)을 활용하고, DB 툴로는 ER-Diagram을 자동으로 만들어주는 DBeaver를 쓴다.
Q2. 오픈소스 적용 시 책임 소재 때문에 선택 시 소심해진다. 오픈소스 적용의 기준은 무엇인가?
A) 쓰는 것을 두려워 하기 보다는, 처음 고를 때 사용자들의 선호도를 최대한 고려한다. 그러나 고민보다는 적용을 해보는 게 빠를 수도 있으니, 써보고 그 느낌을 느끼고 쓴다. 해당 오픈 소스를 적용해 개발했는데 중간에 요구사항이 바뀌었고 해당 오픈소스는 요구사항을 적용할 수 없을 경우, 요구사항을 받지 않거나 먼저 쓴 것은 나중에 도움이 될거라 생각하고 새로운 오픈소스를 찾아 적용한다.
새로운 오픈소스를 빨리 적용하려면 최대한 많이 써봐야 한다. 그 속도를 높이는 것이 중요하다 생각한다.
Q3. 답변을 다는데 7개월이 걸렸다는 질문은 무엇이었는지?
A)'Http upload, download 만드는 방법 설명해주세요….'였다. 당시 다른데에서는 돈을 주고 파는 것이었는데, 오픈 소스를 직접 만들어 무료로 풀어 좋은 호응을 얻었다.
Q4. 답변을 달다가 회의감이 드는 경우는 없나? 예를 들면 답변을 해주었는데, 질문자가 도움이 되지 않는다고 불만을 갖는다던지...
A) 경험상 질문자가 만족하지 못하는 경우는, 내가 말을 너무 어렵게 했거나, 질문자가 따라해봤는데 되지 않는 경우라고 생각한다. 코드가 백줄이면 설명이 백줄이어야 한다고 생각한다. 용어는 최대한 쉽게 쓰고, 화면을 일일이 캡쳐한다. 소스도 전체를 공개한다. 그럼 추가 질문이 거의 오지 않는다. (회의감은 들지 않으셨나봐요..ㅎㅎ)
이렇게 해당 세미나에 다녀온 내용 정리가 끝났다. 내가 세미나의 내용을 잊지 않기 위해 정리차 글을 썼지만, 생각보다 쉽지 않았다. 평소에 이런 글들을 작성하고 공유해주시는 분들의 수고로움에 다시한번 감사를 드리게 된다. 이번 세미나에서 내가 느꼈던 가장 큰 깨달음은 '내가 어려운 것은 남들도 다 어렵다는 것'이었다. 가끔 내가 엄청 시간을 들였음에도 어떤 문제를 잘 해결하지 못했을 경우, 흔한 말로 '삽질'이라고 하지. 이런 경우 나는 나를 엄청 비관했었다. 그리고 그 시간을 무척이나 아까워했었다. 결국 시간을 낭비한 것이라 생각했기 때문이다. 하지만 배움과 익힘을 즐기는 사람들은 그 시간이 꼭 필요한 것이라 생각하는 것 같다. 그리고 그 시간들이 쌓여 자신의 실력이 된다고 굳게 믿고 있었다. 그들과 내가 다른 것은 큰 지적인 능력이라기 보다는, 스스로 문제를 해결하고자 하는 마음과 거기에 드는 시간과 에너지를 아까워하지 않고 즐기는 것이 차이였다고 생각한다. 나만 어렵고, 나만 못하는 게 아니다. 그러니 다른 모든 개발자들도 조금 더 힘을 내었으면 좋겠다!