slog 개발
slog는 blog 시스템과 유사하나 천천히 자신의 글을 작성하고 확장해나가는 컨셉으로 올해 초 개발하다 현재 멈춰 있는 상태입니다. DBMS 의존성을 없애기 위해 자체 파일 데이터베이스 구조를 취했었습니다.
동일한 컨셉으로 DBMS에 의존적이지 않으나 이후 확장 가능하도록 EF Core에 파일 기반 Provider로 재구현하려고 합니다.
그리고 화면 렌더링은 올해 충분히 경험한 Blazor Server를 이용하려고 합니다.
slog가 완성되기전 진행상황은 이곳에 댓글로 과정을 공유할 예정입니다.
Raspberry Pi 4를 이용해 강의자료 생성
현재 신구대 시간강사를 하고 있습니다. 내년 1학기에 Raspberry Pi 등의 SBC를 이용해 강의를 진행하기 위해 강의자료를 생성해야 합니다. 학교에서는 python언어를 이용해 진행하는데, 교수께 건의하여 .NET C#으로 강의를 진행하려고 준비중입니다.
Raspberry Pi 4를 이용해 GPIO 및 다양한 통신 Interface를 이용해 Device를 제어하는 예제들을 생성해 나갈 예정입니다.
올해까지 경험한 .NET 기술 컨퍼런스 자료 생성
Raspberry Pi를 이용해 볼링 시스템을 개발하여 현재 운용중에 있습니다. Blazor Server를 통해 시제품 수준의 용역 솔루션도 개발했습니다. 이 경험을 바탕으로 컨퍼런스에서 발표할 자료를 생성 하고 독자에게 의미있는 정보를 전달하고자 합니다.
Raspberry Pi 4에서 구동할 모듈을 개발 중입니다. 총 4가지 기능이 있으며, TTS, STT, 영상인식 및 장비제어입니다. 초기 버젼은 Google Cloud Text To Speech 및 Google Cloud Speech To Text로 각각 TTS, STT를 구현중이며, API를 사용하는 수준이므로 특별히 대단한 코드는 없습니다. 다만, 스피커 및 마이크를 개발환경인 윈도에서 인식하고 Raspberry Pi에서 소스코드 수정없이 인식하는 정도이고,
장비제어는 GPIO를 통해 I/O를 할 예정입니다. (10개 input 및 10개 output) .NET에서 이미 GPIO에 대한 지원이 있으므로 이것도 대단한건 없습니다.
그나저나 예전에 비해 Raspberry Pi에 .NET 으로 이것저것 만들수 있어서 좋습니다. .NET 하시는 분 Raspberry Pi를 장난감으로 살 만 합니다.
Blazor Server의 경우, HTML 생성이 서버에서 이루어지기 때문에, StateHasChanged()이 호출되었을 때 랜더링이 재 평가 되고, 결과적으로 변경된 것만 SignalR로 클라이언트에 전송되어 부분 재 랜더링 된다 하더라도 foreach 문 등 CPU 자원을 많이 사용할 여지가 있어 보입니다.
B2B모델이거나 사내 솔루션 정도의 규모는 어쨌든 Blazor Server가 매력적이기는 합니다. 이유는,
서버에서 연결 당 컨텍스트를 유지하기 때문에 저절로 실시간 다중접속자 처리가 간편해집니다. 이벤트가 발생했을 때 연결된 클라이언트 들에게 전파할 수 있고 (예를 들어 채팅방) 즉각적이죠.