ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴파일 타임(Compiletime) 과 런타임 (Runtime)의 차이
    앱 개발/용어정리 2020. 7. 16. 11:09
    반응형

     

    dart 언어에 대해 보다가 final 변수는 runtime 과정에서 상수를 정의하고

    const는 compile과정에서 상수를 정의한다는 글을 보았다.

    그래서 이에 대해 정리해보았다.


     

    개발자는 프로그램이 어떻게 작동할지에 대한 소스코드를 입력한다.

     

    이 소스코드는 컴파일(Compile)과정을 통해 사용자가 실행가능한 프로그램이 되는데

    이 컴파일 되는 과정을 컴파일 타임(compile time)이라고 부른다.

     

    컴파일된 프로그램은 사용자로부터 실행되어지는데 이 응용프로그램이 실행되는 과정을

    런타임(runtime)이라고 한다. 

     

    [예시]

    final List<String> languages = [];
    const List<String> companies = [];
    
    // no error
    languages.add('dart');
    
    // compile error
    companies.add('Google');
    languages = ['Java'];

    final과 const는 상수 값을 정의하기 때문에 둘 다 값을 새로 할당하는 동작을 불가능하지만, final의 경우에는 runtime에서 배열이 정의되기 때문에 값의 추가와 삭제에서는 제한을 받지 않는다.


    컴파일타임 에러(Compiletime error)는 성공적으로 프로그램을 컴파일링되는 것을 방해하는 문제이며 신텍스 에러(syntax error)나 파일 참조 오류(missing file reference) 같은 문제가 있다.

    이런 문제가 발생할 경우 주로 문제가 되는 소스코드 라인을 알려준다.

     

    런타임 에러(Runtime error) 프로그램의 소스코드가 이미 실행가능한 프로그램으로 컴파일 된다 하더라도 프로그램이 러닝되는 동안 버그가 발생할 수 있다.

    실행되지 않는 특성(feacture)들을 포함한다던지 기대하지 않은 프로그램의 행동 혹은 프로그램 충돌같은 문제가 있다. 이 유형의 문제는 그들이 런타임에 발생하기 때문에 런타임 에러라고 불린다.  

     

    https://pc.net/helpcenter/answers/compile_time_vs_runtime

     

     

     

    반응형

    댓글

Designed by Tistory.