안녕하세요 jju_developer입니다.
점심시간을 이용해서 막간의 지식을 나누려고 합니당.
저는 주로 java || C# 그리고 리액트 (타입스크립트)로 웹 개발을 하고있습니다!
C#으로 서버 측 로직을 개발하고, React로 사용자 인터페이스를 구현하는 웹서버에 대해서
궁금하신분 계신가용?
평소 자바로 백엔드를 했었고, 리액드를 클라이언트로 사용을 했었는데,
C#으로 간다면 무엇이 달라질까요?
라는 궁금증으로 블로그 글을 작성하게 되었습니다!
C#을 사용해서 백엔드 서버를 웹으로 구현할 때 일반적으로 **ASP.NET Core**를 사용합니다.
ASP.NET Core는 마이크로소프트에서 제공하는 프레임워크입니다.
웹 애플리케이션, API 서버, 실시간 서비스 등을 만들 수 있는 것이죠!
C#과 React 그리고 rabbitMQ로 개발을 할때에 서버 구성은 어떻게 되는지 말씀드리겠습니다.
C#을 사용한 백엔드 서버 구성
C#을 사용해서 백엔드 서버를 웹으로 구현할 때 일반적으로 ASP.NET Core를 사용합니다.
ASP.NET Core는 마이크로소프트에서 제공하는 프레임워크로, 웹 애플리케이션, API 서버, 실시간 서비스 등을 만들 수 있습니다.
Java와 C# 백엔드 환경 비교
기능Java (Spring Boot)C# (.NET)
웹 프레임워크 | Spring Boot | ASP.NET Core |
내장 웹 서버 | Tomcat | Kestrel |
ORM | JPA (Hibernate) | Entity Framework (EF Core) |
의존성 관리 | Maven, Gradle | NuGet |
메시지 큐 | RabbitMQ, Kafka | RabbitMQ, Azure Service Bus |
리버스 프록시 | Nginx, Apache, HAProxy | IIS, Nginx, Apache |
Java에서 Spring Boot를 사용할 때 내장 웹 서버로 Tomcat이 제공되는 것처럼, C#에서는 기본적으로 Kestrel이 내장되어 있습니다. Kestrel은 빠르고 가벼운 웹 서버로, 백엔드 API를 실행하는 데 사용됩니다.
C# + React + RabbitMQ 서버 구성
C#과 React 그리고 RabbitMQ를 사용할 때의 서버 구조를 살펴보겠습니다.
- 웹 서버 (Kestrel)
- Java에서 Tomcat을 사용하듯이, C#에서는 Kestrel을 웹 서버로 사용합니다.
- 일반적으로 리버스 프록시(IIS, Nginx, Apache)와 함께 배포됩니다.
- 백엔드 (ASP.NET Core API)
- React에서 API 요청을 받는 RESTful API 서버를 구현합니다.
- 요청을 처리하고, 필요한 경우 RabbitMQ에 메시지를 보냅니다.
- 메시지 브로커 (RabbitMQ)
- 대량의 데이터 처리 또는 비동기 작업을 수행하기 위해 RabbitMQ를 사용합니다.
- 예를 들어, 파일 업로드 후 처리를 백그라운드에서 실행할 때 RabbitMQ를 활용할 수 있습니다.
- 프론트엔드 (React)
- React는 백엔드 API와 통신하며, 클라이언트 측 UI를 제공합니다.
- 리버스 프록시 (IIS 또는 Nginx)
- 클라이언트(React)가 백엔드 API를 호출할 때 보안과 성능을 위해 리버스 프록시를 사용할 수 있습니다.
정리
- Java에서 Spring Boot + Tomcat + RabbitMQ를 사용했다면,
C#에서는 ASP.NET Core + Kestrel + RabbitMQ를 사용합니다. - 두 환경 모두 REST API 서버를 구축하고, 메시지 큐를 활용한 비동기 작업을 수행할 수 있습니다.
- Java에서는 Maven/Gradle, C#에서는 NuGet을 통해 라이브러리를 관리합니다.
- C#의 Entity Framework Core(EF Core)는 Java의 JPA와 유사한 ORM 역할을 합니다.
기존에 Java로 개발했던 경험이 있다면, C# 도 두려워 하지 마십숑..!
혹시라도 틀린 내용이 있다면 언제나 답글 달아주세용
감사합니당...!
'C# 기초 공부' 카테고리의 다른 글
C# namespace에 아직도 {}가 되어있으시다면..? (2) | 2025.01.22 |
---|---|
[백준] C# 나는야 포켓몬 마스터 이다솜 (1) | 2024.10.20 |
[C#] 이진 트리 공부 (0) | 2024.10.07 |
[C#] 엑셀 파일 만들기 (기초) (0) | 2024.10.05 |
[C#] KeyValuePair vs Dictionary 차이점 (1) | 2024.10.02 |