아이폰 코드를 생성해주는 방법에 대한 논문

뉴스레터를 보다가 아이패드에 그림을 그리면 그걸 SwiftUI로 변환해주는 앱에 관한 논문을 알게 되었다. 

이런 내용은 첨보는데 논문에는 이미 이런 주제의 논문이 많다고 나열을… 정말 많더라 🫢 

구현은 대략 

앱에 그림을 그린걸 파이어베이스로 데이터 수집 > 수집한 데이터를 기반으로 딥러닝 학습 (YOLOv5) > coreML 타입으로 전환 > 코드 생성 

이런 식이다 

학습 시킨걸 iOS에서 어떻게 쓰나 했더니 YOLOv5가 pytorch 기반인데, 이 pytorch의 모델을 coreML 모델로 변환을 시켜주는 툴이 있다.  

Core ML Tools인데 레퍼런스를 타고 가보니 TensorFlow도 지원이 되는듯,, 그럼 그 기반의 라이브러리도 쓸수 있을거 같다 

코드를 생성하는 방식은 객체를 분류하고 반복해서 코드 생성, 머신러닝 크게 2가지 방식으로 나뉘는데 머신러닝은 꽤 복잡하고 대부분 첫번째 방식의 논문이 많다고 한다.

그 외의 구현 방식이나 리서치한 내용, 시행착오 등이 엄청 자세히 정리되어 있어서 또 여러번 읽을것 같다.. (기억력이 많이 안좋은 편..) 애초에 딥러닝은 아이폰 앱 개발과는 거의 상관이 없다고 생각했는데, 이런 쓰임새가 있을줄은 몰랐다 😳😳

데모 영상 : https://www.youtube.com/watch?v=SKGdZ3H9eyY

논문 : https://arxiv.org/abs/2103.05704

안전한 소프트웨어를 개발하기 위한 시스템에 관한 글

https://queue.acm.org/detail.cfm?id=3648601

구글에선 소프트웨어를 안전하게 개발할수 있는 환경이 어떻게 되어있는지 공유해준 글인데,

여기도 소프트웨어 개발을 해놓고 오랜 기간동안 유지하면서 업데이트도 해야하니깐 시스템이 복잡해질수밖에 없고, 그러다보면 취약점이 생기게 된다. 

안전하게 코딩하는 것과, 배포 두가지 관점에서 정리를 할수있는데, 

일단 코딩쪽에서 보면 메모리 손상, SQL 인젝션, XSS 등의 보안 취약점이 발생할 수있고, 각 취약점마다 구글에선 어떻게 조심하고 있는지 정리해줬다.

메모리를 위해선 결국 안전한 언어 (c/c++보다는 자바, Go, 또는 Rust)를 쓰는게 좋다는것 .. 

코드 인젝션은 일반 문자열보다는 해당 도메인에 한정된 특정한 타입(ex.  TrustedSqlString)을 사용하는걸 추천.. 비슷하게 XSS도 안전한 타입을 정의해서 쓰는 방식으로  (ex. safehtml), 10년전엔 지메일같은 어플리케이션마다 매년 수십개의 취약점이 발견 되었으나 요즘은 이 방법으로 한자릿수로 많이 줄었다고 한다. 

배포 관점에서는, 엔지니어가 직접 하면 단순 오타같은 실수를 하는 경우가 결국 생기게 되는데, 좀 더 신중했어야 한다고 말하기엔 현실적으론 무리한 기대라는 이야기에 공감이 되었다. 

가능한 실수를 안할수 있도록 어떻게 환경이 구성되어있는지 정리를 해줬다. 

여러번 읽어볼만 하고 (기억력이 안좋은 편..), 레퍼런스도 나중에 시간나면 봐도 좋을것 같아서 좌표 찍을겸 정리를 해봤다. ☺️

스택 오버플로에 개발자가 올린 Combine 관련 질문을 분석한 리서치

https://dl.acm.org/doi/10.1145/3613372.3613381

