Thought

GDG(Google Developer Groups) DevFest Busan 2023 - 회고록

방황하는 데이터불도저 2023. 12. 5. 01:22

최근 나의 외부활동은 그나마 작년 AI Korea 학회를 다녀온 것이다. 그 외에는 거의 어떤 활동도 전무한 상태에서 더이상 혼자 우물안의 개구리일 순 없다!!! 하고 요즘 여기저기 커뮤니티를 찾아다니다가 발견한 행사로 GDG Busan에서 주최하는 DevFest 행사를 다녀오게되었다.

포스터

 

 "2023년의 성장과 회고, 그리고 2024년의 미래" 라는 주제로 다양한 세션이 준비되어있었고, 참가비 만원이 있었지만 나는 고민도 하지않고 바로 신청했다!

 

신청하게 되면 행사 티켓으로 QR티켓을 받게 되는데, 실제 행사에 가서 QR을 찍고, 간단한 참가자 정보를 적은 다음, 굿즈를 받고, 행사를 마음껏 즐기면 된다.

QR 티켓


한성민 발표자님의 첫 세션이 시작되었다. 

 

주최의 GDG 그리고 발표자님 소개에 적힌 GDE라는 것이 뭔지 궁금했었는데, 바로 첫 세션에서 GDG, GDE가 어떤 것인지 소개하는 내용을 듣게 되었고, 개인적인 성장 스토리를 들을 수 있었다.

GDG는 Google Developer Groups의 약자로 구글과 연계된 비영리 목적의 단체이다. 엄청난 실력보다는 개발자 커뮤니티 기여에 순수한 열정이 있는 사람들이 운영진들로 구성되어 여러가지 가치있는 행사들을 개최하고, 여러 개발자들이 의미있는 성장을 할 수 있도록 돕는다. 

GDE는 Google Developer Experts의 약자로 GDG보다는 훨씬 전문적으로 자격여부를 판단하고, 여러 인터뷰를 거쳐 선정되신 분들로 모인 단체이다. 그동안 어느정도로 커뮤니티에 기여를 했는지 뿐만아니라 기술적인 역량까지도 근거가 될 수 있는 여러 성과들을 보여주어야 선정될 수 있다.

