ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DEVGROUND JUNIOR 2019 참여 후기 (1)
    IT행사 2019. 12. 15. 21:15

    http://devground.hanbit.co.kr/

    지난 금요일, 연차를 내고 데브그라운드 주니어에 참석했다. 

    주니어를 대상으로 한 행사는 처음이었다. 다른 행사에 비해서 공감 가는 내용도 많을 것이고, 주니어 개발자로서 가지고 있던 궁금증을 해소할 수 있을 것이라고 기대하는 마음으로 신청했다. 무엇보다 개발자로서 "성장"에 대해 많은 고민을 가지고 있는 나였기에 더더욱 기대되는 행사였다. 

     

     

     행사에는 굉장히 많은 주니어 개발자들이 참석했다. 이렇게 많은 개발자들이 나와 같은 고민을 하고 있다는것이 가장 큰 위로가 되었다. 준비된 모든 세션들 또한 큰 위로와 도움이 되었다. 어떤 세션에서는 성장에 대한 자극을 받기도 하고, 어떤 세션에서는 어떻게 성장하면 좋을지 방향에 대한 힌트를 얻기도 하고, 어떤 세션에서는 잠시 쉬었다 가도 좋다는 위로를 받기도 했다. 

     컨퍼런스나 세미나를 다녀오면, 보통 이런저런 좋은 '느낌'만 남는 경우가 많았기에, 이번 행사에서는 모든 세션을 들으면서 최대한 많은 내용을 기록하려고 노력했다. 그 내용을 블로그에도 기록하고자 한다.

     

     행사에 대한 사족을 더 붙이자면, 한빛미디어 측에서 정말 공들여서 준비한 흔적이 많이 보였다. IT서적을 진열해 놓은 공간이 따로 있어서 괜히 뒤적뒤적 거리며 구경하기도 했다. 맘에 드는 책 몇 권을 정해놓고, 가져가기 무거우니까 인터넷 서점에서 주문해야겠다 마음먹기도 했다. (지금 Yes24에서 한빛미디어 IT서적 구매하면 JAVA, C, PYTHON 컵을 주는 이벤트가 진행되고 있다!)

     세션을 진행하는 연사분들도 한빛미디어측의 말마따나 "어벤저스"급이었다고 생각된다. 약간 연예인 보는 느낌도 들고 그랬다.. 싸인 받을 뻔 ☺️

     행사가 끝나고 진행된 추첨에서도, 많은 선물들이 준비되었다! 책, 컵, 라이선스 등등.. 정작 난 아쉽게도 참여했던 IT행사 최초로!! 아무것도 당첨되지 않았다😱 흠.. 우주의 기운을 모으면 곧잘 당첨됐었는데.. 세션들을 너무 열심히 듣느라 좀 부족했었다보다. 😏

     

     

     


    개발자가 갖추어야 할 9가지 기술

    박종천 삼성전자

    •  

     첫 번째 세션은 박종천님이 진행해주셨다. 박종천 님은 아리스토텔레스 수사학 - 청중을 설득하는 3가지로 운을 떼었다. 청중을 설득하는 3가지 요인에는 말하는 내용, 말하는 형태, 말하는 사람이 있다고 한다. 말하는 사람이 어떤 사람인지 알아야 내용 전달에 중요하기 때문에, 박종천 님은 우선 박종천 님 자신에 대해 소개하고 시작하셨다.

     

    박종천 님은...

     26년째 개발자 생활 중이라고 하신다. 간단하게 이력을 살펴보자면 아래와 같다.

     - 한글과 컴퓨터

     - 보스턴 소재 스타트업

     - 블리자드

     - 넥슨

     - (현) 삼성

     특히 블리자드에서는 스타크래프트의 한글 채팅을 만들기도 하셨다고 한다. (한 번도 안 해본 게임이지만, 어렸을 때 아빠가 하는 걸 어깨 너머로 보기를 즐겼던 기억이 있다! 아빠를 대신해서 감사합니다 😆)

     강연을 듣는 내내 박종천 님의 카리스마와 강연 실력에 압도되었는데, 실제로 박종천 님은 강연하기를 좋아하신다고 한다. 일례로 삼성전자 내에서 진행되는 대학생 강연도 진행하셨다. 오랫동안 개발자로 일한 경험을 후배들에게 잘 전하고 싶다는 비전을 가지고 계신다고 한다.

     

    개발자가 갖추어야 할 9가지 기술은?

    어떻게 해야 훌륭한 개발자가 될까?

     - Hard Skills

      1. Basic Knowledge

         학교에서, 직장에서, 혼자서 공부하며 얻을 수 있는 기본 지식이 필요하다.

         Programming Language, 자료구조, 알고리즘 등

      2. Understanding for product

         제품에 대한 분석이 필요하다.

         예를 들자면, 블리자드 직원들은 전부 게임에 미쳐있어서 잘 될 수밖에 없다.

         음식점 사장님이 요리해서 먹는 것을 좋아한다면 잘 될 확률이 높다!

      3. Development Cycle

         개발 사이클에 대한 이해가 필요하다. 개발 사이클은 보통 아래와 같다.

    요구사항 분석 - 디자인/모델링 - 구현 - 테스트 - 릴리즈 - 피드백 - 업데이트

         주니어 개발자들은 구현에 중점을 두지만, 연차가 있는 개발자들은 사이클 하나하나 같은 비율로 중요하게 생각한다.

         사이클 중 테스트와 관련하여, 구글의 테스트 사례를 들여다볼 수 있는 책을 하나 소개해주셨다.

    https://book.naver.com/bookdb/book_detail.nhn?bid=6941633

     

    How Google Tests Software

    Seamless delivery of cloud software at scale is a massive challenge, but one company has largely surmounted it: Google. In reaching this goal, a state-of-the-art testing process was of paramount importance. This book offers an unprecedented "under the hood

    book.naver.com

    - Soft Skills

    소프트 스킬은, 타인과 잘 소통하는 능력과 관련되어 있다. 소프트 스킬로 넘어가기 전 박종천 님은 "회사에선 남들과 잘 지내는 사람이 성공한다"라고 덧붙여 주시기도 하셨다.

      4. Debugging the Development Process

      5. Project Management

         Why (왜 하는가), What (무엇을 하는가), How (어떻게 하는가)가 핵심이다.

      6. Team Management

         팀 관리는 네 단계로 나눌 수 있다.

    Forming(팀이 갓 만들어짐) - Storming(폭풍 같은 단계) - Norming(어느 정도 진정)- Performing (좋은 퍼포먼스를 냄)   

         Knowledge : 팀이 무엇을 잘하는지 알아내고

         Trust : 그 능력을 믿을 수 있다면 가장 이상적인 단계이다.

      7. Process

         프로세스는 어떤 일을 실패하지 않게 하기 위해 만든다.

         프로세스를 만들고, 강화하는 단계가 있다.

         PMMM (Project Management Maturity Model)이라는 프로젝트 관리 성숙도 모델이 있다고 한다. 5단계 체계로 이루어져 있다.

           1) Initial : 구성원들이 같은 언어를 사용한다. (같은 용어를 사용하고 서로 무슨 말을 하는지 알고 있다.)

           2) Repeatable : 같은 프로세스를 사용한다. (같은 일을 할 때 항상 그 결과가 나오므로, 실패하지 않는다.)

           3) Defined : 같은 방식으로 일한다. (팀 별로 프로세스가 같다.)

           4) Managed : 평가할 수 있고, 개선할 수 있다.

           5) Optimized : 위의 과정을 지속하여 끊임없이 변화한다.

      8. Hard Code

    - Business Skills

      9. Business Management

         Business Skills 중, 주니어 개발자에 해당될만한 HR System(인사 시스템)에 집중하여 이야기해주셨다.

         이력서를 검토할 때 중요하게 보시는 세 가지가 있다고 한다.

           1) 왜 이 회사를 선택했는지

           2) 왜 당신인지

           3) 이 회사에서 무얼 할 수 있는지

     

          면접을 볼 때 코딩 테스트나 테크 인터뷰를 하는 경우도 있다고 한다.

          코딩 테스트의 경우에는 CodilityHarkerRank와 같은 사이트를 사용한다고 언급하셨다. 

     

          채용의 목표는 잘하는 사람을 뽑는 것이 아니라, 못하는 사람을 안 뽑는 것이라고 한다. 때문에 면접관이 생각할 때 '아니다' 싶은 기준에는 걸리지 않도록 노력해야 한다고 한다. 박종천 님의 개인적인 기준으로는 세 가지가 있다고 한다.

           1) 똑똑한가? : 공부하고 버리는 것이 개발 업계의 트렌드인데, 빠르게 배울 수 있는 사람인가?

           2) 부지런한가?

           3) 착한가? : 즉, 악하지 않고 속이지 않는 사람인가?

          

         평소에 궁금했던 부분도 해소해주셨다. 바로 "프로의 기준"에 대한 질문이다. 개발자뿐만이 아니라 디자이너, 기획자 등 다양한 직무를 가진 친구들과 가끔 나누는 이야기이다. "어느 정도로 해야 프로라고 할 수 있을까?"

         박종천 님은 프로, 즉 '리드 개발자'는 미지의 영역을 잘 해낼 수 있는 개발자라고 말씀해주셨다. 남들이 해보지 않은 영역에서 능력을 발휘하는 개발자가 리드 개발자라고 한다.

     

     

      이렇게 개발자가 갖추어야 할 9가지 기술에 대한 이야기가 마무리되었다. 박종천 님은 마지막으로 벤자민 바버의 명언을 소개하며 세션을 마무리했다. IT업계에서 생존하는 전략은, 아래와 같은 기준을 바탕으로 배우는 자세를 잃지 않는 것이라고 한다.

    나는 세상을 강자와 약자, 성공과 실패로 나누지 않는다.

    나는 세상을 배우는 자와 배우지 않는 자로 나눈다.

    - 벤자민 바버

     

     

         Q&A

    Q. 개발 외에 다른 분야(설계/디자인) 조직에 좋은 영향을 미치는 방법이 있다면?
    A. 다른 조직 사람들을 한 달에 한 번이라도 만나보기 / 내가 모르는, 다른 조직과 관련된 책 읽어보기
    Q. 개발자로서 자기 관리법이 있다면?
    A. 시간관리가 곧 자기 관리. 
        일주일 동안 쓴 시간을 정리해보면 쓸모없는 데 사용한 시간이 얼마나 많을지 깜짝 놀랄 것이다.
        지금 공부를 하고, 사람을 만나는 데 사용하는 시간이 나중에 이자처럼 쌓인다. 

     

     첫 세션이 시작되기 전까지는 아침 6시에 출발해서 2시간 반 가량 이동한 탓에 굉장히 피곤한 상태였는데 박종천 님의 세션이 끝나고 나니 잠이 달아났다. 아직 많이 부족하다는 생각, 더 열심히 해야겠다는 생각이 들었다. 미지의 영역에 도전할 때 충분히 잘할 수 있을 거라는 확신을 가질 수 있는 개발자가 되고 싶다. 

     

     

     

     


    AI: 막막해하는 당신에게

    임태규 motion2AI

     두 번째 세션부터는 트랙에 따라 강의실이 나뉘어서 진행되었다. 임태규 님의 세션과, 서하연 님의 "해외에서 데이터 기업 성장시키기" 세션 둘 다 너무 들어보고 싶었지만, 내 몸은 두 개가 아니기에 선택을 해야만 했다. 세션 시작 시간이 코앞으로 다가올 때까지 어느 세션을 들을지 고민하다가 결국은 좀 더 궁금했던 AI 분야의 세션을 듣기로 했다. 

     

     임태규 님은 포스텍, 삼성전자를 거쳐오셨고 현재는 motion2ai라는 스타트업에서 Computer Vision으로 업무를 진행하고 계시다.

     

    AI란 무엇인가?

     AI는 Tool이다. 우리는 "이 도구를 어떻게 하면 잘 활용할 수 있을까"에 대한 고민이 필요하다.

     

    AI를 위한 장비

      1. 언어

         예를 들자면 C/C++, Python, Pytorch, Tensorflow가 있다.

         어디까지 공부하면 좋을까? 최소한 남의 코드를 봤을 때 80% 이상 이해할 수 있을 정도로 공부해야 한다.

      2. 자료구조 

         상황에 따라서 적절한 자료구조를 활용하는 연습이 필요하다.

         자료구조를 공부할 때 Tip. 제시되는 메모리보다 더 적은 메모리가 주어졌다고 가정하고 연습해보자. 마치 실전처럼.

      3. 전략

         알고리즘 : 이해하고, 잘 사용하고, 스킬업을 위해 코드리뷰해보자

         Mathematics 101 : Linear Algebra, Probability, Geometry, Physics101을 공부하자.

         Insight [통찰] : 이 코드의 역할은 무엇일지, 코드의 장/단점을 무엇이며 단점에 대한 해결법은 무엇일지 깊이 들여다보기.

      4. Curriculum Vitae [이력서]

         이력서에서 중요한 네 가지가 있다고 한다.

           1) 내가 했던 것을 꾸준하게 정리해나가자.

           2) 나의 Selling Point는 무엇일지, 타깃을 잘 잡자.

           3) 거짓말이나 과장은 하지 말자.

           4) 내가 무엇을 했는지 정확하게 알고 있자 (프로젝트의 장/단점과 가치, Issue, 해결법, 성능개선 정도를 알고 있어야 한다.)

      5. Project Management

         사이드 프로젝트와 같이 따로 시간을 내서 프로젝트를 진행할 때, 중요한 것이 있다고 한다.

           1) 끝을 보아라. : 결과가 어떻든간 시작한 프로젝트는 끝내야 한다.

           2) 그게 끝이 아니다. : 이 프로젝트로 얻은 것은 무엇일지, 실패했던 것은 있는지, 보완해야 할 점은 있는지 생각해보아야 한다.

      6. 시간, 일

          '일'에는 세 가지 범주가 있다고 한다.

            1) 내가 해야 할 것. 즉, 시간만 들인다면 끝낼 수 있는 것

            2) 내가 할 수 있는 것. 즉, 나의 고유한 능력을 포함시키는 것

            3) 내가 손대면 죽을 것 같은 것 => 이 범주에 대해서, 다음에 똑같은 일을 받았을 때 어떻게 하면 잘할 수 있을지 고민해보아야 한다.

      7. READING

         임태규 님은, 통찰력을 키우기 위해서는 책을 많이 읽어야 한다고 말씀하셨다. 나 같은 경우에는, 책을 읽는 취미가 생긴 지 몇 개월 되지 않았다. 작년까지는 책을 1년에 1권 읽을까 말까 했었는데 올해 7월부터는 한 달 평균 4.5권 정도는 읽는다. 초보 독서러로써, 이 말이 무슨 말인지 살짝 알겠다. 확실히 책을 읽기 전보다 생각하는 범위가 넓어진 것 같다. 다음은 임태규 님이 추천해주신 책들이다.

     읽어 본 책도 보이고, 나중에 읽어봐야겠다며 서재에 담아둔 책도 몇 권 보인다. 이참에 책은 도끼다부터 차례로 읽어봐야겠다.

     

    마지막으로 전하는 말

     * 사소한 것에 목숨 걸지 말 것

     * 자신감은 없어도 자존감은 가득할 것

     * 나 자신에게 한 약속은 반드시 지킬 것

     

    Q&A

    Q. 어떤 문제에 어떤 알고리즘을 써야 할지 판단하는 팁이 있다면?
    A. 알고리즘이 어떤 원리로 돌아가는지 잘 알고 있어야 한다. 기본기를 탄탄하게 가지고 있으면 어떤 알고리즘을 선택하더라도 잘할 수 있다.
    Q. 어떤 머신러닝 라이브러리를 배우면 좋을지
    A. 회사마다 상이하다. 현재는 파이토치와 텐서플로를 사용 중이다. 라이브러리는 충분히 빠른 속도로 익힐 수 있기 때문에, 라이브러리 선택에 중점을 두기보다는 파이썬을 깊게 배우는 게 좋다.
    Q. AI업계에서 선형대수나 확률물리를 모르고 단지 라이브러리만 사용할 때 부딪히게 되는 한계가 있는가?
    A. 한 단계 나아가고 싶을 때 나아갈 수 없다. 계속 남들이 해준 것 만 쓸 수 있고, 원하는 것을 구현할 수 없게 된다.

     

     사실 AI는 욕심은 나지만 아직 시도해보진 못 한 분야이다. 뭔가 '각 잡고' 해야 할 것 같다. 프로그래밍이 전반적으로 그런 특성을 가지고 있지만, AI는 특히 더 그런 것 같다. 이번 세션은 AI에 대한 내용이 아니더라도 다른 내용들이 참 와 닿았다. 특히 마지막으로 전하는 말 "나 자신에게 한 약속은 반드시 지킬 것". 나는 나 자신과의 약속은 무지하게 많이 만들고 시간이 지나면 '내가 그랬었나?' 하는 편이다. 감사일기를 쓰겠다, 1일 1커밋을 하겠다, 오늘은 퇴근하고 공부를 꼭 하겠다... 이런 약속에 대한 성사율은 낮은 편이다. 스스로에게 한 약속은 꼭 지키자. 습관으로 만들자.

     

     


     

     

     

    DEVGROUND JUNIOR 2019 참여 후기 (1)  - 현재 글

       개발자가 갖추어야 할 9가지 기술 / AI: 막막해 하는 당신에게 

    DEVGROUND JUNIOR 2019 참여 후기 (2)

       내가 주니어 개발자 때 알았더라면 좋았을 것들 / 성장을 바라는 웹 프론트엔드 개발자를 위한 제언

    DEVGROUND JUNIOR 2019 참여 후기 (3) 

      오픈소스 속에서 성장하기  / 절망 드리븐 성장: 함께 일하고 싶은 개발자가 되기까지

    DEVGROUND JUNIOR 2019 참여 후기 (4)

      개발자도 DB 모델링을 알아야 할까요? / AI/데이터 시대를 사는 개발자를 위한 생존가이드

     

     

     

    댓글

Designed by Tistory.