스택오버플로우를 기반으로 Combine 관련 질문을 2019부터 2022년까지 분석해줬는데, 인기, 어려움, 글 갯수 이런 주제로 분류되어있다.

인기있는 질문들은 대부분 사용성 관련인것 같은데 관심이 갔던건 어려운 질문중에서 “컬렉션 뷰에서 데이터 보여주기” 였다. 글에서는 아마 필터링이나 정렬 같이 실시간으로 데이터를 조작해서 보여주는데 이슈가 있지 않는거냐 하는데 그럴듯하고 나도 궁금..
아직 나도 컬렉션뷰 같은데서는 써보지 않아서 어떤 시행착오가 있는지 모르겠다
다른 어려운 질문은 명령형이랑 반응형 사이에서 왔다갔다할때에 관한 거라는데 뭔 질문일까.. 것도 궁금한데

누가 여기 나온 질문들을 묶어서 강의를 만들어주면 나도 사서 보고싶소 .. 이미 나와있을라나 🙄

그리고 컴바인 쓴다고 성능향상이 될거라고는 생각을 못해봤는데,, 그게 써드파티 라이브러리 사용하는것보다는 좋다고 레퍼런스에 있네에… 하긴 애플 자사제품이니 생각해보니 그렇겠구나 싶었다.

Inside Apple

이 책은 산지는 10년이 넘었으나 패기있게 영어로 사놔가지고.. 그동안 묵혀두다가 최근에 겨우 다 읽었다.

애플 내부 이야기도 흥미로운게 많았는데, 작가의 글도 위트있어서 재밌게(지만 느리게..) 읽었다.

2번째 페이지부터 빵 터졌는데

Forstall was reluctant to give the phone to Jobs. “Be careful now,” he said to a man who had never been careful in his life.

Inside Apple 2P

여기서 그는 스티브잡스 🤣

스티브잡스 얘기야 뭐 명성이 자자하시니깐.. 놀랍지 않았으나 팀쿡도 만만치 않은 분이셨다는것

The meeting continued for another half hour or so, when Cook stopped abruptly, looked up at one of his executives, and asked in all seriousness “Why are you still here” The executive stood up drove to the airport without a change of clothes and flew to China.

Inside Apple 96P

책을 읽을수록 분명 미국 회사인데 아시아 회사를 보는 친숙한 느낌이 …

“Keynote is a wonderful application because Steve did presentations,” a departed engineer pointed out.

“Numbers doesn’t ooze Steveness, which makes sense, because Steve didn’t do spreadsheets.”

Inside Apple 163P

맥에서 키노트가 잘 만들어진 이유는 스티브 잡스가 쓰기 때문에 … 그래서 넘버스는 스티브 잡스가 쓰지 않기때문에 그렇다고(?) 한다. (하지만 팀쿡은 엑셀 장인이래매.. 🤔🤔 )

알아도 상관없는 TMI 같은 에피소드들이지만, 애플에 관심이 많아서 그런지 재밌게 읽었다.

SwiftUI에서 뷰 디버깅

따따디씨 보다가 좋은 코드를 봐서 메모..

expression Self._printChanges()

뷰가 왜 불렸는지 알고싶을때 lldb 디버그 콘솔에서 저 명령어를 치면 된다

코드상에서도 저 메소드를 부를수는 있지만 프라이빗 API라서 리얼에 나가지 않도록 조심하라고 한다

요건 푸드트럭앱 샘플에다가 명령어를 쳐본 결과

같은 화면을 스크롤 했을때 같은 명령어를 쳐보면 설명이 바뀐다

그리고 저걸 보고 궁금했던건 나는 그동안 p, po만 쳤는데 expression은 무엇인가 …

찾아보니 결국 같은 명령어라고 봐도 될듯

p 는 expr —

po 는 expr –O —

expr은 expression 명령어의 줄임, e로도 쓸 수 있다.

