C#에서 지역변수 사용하는 습관을 들이자 본문

개발 관련

C#에서 지역변수 사용하는 습관을 들이자

반응형

코딩하다보면 귀찮아서 혹은 연구용 프로그램이라 결과만 체크하고 바로 종료할 프로그램이던지 등을 이유로

]전역변수 선언해놓고 여러 메소드가 동일한 변수를 참조하게끔 하는 개발자가 대다수일 것이다

(필자도 당연 그렇다ㅋ) 다만 이것이 습관이 되어버리면 나중에 개인이 쓸 중요한 프로그램이나

(특히 트레이 아이콘으로 두어서 오래 켜두어야할 프로그램 등)

규모가 좀 되는 프로젝트에서 자칫 성능상 비효율의 원인이 되므로 가급적이면

귀찮더라도 메소드에서 쓰고 버릴 변수는 지역변수로 선언해 주는것이 좋다

C# 뿐만 아니라 C++등 생각외로 프로그래밍 전반에 적용될 개념이다.

 

지역변수를 각 메소드 마다 선언하게끔 코딩을 하면 메소드 호출시 해당 지역변수가

호출된 메소드 내에서 작업 수행 후 함수 호출 종료되는 즉시 해제되어 메모리에서도 사라진다.

while 문이나 타이머로 반복 호출되는 메소드라고 가정하면 

호출 - 작업수행 - 메모리해제 로 깔끔하게 쓰고 버린 것들은 메모리 공간 차지하는 일 없이

청소되므로(C++등의 경우는 메소드 맨 마지막에 따로 메모리 해제 코드 추가 필요) 불필요한 자원 점유를

방지할수 있다.

 

C#같은 경우는 이 경우에서 메소드 호출 해제시 전역변수로 여러메소드에서

참조하는 방식과 각 메소드 마다 각 지역변수를 선언하여 스코프 내에서 참조하도록

하는 방식을 비교해보면 폼 1개 밖에 안되는 단순한 유틸리티 어플리케이션에서 조차도

성능차이를 확실히 수치로 체감할수 있었다.

10메가 정도 램 먹는 프로그램을 평균 7~8메가로 다운시켰으니 

규모가 커지는 프로그램에서는 이러한 세세한 차이가 큰 결과를 불러올수 있다는 뜻이다.

 

따라서 귀찮더라도 항상 쓰고버릴 변수는 지역변수로 선언하여 

해당 메소드 호출이후 메모리에서 해제되도록 코딩하는 습관을 들이는 것이 좋다.

이게 간단하면서도 중요한 개념인데 의외로 인터넷이나 개발자 커뮤니티에서도 별로 이야기가 없는지라

이곳에 정리함. 어찌보면 너무 기본적인 개념이라 굳이 언급할 가치를 못느끼는 것일수도..

 

반응형

개발 관련 Related Articles

MORE