최근에 ASP.net core에서 SignalR이라는 기술을 접해보았습니다.
좋아하고 많이 다루는 언어는 C#인데 주로 Winform의 환경만 다루다 보니 확장된 기술을 사용하고 싶다는 열망이 가득했었습니다.
통신 서버는 주로 장비와 연결하기 위한 서버라서 콘솔환경에서 Tcp/IP 서버 프로그램 만들고 클라이언트에서 Winform으로 데이타를 수신해서 사용했는데 웹기술을 한번 익히고는 싶었습니다.
그러던중 Blazor라는 기술이 나와서 조금씩은 익히고는 있었습니다. Blazor 보면서 SignalR이라는 기술이 있는데
SignalR이라는것이 무엇인가? 감이 잘 안왔는데 최근에 수업을 들으면서 공부할 수 있었습니다.
https://learn.microsoft.com/ko-kr/aspnet/core/signalr/introduction?view=aspnetcore-9.0
제가 웹을 많이는 안해보고 연습정도만 해서 지식이 적은데...배우면서 느낀점은
웹에는 다양한 기술, 프레임 워크가 있는 것 같습니다.
예를 들어 자바스크립트만해도 Node.js의 express 같이 있꼬, 파이썬도 장고나 플라스크 같은 프레임 워크가 있는 것 같은데 웹이 상당히 만들어 놓은 라이브러리에 의존이 많은 프레임워크들만 쓰는게 많다보니 학습을 한다는 느낌보다는 방법을 배우고 있는 느낌이 상당히 강하게 느껴졌습니다. 물론 예를 들면 Vanilla js 같이 자바스크립트로만 하는 것도 있다고 들었습니다.
웹의 기술이 워낙 다양하고 방대하다 보니 하나의 프레임워크를 잘 만들어서 익히게 하고 사용하게 하는게 삽질을 덜하게 되는것이 아닐까 생각이 들었네요.
ASP.net Core에 SignalR이라는 기술도 한번 따라서 연습해봤는데 채팅 프로그램이었는데 웹끼리 통신하는 것은 다른것도 다 그러하니 별 감흥이 없었는데 Nuget 패키지 관리자에서 SignalR.Client를 다운받아 설치하고 HubConnection이라는 클래스를 통해서 서버와 WPF 어플리케이션, Winform 어플리케이션이 다 같이 연결되어 웹에서 전송이 어플리케이션으로 전송이 되는것을 보고 처음엔 엄청난 감동이 다가왔습니다.
그 이유가 서버와 어플리케이션을 연결하는 절차가 너무나도 단순하기 때문입니다.
몇번을 테스트 해보면서 예전엔 Tcp 관련 클래스 불러와서 통신에 대한 부분 만들고 테스트하는 부분이 쉬운편은 아니었는데 SignalR은 정말 쉽게 되니 한편으로는 불안함도 있었습니다.
내부에서 돌아가는 것이 어느날 갑자기 오류를 일으키면 어떻게 해야 하는것일까? MS에서 업데이트 해주기전까지는 손놓고 있어야 하는것인가?
기존 윈폼의 TCP관련 클래스가 물론 MS에서 제공하는 클래스이지만 많은 부분 직접 작업을 하면서 오류가 나면 대부분 어디가 문제다라고 알고 고치고 했는데 그리고 오랜기간 사용이 되어 오면서 많은 자료들도 있어서 익숙해지는 느낌이 들었는데 SignalR은 마치 집사를 불러서 "집사님~ 여기 여기 해주세요~"라고 요청만 하면 그 뒤는 알아서 해주는 느낌이네요.
물론 MS가 보통회사가 아니니 잘 만들었을 것이라 믿고 써야지요.
이런식이면 프레임워크에 의존하게 되서 언어 보다는 프레임워크에 이해가 중요한것 같아서 프레임워크 중단되면 바로 쓸모없는 기술이 될까봐 걱정인데 물론 MS이니 오래 오래 가지 않을까 합니다.
현재 배우고 있는 기술로 현업에서 뛰어 보지 못하는것이 많이 아쉽게 느껴지네요.
처보면 확실하게 장단점을 알 수 있을 텐데....
일이 조금만 여유가 생기면 회사 장비를 붙이는 메인 서버를 우분투로 해서 ASP.net core 설치하고 클라이언트쪽은 윈폼으로 연결해보고 싶네요.
조금 배워서 테스트 하면서 크게 느끼는것이 만들어내는 기술력이 중요하지만 제일 중요한것은 수익을 내는 콘텐츠이지 않을까 하네요. 콘텐츠 개발에만 집중하세요. 기술은 저희가 제공해드립니다.
예전에도 느꼈지만 회사분 중에는 기술적인 측면이 최고다 라고 생각하시는 분도 계시더라고요. 어려운 기술 쓰니 대단한 것이다. 모 그런식으로? 그런데 생각해보면 그 기술을 쓰는 사람이 쓰기 힘들고 어려우면 아무리 대단한 기술이라고 해도 외면을 받으니 좋다고만 볼 수 없지 않을까 싶습니다.
이전에도 많은 기술이 나왔지만 사람에 대한 이해와 관심이 없이 나온것이 오래가지는 않았던것 같습니다.
3D 티비도 나올땐 우와 했지만 오래 가지 못했지요. 저도 한번 써봤는데 처음에만 우아하고 10분 이상 관심을 못가졌던것 같아요.
기술을 통해 보다 나은 인간의 삶을 만드는데 기여하는 사람이 되고 싶다는 생각이 드네요.
여튼 레거시 기술만 알고 있다가 최신 기술 접해보고 놀란 워시기였습니다.
웹 기술은 정말 빠르게 발전하고 있구나 라고 생각이 들기도 하네요.
아직은 잘 몰라서 의구심이 가득한데 한번 익숙해지도록 노력해봐야 겠네요.
'개발' 카테고리의 다른 글
C#으로 하는 Thread (116) | 2024.11.23 |
---|---|
C#으로 하는 TCP/IP 통신 -1- (101) | 2024.11.22 |
C# 으로 하는 RS-232 -2- (94) | 2024.11.20 |
C#으로 하는 RS-232 -1- (92) | 2024.11.19 |
C#으로 하는 GPIB 통신 Fin (97) | 2024.11.18 |