컴파일시에 warning 은 무시해도 되는건가요?
eclipse 나 android studio 등 툴을 이용하여 개발을 할시에 warning 이라는 문구를
종종 보곤합니다. error는 아니기에 사용하는데 큰 문제는 없으나 추후에 어떤 문제를
일으킬 수 있는지 궁금합니다.
warning은 말 그대로 경고입니다.
컴파일러는 문제를 일으킬 수 있을 것 같은 코드나 의도대로 동작하지 않을 것 같은 코드에도 warning을 띄웁니다.
예를 들어 if(result = tmp)의 경우 if(result == tmp)를 의도한 코드일 수 있으므로 warning을 띄웁니다.
정말 result = tmp; if(result)를 짧게 줄이기 위해서, 의도한 코드가 맞다면 그 경고는 무시하고 넘어가도 됩니다.경고 내용을 읽어 봐서, 문제 없는 코드인데 컴파일러의 오해로 만들어진 경고라면 무시하고 넘어가면 되고,
어떤 함수가 deprecated됐다거나 하는 경고라면... 다른 함수로 대체하는 등의 적절한 처리가 필요합니다.프알못님이 잘 말씀주신것처럼 문자 그대로 "경고" 입니다.
이러이러한 부분에 이런게 문제가 될수있으니 알려드립니다 라는거지 그게 꼭 문제를 일으킨다는 소리는 아닙니다.
가장 많은 에러중에 하나가 선언만 해두고 실제로 프로그램내부에서 전혀 사용되지 않는 변수를 알려주는 경고입니다.
예를들어 프로그램이
function func(){
var i = 1;
console.log(2);
}
이렇게 되어있는경우 var i = 1; 부분에 "에러"는 안나지만 "경고" 불이 들어오게됩니다.왜 쓰지도 않는 변수를 선언하였느냐, 이거 써야되는데 안쓴건 혹시 아니냐 등 "확인" 하라고 알려주는거죠
대부분의 경고는 10에 5은 무시해도 되는겁니다. 문법적으로 "에러"가 날법한 것들은 노란색 경고가 아니라 빨간색 에러 표기가 나고
대부분 컴파일러는 아예 컴파일이 실패합니다.
그리고 경고가 불편하시면 설정에서 원하는 경고만 띄우는 등 처리가 가능하니 활용하시길 바랍니다^^