안녕하세요.
최근 닷넷데브 커뮤니티를 알게된 뉴비 입니다.
약 1년 반정도 드론 모니터링 시스템을 구축했습니다.
해당 업무 중간에 스프링 프로젝트를 하게 되면서 내가 왜 C++로 웹서버를 만들었을까 라는 후회가 들었습니다.(웹에 최적화된 프레임워크를 쓰니 너무나 편해서요. ㅠㅠ)
요구사항은
- 우분투에서 실행
- epoll을 써줬으면 한다.
→ 회사에 대부분 C++개발자 밖에 없었고(저 또한 다른 언어에 대한 지식이 미천하여 ㅠㅠ )
→ crow라는 웹서버 라이브러리가 있대.
–>>> 오 그럼 C++로 개발하면 되겠다. 가 되었습니다.
현재 백엔드는 C++(boost, crow lib 사용), 프론트엔드는 타입스크립트로 개발되었습니다.
프로젝트는 끝이났고, 모든 요구사항은 만족하였습니다만, 내가 제대로 구조를 짜서 개발한게 맞나 싶더군요.
다른 쓰레드 모듈도 있긴 한데 통신을 위해서 만든 쓰레드는 아래 4개입니다.
main
|- 드론 normal 포트 연결을 위한 쓰레드 생성(epoll)
|- 드론 urgent 포트 연결을 위한 쓰레드 생성(epoll)
|- 화면단과 통신하기 위한 웹소켓 쓰레드 생성
|- 외부 서버와의 I/F를 위한 REST API 쓰레드 생성
작년에 asp.net core에 대한 존재를 알게되었고 만약 지금 프로젝트를 .net core로 만들면 어땠을까? 라는 생각이 들더군요.
궁금한 것은 둘중에 무엇이 더 나은 방향인지 의견 여쭙습니다.
- .net core로 콘솔응용프로그램을 만들고, 거기에 웹소켓, restapi 기능을 추가한다. (프론트엔드 소스는 건들지 않는다라는 조건에서)
- asp.net core 프로젝트로 작성하고, 프론트엔드도 그에 맞게 수정한다.
글 읽어주셔서 감사합니다.
좋은 커뮤니티 만들어주셔서 감사해요.
추신. 이 커뮤니티는 무엇으로 개발되었나요? ㅎㅎ 갑자기 궁금해졌습니다.