디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

javascript의 타입에 관한 우려는 과장되었다고 생각함모바일에서 작성

ㅇㅇ(223.39) 2024.08.14 22:37:59
조회 67 추천 1 댓글 6

"js는 동적타입이기 때문에 인자로 뭐가 들어올지 예상할 수 없어서 구조적으로 불안정하고 난해하다"는 주장은 대부분 자바나 C계열 언어를 메인언어로 사용하고 js는 실제적으로 많이 사용하지는 않은 사람들로부터 주로 많이 들어왔던 것 같음.

이 분들은 상당수가 js를 원초적으로 싫어하는 경향이 많았던것 같고, js의 어이없는 동적 타입 변환짤 같은걸 농담으로 건넸던 것 같음.

그런데 나는 그 우려가 조금 과장되었다고 생각함.

1. js는 겉으로 드러나지않을뿐이지 실제로 런타임에는 해당 변수의 타입이 존재하고, 함수 내에서 엄격한 타입검사를 수행함으로서 얼마든지 필터를 만들수 있음.

if(typeof callback === 'function')
{
   callback();
}
else
{
   console.error('함수 타입이 아님');
}

2. 자주 사용하는 유틸 함수나 라이브러리 메소드의 반환값은 고정이기 때문에 반환값에 맞게 코드를 만들어놓으면 잘 돌아가는 상태로 그대로 대부분 계속 잘 돌아감.

3. 특정 클래스에서만 사용하는 특정 기능을 가진 메소드 같은건 호출하는 위치가 특정 위치로 한정되어있기 때문에, 악의적으로 이상한 곳에서 호출하거나, 해킹을 당해서 해커가 호출하거나, 코드 몽키가 이상한 인자로 저기 다른 클래스에서 호출하지않는 한에는 문제가 발생할 여지가 대부분 없음.

class MyModule
{
    //이 모듈에서만 쓰는 메소드
    async _updatePosition(values) {
       const { x, y } = values
       // ...
    }
}

4. JSDoc으로 함수 주석으로 매개변수를 표시해 함수사용시 알려줄수 있음

5. 실제로 js의 어이없는 동적 타입 변환 짤같은 식으로 코드를 짜지는 않음.

물론 잠재적 에러를 컴파일 시점에 못잡아내는건 단점이긴하지만 우려가 조금 과장되었다고 생각함.

대규모 협업환경에서 문제가 발생할 여지에 대해서는, C++이나 js 같은프로그래밍 언어도 중요하지만 사람도 중요한 것 같음.

추천 비추천

