- GDG Devfest 2018
동기 추천으로 GDG Devfest 2018에 참석하였다.
About DevFest
GDG 행사 중 가장 큰 개발자 축제인 DevFest Seoul 2018이 올해는 'Digital Wellbeing' 이라는 키워드 아래
11월 10일 토요일 세종대학교 컨벤션센터에서 열립니다!
GDG DevFest는 GDG 커뮤니티에 의해 매년 개최되는 개발자 행사 중 하나로,
구글 기술과 관련된 세션, 해커톤, 코드랩 등의 형태로 구성됩니다.
GDG DevFest 는 앞으로 9월부터 11월까지 3개월에 걸쳐 전 세계에서 진행되며, 참석자들은 Android, Firebase, Google Cloud Platform, TensorFlow,
웹 개발 등의 Google 개발자 기술 콘텐츠를 접하게 됩니다. GDG DevFest 는 국내 개발자들을 한자리에 모아 서로 지식을 교환하고,
아이디어를 공유하고, 기술에 대한 열정을 표출하는 장이 될 것입니다.
사실 10월에 Goole Cloud Submit Korea에 등록하여 참석할 수 있는 기회가 있었지만, 평일에 진행하였고 너무 어려울 것 같아 가서 멍만 때리다 올 것 같아서 포기했었다.
다음 기회에 꼭 가보고 싶다는 생각을 하던 찰나에 동기가 GDG Devfest에 대해 알려주었고, 토요일 진행 + 강연 내용도 좀 더 이해할 수 있겠다고 생각되어 바로 등록하였다.
티켓가격은 블라인드 티켓 15000원 , 일반 20000원이었다. (블라인드티켓은 선착순인가?ㅋㅋ)
세종대에서 진행하였고, 마침 세종대에서 2018 행복얼라이언 DAY 라고 각종 콘서트와 플리마켓을 하여 입구부터 사람들이 많았다.
이런 IT 행사는 처음이었고, 새로운 경험이어서 설레는 마음을 가지고 참석하였다. 이번 행사는 뱅크샐러드, 요기요, 카카오페이, 구글코리아 등 많은 기업들이 스폰하는 것 같았는데, 채용홍보(?)나 설문조사 참여 등을 하는 것 같았다.
기본적인 기념품(담요)
ㅋㅋ 모든 설문조사 다 참여해서 스티커 다 받음.
요기요와 카카오페이(카카오뱅크였나)에서는 명함으로 추첨을 해서 상품을 주었다. 요기요는 무려 에어팟;;;
카카오는 라이언인형
CRACKER에서도 에어팟추첨인 것 같았는데 담첨자 발표는 나중에 하는 것 같았음.
요기요는 행사 중간 쉬는시간에 바로 추첨을 하였는데, 그 자리에 당첨자가 없으면 다시 뽑는 방식으로 처음에 2명이나 자리에 없어서 다시 뽑았는데 열기가 대단했다. 당첨자 바로 안나오면 사람들 개좋아함ㅋㅋㅋㅋ
(나 역시...ㅋㅋ)
1시 45분부터 시작이었고, 4개의 장소에서 5번에 걸쳐서 진행되었다. 물론 듣다가 멍때린 부분도 있었지만, 재미있어서 엄청 집중한 부분도 있었다. 코드랩과 명상도 있었다.
https://devfest-seoul18.gdg.kr/timetable
https://devfest-seoul18.gdg.kr/timetable
좋은 경험이었음!!
- 후기
- 와 씨 서비스 하나에 이렇게 세세하게 고려해야하구나
- 난 빡대가리야.. 공부해야 할 게 넘 많다 헤헤ㅔ헤헤헤ㅔ
- 사람엄청많았음 (중학생도 봄. 나보다 잘하겠지 ㅠㅠㅠㅠ부러움)
- 처음가봤는데 꿀잼. 자극 개쩔음. 이런 IT컨퍼런스(?)/행사에 주기적으로 참석해야겠음.
- 세종대 이쁘다. 학교 다시 다니고 싶당 열심히 좀 다닐껄....
- 내가들었던 세션
1. Chrome Devtools를 활용한 성능 측정과 개선
크롬 개발자도구에 audit를 통해 웹 페이지에서 성능을 느리게 할만한 것들을 찾아 성능 측정 가능함.
개선을 하려면....
- lazyloading : 사용자 브라우저에 보이는 이미지만 로딩하고 다른 이미지들은 사용자가 스크롤하면서 이미지에 가까워지면 로딩됨
- 이미지 최적화
- 부드러운 이미지 개선
이와 같은 방법을 제시하며, 이에 맞는 API를 소개해줬음.
2. 함수형프로그래밍과 안드로이드 테스팅
이 세션에서는 안드로이드 테스팅방법에 대해 중점적으로 다루었음.
두가지 테스트로 나뉨
local test >> 이번세션에서 중점적으로 설명
instrumented test (하드웨어 기기나 에뮬레이터에서 실행되는 테스트 )
instrumented test (하드웨어 기기나 에뮬레이터에서 실행되는 테스트 )
순수함수가 테스팅에 용이하다
안드로이드는 테스팅이 어렵다 -> 가능한 부분만 분리하여 테스팅
테스트를 위해서는 함수의 독립성이 필요하다.
테스트 전략
- 테스트 불가능한 코드는 view단에 작성
- view는 최대한 패시브하게
- 함수 내에서 외부 변수 줄이기
- 함수는 input에 대해 특정한 return 값을 갖도록 작성해야함
3. 마이크로서비스 아키텍처에 서비스메시 끼얹기(Istio)
이 세션에서는
- 마이크로서비스
- 개발자가 개발에만 집중하는 방법'생산성'을 높이려면? -> 정교한 설계 or 서버리스 or 마이크로서비스 아키텍처
마이크로서비스 아키텍처 : 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처 ex) amazon, netflix 쉬운 예로 이커머스(자바스프링)에 추천기능(nodejs)을 도입하고자 할 때 같은 서버? 공간? 이 아니라 다른 환경에서 구축하여 네트워크를 통해 정보 전달&공유할 수 있게
서비스 메쉬? : 마이크로서비스 아키텍처를 적용한 시스템의 내부 통신이 Mesh 네트워크의 형태를 띄는 것에 빗대어 Service Mesh로 명명 서비스 메쉬는 서비스간 통신을 추상화하여 안전하고, 빠르고, 신뢰할 수 있게 만드는 전용 InfraStructure Layer -> 추상화를 통해 복잡한 내부 네트워크를 제어하고, 추적하고, 내부 네트워크 관련 로직을 추가함으로써 안정성, 신뢰성, 탄력성, 표준화, 가시성, 보안성 등을 확보함.
마이크로서비스 아키텍처의 문제점은 '네트워크' ->이 네트워크를 신뢰하면 안되고, 불안정하다는 가장하에 구상을 해야함ex) 1번과 2번이 네트워크를 통해 통신하는데, 1번이 2번을 호출하는데, 2번이 응답을 못하거나 속도가 느려진 상황일 때 1번은 계속 2번의 응답을 기다리는 형태가 기다린다.그러면서 서킷 브레이커의 개념을 소개함 ex) 2번이 문제가 있으면 서킷브레이커가 중간에서 1번의 호출을 끊거나 장애가 전파하는 것을 방지재시도 -> no code user Proxy재시도하는 과정을 코드를 통해 시도하지 말고 프록시에 맡겨라 (서비스메쉬) ex) 1번서비스는 프록시에 요청을 보내고 프록시끼리 통신하면서 이 과정에서 재시도나 네트워트 제어? 등 다양한 기능을 제공? 지원?서비스메쉬 LINKerd (무거움) envoy (작고 빠름) Istio (더 편리하게)각 장단점 소개하면서 Istio의 간단한 실습?을 보여줬음
4. Use JavaScript More Strictly (TypeScript,flow)
typeError는 누구나 겪는 에러
-> 타입을 미리 체크해서 human error 를 방지하자
JavaScript -> 타입이 실행 중에 정해짐 -> 동적언어, 느슨한 언어
static type 이 인기가 있어짐
flow vs typeScript facebook / MS React, Vue 등 / Angular, VSCode 등
두가지를 소개하며 typeScript를 회사에 적용하여 타입체크를 하는 했던 썰을 얘기함
- 자주 나오는 오류 순위
- 느낌점 등
5. Chromium/Blink 는 어떻게 동작하는가?
오픈소스 웹브라우저 프로젝트 -> 크롬은 크로미움 코드를 사용하여 개발됨 (블링크 및 V8 등을 기반으로 함)
소스만 15기가 / 아이맥 5K기준 빌드만 3시간이라고함
크롬은 멀티프로세스 아키텍처 -> 한 페이지에서 오류가 발생하더라도 모든 브라우저를 다운시키지 않게 함 모든 탭, 윈도우, 플러그인들이 각각 구분된 환경에서 실행되기 때문에, 어느 한곳에서 문제가 발생하더라도 다른 브라우저에 여파가 미치지 않음
마지막세션은 너무 멍때림...