본문 바로가기

Computer/C#

컴파일타임과 런타임 그리고 상수

반응형

C#은 컴파일타임 상수와 런타임상수 두 유형의 상수를 있습니다. 컴파일타임과 런타임은 서로 다르게 동작하기 때문에 적절하지 않은 상수 타입을 사용하면 상응하는 대가가 따릅니다. (허걱!)
컴파일타임 상수보다는 런타임 상수를 사용하라.
컴파일타임 상수가 약간 더 빠르긴 하지만 런타임 상수에 비해 유연성이 상당히 떨어진다.
컴파일타임 상수는 성능이 매우 중요하고 상수의 값이 절대로 바뀌지 않는 경우에만 제한적으로 사용하는 것이 좋다.

런타임 상수는 readonly 키워드를 사용하여 선언하고, 컴파일타임 상수는 const 키워드를 사용한다.

 

그럼? 런타임(Runtime)과 컴파일타임(Compiletime) 서로 다른 두 계층의 차이는?

런타임(Runtime)과 컴파일타임(Compiletime)은 소프트웨어 프로그램개발의 서로 다른 두 계층의 차이를 설명하기 위한 용어이다. 프로그램을 생성하기 위해 개발자는 첫째로 소스코드를 작성하고 컴파일이라는 과정을 통해 기계어코드로 변환 되어 실행 가능한 프로그램이 되며, 이러한 편집 과정을 컴파일타임(Compiletime) 이라고 부른다.
컴파일과정을 마친 프로그램은 사용자에 의해 실행되어 지며, 이러한 응용프로그램이 동작되어지는 때를 런타임(Runtime)이라고 부른다.
"런타임"과 "컴파일 타임"이라는 용어는 종종 서로다른 두 가지 타입의 에러를 나타내기 위해 사용되어지곤 하는데, 컴파일 타임 에러는 프로그램이 성공적으로 컴파일링되는 것을 방해하는 신택스에러(Syntax error)나 파일참조 오류와 같은 문제를 말하며, 이런 경우 컴파일러는 컴파일 타임 에러를 발생시키고 일반적으로 문제를 일으킨 소스코드 라인을 지시해준다.
만약, 어떤 소스코드가 이미 실행가능한 프로그램으로 컴파일 되었다 할지라도 이것은 여전히 프로그램의 실행중에 버그를 일으킬 수 있다. 예를 들자면, 예상치 못한 오류 또는 충돌로 동작하지 않을 수 있는데 이렇게 프로그램이 실행중에 발생하는 형태의 오류를 런타임오류 라고 한다.
출처: https://spaghetti-code.tistory.com/35 [어떻게 짤것인가]

 

readonly 키워드를 이용하여 선언된 런타임상수는 컴파일타임 상수처럼 컴파일타임에 값으로 대체되지 않고 상수에 대한 참조로 컴파일 된다.

 

정리한번 해 보았다.

반응형

'Computer > C#' 카테고리의 다른 글

컴파일타임과 런타임 그리고 상수  (0) 2021.01.06
XML 포멧 Element 수정 및 생성  (0) 2020.07.02
시작 프로그램 등록  (0) 2020.06.30
DateTime  (0) 2020.04.23
[C#] 입력 다이얼로그 하드코딩 코드  (0) 2019.12.20
마우스 좌표 가져오기  (0) 2019.02.25
Higherbit, Lowbit 합치기  (0) 2017.08.30
[C#] serialPort, Delay  (0) 2017.06.21

BLOG Version/ 1.0.0.1 _20.04.09
Copyright © 2002-2020 EIGHTBOX. All Rights Reserved.
Behold the fowls of the air: for they sow not, neither do they reap, nor gather into barns; yet your heavenly Father feedeth them. Are you not much better than they?