IT공부

[ETC] 자바는 JVM 생략 OK, C#은 왜 .NET까지 묶일까?

shine94 2025. 4. 10. 12:34

☕ 자바는 "JVM 포함"이 당연한 생태계

   자바는 애초에 "Write Once, Run Anywhere"를 목표로 만들어진 언어다
   즉, 어디서든 돌아가려면 당연히 JVM이라는 실행 환경이 전제가 되어야 했다

 

   그래서 자바라는 의미에 사실상 자바 + JVM + 표준 라이브러리가 통째로 담겨있는 거고,
   이게 너무 당연하게 묶여 있어서 굳이 "자바 + JVM"이라고 말하지 않는다

   그냥 자바라고 한다

 

JUST 자바 😎😎😎

 

 

🧩 자바는 JVM 하나면 끝, C#은 선택부터 고민

   C#을 사용한다고 하면, 자연스럽게 따라붙는 게 하나 있다

   바로 "어디에서 실행되는 C#인가?"라는 질문이다

 

   자바는 JVM 하나면 깔끔하게 끝나는데, C#은 실행 환경이 좀 복잡하다

 

   과거에는 .NET Framework, .NET Core, Mono실행 환경이 나뉘어 있었고,

   (지금은 Core 기반의 .NET으로 통합 발전 중)

 

   또한 유니티는 전용 런타임 플랫폼이 있다

   

   그래서 C#을 쓴다고 하면, 어떤 플랫폼 위에서 쓰는지까지 함께 말해줘야 한다

 

JUST C# with .NET 😎😎😎

 

 

📝 더불어..ㅎ

   사실 처음에 .NET Framework라는 이름 보고, 부끄럽게도 지금까지 Spring 같은 구조적인 프레임워크를 생각했다

   (그냥 Framework라는 단어만 보고 Spring 느낌인 줄 알았던 1인... 🙋‍♂️)

   근데 알고 보니 .NET이라는 플랫폼의 구현체 중 하나였다

   이 글을 보고 저처럼 착각했던 분들이 있다면, 이 글이 작게나마 도움이 됐으면 좋겠다

 

 

🌐 실행 환경이 다양하다 = 플랫폼 이해가 더 중요해진다

   같은 C#인데도 어떤 환경이냐에 따라 개발 방식이나 느낌이 꽤 달라진다

 

 

🔚 정리하며

   자바는 JVM이라는 실행 환경이 너무 당연하게 깔려 있어서, 따로 언급할 필요가 없다

 

   반면,

   C#은 실행 환경이 워낙 다양하기 때문에, 단순히 C#만 언급하는 건 부족하다

   실행 환경을 함께 표현해주는 게 더 정확하다

 

 

+ 용어 설명

항목 플랫폼 (Platform) 프레임워크 (Framework)
목적 실행 환경 제공 개발 구조 제공
역할 앱/서비스가 동작할 수 있는 기반 코드 구조, 규칙 제공
예시 JVM, Unity, .NET Spring, React, Django
개발자 관점 앱이 어디서 돌아갈지 고민 앱을 어떻게 만들지 고민