알서포트 코딩 테스트 참여에 감사 드립니다.
본 테스트는 지원자의 개발 및 협업 역량을 예측하기 위하여 진행합니다.
요구 사항을 만족하는 코드를 작성해 주세요.
작성된 코드는 인터뷰에 활용됩니다.
- 과제 중 하나를 선택합니다.
- 주어진 요구사항/제약사항을 만족하는 flutter 앱을 작성합니다.
- 앱 작성을 완료한 후, Pull Request 생성합니다.
- PR 링크 첨부하여 담당자 메일(recruit@rsupport.com)로 회신합니다.
- 질문은 kimss@rsupport.com 으로 메일 보내주십시오. 확인이 되면 가급적 바로 회신하겠습니다.
- 동작영상과 스크린샷을 첨부해주세요.
- flutter 와 라이브러리는 최신 버전을 사용해 주세요. - 예외시 사유 기입 -
- 구현 중점 사항을 간단하게 기입해 주세요.
회사의 관련 기술 탐색을 주제로 과제를 선정했습니다. 지원자께서는 원하는 주제 하나를 선정후 과제 진행을 바랍니다. 문제 해결 능력을 검증하는 절차라고 생각해주세요.
과제 목록에 대한 안내입니다.
- 활용 수단은 명확하게 금지하는 항목이 아니면 모두 허용 됩니다.
- 과제를 완료하지 않아도 무관합니다. 문제를 해결하는 과정과 그때 그때의 결과 공유가 중요하니 도전적인 과제로 진행하시는 것도 좋습니다. 권장하는 방법으로는 git commit 을 활용하는 것입니다. 차곡 차곡 commit 해주시고, 만약 AI 를 사용하셨다면 프롬프트는 git message 에 담아주세요. 다른 방법으로 정리하셔도 괜찮습니다.
참고로, 면접시 코드리뷰 및 시연하는 과정이 있습니다. 작성한 코드(AI 생성분 포함)와 실행에 필요한 설정(md 등)을 모두 push하여 원활한 시연이 가능하도록 준비해 주시기 바랍니다. 아래는 과제 목록입니다. 하나를 선정하시어 진행 부탁 드립니다.
- 카메라 기능
- 전면/후면 카메라 프리뷰 비율대로 표시되어야 합니다.
- 회전 대응
- 시스템 상태는 회전 반영이 되어야 합니다. 시스템 상태바의 위치로 확인 가능합니다.
- 앱 UI 레이아웃은 고정되어야 합니다. 단, 셔터 버튼, 설정 아이콘 등의 UI 요소는 기기 방향에 맞춰 애니메이션으로 회전해야 합니다.
- 각 플랫폼별 핑거프린팅 Data를 생성합니다. 가급적 기기를 식별할 수 있는 데이터가 필요하지만, 불가피한 경우 다른 수단을 활용해주세요.
- 데이터는 해쉬 처리해야 합니다.
- 관련 pub.dev 패키지(예: device_info_plus)를 사용하지 않고, MethodChannel을 직접 구현하여 네이티브 코드를 호출하는 것을 권장합니다.
- 시스템 파일 Picker 혹은 pub.dev 패키지를 사용하지 않습니다.
- 메인 윈도에서 버튼을 통해 별도 피커창을 열어야 합니다.
- 피커앱과 메인앱을 별도로 구현하면 안됩니다. 하나의 앱 안에서 동작해야 합니다.
- Android 테블릿을 MacOS 의 디스플레이로 활용합니다.
- 오픈소스 활용 권장합니다.
(참고: AirPlay 프로토콜 전체 구현이 아닌, 기존 오픈소스 리시버를 플러터에 연동하거나 관련 스트림을 처리하는 과정에 중점을 둡니다.)
- 모바일앱
- 모바일 센서를 이용하여 PC 에 레이저 커서 데이터 전송
- PC앱 (Flutter Desktop 권장)
- 모바일로부터 받은 데이터를 PC 화면에 빨간 점으로 표시
- PC앱 창 내부가 아닌, 다른 프로그램 위에 표시되어야 합니다.
- 카메라 프레임 내에서 인물(피사체)이 좌우 어느 한쪽에 치우쳐 있더라도, 렌더링 되는 뷰에서는 해당 인물이 항상 중앙에 위치하도록 실시간으로 보정
- PC 에 가상의 사운드 출력 장치를 만듭니다.
- PC 사운드는 모바일의 스피커나 모바일에 연결된 블루투스 장치를 통해 출력됩니다.
(참고: 가상 사운드 드라이버(예: VB-Cable)를 활용하고, 캡처된 오디오 스트림을 모바일로 전송하는 네트워크 프로토콜 구현에 중점을 둡니다.)