본문 바로가기
미국 개발자/HOOTips

[HOO's Q&A] 전역 변수를 많이 사용해야 하지 않는 이유

by Henry Cho 2021. 8. 29.
728x90

전역 변수를 많이 사용해야 하지 않는 이유


Q: 전역 변수와 지역 변수 사용시에 결과값이 동일하다면 왜 지역변수를 위주로 작성해야 되나요?

Q: 저는 전역 변수로 놓는 것이 깔끔해 보여서 다 전역 변수로 빼놨더니 교수님이 F 주셨어요.


한국에서 전역 변수라고 불리는 Global variables는 전체 코드에 영향을 줄 수 있는 변수에 해당한다. 각각의 클래스 내부에 위치해 있는 local variables들과 달리 외부에 위치하고 있어 모든 클래스에 사용이 가능한 상태인 변수를 Global variables, 전역 변수라고 부른다. 필자에게 질문을 한 Bro는 "전역 변수를 왜 많이 사용해서는 안되는지?"이었다.  거두절미하고 전역 변수는 왠만하면 사용을 자제하는 것이 좋다.

 

# 프로그래머가 지켜야 하는 규칙을 잊으면 안된다.

왜 전역 변수보다 지역 변수를 선호해야 되는지에 대해서 이야기를 나누기 전에 프로그래머가 지켜야 하는 규칙을 다시 생각해보면 지역 변수를 더 사용해야겠다는 생각이 들 것이다. 전공자라면 Software Engineer가 프로그램 개발 시에 지켜야하는 규칙과 코드 작성 방식에 대해서 배웠을 것이다. 그 중에서 몇가지 예를 들어 보도록 하겠다. 실무에서 필자가 크게 느낀 부분 중 하나는 유지 관리성이다. 프로그래머는 프로그램 개발에 있어서 유지 관리에 대한 부분을 항상 신경써야 한다. 실제로 개발에 들어가는 비용보다 유지 관리 비용을 예산으로 더 많이 책정하고 중요하게 여기는 부분이다. 개발이 되어서 끝났다는게 프로그래머로써 중요한게 아니라 사용자가 프로그램 이용하는데 있어서 반영구적인 프로그램 사용이 가능해야 비로소 프로그래머로써 일을 제대로 한 것이다. 물론 영구적으로 프로그램 이용하면 좋겠지만 시대의 흐름과 기술의 발달은 프로그래머의 수정 및 업데이트를 필요로 하는데 그게 바로 유지 관리 부분인 셈이다. 유지 관리가 제대로 이루어지지 못하는 프로그램은 사실상 제대로 된 프로그램이 아니며, 해당 프로그램을 개발한 개발자 또한 제대로 된 개발자라고 보기 힘들다.

한가지 더 예를 들자면, 가독성이다. 유지관리 부분과 중복되는 점도 있지만 그 점을 제외하고 가독성 부분에서만 살펴보자. 프로그래밍에서 가독성이 중요한 이유는 프로그램은 혼자 만드는 것이 아니다. 장기적으로 오래 사용되는 복잡한 프로그램의 경우 한 사람이 해당 프로그램의 전반적인 관리는 어렵다. 나중에 죽지않고 뇌가 통 속에 들어가서 평생 살 수 있다면 가능하겠지만 지금 현실에서는 사실상 불가능하다. 따라서 다른 개발자와 같이 프로그램 개발 및 유지 관리를 수행하거나 자신이 해오던 프로그래밍 개발 또는 유지 관리에 대한 부분을 다른 개발자에게 알려줘야 하는 시기가 온다. 가독성은 다른 개발자가 자신이 작성한 코드를 정확하게 이해하고 문제없이 프로그램 개발 및 유지 보수가 가능하도록 도와준다. 하지만 제대로 정리되어 있지 않고 가독성이 떨어지는 코드일때 기존 코드를 이용하는 것보다 새로 만드는게 빠를 때도 있다.

이 외에도 프로그래머로써 지켜야 하는 규칙과 방식이 크게 6가지가 더 있지만 일단 2가지만 보더라도 Local variables를 더 선호하여 코드 작성을 해야 하는지 이해가 될 것이다.


# In conclusion, 3줄 요약

1. 결과 값이나 과정이 동일하다면 전역 변수보다는 지역 변수를 우선적으로 사용한다.

2. 프로그래머가 지켜야하는 규칙과 방식을 살펴보면 지역 변수를 더 사용해야하는지에 대해서 이해가 된다.

3. 예를 들어 유지 관리성과 가독성 부분에서만 보더라도 지역 변수를 더 선호하여 코드 작성을 해야한다.


 

728x90

댓글