그랑블루 도우미 개선 작업을 모두 WPF로 작업하려고 하였으나...


사실 원래 버전도 생긴게 그렇게 생겼다 뿐이지 WPF로 작업한 물건이였고 개선버전에서 UI가 대폭 변경된 이유는 여러 이유때문에 제외시켰던 일부 UI들을 꺼내서 다시 적용시킨것에 지나지 않지만...


그랑블루 도우미라는것을 맨 처음에 프로토타입으로 구상했었을때는 예전에 작업했던 제독업무도 바빠!(칸코레 뷰어) 처럼 내장 브라우저에서만 프록시가 돌고 화면 우측에 정보를 띄워주는 그런 구조였지만 



IE에서는 그랑블루가 정상적으로 돌지 않는다+Chromium기반 브라우저를 WPF에서 돌릴수가 없다 


등의 이유들로 reject된 컨샙...




결국 시스템 프록시를 통해서 웹 브라우저의 동작을 캡처하고 분석하는 방향으로 프로젝트가 진행되었지만 이 방식은 프로그램이 필연적으로 시스템 옵션을 건드리는 부분이 있고, chrome자체에 통신을 캡처하는 어플리케이션이 깔려있는(ex: 미꾸라지 VPN, ZenMate VPN등) 경우에는 해당 어플리케이션이 활성화 상태가 아니더라도 웹 탐색을 캡처해낼 수 없다는 문제 때문에 불편사항이 많았고 그에 따른 기타 유언비어들까지...



하여튼 이번에는 우연찮게 CefSharp이라는 Cef를 wrapping한 라이브러리가 있다는 사실을 알게 되었고 예전에 봤던 크롬 브라우저 자체를 어플리케이션에 올리는 방식이 아니라 아예 크로미움을 내장할 수 있는 그런 라이브러리인데 여기서 발생한 첫번째 문제는 Cef는 기본적으로 ffmpeg를 지원하지 않고 무조건 빌드할때 옵션을 줘서 같이 빌드하도록 만들어야 한다는 점이고


두번째 문제는 같은 라이브러리를 사용하지만 Winform에서는 Chrome보다 좋은 퍼포먼스를 보여주지만 WPF에서는 Microsoft Edge보다 나쁜 퍼포먼스를 보여준다는 것이다.



사실 지금까지 작업했던 모듈들은 다 WPF로 작업을 했었고 소환석 이미지 만들어주는 프로그램에 기존 기능을 이식할때도 거의 코드 복붙만으로도 이식이 가능했지만 이 경우에는 사실상 Document부분(이라고 지칭하겠다. WinForm에선 좀 다르게 부를수도 있을것같지만)만 그대로 가져오는것이 가능하고 나머지 UI부분은 아예 처음부터 다시 짜야한다는 점



통신 캡처용 라이브러리와 메인 Winform사이의 커뮤니케이션이야 어짜피 같은 C#으로 짜는거니까 그대로 들고온다고 하지만 역시 가장 문제가 되는 부분은 UI다. 



Winform을 얼마 안 만져봐서 잘은 모르지만 벌써부터 UI구성에 엄청나게 애를 먹고있고 기존에 구현했던걸 그대로 구현하려니까 앞길이 막막하다. 가장 좋은 해결법은 WPF에서도 Winform만큼의 퍼포먼스가 나오면 되는건데 이건 뭐 아무리봐도...



다른 대안인 ChromiumFX나 CefGlue라는것도 있지만 이걸 다시 빌드할 생각을 하면 현기증이 날 뿐이고....일단 해결책이 안나오면 그쪽도 생각해봐야겠지만

'일기장' 카테고리의 다른 글

Winform작업을 더 이상 안해도 된다...?  (0) 2017.08.19
Winform작업 1일째 후기  (0) 2017.08.14
C++ VS C#???  (0) 2017.07.15
아이폰 구입  (0) 2017.04.26
도구는 여러개가 있는 편이 좋다고는 생각하는데  (0) 2017.02.04

+ Recent posts