본문 바로가기

웹 개발/JAVA

Why JAVA?

제조업은 여전히 온프레미스 환경 즉, 데스크탑 앱으로 각종 프로그램을 이룸

MES, ERP 등 결국 데스크탑 응용 프로그램은 클라이언트 UI를 개발하기 때문에 ASP .NET을 이용하는게 보통

 

궁금증

 

왜 닷넷을 사용하냐?

1. 제조업은 여전히 온프레미스(사내 서버) + 데스크탑 환경 중심

  • 생산현장은 대부분 인터넷이 불안정하거나 제한된 폐쇄망임.
  • UI가 단순하고 빠르게 반응해야 하는 장비용 프로그램이 많음.
  • 이 환경에서 **데스크탑 앱(WPF, WinForms)**은 웹앱보다 성능, 반응성, 유지보수 면에서 유리함.
  • .NET은 데스크탑 앱 개발에 최적화된 유일한 선택지 중 하나.

2. Windows 환경과의 뛰어난 통합성

  • 제조업 MES/ERP/POP 대부분은 Windows 기반 서버, Windows PC 위에서 운영.
  • Active Directory, Excel 연동, 네트워크 공유 드라이브, USB 장비, 스캐너, 바코드 리더 등과 통합 필요.
  • .NET은 Windows API와 자연스럽게 연동 가능.

 

브라우저를 사용하지 않는 이유, 웹으로 개발하지 않는 이유

1. 실시간 성능과 반응속도 차이

  • 데스크탑 앱은 UI가 로컬에서 바로 실행되고, 장비와 바로 연결되어 있기 때문에 응답 속도가 빠르고 딜레이가 거의 없음.
  • 웹 앱은 브라우저 렌더링, JavaScript 실행, HTTP 요청/응답 등 오버헤드가 있어 약간의 지연이 있을 수 있음.
  • 특히 생산 현장에서는 아주 짧은 시간 지연도 문제가 될 수 있음.

2. 장비 및 OS 레벨 연동 한계

  • 데스크탑 앱은 COM, DLL, Win32 API 등 Windows의 저수준 API를 직접 사용할 수 있음.
  • 바코드 스캐너, 프린터, PLC, 센서 같은 장비 연동을 하려면 OS와 직접 소통해야 하는데, 웹 앱은 브라우저 샌드박스(sandbox) 때문에 접근에 제한이 많음.
  • 로컬 네트워크 장비와의 실시간 통신도 데스크탑 앱이 훨씬 안정적.

단점

1. Windows 의존성 (특히 기존 .NET Framework)

  • 기존 .NET Framework는 Windows에만 최적화되어 있어,
    Linux나 macOS 같은 다른 운영체제에서는 지원이 제한적임
  • 최근의 .NET Core / .NET 5 이상은 크로스 플랫폼이지만,
    GUI 개발(WinForms, WPF)은 여전히 Windows 전용

2. 플랫폼 제한된 GUI 프레임워크

  • WinForms, WPF는 강력하지만 Windows 전용이라
    크로스 플랫폼 UI 개발이 어려움
  • 모바일 앱 개발 시에는 별도 기술(.NET MAUI 등) 필요하며, 아직 초기 단계

이를 자바로 대체한다면?

1. 진정한 크로스플랫폼 지원

  • Java는 JVM(Java Virtual Machine) 위에서 동작해서
    Windows, Linux, macOS 등 다양한 OS에서 동일하게 실행 가능
  • 서버, 클라우드, 임베디드 환경까지 폭넓게 활용 가능
  • 반면 닷넷은 GUI 데스크탑 앱은 Windows 전용인 경우가 많음

2. 풍부한 오픈소스 생태계

  • Java는 세계적으로 매우 큰 개발자 커뮤니티와 방대한 오픈소스 라이브러리 보유
  • Apache, Spring, Hibernate, Kafka 등 엔터프라이즈급 솔루션과 미들웨어가 풍부
  • 산업용, 빅데이터, AI 등 다양한 분야 지원 폭이 넓음

3. 안정적인 대규모 시스템 지원

  • Java는 대규모 금융, 통신, 제조업 등에서 수십 년간 검증된 안정성을 자랑
  • JVM 튜닝으로 성능 최적화 가능, 실시간 시스템에도 일부 적용 가능
  • 강력한 멀티스레드, 분산처리 지원