티스토리 뷰

지난 번에 이어 개발자보두 겉핥기 두 번째 시간입니다. 생각보다 많은 분이 글을 읽어주시고 화답을 주셨는데, 역시 어렵다는 분, 그리고 쓸 일은 없을 것 같다는 분이 많더군요. 다시 한 번 말씀드리지만, 우리의 호기심! 그거 딱 하나만을 위한 글이니 가볍게 읽어주시고, 혹시 조금 더 자세한 설명이 가능하다면 댓글로 공유해주세요.

‘터치표시’는 이름처럼 터치한 영역이 살짝 빛나 위치를 정확하게 확인할 수 있는 버튼입니다. 화면을 터치했을 때 정확하게 작동하고 있는지, 혹은 자신이 만든 앱의 버튼이 정상적으로 구동되는 지 확인할 수 있죠. 때로는 스마트폰의 해상도에 따라서 터치 위치와 버튼의 자리를 보정해야하는 경우도 있는데 그 상황에 쓰이는 기능입니다.

‘포인터 위치 표시’는 오른쪽 사진처럼 손가락이 닿은 위치의 좌표가 정확히 표시되고, 그 이동선이 화면에 표시되는 기능입니다. 표시된 흔적은 다시 터치를 할 때까지 사라지지 않습니다. 재스쳐 등을 만들 때 편하게 쓸 수 있겠죠. 일반적으로는 쓸 일은 없을 것 같군요.

‘화면 업데이트 표시’는 화면이 전환되는 부분이 깜박거리며 표시되게 됩니다. 동일한 화면의 일부만 변환되는 경우에 위치를 확인할 수 있는 것이죠. 또한 화면이 갱신되는 만큼 화면이 깜박거리는데 이를 통해서 성능 분석 및 개선에도 도움을 줄 수 있습니다. ‘레이아웃 범위 표시’는 구성요소의 경계, 그리고 여백을 확인할 수 있습니다. 앱 디자인 영역에서 쓰을 수 있겠죠? 우리가 쓸 일은 없습니다.

‘RTL 레이아웃 강제 변경’은 글쓰기 방향을 강제로 변환합니다. 다국어 앱을 만들때 테스트용으로 쓰인다고 하는군요. 역시 우리가 쓸 일은 결코 없습니다.

‘애니메이션 배율’은 간혹 쓰는 분이 있습니다. 기본 1x(1배)로 되어 있는데 이 배율을 낮추는 것이죠. 0.5x 처럼 말입니다. 이렇게 설정을 바꾸면 화면이 부드럽게 움직이는 모습은 조금 떨어지지만 조금더 빠릿한 느낌을 주게 됩니다. 스마트폰이 더 빨라진 것 같은 착각이죠. 반대로 살짝 배율을 올리면 스마트폰의 움직임이 상당히 부드럽게 느껴집니다. 취향차이겠죠? 물론 실제 성능이 변하는 것은 절대 아닙니다.

‘GPU 랜더링 강제 실행’은 PC에서 ‘안티 얼라이언싱을 평상시에도 강제 활용’ 같은 느낌의 옵션입니다. 스마트폰에 과도한 부하를 줘서 배터리 성능을 떨어뜨릴 수 있다고 하는군요. 스마트폰을 쓰는 일반 환경에서는 쓸 일은 없고, 테스트를 위해서 주로 사용한다고 합니다.

‘GPU 보기 업데이트 표시’는 앞서 설명한 화면 업데이트 표시와 동일한 효과를 불러옵니다. ‘하드웨어 레이어 업데이트 표시’도 마친가지로 성능 개선에 도움을 주는 옵션입니다. 랜더링 부분은 대부분 성능과 밀접한 관계가 있군요.

GPU 오버드로 디버깅도 비슷합니다. 화면에 레이어를 몇 번이나 덮어씌우는 지 확인할 수 있게 하지요. 이 숫자가 과도하게 많아지면 리소스 낭비가 커진다고 하는군요. 보통 3번 정도가 적절하다는데, 우린 몰라도 됩니다. ^^;

