2기 마지막 직군세션 각 파트별 주제를 공개합니다!
Android
- RxAndroid (발표자 : 김수연)
iOS
- Why do we use Rx?(발표자 : 김준성)
Server
- Golang(발표자 : 박준경)
- Terraform Service(발표자 : 최용호)
Dev — Android
RxAndroid
발표자 : 김수연
What is RxAndroid?
- “RxJava에 최소한의 클래스를 추가하여 안드로이드 앱에서 리액티브 구성 요소를 편하게 사용할 수 있는 라이브러리"
RxAndroid 기본
RxLifeCycle
- Android Activity, Fragment Lifecycle을 RxJava에서 사용 할 수 있게 한다.
- UI의 LifeCycle을 대체 한다기보다, Subscription할때 발생할 수 있는 메모리 누수를 방지 하기 위해 사용한다.
Dev — iOS
Why do we use Rx?
발표자 : 김준성
Why do we need it?
- 비동기가 필요한 상황을 개발할 때 어려움이 많음!
- 제가 일하는 회사 기준, 계좌 랜딩화면 전까지 돌파해야하는 레이어들이 상당히 많음. App Scheme을 타고 들어왔을 때, 정확히 의도한 시점을 파악해 그 목적과 관련된 로직을 실행할 수 있을까?
ReactiveKit VS RxSwift
ReactiveKit을 선호하는 이유
- Operator가 더 실용적인게 많음
- Custom Operator를 만들기도 더 쉽고
- Custom Error 처리 하기 더 용이하다.
What’s ReactiveKit?
- ReactiveX는 관찰 가능한 시퀀스를 사용하여 비동기식 및 이벤트 기반 프로그램을 구성하기 위한 라이브러리 입니다.
- 핵심은 3+2 (Event, Observer, Disposable, Signal(Observable), Async!)
What’s a Signal made of?
- 기본적인 시그널은 Event, Observer, Disposable로 이루어 집니다.
- “객체만 뽑아내고, 행위는 나중에 정의한다!” 행위는 Closure(block)이 되고, 이 객체에 해당하는 부분이 Event가 됩니다.
- Signal을 생성할 시, Event 부분을 정의하고, 관찰 할때 Closure를 정의합니다.
Dev — Server
Golang
발표자 : 박준경
introduction
- go는 구글에서 개발한 언어
- 간결하고 신뢰성이 있으며 효육적인 소프트웨어를 손쉽게 만들기 위한 오픈소스 프로그래밍 언어
특징
단순함
- go는 단순함과 실용성을 지향하는 언어
- 시스템, 네트워크 프로그램 특히 클라우드 환경에서 작동하는 프로그램의 개발에 특화
- 다른 언어가 가진 주요한 특징들이 없다 (exception, class, generic)
컴파일 언어
- 인터프리터 방식의 언어가 아닌 컴파일 방식의 언어
- 컴파일 언어이면서 네이티브 바이너리 형식이기 때문에 가상머신이 필요없다.
- 소스코드를 기계어로 번역하는 빌드 과정에서는 인트프리터 언어에 비해 시간이 소요되지만, 런타임 상황에서는 인터프리터보다 빠르게 실행 가능
GC
- GC가 존재해 메모리를 직접 관리할 필요가 없다
references
defer() & panic() & recover
- defer는 특정 문장 혹은 함수를 나중에 실행하게 하며, 일반적으로 clean-up 작업을 위해 사용한다.
- panic은 현재 함수를 멈추고 현재 함수에 defer 함수들을 모두 실행한 후 즉시 반환한다.
- 상위 함수에도 똑같이 적용되고 계속 콜스택을 다고 올라가며 적용한다.
- recover은 panic 함수에 의한 상태를 다시 정상상태로 되돌리는 함수이다.
struct를 이용한 객체지향
- struct가 class 키워드를 대신한다.
- receiver를 이용해서 어느 구조체의 메소드 인지를 정의
- receiver는 value receiver와 point receiver 2가지가 존재
goroutine
- os thread보다 훨씬 가볍게 비동기 처리를 구현하기 위하여 만든것
- go runtime이 관리
- go routine들은 os thread와 1:1로 대응되지 않고, multiplexing으로 훨씬 적은 os thread를 사용
- os thread가 1Mb의 스택을 갖는 반면, go routine은 훨씬 작은 스택을 갖는다 (필요시 동적으로 증가)
Terraform Service
발표자 : 최용호
테라폼 서비스가 무엇인가?
- 테라폼은 code를 통해 인프라 리소스들을 관리할 수 있는 서비스
- aws, azure 과 같이 유명한 서비스들의 provider들을 제공하여 각 리소스를 코드화 하여 하나의 프로젝트에서 리소스들을 묶음으로 관리함
이렇게 안드로이드, iOS, 서버 개발 직군 세션을 모두 마무리하였구요. 몇몇 분들은 아쉬움의 쫑파티를 진행하였다고 합니다!! 그동안 정말 고생 많으셨습니다. 7월 6일 마지막 세션에서 모두 모여요! 그럼 안녕~!!!
페이스북 https://www.facebook.com/dddstudy
문의 메일 dddstudy1@gmail.com