You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
제 친구 클로드에게 물어봤더니 Apple이 제공하는 성능 분석 도구로, 앱의 런타임 동작을 측정하고 문제를 진단할 때 사용한다고 합니다.
Instruments를 사용하면 여러 가지 문제를 진단하고 개선하는 데 활용할 수 있는데요, 대표적인 예시는 다음과 같습니다.
앱이 버벅이거나 프레임 드랍이 발생할 때 Time Profiler로 CPU 병목 찾기
메모리 사용량이 계속 증가하거나 앱이 크래시 날 때 Allocations와 Leaks로 메모리 누수 탐지하기
배터리 소모가 심하다는 피드백을 받았을 때 Energy Log로 원인 분석하기
네트워크 요청이 느리거나 타이밍 이슈가 있을 때 Network 템플릿으로 확인하기
제 경우에는 런타임에서 UI에 일어나는 Hang을 찾는 게 목적이라서, SwiftUI와 Hangs, Hitches 항목을 이용했습니다. (이게 뭐고 어떻게 이용하는지는 좀 이따가...)
성능 개선, 왜 해야 할까요?
그렇다면 이 Instruments, 뭔지는 알겠는데 이걸 왜 써야 할까... 에 대한 의문이 좀 있었습니다. (이러면 안되지만..)
정확히는 "이런 것까지 써가면서 성능 개선을 해야 할까?" 라는 의문이었어요.
대부분의 사용자가 잘 사용하고 있는데, 이렇게 분석 도구까지 써서 발견하는 사소한 수치들을 개선해야 하는 이유에 대해서는 리소스 낭비라는 생각도 들었구요.
그래서 조금 더 프로덕트 자체의 관점에서 바라보며 이 의문을 해소하려고 했습니다.
결론적으로는 다음과 같은 생각을 했어요.
완성도 높은 환경을 모든 유저에게 동일하게 제공하기 위함
조금 다른 이야기일 수도 있지만 제가 생각하는 좋은 iOS 개발자의 자세란 유저를 생각하는 개발자였거든요.
유저를 생각하는 자세에 대해 곰곰이 고민하다 보니 최대한 많은 유저가 최상의 경험을 할 수 있는 프로덕트를 제공하는 것! 이라는 생각을 하게 되었습니다.
최대한 많은 유저가 최상의 경험을 할 수 있는 프로덕트... 는 뭘까? 어떻게 만들까? 를 고민해보니
최대한 완성도 높은 환경을 모든 유저에게 동일하게 제공할 수 있는 프로덕트라는 결론에 이르렀습니다. 리소스를 핑계로 유저 경험을 무시한 것 같아 반성도 좀 했습니다 ㅎㅎ
그러면 왜 Instruments를 써야 할까요?
AI로 해결할 수 없는 문제 정의를 위한 도구
AI를 잘 활용하는 것이 좋은 개발자의 기본이 된 상황에서, 그럼에도 개발자가 필요한 이유에 대해 요새 고민을 많이 하고 있는데요... 이 내용과 결을 같이 한다고 봤습니다.
AI는 사실 프로젝트의 모든 맥락을 이해할 수 없기에 이런 부분에서 개발자가 문제를 캐치하고, 어떻게 하는 게 가장 리소스를 줄이면서 문제를 빠르게, 잘 해결할 수 있는가? 에 대한 고민을 계속 해야 하는 것 같아요.
그런 의미에서 문제를 정의하는 것이 개발자의 가장 중요한 기본 소양이라고 생각했습니다.
무심코 글을 쓰다보니 여기까지 왔는데... 결국 Instruments는 앱의 실제 동작 데이터를 보여주는 프로파일링 도구잖아요.
시각적으로 문제를 보여주기 때문에 원인을 빠르게 캐치해서 병목을 해결할 수 있다는 점이 개발자의 문제 정의에 큰 도움이 될 거라고 생각했습니다.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
들어가기 전에
Instruments란 뭘까요?
제 친구 클로드에게 물어봤더니 Apple이 제공하는 성능 분석 도구로, 앱의 런타임 동작을 측정하고 문제를 진단할 때 사용한다고 합니다.
Instruments를 사용하면 여러 가지 문제를 진단하고 개선하는 데 활용할 수 있는데요, 대표적인 예시는 다음과 같습니다.
제 경우에는 런타임에서 UI에 일어나는 Hang을 찾는 게 목적이라서, SwiftUI와 Hangs, Hitches 항목을 이용했습니다. (이게 뭐고 어떻게 이용하는지는 좀 이따가...)
성능 개선, 왜 해야 할까요?
그렇다면 이 Instruments, 뭔지는 알겠는데 이걸 왜 써야 할까... 에 대한 의문이 좀 있었습니다. (이러면 안되지만..)
정확히는 "이런 것까지 써가면서 성능 개선을 해야 할까?" 라는 의문이었어요.
대부분의 사용자가 잘 사용하고 있는데, 이렇게 분석 도구까지 써서 발견하는 사소한 수치들을 개선해야 하는 이유에 대해서는 리소스 낭비라는 생각도 들었구요.
그래서 조금 더 프로덕트 자체의 관점에서 바라보며 이 의문을 해소하려고 했습니다.
결론적으로는 다음과 같은 생각을 했어요.
완성도 높은 환경을 모든 유저에게 동일하게 제공하기 위함
조금 다른 이야기일 수도 있지만 제가 생각하는 좋은 iOS 개발자의 자세란 유저를 생각하는 개발자였거든요.
유저를 생각하는 자세에 대해 곰곰이 고민하다 보니 최대한 많은 유저가 최상의 경험을 할 수 있는 프로덕트를 제공하는 것! 이라는 생각을 하게 되었습니다.
최대한 많은 유저가 최상의 경험을 할 수 있는 프로덕트... 는 뭘까? 어떻게 만들까? 를 고민해보니
최대한 완성도 높은 환경을 모든 유저에게 동일하게 제공할 수 있는 프로덕트라는 결론에 이르렀습니다.
리소스를 핑계로 유저 경험을 무시한 것 같아 반성도 좀 했습니다 ㅎㅎ
그러면 왜 Instruments를 써야 할까요?
AI로 해결할 수 없는 문제 정의를 위한 도구
AI를 잘 활용하는 것이 좋은 개발자의 기본이 된 상황에서, 그럼에도 개발자가 필요한 이유에 대해 요새 고민을 많이 하고 있는데요... 이 내용과 결을 같이 한다고 봤습니다.
AI는 사실 프로젝트의 모든 맥락을 이해할 수 없기에 이런 부분에서 개발자가 문제를 캐치하고, 어떻게 하는 게 가장 리소스를 줄이면서 문제를 빠르게, 잘 해결할 수 있는가? 에 대한 고민을 계속 해야 하는 것 같아요.
그런 의미에서 문제를 정의하는 것이 개발자의 가장 중요한 기본 소양이라고 생각했습니다.
무심코 글을 쓰다보니 여기까지 왔는데... 결국 Instruments는 앱의 실제 동작 데이터를 보여주는 프로파일링 도구잖아요.
시각적으로 문제를 보여주기 때문에 원인을 빠르게 캐치해서 병목을 해결할 수 있다는 점이 개발자의 문제 정의에 큰 도움이 될 거라고 생각했습니다.
개인적으로는 최근에 이야기하면서 지훈오빠에게 받았던 아티클 신입 모바일 엔지니어로 ‘당연한’ 사용자 경험을 만들어간다는 건을 많이 참고했는데요, 읽으면서 그동안의 제 태도를 많이 반성했습니닷.
앞으로 저희가 협업할 때도 여러 가능성에 집중하면서 더 멋진 사용자 경험을 제공하며 유저의 이탈을 최소로! 줄이는 것을 목표로 함께 작업하면 좋을 것 같습니다. 긴 글 읽어주셔서 감사합니다!!!!!!!!!!!!!111
Beta Was this translation helpful? Give feedback.
All reactions