1

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 자식 사교육에 돈 엄청 쓸 것 같은 스타는? 운영자 24/09/09 - -
2748814 씹덕이면 안좋은 점 [8] 아스카영원히사랑해갤로그로 이동합니다. 09.10 61 1
2748812 마이바티스 jsp쓰는 구닥다리들 아직도 존재? [12] 프갤러(175.198) 09.10 90 1
2748810 프가THEMIX ㅡ 카리스마 코딩낭인(58.236) 09.10 13 0
2748808 마이바티스 왜 쓰냐니... 프갤러(118.235) 09.10 45 1
2748805 프갤가수 ㅡ 기집 같아서 코딩낭인(58.236) 09.10 16 0
2748802 디씨는 해외아이피 자주 막는듯 [3] 슈퍼막코더(116.64) 09.10 43 0
2748800 나이먹어서 그런가 힘딸린다 [2] 포항의봄갤로그로 이동합니다. 09.10 26 0
2748799 ㅇㅇ 프갤러(124.60) 09.10 19 0
2748798 문득 든 나님 생각 너희는 별개의 개체로 볼수있는가? ♥너겟과냥덩♥갤로그로 이동합니다. 09.10 18 0
2748797 프가 THE MIX ㅡ 너를 위해 코딩낭인(58.236) 09.10 15 0
2748796 마이바티스 왜 쓰는거임? [4] ㅇㅇ(114.30) 09.10 77 0
2748792 dd [2] 프갤러(124.60) 09.10 26 2
2748790 커리어 1차 고비다 [2] 프갤러(39.123) 09.10 59 0
2748789 피자한입하며 [4] 멍청한유라ㅋ갤로그로 이동합니다. 09.10 57 0
2748788 애널의 수면✨영상.. ♥너겟과냥덩♥갤로그로 이동합니다. 09.10 21 0
2748787 정처기 붙은지 어언 2년 [16] 프갤러(39.7) 09.10 101 0
2748786 대기업 자회사만 가도 맨날 시험인데 [4] 프갤러(39.7) 09.10 73 0
2748785 나님 담배 한 대 빨구 누우실준비.. ♥너겟과냥덩♥갤로그로 이동합니다. 09.10 29 0
2748784 3층 건물서 불나자 90대 할머니 안고 뛰어내린 30대 손자 발명도둑잡기갤로그로 이동합니다. 09.10 24 0
2748783 마이바티스 처음배우는데 이거 많이 씀?? [6] 딘퐁갤로그로 이동합니다. 09.10 66 0
2748781 휘짜.. [16] 멍청한유라ㅋ갤로그로 이동합니다. 09.10 75 0
2748780 정보처리기사 두번만에 붙었다 [1] 피자2021(58.235) 09.10 74 0
2748777 무식한 용감이라니 프갤러(49.165) 09.10 18 0
2748772 아 쓰발 Nas 노래 왜케 좋냐 hrin(118.235) 09.10 24 0
2748769 해당 도메인 지식 만 잘알아도.. 면접에 70점은 걍 먹고들어가는듯 [4] 프갤러(175.197) 09.10 45 0
2748766 리액트 컴포넌트 만드는거 ㅂㅅ짓거리 아닌가 싶네 [2] 프갤러(175.119) 09.10 51 0
2748765 내 여친 사진 올려봄 [2] 메쿠이로갤로그로 이동합니다. 09.10 74 0
2748764 개인프로젝트 할때 형상관리 대충하는 사람 있음? [2] 프갤러(211.46) 09.10 77 0
2748763 오늘 휫자 원쁘라스원이래 [10] 멍청한유라ㅋ갤로그로 이동합니다. 09.10 71 0
2748762 뉴빈데 이런글 써도 되는지 모르겠지만 그래픽 디자이너입니다 [5] 프갤러(27.119) 09.10 57 0
2748760 자격증은 솔까 신입한테나 필요하지 [8] ㅇㅇ(118.235) 09.10 81 0
2748758 몹시큰일이구나 [9] 골방외톨이갤로그로 이동합니다. 09.10 63 0
2748757 프론트 짜기 귀찮으면 jsp로 해도 좋겠지? [8] 프갤러(211.46) 09.10 82 0
2748756 졸작 너무 힘들어서 뒤지고싶다 [3] ㅇㅇ(223.39) 09.10 47 2
2748755 try catch vs err != nil [2] 프갤러(49.165) 09.10 42 2
2748754 내일은 라면 한그릇 뚝딱 해야지 오랜만에 [1] 주아갤로그로 이동합니다. 09.10 22 1
2748753 jsp 안해봤어도 쉽게 할수있어? [1] 프갤러(175.193) 09.10 55 1
2748752 김이란 신이 내린 반찬이다 [5] 주아갤로그로 이동합니다. 09.10 38 2
2748749 프로그램 데이터??그런거 잘아시는분 [1] ㅇㅇㅇㅇㅇ(59.22) 09.10 23 0
2748748 더워 미치겠다..ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09.10 15 0
2748747 Eung...ㅇㅅㅇ [4] 나트륨찡갤로그로 이동합니다. 09.10 35 0
2748744 정보처리기능사는 안쳐줌??? [6] 40대프린이(118.235) 09.10 75 0
2748743 회사에서 헬스한다 [4] hrin(118.235) 09.10 55 1
2748742 어뜨케.. 애플 2015년에 망한대..ㅇㅅㅇ [3] 헤르 미온느갤로그로 이동합니다. 09.10 50 0
2748741 성희롱 좀 했다고 자살하는게 ㄹㅇ개오바 [2] ♥너겟과냥덩♥갤로그로 이동합니다. 09.10 58 0
2748740 님들 집에서 일 잘됨? ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09.10 30 0
2748738 일어나라!! 손오공! ♥너겟과냥덩♥갤로그로 이동합니다. 09.10 14 0
2748736 기분이 좋아❤+ ♥너겟과냥덩♥갤로그로 이동합니다. 09.10 24 0
2748735 미친 놈들이 많다. 미친 놈들 잡으러 오늘도 노트북을 켠다. 도리스아(220.88) 09.10 17 0
2748734 뭘 해야 재밌을까 ㅇㅅㅇ [1] 포항의봄갤로그로 이동합니다. 09.10 19 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2