훈먕
45
2022-02-07 01:15:13
4
938

C#과 자바에 대해서


선배님들  안녕하세요 , C#과 자바의 차이점이 궁금합니다. 

단순히 C#은 자바와 똑같다는 말을 하시는 분들도 계시고 , 플랫폼이 어떤지에 따라 다를 수 있다고 말씀 하

시는데 초보 개발자인 저로서는 이해가 잘 안되네요..

둘 다 객체 지향 언어임에는 틀림이 없지만 C#를 사용하진 않아서 어떤 부분이 다른지 궁금합니다. 

2
  • 댓글 4

  • fender
    26k
    2022-02-07 06:46:28 작성 2022-02-07 10:18:25 수정됨

    우선 언어 자체를 비교하면, 말씀하신대로 기본적인 사상이 거의 동일합니다. 소소한 차이가 있다면, 우선 C#에 있고 자바에 없는 기능은 확장 메서드, 구조체, ref/out 인자, 런타임에 지워지지 않는 제너릭 정도가 떠오르고, 반대로 자바에 있는데 C#이 지원하지 않는 경우는 메서드 있는 열거형, 옵션 유형, 내부 클래스의 부모 인스턴스 참조 정도가 기억납니다.

    언어 외적으로 말하면 자바는 한 때 매우 넓은 저변을 확보했고 아직도 상당한 점유율을 자랑하지만, 웹/서버과 모바일 일부를 제외하고는 사용 영역이 좁아지는 추세입니다.

    반면 C#은 처음 나왔을 때의 서버 측에서 자바와 경쟁하겠다는 목표를 달성하진 못했지만 유니티 이후 게임 엔진에서 흔히 사용하고 원래 MS의 "앞 마당"이었던 데스크탑 분야에서 계속 널리 쓰이고 있는 등 범용성이 부각되고 있습니다.

    대략 자바는 썬이 망하기 직전부터 내리막이다가 자바8로 다소 반등한 상황 + "부잣집은 망해도 n년은 간다"는 상황인 것 같고, C#의 경우 정신 차린 MS가 분전하면서 인식도 좋아지고 널리 쓰이고 있긴 합니다.

    다만 애초에 상대적으로 낮은 점유율로 시작했고, 요즘은 자바/타입스크립트, 파이썬 등 다양한 언어가 경쟁하는 시대인 만큼 대세가 되긴 어렵지 않나 정도의 느낌은 있습니다.

  • 김성중
    660
    2022-02-07 09:16:37

    JAVA 가 JVM 에서 동작하면서 다양한 OS 에서 동일한 개발이 가능했고 MS 는 Visual C++/Basic 등은 각각의 OS 별로 개발을 다르게 해야 했습니다.

    그래서 JAVA 가 선풍적인 인기를 끌게되자 이에 위기감을 느낌 MS 에서 JVM 과 비슷한 .Net 프레임워크를 만들게 되는데 JVM 과 다른점으로는 JVM 은 JAVA 만 돌아가는데 반해서 .Net 프레임워크는 다양한 언어들이 동작할 수 있도록 제공을 하고 있습니다.

    그리고 Visual C++ > C#.Net 이지만 코드는 C 쪽을 물려받았다고 하기보다는 JAVA 개발자를 끌어들이기 위해서 JAVA 와 소스코드가 유사합니다.


  • 훈먕
    45
    2022-04-13 09:36:48

    @fender , @김성중


    질문드린 시간에 비해서 답변드린 시간이 엄청 늦었네요 .. 먼저 사과 드리고 감사하다는 말씀 드리고 싶습니다!


    감사합니다!

  • 로그인을 하시면 댓글을 등록할 수 있습니다.