let'swift 2019 review

2019-11-17
Seminar

안녕하세요. 도미닉입니다.

이번주 화요일에 렛츠스위프트에 처음으로 참여해봤습니다.

그에 대한 리뷰를 작성해보겠습니다.

Let’swift

첫번째 발표

레이니스트에 박보영님께서 발표해주셨습니다.

RxSwift 에서 Combine 으로 바꾸는 내용들에 대해서 간략하게 설명해주셨습니다.

RxSwift 와 Combine 둘 다 관심가는 주제라서 재미있게 들었습니다.

두번째 발표

라인비즈플러스에 백성욱님께서 발표해주셨습니다.

그래픽 쪽으로 공부를 많이 하신 분이였습니다.

그래픽과 에니메이션에 대해서 심도깊은 이야기를 해주셨습니다.

아래는 말씀해주신 내용들입니다.

  • UIBezierPath

  • 그라데이션을 주려면 CAGradiention Layer 를 사용해야한다.

  • Location 은 첫번재 칼라의 위치이다.

세번째 발표

야놀자에 강승철님께서 발표해주셨습니다.

아래는 말씀해주신 내용들입니다.

  • CADisplayLink

  • Looper

  • 보고 있는데 버튼이 움직이면 기분 나쁨

  • 로그를 찍을 때 section 3 부터 찍힘(DI팀이 좋아한다) -> 안보이는 영역에 있었을 때 문제

  • Render 에서 전체가 다 fetch 된 다음에 다 보여주게 할 수 있다. (한번에 여러개가 보여지면 랙이 발생함, section1이 보여질 수 있음에도 불구하고 기다려야한다)

워크샵 첫번째 시간

점심 시간 이후에 워크샵 발표를 들었습니다.

라인비즈플러스에 최완복님께서 발표해주셨습니다.

아래는 말씀해주신 내용을 메모한 것입니다.

좋은 코드란

  • Readability 가 좋다
  • Solid 원칙을 잘 지켰다.

함자(Functor) :
값(Value)을 담은 Context로 되어있고, map function 을 지원하는 것

map은 내용만 변경할 수 있었다.
flatMap 은 컨테이너도 변경할 수 있다.

모나드
값(Value)을 담은 Context로 되어있고, flatMap function 을 지원하는 것

로빈 포플스톤의 일급 객체에 대한 정의

워크샵 두번째 시간

코드스쿼드에 JK 께서 발표해주셨습니다.

아래는 말씀해주신 내용을 메모한 것입니다.

의도를 명확하게 하라
같은 메소드 내에 추상화 수준을 맞춰라

SOLID
SRP - Actor 들이 사용하는 것을 기준으로 책임을 나눠라
OCP - 확장에는 열려있고 변경에는 닫혀있는..
LSP - 상속 관계를 만든다 확장을 해야할 것 같을 때는 프로토콜을 만들고 그 프로토콜을 채택한 여러 것들을 추가한다.
ISP - 인터페이스 분리 원칙
DIP - 의존성 역전의 원칙, 의존성을 setter 로 넣어주는 방법도 있다.

GRASP 패턴

코드 리뷰
Private 을 먼저 구성(get, set 만드는 것은 지양) - 그래야 연관된 작업은 이 객체 안에서 처리하게 됨 (안그러면 어디서 데이터를 바꾸는지 다 찾아야함)

하드 코딩 제거(“|”, 0, 1 등)
프로토콜의 이름은 형용사(able 등)
출력할 때 제일 정확한 데이터 포멧을 넘겨주는게 좋음(사다리는 Bool)

다형성이 분기처리를 하도록 짜라
If ~
Retune
Return

이런 방식이 아니라 두개의 객체를 만들어서 다형성으로 짜라

구조적 프로그래밍
Goto 구문 없이 반복문으로 제어 흐름에 대한 직접적인 전환

  • 발표 피피티 참고

Creator 패턴

  • 발표자료 참고

메소드를 호출한다고 하지 않고 operation 을 통해 메소드 호출
그 객체가 가지고 있는 메소드를 호출한다고 하지 않고 메시지를 보낸다고 한다.

점으로 두번 이상 눌러서 들어가지마라

정리

렛츠스위프트에 처음으로 참여해봤습니다.

1년에 한 번 열리는 큰 행사라서 그런지 스케일이 꽤나 컸습니다.

자극도 받고 좋은 시간 보냈습니다.

이런 큰 컨퍼런스를 열어주신 JK 와 스텝 분들께 감사드립니다.

읽어주셔서 감사합니다.