발표자님은 20살때부터 GDG devFest에서 발표자로 커뮤니티에 기여를 해오셨고, GDG부터 현재의 GDE까지 해온 히스토리가 있다. 지금은 또 한가지 분야가 아닌 ML/Cloud/Golang까지 맡고있으며 꾸준히 성장해온 스토리를 들을 수 있었다. 전문적인 지식뿐만 아니라 커뮤니티 영향력과 영어 소통 능력까지 고루 갖추어 엄청난 성장을 하신 분이었다. (+제프딘을 만난 썰, 

자세한 이야기 → 커뮤니티 참석자에서 Doubled-GDE가 되기까지의 여정

 

 

두번째 세션은 김주혁님으로 좋은 엔지니어가 되는 것에 대해 총 7가지로 정리하여 재미있게 발표를 진행해주셨다.

"성장하고 있을까?" → "성장이 뭘까?"
성장하고 있는가?는 내가 목표와 가까워지고 있는가?로 알 수 있다.

"좋은 엔지니어가 되기" = "강력한 비즈니스 임팩트를 발생시킨다" = 고품질 + 고속

1. 문제 중심적 사고 기르기
 - 코드와 에디터없이 문제에 대해서 생각해보자.
 - 고정형 마인드셋 vs 성장형 마인드셋 (실제 발표자료를 찍지 못해 아쉽다... 아래와 비슷한 내용이었으니 참고하자.)
출처 : https://dreamingpastor.pe.kr/5835

2. 엔지니어링임을 이해하기
 - 엔지니어링이란?
  : 과학, 기술 등의 전문지식들을 종합적으로 활용하여 문제해결 및 가치 창출을 하는 경제활동이다.

 - 최신성 편향에 주의해야하며, 본질적인 문제에 대해 생각하고, 경제적인 가치를 창출하는가에 대해 기준을 잡고 의사결정하는 것이 좋다.

3. 분할정복 알고리즘 습관화하기
 - AMAZON은 한 해에 5000만번의 배포를 했다.
 - 모든 테스크를 분할하여, 최소단위로 쪼개서 분할정복하자!

4. 완성(Completion)과 완료(Finish)를 명확히 구분하기
 - 완성은 시간과 비용을 줄이는데 초점을 맞추게되고, 완료는 완성도있는 품질로 만들어 내는 것에 초점을 맞추는 것이라고 구분했다.
 - 우리는 완성과 완료 사이의 어디쯤에서 잘 해내야 한다.
 - 참고영상 : 토스는 이렇게 시작했습니다. (Youtube)

5. 이유(Reason)와 문맥(Context)에 기반한 의사결정하기
 - 발언X : 무엇이 별로다. 이것이 좋다. 이것이 맞다
 - 발언O : 이 방법은 어떤 문제를 해결하는 건가요? 다른 방법은 어떤 것들이 있나요? 각 방법의 장단점들은 무엇인가요? 그 방법이 우리에게 가장 적합한 이유는 무엇인가요?
 - 항상 위의 발언을 하기엔 비효율이 있을 수 있으니 Convention, Best Practice, Rule, Playbook이 생긴다.

6. 품질과 속도가 항상 반대는 아닌 것을 알기
 - 속도와 안정성 두개 다 잡을 수 있다!고 믿기 (feat. 빠르게 잘)
 - 그래야 제품의 수명이 높아진다.

7. 지루하고(Boring) 뻔하고(Obvious) 예측가능하게(Predictive) 움직이기
 - "좋은 코드는 지루하고 뻔하다", Robert C. Martin
 - 코드 (↔의사소통,문서,행동)
 - 전파력이 좋다.
 - It's not rocket science (It = 토스트기)

 

세번째는 최근 우아한테크코스의 경험에 대해 공유하는 최성훈 님의 발표가 진행되었다. 페어프로그래밍이라는 것을 처음 들어보았는데, 나의 실력을 확인하는 동시에 서로의 성장을 격려해줄 수 있는 아주 좋은 도구라고 생각되어 해보고싶다는 마음이 생겼다. 저랑 같이 하실분...?!

페어프로그래밍 : ex. 10분 간격으로 네비게이터와 드라이버를 번갈아 수행한다.
1. 네비게이터 : 코드를 말로 설명하여 드라이버가 코드를 작성할 수 있도록 설득함.
2. 드라이버 : 네비게이터의 말대로 실제 코드를 개발함.

페어 프로그래밍을 통해서 소프트스킬을 향상시킬 수 있고, 해당 과정을 통해 진정한 이해를 하고, 설명할 수 있는 힘이 길러지는 효과를 얻을 수 있다.

Rule Breaker X, 존중과 배려 O, 서로의 피드백 O

추가적인 팁들
 - 매일 아침 30분정도의 데일리 미팅을 통해 개발을 할 두뇌와 서로와 협업할 마음을 깨울 수 있다.
 - 일주일에 한번씩 블로그 글을 올리고, 스터디를 통해 해당 내용을 발표하는 시간을 가진다.

 

네번째로는 이커머스 도메인의 F&F 백엔드 개발을 하시는 안지원님의 발표가 진행되었다. 업무 중 다양한 사건(?)들과 시니어 개발자들에게서 배워온 것들, 업무를 하는 방식들, 회고한 경험들에 대해서 공유해주셨다. 내가 다니는 회사에서 경험했던 업무들과 굉장히 겹쳐지는 내용들이 많아서 흥미로웠다. (내가 백엔드도 프론트 개발자도 아니었지만...) 

 - 냅다 코드먼저 개발하지 말고, 알고리즘 문서화, diagram 작성을 하여야 한다.
 - 설득에 성공하기 위해서는 지식레벨을 올려야 하고, 결국엔 공부가 필요해졌다.
 - 구두전달을 절대 피하고, github에서 PR, 무조건 기록한다.
 - 효율적인 리팩토링을 위해선 객체지향 코드가 필요하고, 결국 clean code가 답이다.
 - 인수인계를 항상 감안하고 코드를 짜야한다. (주석 필수)
 - 요구사항에 대한 cut을 잘 해야한다.
 - Study Study!!

 

다섯번째로는 요즘 정말 핫한 LLM이 탄생하기까지의 history를 발표하신 이재왕 님의 발표였다. 혼자 공부하려면 시간도 오래걸리고, 접근에 쉬운 주제도 아니다보니 어려울까? 했지만 쉽게 설명해주셔서 재미있게 들었다. 하지만 20분이라는 시간이 언어모델의 역사를 담기에는 좀 부족했던 것 같아서 아쉬웠다.

2010년 이전
 - 통계적 모델인 n-gram기반 언어모델
 - n = 1,2,3 수로 앞뒤 단어를 참고하여 다른 위치의 단어를 예측한다.
 - 제약적이다.

2010년 초기
 - 딥러닝인 RNN모델을 활용한 언어모델이 탄생했다.
 - 단어의 순서와 구조를 학습하고, 앞의 전체문장을 참고하여 다음 글을 예측한다.
 - 문장의 길이(=한 문장의 단어의 개수)만큼 벡터의 크기가 정해진다.

2013년
 - word2vec : 단어간 유사도를 측정하는데 용이하다.
 - 주변단어, 패턴을 학습한다.

아직까지 문맥의 이해와 문장 생성을 위해서 위의 기술들에는 한계가 있었다.
이를 해결하기 위한 연구가 계속된다.

2014년
 - encoder, decoder : 인코더에서 문장을 요약한 정보인 context vector를 decoder에 전달하는 방식
 - 문장을 얼마나 요약할 것인가? 2000자를 100자로, 500자를 100자로 요약하는 두 문제는 천지차이다.

2015년 
 - Attention : 이전 문장에서 필요한 부분(hidden state)만 가중치를 주어서 중요한 정보만 선택적으로 가져온다.
 - hidden state는 형태소단위/단어단위로 나눠진 단위마다 존재한다.
 - 해당 기술까지는 RNN을 계속 응용했다.
 - self-attention이라는 기술도 있음.

2017년 
 - Transformer의 탄생
 - encoder와 decoder를 완전 분리했다.

 

마지막으로 성기동 님의 세션은 이전 쉬는 시간의 네트워킹 시간을 가지느라 앞쪽 내용을 조금 놓치고, 편하게 들어버려서... 메모한 내용은 크게 없지만! 생각나는 대로 정리해보았다.

비전공자 출신에서 아주 일이 빡센(?) SI회사를 다니며 몇년동안 잠을 3시간씩 자며 사이드프로젝트로 본인만의 포폴과 프리렌서 경험으로 꾸준한 성장을 해오셨다고 했다. 잠도 줄여가시면서 개발자로서 성장에 대한 의지가 정말 대단하다는 생각이 들었다.

그 성과로는 DND라는 사이드프로젝트 플랫폼의 웹사이트를 혼자서 제작하시고, 실제 사용자수도 꾸준히 늘어 몇천명? 몇만명? 정도의 굉장히 많은 사용자가 사용하게 되었다고 하셨다. 이러한 수치적인 객관적인 자료가 포트폴리오로 쓰기 좋다며 뿌듯해하시는 모습이 부럽기도했다.

현업을 하시면서 프로그래머스에서 KDT 멘토도하시고, GDG 발표자로도 이렇게 왕성한 활동을 하시는 것이 전해 듣는 것만으로도 열정이 전달되어 몽글한 느낌이 들었다.

 

이렇게 좋은 프로그램들이 더 많아지고, 좋은 개발자들이 많이 생기며, 서로 선한 마음으로 소통하며 내가 나고 자란 부산을 활성화시키고 싶다는 생각도 들었다. 나도 언젠간 저 분들처럼 많은 기여를 하고싶다는 생각도 들었고, 지역 커뮤니티가 더욱 커지고 더욱 활발하게 만들어 개발 문화를 넓히고 싶은 마음이 들었다.

 

끝으로는 여러 후기 사진들로 마무리해보겠다!!

 

참가비 만원으로 너무나 혜자스러운 굿즈들

 

마지막으로는 럭키드로우 이벤트로 한빛미디어에서 기증해주신 여러 책들과 GDG제작 후리스 선물이 있었는데, 약 10%의 확률로 내가 당첨된것이 아닌가....! 럭키드로우 화면에서 자꾸 내 이름이 천천히 지나가서 잘 보이는게 나 걸리나??싶은 순간들이 많아서 속으로 "되라 되라!!" 외치고 있었는데 정말로 당첨되서 깜짝 놀랬따. 도파민 폭팔....

 

기증받은 책은 지은이 최범균 님의 육각형 개발자라는 책으로 "시니어 개발자로 성장하기 위한 10가지 핵심 역량"이라는 주제의 내용이었다. 앞으로 개발자로서 성장해 나가면서 6각형 [ 1) 구현 기술, 2) 업무 관리/공유/리드&팔로우, 3) 리팩터링/테스트, 4) 응집도/결합도, 5) 아키텍처/패턴, 6)품질/코드 이해 ]을 꽉꽉 채우기 위해 성장해나가는데 많은 도움이 될 책이다.

혼자서도 잘해요

 

김주혁님의 발표현장

 

끗.