Qt/QML로 4년 가까이 프로젝트한 썰... > 자유게시판

본문 바로가기
사이트 내 전체검색

자유게시판

Qt/QML로 4년 가까이 프로젝트한 썰...

페이지 정보

작성자 no_profile devilqoo 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 1건 조회 82회 작성일 20-07-23 12:38

본문

안녕하세요.
오랜만에 글을 남깁니다.

4년 가까이 하던 프로젝트도 끝이 나고 QML을 처음 접하고 사용한 경험을 한번 써 봅니다.
(인수 인계 문서 작성도 거의 다 끝나가고 사무실에서 할일이...)

기존 회사를 그만 두고 쉬면서 계속 궁금했던 QML을 공부했습니다. 기간은 한 두달 정도 였던 것 같고
하루 시작 하면 노트북 들고 집 근처 커피숍 전전하면서 doc.qt.io만 주구 장창 팠습니다.
당시 열심히 보긴 했는데 대충 머리속에 느낌적인 느낌? 만 가진 상태로

어쩌다 우연히 프리랜서로 차량 앱만드는 프로젝트를 하게 되었습니다. (프리를 할 줄은 꿈에도...)

고객사 가서 개발 면접 보는 데 뭐 그 분들은 Qt를 써본적이 없으니 원론적인 내용으로 무사 통과할 수 있었습니다.
QML은 하드웨어 3D가속을 받아 빠르다? 정도.

같이 일하신 분들도 오래전에 잠깐 Qt를 만졌던 경력으로 들어오셔서 QML은 다 비슷한 수준이었습니다.
초반에 작성된 코드들 보면... ㅎㅎ

다른곳은 어떤지 모르겠지만 자동차 프로젝트라 기간이 길게 가더군요.
계속 밤새고 그런건 없었고 고객사에서도 일정을 무리하게 가진 않았습니다. (이것이 대기업의 여유???)

다만 개발 시작할 때 개발자는 여럿인데 타겟 장비가 한대뿐이고 ㅡㅡ 그나마 모니터도 실제 제품과 다른 사이즈여서 우리가 도대체
뭘 만드는 지도 모르는 채 한동안 해맸던 기억이 있네요.
개발장비는 ... 결국 다 받긴 했는데 full spec이 아니라 인증 문제로 통신이 안되는 장비, 모니터만 달린 장비, 고장난 장비 등 다양했고
바쁘면 빌려 주기도 하고 테스트팀 가서 빌려오기도 하고 안되면 일찍 출근해서 테스트 팀 출근하기 전까지 노트북 붙여서 테스트하기도 하고
스펙타클 했던 것 같습니다.

어쨌든 프로젝트가 우여곡절 마무리가 되었고 QML을 써본 느낌과 차량 프로젝트를 하면서 느낌점을 함께 써보면

1. QML의 생산성은 좋다.
확실히 빠릅니다. 예전에 만나본 개발자분의 말을 빌리면 위젯 개발할 때 보다 10배정도 빠르다. 라고 엄지척을 하실 정도
저도 widget과 scene/view 방식으로 다 개발해 봤는데 확실히 감탄하게 되는 부분입니다.

2. QML에 자바스크립트
원래 UI는 QML로 비지니스 로직은 C++이지 않을까 생각을 했지만
Felgo 에서 기고한 글을 보면 어짜피 QML도 컴파일 되고 나면 C++정도의 퍼포먼스가 나온다. 그러니 두려워하지 말고 써라고 하더군요.
다만 시간이 많이 걸릴 것 같은 작업들은 C++에서 쓰레드작업으로 처리하라고는 하는데
맞는 말인 것 같기도 하고 최근 메일링 리스트로 왔다갔다 하는 글들 보면 컴파일된 qml파일을 일반 편집기에서 조작가능해 의료시스템에서는
철저히 자바스크립트를 써서는 안된다고 주장하는 글도 있었습니다.
예를 들어 rcc파일을 에디터로 열어서 "mg" 을 "g"으로 바꾸면 약물과다 주입으로 사망에 이를 수 있다는 극단적인 예도 있던데.
케이스 바이 케이스에 따라 다르지 않을까 생각합니다.

다만 어느 개발자 분은 자바스크립트의 편리함을 너무 맛보셔서 소스 하나가 5600라인 ;;;
이게 또 돌아는 가는데 결국 퍼포먼스 규정에 걸려서 (다음 화면이 나오기 까지 OO ms 이내) 결국 항상 메모리에 상주하는 뷰로 수정을 하게 되었네요.

사용하는 Qt5 버전이 중간 버전이다 보니 캐싱도 안되고 프리컴파일도 못 쓰고;;;

분명 편리함은 있지만 디버깅을 해보면 C++에 비해 볼 수 있는 값이 제한적일 때가 많아 console.log()로 찍어 보기도 하고

3. 펌웨어
2주에 한번 정도 저희가 사용하는 타겟 펌웨어가 업데이트 되었었습니다.
저도 차량 프로젝트는 처음 해보는 거라 의례 아무런 의심 없이 설치해서 사용을 했었는데요...
문제는 펌웨어에 뭐가 수정이 되었는지를 알려주지 않는다는 겁니다. 물어봐도 모른다. ㅡㅡ 스모크 테스트는 했다.
글로벌이라 비행기 타고 쫒아가서 멱살잡기도 힘든...

UX가 글로벌 가이드가 있어서 맞춰야 하는데 문서에 없는 부분은 결국 시스템 메뉴로 들어가 스크린샷을 떠서 UX업체에 보내주면 맞춰서 GUID를 만들어 줍니다. 그럼 저희는 그걸 보고 작업을 하죠.
하지만 한참 개발 진행하면서 잊고 있다가 정신차려 보면 시스템 메뉴 디자인이 살짝 바뀌어 있는 광경을 우연히 목격하게 됩니다.
펌웨어가 수십기가가 되다 보니 모든 버전을 가지고 있을 수도 없고 그러다 보니 언제 바뀌었는지도 모르고.

