티스토리 뷰

멀티미디어 연동하기

디버깅 및 평가 수행

제작된 멀티미디어와 개발된 앱을 연동하고 디버깅 및 테스트를 진행 할 수 있다.

디버깅(debugging)

컴퓨터 분야에서 디버깅이란 컴퓨터 프로그램이나 하드웨어 장치에서 잘못된 부분, 즉 버 그(bug)를 찾아서 수정하거나 또는 에러를 피해나가는 처리과정이다. 프로그램이나 하드웨 어 장치의 결함을 제거하기 위해서는 문제가 되는 부분을 분리시킨 후 수정해야 한다. 프 로그램이 디버깅되었다거나 프로그램의 결함을 해결하였다는 것은 더 이상의 잘못된 부분 이 없다는 것을 의미한다.

디버깅은 상용제품이든 기업 용도이든 개인용이건 관계없이, 거의 모든 소프트웨어나 하 드웨어를 개발할 때 반드시 처리해야 할 과정이다. 복잡한 제품의 경우, 디버깅은 첫째, 시스템의 최소 단위에 대한 단위 테스트(unit test), 둘 째, 이어서 일정 부분들이 합쳐졌을 때의 구성 테스트(component test), 기존의 다른 제품과 연계되어 사용될 때의 시스템 테스트(system test), 그리고 실제 상황에서 고객으로 하여금 그 제품을 사용하게 해보는 베타 테스트(beta test) 등이 일련의 작업으로 이루어진다. 대부분의 컴퓨터 프로그램과 하드웨어의 프로그램화된 부분은 수많은 줄의 코드로 구성되 어 있기 때문에, 거의 대부분의 제품들이 어느 정도의 잘못된 부분을 포함하게 된다. 가장 많이 사용되는 기능에서 잘못된 부분이 가장 먼저 발견되는 것이 보통이다. 디버깅을 위한 조사가 진행이 되는데 조사하는 세부 내용은 다음과 같다.

  1. 기계에 넣기 전에 순서도와 메모리의 작업 영역표에 실제 데이터를 넣어서, 주어진 문 제대로 프로그램이 작성되었는지, 정확한 결과가 나오는지를 수동 작업으로 검사하는 데스크상의 검사
  2. 퓨터를 이용한 표준적 데이터로 메인 루틴을 조사하는(이때 예외 사항이 포함된 데이터와 오류가 있는 데이터도 함께 이용) 컴퓨터를 사용한 검사
  3. 실제 데이터를 사용하는 조사

디버깅은 이와 같이 세 단계로 나누어 진행된다. 또한 이 작업은 프로그램의 한 스텝 한 스텝씩을 추적해 가는 추적(trace) 기능을 이용해도 좋지만, 프로그램 처리 내용이나 기억 장치의 내용을 덤프 하여 디버그 보조기(debugging aid)를 이용하는 것이 바람직하다

안드로이드 스마트폰을 위한 USB 기반 통합 디버깅 방법

