본문 바로가기
IT/짧은 팁

static 사용에 주의하세요.

by 참치가이 2020. 11. 10.

Java와 C#에서 static 키워드를 사용하면 변수나 메소드가 프로그램 실행 시 바로 메모리에 올라갑니다. 객체를 생성하지 않아도 말이죠.

그렇기에 무분별한 static 남발은 비효율적인 메모리 구조를 낳게 됩니다.

그런데 이보다 더 무서운 사실이 있습니다. static 변수는 하나만 생성됩니다. 그렇기에 이 변수를 수정하게 되면 모든 곳에 반영됩니다.

eat() 함수가 static String food = 'pork'를 사용한다고 생각해봅시다. 잘 사용하고 있는데 다른 개발자가 실수로 혹은 악의적으로 food = 'stone'이라고 수정한다면? 아마 프로그램은 각종 오류를 뿜게 될 것입니다.

그렇기에 static 변수를 사용할 시에는 final이나 const 등을 사용하여 값이 변하지 않게 설정하시기를 추천 드립니다. 값이 변경될 필요가 있으면 어떻하냐고요? 그럴 경우 static이 아닌 일반 변수를 사용하는 것이 대부분의 상황에서 더 좋은 해결책이 될 것입니다.

댓글