JQuery 환경에서 javascript  변수 선언시.

2013-06-02 16:07

var inputUserName = $('#userName'); var $userName = $('#userName');

위, 두개의 선언은 사실 똑같이 처리 됩니다. 문제는 javascript에서도 헝가리안 표기법을 따르며, jquery가 도입될 경우 변수명으로 이것이 selector인지 일반 변수인지 알 수가 없는거죠..

해당 문제로 이래 저래 찾아보면 jXXX를 붙이거나, 그냥 사용하거나 $를 붙이거나..등등 여러가지 방법으로 코딩을 하고, 또, 이문제에 대해서 토론하는 거 같네요..

개인적으로는 두번째 방법으로 일관성을 주는 게 좋은 듯한데.

var ssn = '1111111111'; var $ssn = $('#ssn');

이렇게.

여러분들은 어떻게 사용하시나요?

3개의 의견 from SLiPP

2013-06-03 09:27

나도 다음과 같이 개발한다.

var ssn = '1111111111'; var $ssn = $('#ssn');

즉, jQuery selector를 활용한 변수는 변수명 앞에 $을 붙이고 그렇지 않은 경우에는 $없이 변수명을 사용하는 방식을 취한다. 다른 방식도 있겠지만 프로젝트 내에서 일관성만 있다면 된다고 본다.

흔히 Coding Convention과 관련해서도 많은 이야기들이 있는데 프로젝트를 같이하는 사람들간의 일관성만 지키면서 개발한다면 예외적인 Convention도 허용 가능하지 않을까? 물론 너무 파격적인 예외는 새롭게 합류하는 사람의 학습 비용을 증가시킬 수 있기 때문에 썩 바람직하지는 않겠지.

2013-06-03 09:53

페북 글도 보았습니다만, 헝가리안 표기법이 네이밍을 잘하면 피할 수 있고, 피해야 하는 것이 맞다고 생각합니다(실제로 헝가리안 표기법을 이제는 안쓰고요).

헌데 여기서는 좀 달라보여요. $object에서 $ 는 헝가리안 표기법으로 보이지 않습니다.

jQuery 객체의 경우 문제가 되는 것이 하나의 대상을 바라보는 클래스가 두 개라는 점입니다.

예를들면 price면 그냥 int 아니면 long (즉, 정수)구나 하죠.

하지만 javascript 에서 DOM을 가리키는 변수가 target이라고 있을 때, 이 녀석이 Javascript DOM 객체 일 수도 있고, jQuery 객체 일 수도 있습니다. 즉, 클래스가 두 개입니다.

또 다른 예를 들면, article 이라는 테이블이 있습니다. 근데 코드를 짠 사람이 하나의 테이블인데 클래스 두개를 만든거예요. Article, 그리고 DisplayArticle. 그리고 DisplayArticle은 데이터는 비슷하지만 메소드들이 많이 다르다고 쳐요. 이때 DisplayArticle에 대한 변수를 보통은 뭐로 만들까요? 저라면 displayArticle 이라고 앞에 "display"를 붙여서 변수를 만들것입니다. 이걸보고 헝가리안 표기법이라고 하는 사람은 별로 없을것입니다.

마찬가지로, 하나의 대상에 대해 클래스가 2 개 이상 존재한다면 그 두가지를 구분하는 것이 특히 동적인 언어에서는 혼란을 줄여줄 것으로 보입니다.

즉, $ssn = $('#ssn'); 한 표.

2013-06-03 10:24

헝가리안이라고 써뒀지만 사실 변수 이름에 대한 특정 룰이 정해져 있을 경우에 대한 얘기. 예로 우리 사이트의 javascript 변수는 무조건 소문자로 정의! 라던지.. 언더바 처리! 라던지. 리터럴 변수도 무조건 소문자로 처리..라던지.. 여튼,

이런경우 jquery와 같은 변수와 일반 변수의 구분을 어떻게 할 것인가의 문제.

아.. 이로써 두표 얻었음.! ㅋㅋ

의견 추가하기

연관태그

← 목록으로