더 궁금하면 LLDB: Beyond “po”를 보라는데, 나중에 보자아..

참고

The Thursday Murder Club

영어공부하려는 패기로 .. 원서를 읽고 있는데 요건 흐름이 짧아서 좀 더 읽기가 편했다

단어는 보통 난이도일라나 ..

처음에는 이야기가 이리저리 튀고, 나오는 사람도 많고 이름도 비슷(영어 이름 어렵..)해서 집중을 잘 못했는데, 진행이 될 수록 재밌어졌다.

막 엄청 잘 짜여진 이야기는 아니지만… 어르신들만이 할 수있는 매운맛 영국식 농담이 재밌었다. 완전 취향 저격..

she works in IT, which you can tell just by looking at her. She is wearing makeup, but in a subtle, understated way that lan honestly can’t see the point of.
He wonders exactly when Karen had given up on life and started wearing long, baggy sweaters and trainers.

– 37P
매운맛은 아니지만 이미지 개선이 시급한 IT 업계.. 글로벌 공통이니 ..

킬링타임용으로 가볍게 보기 좋은 책이다. 시리즈물로 나오던데 담번꺼는 더 빨리 읽을수 있겠지 ..

코딩 호러의 이펙티브 프로그래밍

신입시절에 읽으려고 했는데 벌써 10년이 지났는가 ..

그땐 뭔가 어렵기도 하고 잘 안읽혔는데, 이제 읽으니 공감도 가고 그랬다. 좀 옛날 이야기이기도 하지만 지금 읽어도 나름 괜찮은 듯

오히려 10년전에 이런 선견지명이 있다고..? 싶은 부분도 있었다

가끔 개발자 부심을 부리는 듯한 내용이 있어서 좀 오글거렸지만.. 참을만 하다

모니터와 의자 추천은 .. 공감이 가진 않았지만 .. (의자, 키보드 잘 모름)

왜들 모니터, 의자, 키보드에 열광하는거야 ..

우리 컴퓨터광들은 어둠을 좋아한다. 완전히 어두운 것을. 이상적으로는 동굴에 있고 싶어 한다. 그러니까 인터넷이 연결돼 있는 동굴을.

– 192P

이 문장도 공감은 안가지만.. 생각해보면 내 주위에 저런 사람 많긴 한듯

그래서 다크모드를 좋아들 하는거니 .. 눈 나빠져요 ..

결론은 가볍게 읽기 좋았고, 신입때 읽었더라면 더 도움이 되었을것 같다.

피, 땀, 픽셀

게임은 모바일정도만 해서 콘솔게임은 잘 모르지만 … 게임 개발 일화만 보더라도 재밌는 책이다

역시 게임 개발은 빡센듯 .. 필요한 지식도 많고 일도 많은데 왜 연봉은 그모양인걸까

대박 아님 쪽박이라그런가 .. 내용중에 대박난 1인 개발자이야기도 있었지만 아무나 할수있는 일은 아니다 싶긴 하다

그를 뒷바라지한 여친도 무한 긍정인인듯

저 책 두번째 책도 사놨는데 조만간 읽어야징

Design Patterns in Swift 5

디자인패턴은 관심이 별로 없었는데.. (오히려 과한 추상화를 겪은 후로는 싫어하는 편) 주변에 디자인패턴에 관심이 많은 사람들이 늘어나고 내 코드도 도태된것 같아서 사봤었는데 결과는 만족

내용은 쉽고, 거의 아는 디자인 패턴들이었지만 그게 스위프트로 설명이 되어있으니깐 꽤 좋았다.

대부분의 디자인패턴 책은 예시가 자바로 되어있으니깐,, 대충 개념은 이해하지만 거기서 끝이었던 것이 이 책에선 현실감 있게 다가왔다.

게다가 몰랐던 스위프트 코드도 좀 있어서, 의외의 스위프트 공부까지 ..

누가 iOS 개발 입문용으로 추천해달라면 이 책을 추천해주고 싶다.