BokChii
20
2021-03-14 16:30:56
3
434

C언어의 개발환경이 궁금합니다 !! 감사합니다.


안녕하세요 C언어의 개발환경에 대해서 공부하고 있는 학부생입니다.

JAVA와 C언어의 차이점에 대해서 찾아보던중에

JAVA라는 언어는 JAVA프로그램 개발을 원할 경우에 

단순히 컴파일러를 설치하여 실행하는 것으로 끝나는 것이 아닌 

JDK를 선행적으로 설치해준 후 이클립스와 같은 툴을 이용해서 개발이 가능한 것으로 알게 되었습니다.

반면에 C언어는 별도의 프로그램의 설치 없이

Visual Studio와 같은 컴파일러를 설치해주면 바로 프로그램의 개발이 가능한 것으로 압니다.

이유를 찾아보던 중 이게 컴파일언어와 인터프린터 언어의 차이인가 싶었지만

그것도 아닌 것 같아 질문 드려봅니다.

C언어의 개발환경에서도 JAVA의 JDK와 같은 필수 프로그램의 설치가 요구되나요?

아님 OS에서 자체적으로 지원이 되는 건가요?

아니면 JDK가 이식성이 좋은 JAVA의 특성을 위해 JAVA에서만 특별히 요구되는 프로그램인가요?


답변 주시면 대단히 감사하겠습니다 !! 

1
  • 답변 3

  • Mangsby
    242
    2021-03-14 16:48:10

    C언어도 비슷하게 C 런타임 라이브러리나 표준 라이브러리 헤더파일이 필요합니다.

    다만 Visual studio를 설치하면서 같이 설치되었을 거예요.

    Visual studio 2019의 경우 C:\Program Files (x86)\Windows Kits\10 디렉토리 아래

    Include 디렉토리에서 표준 라이브러리 헤더를,

    bin 디렉토리 아래 ucrt 관련 디렉토리에서 C 런타임 라이브러리 파일을 찾으실 수 있을 거예요.


    만들어진 프로그램을 배포할 때는 그냥 실행 가능한 경우도 있지만, JRE처럼 사용자가 재배포 패키지를 설치해야하는 경우가 있습니다.

    재배포 패키지나 MT, MD 빌드에 대해 찾아보세요.


  • Dierslair
    5k
    2021-03-14 16:49:18

    컴파일 언어 중에서도 자바, 파이썬, php 등과 같이 별도 런타임이 필요한 언어가 있습니다. C/C++, Rust 등의 언어는 컴파일되면 os가 바로 해석할 수 있는 바이너리로 변환되고 이 코드가 바로 os 위에서 돌게 됩니다. 사용자 코드가 바로 os와 상호작용하면서 매우 빠르고 효율적으로 동작하게 됩니다만, 사용자가 코드를 잘못 짠다든가, 잘못된 system call 등으로 오류가 발생하는 경우가 있어, 자바 등의 언어는 코드를 컴파일 하는 경우, os가 아닌 가상 머신이 해석할 수 있는 바이트 코드가 되며, 이 바이트 코드를 가상 머신이 해석하여 os와 상호작용을 합니다. 코드 -> VM -> OS 로 한 단계를 더 거치게 되어 오류가 발생할 수 있는 경우, 별도 시스템에서 제어합니다(Exception 등). 따라서 코더는 잘못된 코드를 짜게 되더라도 OS에서 발생하는 치명적인 오류를 피할 수 있는 반면 가상 머신 위에서 돌기 때문에 성능 저하 등의 문제가 있습니다.

  • 캐티
    5k
    2021-03-14 16:51:33

    자바는 JRE 라는 자바 런타임 환경에서 구동이 되빈다. 자바만에 공통 모듈방식 프로그래밍 환경이 제공되기 때문에 실제 코딩은 C#이랑 같스빈다. 예전에 델파이도 그랫는쩌여. 공통 모듈을 제공하므로 개발자가 작업하여야 할 많은 부분을 건너띄게 해주빈다. 글머 얼마나 편하게 개발을 하겠는쩌여.

    C언어 계열에는 그런게 없스빈다. 다만 윈도우 기반에서 공통환경에 대해서 가상메모리 영역에서 메모리 소비를 절감하기 위해서 공통 런타임 라이브러리 라는 방식을 쓰빈다. 그러니까 자주 쓰이는 기능들은 라이브러리로 만들어서 여러프로그램이 공유하는 방식이빈다. 일케 하면 메모리에 여러번 같은 모델을 적재할 필요가 없게되빈다. 물론 작은 프로그램은 그런 의존성으 제거해서 실행되도록 하기도 하빈다. 어차피 프로그램 코드라는게 많아봐야 이미지 리소스보다 메모리를 적게 먹스빈다. 일반적으로 말인쩌여.

    머 이식성 같은거는 C언어가 더 뛰어날꺼빈다. 자바는 여럿 플랫폼을 지원하고 있다는 점에서 범용적이긴 한데 반면에 C언어 기반에 앱들은 플랫폼에 맞게 포팅이 필요하빈다. 머 차이가 큰쩌여.

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