티스토리 뷰

Note

헝가리식 노테이션, ecma script편

팅기지마세요 2020. 11. 26. 01:03
단, 이와 같은 헝가리안 노테이션이 필요할 때에나 의미가 있겠다.

(왜 타입스크립트를 쓰지 않는가? (20점))

기본 자료형

문자열

str~, 문자열은 string이기 때문이다, 웹과 자바스크립트의 근간은 문자열이다.

name => strName

city => strCity

숫자

num~, 위와 같은 이유, 컴퓨터과학과 컴퓨터공학의 근간은 숫자이다.

age => numAge

weight => numWeight

불린

bool~, boo도 가능하고, 더 귀여우나 그래도 소통을 위한 접두어라는 데에 의의를 두어보자. 또한 전기공학의 근간은 불린 아닌가?

또한 동사를 앞에 두고 의문형으로 이름을 짓는 경우도 많다.

dirty => boolDirty, isDirty

sleeping => boolSleeping, isSleeping

심볼

sym~, 위의 것들 무엇보다 심볼에게는 헝가리안 노테이션이 필요치 않나? 진정 그런 생각이 든다.

예시는 생략, 직접 심볼을 작성하는 경우에 고려하시오.

 

큰수, 언디파인드 등 생략, 언디파인드가 노테이션이 필요한가?

 

클래스

클래스의 헝가리안 노테이션이라 하면, 위에서 언급한 자료형보다는 m_ 으로 출발하는 멤버 변수 구분을 위한 접두어를 이야기하는 것일 텐데, 자바스크립트의 인스턴스 변수는 this 스코프의 멤버로 호출하기 때문에 고려하지 않아도 충분하다 하겠다. 현재 stage 3 프로포절인 private fields에 대해서도, # 접두어가 붙는 것이 그 스펙의 일부이다. (정적 메소드와 인스턴스 메소드를 구분짓는 용도로서의 .과 #은 일종의 컨벤션 수준이었기 때문에 앞으로는 폐기되지 않을까? Class#instanceMethod나 Class.#privateMethod, 이렇게 보면 혼란스럽다.)

 

클래스 자신에 대한 이야기라면 대문자로 이름을 시작하는 것만으로도 충분하다. (개발자 만인에 대한 합의가 충분히 되어 있다 하겠다.)

함수

헝가리안 노테이션 함수 대신 진지하게 타입스크립트의 도입을 고민하시오.

 

언제 헝가리식 노테이션이 요구되는가?

웹의 근간은 문자열, 우리가 스키마 문서를 열심히 작성하고 gRPC로 서버를 구축해서 런타임에 조각나지 않을 API를 만들었다고 해도, PG사에 인증 요청 한 번 보내고 쿼리스트링을 파싱해야하는 때가 반드시 오고 마는데.

const response = await fetch("https://approval");
const body = new URLSearchParams(await response.text());
const strTotal = body.get("total");
const total = Number(strTotal) || 0;

참고 자료, 나는 이런 빛이 바랜 HTML 문서를 좋아한다.

(끝)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크