하드웨어 제어하는 프로그램을 아래 방식으로 개발했었습니다.
UI(플래시) ← 내부 통신 → 하드웨어 제어(C#)
C#에 플래시를 삽입해서 서로 필요한 부분 통신하면서 개발을 했었는데요. 프로젝트가 작지 않아서 고민입니다.
플래시로 버틸때까지 버텨본것 같고 이제 다른 플랫폼으로 넘어가려고 합니다.
UI쪽이 애니메이션 효과도 많고, 상황에 따라 가변적으로 UI가 바뀌는 요소가 상당히 많아
전체를 통으로 C#으로 개발하자 했더니 C# 개발자가 난색을 표합니다. UI 분량이 너무 많아서 오래걸린다구요.
UI 쪽만 대략 화면이 60개 정도 되니 이해는 됩니다.
C#에 삽입되는 형태로 개발하기는 HTML5 밖에 없을 것 같은데
제가 알기로는 HTML5는 플래시처럼 파일 1개로 만들어지는게 아니라 html, js 등 여러개 파일로 나뉘어지고 또 소스가 오픈된다는 점이 걸리네요.
인터넷이 끊겨진 상황에서도 사용 가능해야해서 JS 프레임워크가 필요하면 모두 다운받아놔야 하는 점도 좀 번거로울 것 같구요.
유니티 같은 것도 고려해봤으나 24시간 작동하는 제품이다보니 너무 무겁다는 판단입니다. (해상도가 Full HD여서요)
HTML5로 방향을 정해야 할지, 아니면 다른 좋은 플랫폼 없을까요?
고수님들 조언이 필요합니다.
답변에 먼저 감사드립니다.
애니메이션은 adobe animate와 같은 html5 기반 도구에서 만든 키프레임을 가져다 쓸 수 있지만. 어느정도 공부는 필요하실거 같네요
답변 감사합니다. webpack이란게 있었군요. 관련해서 공부를 해봐야겠네요.
답변 감사합니다.
아직 3D작업은 없긴한데 대안으로 찾아본게 유니티였습니다. (애니메이션 효과 때문에..)
언어가 같은 C#이다보니 UI가 먼저 개발해서 소스 넘기면 거기에 하드웨어 제어 부분을 추가 작업하면 어떨까 했거든요..
@everedifice님 말씀처럼 플래시로 할 수 있는 대부분 기능과 그 이상을 모두 JS로 할 수 있는 수준입니다. (특히 React)
컴파일된 수준으로 소스보안을 하신다면 electron js로 실행 파일로 묶어서 실행 할 수 있습니다.
아니면,
C#은 잘 모르겠습니다만 Golnag의 경우 웹서버 + html, js 등의 static 파일을 모두 묶어서 실행 파일 1개로 컴파일해서 배포 할수 있는데요.
C#에서도 가능하면 플래시로 개발 하셨을때보다 훨씬 수월 하실 수도 있을것 같네요 ^^;
네 맞습니다. 보통 키오스크나 전광판 같은 작업을 많이 합니다.
보안이 걱정이였는데 electron js를 알아봐야겠네요.
답변 정말 감사합니다. 많은 도움이 되었습니다.
저흰 웹 -> 데스크탑으로 솔루션을 계획 중이라
https://www.framer.com/ 이걸 한번 써볼까 합니다 macOS 전용 이었는데 최근에 웹애서도 작업이 되어서...
이제 react 공부를 해야 ㅠ.ㅠ..
보통 WPF로 할텐데 납득하기 힘든 상황이네요
네.. 장기적으로 모두 C#에서 하나의 플랫폼으로 개발하는게 맞다고 생각하는데
C# 개발자가 한 명이다 보니 혼자서 다 개발하기에 무리가 있고 또 개발자가 하기 싫어합니다.
C#에서 제어해야 하는 하드웨어도 상당량이지만 UI쪽 분량이 생각보다 엄청납니다.
화면 1개가 조건에 따라 3~4가지로 변화되는 형식이고 UI가 엄청 친절합니다. 팝업도 많고 설명도 많고 음성도 지원하고 4개국어도 지원하고.. (제가 C# 개발자여도 손 안댈듯 싶네요. 제가 UI 담당입니다 .ㅠㅠ)
문제는 회사겠죠.. UI 파트로 C# 개발자를 더 충원하면 될텐데..
충원하기 힘든 상황이면 wpf 개발자 아웃소싱 해야죠
저 같으면 이직 할 상황이지만..
키오스크가 윈도우OS 환경이라서, 윈도우 어플리케이션 개발자분이랑 같이 일했었는데,
배포서버에 static 리소스 올려두고, 키오스크 쪽 윈도우앱(로컬서버 및 브라우저 역할)에서 스케쥴에 따라 리소스 업데이트 되면,
새로 받아오고 콜백으로 브라우저 리로드 하는 형식으로 했었는데.. 지금도 그렇게 쓰고 있더라구요.
백오피스에서 각 키오스크에 리소스 강제 업데이트 할수 있는 트리거도 뒀었어요..
윈도우 앱에서 웹페이지의 JS 퍼블릭 메소드를 실행하는 형식으로 앱에서 페이지를 제어하게 하구요.
요즘은 윈도우 뿐만 아니라, 안드로이드, 리눅스 등의 OS로 많이 사용하더라구요.
모든 OS에서 동일한 프론트리소스로 가능한건.. 역시 웹이 좋은것 같아요.
여러가지 고민해본 결과 HTML5로 선택하기로 했습니다.
제가 새로 공부해야될게 많긴 하지만 국제표준이고 가장 적당한것 같아요.
홈페이지 작업도 많이해봐서 JS까지는 어느정도 알고 있으니 리액트 등 프레임워크 공부를 시작해야 될것 같습니다.
좋은 답변 감사합니다. ^^
잘 만들면 크로스플랫폼 지원도 가능하고요
답변감사합니다. 제 입장에서 QT는 좋은것 같은데..
하드웨어 제어 개발자가 다른 플랫폼으로 넘어갈 생각이 없다보니 적용이 어려울것 같아요.