안드로이드 스마트폰을 디버깅하기 위한 ‘USB 기반 통합 디버깅 방법’은 KGDB를 수정 하여 시리얼 통신 대신 USB 기반으로 완벽하게 동작하도록 구현된 방법이다. 이를 통해 안드로이드 스마트폰 개발 생산성을 향상시키고 상용 스마트폰 제품에서도 커널 디버깅을 수행할 수 있다. 일반적인 USB 가젯 드라이버는 리눅스 커널에서 사용되며 안드로이드 스 마트폰의 디버깅을 위해 리눅스 가젯 드라이버를 제공한다.

  • 가젯 제로(Gadget Zero)
    • Gadget Zero는 USB 가젯 드라이버가 정상적으로 동작하는지 체크하기 위한 드라이버이다.
  • 이더넷 오버 USB(Ethernet over USB)
    • Ethernet over USB는 USB를 이용해 이더넷 장치를 가상화 하는 것이다. 이 가젯 드라이 버는 네트워크 통신을 위한 CDC(Communications Device Class)의 표준 스펙인 CDC Ethernet Class의 드라이버와 마이크로 소프트웨어의 RNDIS를 지원하는 기능을 가진다. RNDIS는 보통 안드로이드 스마트폰에서 USB 테더링을 사용하기 위해 활성화 된다.
  • 가젯 FS(Gadget FS)
    • Gadget FS는 USB를 유저 모드에서 컨트롤 할 수 있도록 지원하기 위해 만들어진 가젯 드 라이버이다. 이 드라이버를 통해 유저 모드에서 컨피규레이션 디스크립터와 디바이스 디 스크립터를 초기화 하고 엔드 포인트를 활용할 수 있다. 이는 개발된 가젯 드라이버가 GPL 라이선스를 피할 수 있는 방법을 제공해준다.
  • File-backed Storage
    • USB Mass Storage class이다. 시스템의 저장소를 마치 외장 디스크처럼 사용할 수 있게 해 준다.
  • 직렬(Serial)
    • 가젯 Serial은 CDC ACM class의 표준 스펙을 구현해 가젯 드라이버를 마치 가상 시리얼 장치처럼 보여준다. 이는 스마트폰의 모뎀 칩과 통신할 때 주로 사용한다.
  • MIDI
    • MIDI 가젯 드라이버는 USB 디바이스를 ALSA MIDI 인터페이스처럼 보여준다. MIDI 가젯 드라이버를 ALSA MIDI 드라이버처럼 사용할 수 있다.
  • 안드로이드 디버그 브리지(ADB, Android Debug Bridge)
    • ADB는 안드로이드에서 디버깅을 위해 만들어 놓은 가젯 드라이버이다. 커널 레벨의 가젯 드라이버에서는 단순히 USB 벌크(bulk) 통신을 위한 인터페이스만 존재하며 유저레벨에서 USB 벌크 통신을 활용하여 DDMS 등 여러 가지 디버깅 환경을 제공해 준다.
  • 액세서리(accessories)
    • 안드로이드 스마트폰에 포함되어 있는 장치 이외에 추가 디바이스를 사용할 경우 이 가젯 드라이버를 통해 제어할 수 있도록 해준다.
iOS 디버깅

테스트 중심적인 개발은 Xcode 내에서 가장 중요한 작업 흐름이다. Test Navigator(테스트 내비게이터)를 이용해서 쉽게 프로젝트 내 모든 테스트로 이동하거나, 개별 테스트를 실행 하거나, 테스트 그룹을 실행할 수 있다. 보조 편집기(assistant)에는 어떤 테스트에서 현재 편집 중인 코드를 실행하고 있는지를 자동으로 추적하는 새로운 테스트별 보기가 있어 항 상 테스트와 코드를 동기화된 상태로 유지할 수 있다. 또한 Xcode는 macOS Server와 통 합하여 지속적인 통합 Bot을 만든다. 이러한 Bot은 Xcode 내에 구성되어 서버에 프로젝트 를 자동으로 빌드, 분석, 테스트 및 아카이브해야 하는 시점과 방법을 알려준다. 이러한 통합의 기록 결과는 모든 팀원이 Xcode UI 내에서 쉽게 확인할 수 있다.

디버깅, 프로파일링, 코드 분석 수행 또는 테스트 모음 실행 여부에 따라 Xcode에서 앱을 빌드 및 실행하는 방식을 사용자화할 수 있다. 예를 들어 기본 설계는 실행 시 '디버그' 모드에서 앱을 빌드하도록 구성되고 프로파일 또는 아카이브 명령을 수행할 때 동일한 설 계 설정이 '출시 버전'에 대해 빌드 된다. 작업을 전환할 때 프로젝트 설정을 변경하지 않 아도 된다.

UI/UX Design

UI/UX 환경 분석

UI/UX 계획 수립

사용자 리서치

UI/UX 요구 분석

UI/UX 콘셉트 기획

UI 아키텍쳐 설계

댓글
댓글쓰기 폼