비슷한 사례로

키보드의 처리 방식이 바뀌어서 이슈로 등록 되는 케이스. (한글 키보드를 인도개발자분이 하고 계시더군요ㅡㅡ)
후방 카메라 켜지면서 예전에는 우리 앱이 deactivate 되지 않았었는 데 어느 순간 그 신호가 들어와서 버그가 발생한 경우.
부팅 되면서 signal들 들어오는 순서가 바뀌어 버그가 발생한 경우.

뭐 너무 다양해서 나열하기가 힘드네요.

초기에는 펌웨어가 너무 불안해서 앱이 죽어 버리면 무한 재부팅 되는 경우도 있었습니다.
시스템 재부팅 하고 ssh로 접속해서 잽싸게 앱을 죽이고 20초 이내에 앱이랑 리소스 복사해야 하는 데 조금이라도 굼뜨면 또 재부팅 ㅜㅜ

4. 퍼포먼스
초기에 알아야 하는 것들이 개발 중후반에 전달 되는 것들이 많았어서 마른 하늘에 날벼락이 따로 없었습니다.
니네 메모리 많이 쓴다. 줄여라 !!! 협상은 없다.
시스템 화면에 위젯을 출력해야 하는 데 스트리밍처럼 이미지를 쏴주는 것도 크리티컬 했었죠. 이게 또 하나가 아니라 여러개가 될 수 있다 보니 가뜩이나 퍼포먼스도 안 좋은 데 ... 대규모 리펙토링까지 해야 해서 담당 개발자 분이 고생 많이 하셨습니다.
퍼포먼스 관련 규정도 모르고 있다고 중간에 알게 되서 각 담당자 별로 뒤늦게 규정 맞춘다고 고생하고.
커스텀 색상 기능 때문에 UI 화면들 싹 바꾸고.

5. 실차테스트
보통은 테스트팀이 나가지만 사안의 중대성에 따라 불려 갑니다. (프로젝트 극 후반)
차 타고 돌아 댕깁니다.
최고 존엄의 심기도 맞춰야 하고 차안에서 노트북 만지다 보면 멀미도 나고 무엇보다 먼 곳에 고객사가 있다보니 도착하면 이미 피곤합니다. ㅜㅜ
무엇보다 어려운 건 디버깅이 안되는 환경이었던 것 같습니다.
그나마 로그를 받을 수 있는 건 다행이었네요.
차량이 특정 시간이 지나 슬립되는 조건에서만 재현 되는 것은 하루에 4-5번 정도의 테스트할 수 있는 기회가 주어집니다.
시동 끄고 슬립모드 될 때 까지 기다려야 하니깐 ;;;
차량 개발자분들이 진정 존경스러워 지는 순간이 아닐 수가 없습니다.
한번 해보고 개발자분들 두뇌풀가동해서 로그 분석해서 가정도 세워보고 의견도 나누어 보고. 다음 테스트할 때 살펴보고

그 진짜 비행기 날리고 로케트 쏘아 올리는건 어떻게 한답니까? 차량도 이정도 인데...

6. 마무리
좋은 경험이었습니다.
QML을 실제 프로젝트에 써 볼 수 있어서.
차량 프로젝트에 대한 경험이 없어 혼란이 많았던 것은 아쉬움으로 남습니다.

글재주가 없어 어떻게 끝맺음을 할지 모르겠네요.
연말에 나올 Qt6를 기대하며 ... 마무리 해 봅니다.


끝.

p.s) 도비는 이제 자유에요.

Qt !!!

댓글목록

Total 369건 1 페이지
자유게시판 목록
번호 제목 글쓴이 조회 날짜
열람중 no_profile devilqoo 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 83 07-23
368
하이 댓글+ 3
no_profile 찰진떡 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 299 05-23
367 no_profile 불타일 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 317 05-13
366
출석체크 댓글+ 1
no_profile 일화일 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 363 04-26
365 no_profile 김수향 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 408 02-19
364 no_profile 박취 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 480 01-30
363 no_profile 오카와리지유 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 737 11-20
362 no_profile emotian 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1281 09-27
361 no_profile 태홍 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1661 07-30
360 no_profile 주영대감 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1067 05-31
359 no_profile ysgg 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 995 05-29
358
안녕하세요 댓글+ 1
no_profile 커피한잔만줘요 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1778 05-22
357 no_profile jobplan 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1161 04-25
356 no_profile devilqoo 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1296 02-20
355 no_profile 최고관리자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1200 02-20
354 no_profile 채지원 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1852 01-17
353 no_profile 흐이창 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2516 10-25
352 no_profile korone 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2949 06-19
351 no_profile 김종국 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2657 04-16
350 no_profile 미스테리 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2170 04-11
349 no_profile 깡세 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2531 03-28
348 no_profile myscript 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3024 09-15
347 no_profile 국제인재능력개발원 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2516 09-14
346 no_profile 클라우드 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2590 07-12
345 no_profile  hero 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2615 07-05
344 no_profile devilqoo 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3034 06-14
343 no_profile 김동석 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3257 05-25
342 no_profile 길동2016 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2610 05-02
341 no_profile devilqoo 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4317 01-05
340 no_profile devilqoo 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4790 09-06
게시물 검색

  • 게시물이 없습니다.

회원로그인

설문조사

새로운 홈페이지에 대한 평가

접속자집계

오늘
533
어제
751
최대
4,337
전체
4,608,054

Copyright © korone.net. All rights reserved.