4X MSAA는 안티 앨리어싱을 활성화하는 기능입니다. 딱히 달라지는 것도 없고 배터리 소모만 커질 수 있으니 괜한 호기심은 자제하도록 합니다. ‘HW 오버레이를 비활성화’는 스마트폰의 GPU를 사용하여 오버레이를 합성하도록 하는 옵션인데, 역시 쓸일은 전혀 없을 것 같습니다.

색 공간 시뮬레이션은 색약, 색맹을 위한 화면을 테스트합니다. 실제로 화면을 바꿔주므로 혹시 본인이 색을 잘 구별하지 못한다면 한 번 써보는 것도 좋겠네요. 물론 앱이나 OS가 의도했던 컬러 배열은 아니므로 그다지 보기 좋지는 않습니다. 잘 보일 수는 있겠지요.

‘USB 오디오 루팅 차단’은 스마트폰을 USB로 연결했을 때 오디오가 자동 루팅되는 것을 차단합니다. 차동차에 충전하려고 연결했는데 자꾸 음악을 불러올때 쓰면 좋을 것 같네요.

‘엄격모드’부터 나오는 옵션은 주로 모니터링 옵션입니다. 엄격모드는 앱의 응답이 과도하게 길어지면 화면을 깜박거려 알려주는 옵션입니다. CPU사용량 표시는 잘 이해할 수 있지요?

프로필 GPU 랜더링은 랜더링 현황을 보기 좋은 그래프로 표시합니다. 개발자가 성능을 가늠하고 개선할 때 주로 쓸 것 같네요.

‘OpenGL 사용 추적’ 옵션은 그냥 로그 기록 옵션입니다. OpenGL 작동의 오류를 감시하고 로그파일을 남기는, 혹은 ‘로그를 떨어뜨린다’고 표현하더군요. 대부분의 사용자는 이 옵션을 쓸 일이 평생 없을 것입니다.

‘활동 보관 안 함’은 ‘세이브 기능 사용 차단’ 같은 느낌입니다. 앱을 종료하면 활동했던 내용이 바로 삭제되는 기능이죠. 세이브없는 게임, 혹은 프라이빗 모드로 작동시킨 웹브라우져라고 생각하면 쉽습니다. 물론 사용하는 이유는 조금 다릅니다. 응용프로그램이 갑자기 종료되었을때 앱이 어떻게 되는지 테스트하는 환경을 만들 수 있다는 것이죠. 대부분 개발환경은 많은 메모리를 지니고 있지만 실제 사용환경은 그렇지 않을 수 있는데, 그런 환경을 구현하여 테스트할 때 주로 활용됩니다.

백그라운드 프로세스 제한’은 앱의 갯수를 조절합니다. 앱을 꺼도 끈게 아니란 건 잘 알고 계시죠? 백그라운드에서 잘 돌아가고 있는데요. 그 백그라운드에서 돌아가는 앱의 갯수를 제한하는 옵션입니다. 개발자가 아닌 우리에게는 배터리 소모를 아낄 수 있는 방법이지만, 그만큼 불편해집니다. 더구나 불완정한 종료 탓에 문제가 생길 소지도 있지요.

‘ANR 모두 표시’로 마지막입니다. ANR은 Application Not Responding의 약자로 앱이 응답을 하지 않는다. 즉 뭔가 에러가 났다는 말의 약자입니다. 우리가 가끔 보는, ‘앱이 응답하지 않습니다. 어찌할깝쇼?’같은 대화상자가 바로 이 녀석이죠. 백그라운드에서 돌아가는 앱까지 ANR을 모두 표시해주는 기능입니다.

완벽하지도, 그다지 도움도 되지 않았지만 개발자 모드를 살짝 살펴봤습니다. 일반적으로 알 필요도 도움도 되지 않는 기능입니다만, 우리가 쓰고 있는 기능에 들어있는 정당한 옵션이니, 뭘 하는 녀석들인지 살짝 알아보는 것도 좋겠지요?