iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제23호 2021년 1월 10일

 님을 위한 iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다. 2021년 새 해 첫 뉴스레터입니다. 오늘은 예고해드린 데로 애플 실리콘 첫 제품 M1 맥에 대해 특집으로 이야기해보겠습니다. 

매월 둘째, 넷째주 일요일에 뉴스레터를 발행하고 있습니다. 
누구나 함께하는 뉴스레터 저장소 👉
메일링 리스트 가입은 가입하기 링크 주변에 소개해주세요 🤩

📌 특집 : M1 애플 실리콘 시대가 열렸다
2020년 11월에는 애플 실리콘 시대를 여는 첫 세대 제품이 나왔습니다. 다들 아시는 것처럼 M1 맥북 에어와 13형 맥북 프로, 맥미니까지 세 종류의 제품입니다. 
세 가지 제품 중에서 제가 회사에서 구매한 장비는 13인치 맥북프로입니다. 직접적으로 비교해볼 수 있는 장비는 작년에 나온 마지막 인텔 아이맥과 2016년도에 나온 15형 1세대 터치바 맥북프로입니다. 거기에 작년 여름에 유니버설 앱 빠른 시작 프로그램에 가입하면서 받았던 DTK까지 포함할 수 있겠습니다. 참고로 유니버설 앱 프로그램은 종료되었습니다. 
# DTK와 M1 맥북프로
  DTK 이야기부터 해보겠습니다. DTK를 처음 받아서 Big Sur 베타를 사용할 때는 구형 맥북 프로와 별차이를 못 느꼈었습니다. 초기에는 그래픽 처리 최적화가 안되어 있는지 HDMI로 연결한 FHD 모니터 화면도 부드럽지 못했습니다. 물론 업데이트되면서 USB-C로 연결하는 4K 모니터까지도 부드럽게 처리가 되더군요. 
DTK는 일반 사용자용 제품이 아니고 빠른 접근을 위한 임시 장비라서 제한된 기능이 있습니다. 썬더볼트 컨트롤러가 아예 없다거나 SMC에 팬 속도도 항상 고정입니다. 2900rpm 정도로 계속 돌아갑니다...(응?)
  반면에 M1 장비는 완성도가 더 높아진 일반 사용자용 제품입니다. 국내외에서 호환성 문제나 외장 모니터 연결이나 저가형 USB-C 허브와 충돌로 벽돌이 되는 경우도 보고되고 있습니다. DTK와 다르게 팬 속도는 범위가 지정되어 있습니다만 2주동안 아직 한 번도 돌아가는 것을 경험하지 못했습니다. 0 rpm으로 고정된거 같은데 고장난게 아닌가 의심이 들 정도입니다. 조만간 저도 파이널컷 프로 정도를 돌려보겠습니다 ㅎㅎ 
  여러 벤치마크 글들이 있지만 (사실 DTK는 계약상 벤치마크를 돌리지 못하게 되어 있습니다) iOS 개발자 입장에서는 Xcode가 가장 큰 경험의 차이를 보여줍니다. 아주 큰 프로젝트는 아니지만 M1 맥북에서 인덱싱하는 동안에 맥북프로나 아이맥이라면 당연히 듣게되는 비행기 이륙 소리를 듣지 않고 더 빨리 끝납니다. 겨울이라 그렇겠지만 손에 전해지는 느낌으로 비교해보자면, 기존 맥북은 따뜻한 라떼 정도 온도라면 M1 맥북은 차가운 아이스아메리카노 느낌입니다. 
  저의 메인 개발 환경은 2020 아이맥 i9 10코어 + 72기가 장비입니다. 맥프로는 아니지만 나쁘지 않은 개발 장비임에도 불구하고 M1 맥북프로가 화면만 작을 뿐 체감 속도는 더 빠릿합니다. 왜 이렇게 느낄까요? 단지 CPU, GPU 뿐만 아니라 메모리, SSD까지 시스템 아키텍처도 개선이 많이 된 것으로 보입니다. 
  지금 현재 homebrew나 docker, Parallels 같은 임시로 써야 하는 도구도 많지만 꽤 빠르게 M1을 지원하는 제품이 많아지고 있습니다. 제가 M1에 설정한 것 중에는 brew와 dropbox 만 Intel 기반으로 동작하네요. 주변에 안드로이드 개발자나 서버 개발자 분들은 조금 더 기다리셔야 할 것 같습니다. 개인적인 전망으로는 3월에 아이패드 프로가 나오고, 6월쯤에 새로운 M2(?)를 적용한 상위 모델 맥이 등장하지 않을까 생각합니다. DTK 반납은 아직 소식이 없지만, 새로운 맥이 폼 팩터까지 바뀌어서 나온다면 정말 사고 싶을꺼 같습니다. 
주제/분류별 소식들
국/해외 소식들을 비슷한 주제들이 많아서, 다음과 같이 묶어서 정리합니다.
이제 주제/분류별 자료가 엄청 쌓이고 있는데, 지난 자료까지 찾아보고 싶다는 생각을 하고 있습니다. 뉴스레터 전용 앱을 만들기는 그렇고, 참고 자료나 글들을 분류하는 앱을 생각해보고 있습니다. 
# 일반
> [한글 - JK블로그] 개발 환경 설정하기
이번에 새로 M1 맥북을 구입하고 새롭게 환경 설정을 해봤습니다.
그 과정에서 개발자들이 macOS/iOS 개발 환경을 설정할 때 도움이 될 만한 팁을 정리했습니다.

# 애플
> [영문] 스위프트를 지원하는 플랫폼 정보 - 직접 개발할 수 있는 플랫폼부터 배포만 할 수 있는 대상까지 다양한 기준에서 정리해준 공식 페이지입니다.
> [영문] 스위프트 포럼최근 며칠동안 토론이 뜨거웠던 주제중에 하나 - forced unwarp ! 연산자를 없애는 건 어떨까입니다. 크래시 중에 90%는 옵셔널 언래핑을 대충 처리해서일꺼다. 이럴바에 안전하게 처리하도록 없애버리는 게 어떠냐? 코틀린처럼 !! 연산자가 있는게 더 낫지 않냐. 컴파일러 지시어로 넣어버리자. 이런저런 이야기들을 주고 받았습니다. 여러분들은 어떻게 생각하시나요?

# 스위프트
> [영문] 프로토콜 좀 그만써! 굉장히 자극적인 제목인데 너무 프로토콜로만 다 해결하려고 하기보다는 struct로 충분히 할 수 있는 것은 struct로 해보자는 맥락이네요.

# 설계 구조 : 패턴
# 프레임워크
이런 저런 프레임워크를 다루는 예제를 소개하는 글들입니다. 
얼마전에 RxSwift 6.0 버전이 릴리스됐습니다. 반가운 한글 자료가 있네요.
📲회사에서 iOS 개발자들에게 홍보하고 싶은 내용이 있으신가요? 
news@letswift.kr 로 언제든지 문의해주세요. 
레츠스위프트 뉴스레터
http://letswift.kr
수신거부 Unsubscribe