본문 바로가기

카테고리 없음

JavaScript, TypeScript에 대해서 알아보자.

JavaScript란 무엇인가요?

간단히 말해 웹페이지를 브라우저에서 돌아가게 하는 언어.

좀 더 덧붙여 말해 웹페이지의 스크립트 언어다. 다만 브라우저가 아닌 환경에서도 많이 사용된다.

 

JavaScript는 어떤 언어죠?

컴파일러, 컴파일 과정이 필요하지 않은 언어로도 잘 알려져 있듯, 인터프리터 언어이다.

프로토타입 기반 언어이다 : 즉, 클래스와 상속 등이 없다. 객체를 복사해서 사용한다.

다중 패러다임 스크립트 언어이다 : 즉, 정해진 프로그래밍 형식이 없다. 특히 JavaScript는 동적이고 명령어, 객체 지향, 함수 프로그래밍 스타일을 지원한다.

 

 

JavaScript는 어떻게 돌아가죠?

JavaScript 엔진에서 돌린다. 그 엔진 종류에는 SpiderMonkey도 있고(C/C++로 쓰여서(작성되어) Firefox 따위에서 쓰임(사용됨)), Rhino도 있다(Java로 쓰인(작성되서) JavaApplication에서 쓰임(사용됨)). 하지만 역시 가장 유명하고 널리 쓰이는 것은 V8 아니겠나. 구글이 C++로 만들었고 크롬 브라우저에 널리 쓰인다. 또한 2020년 1월에 Edge도 이 엔진을 도입했지.

 

JavaScript의 장점은 무엇인가요?

컴파일 과정이 필요하지 않으니 개발 과정이 단축된다.

화면 구성에 직접적으로 관여할 수 있으니 직관적인 코딩이 가능하다.

가볍고 빠르다.

 

JavaScript의 단점은 무엇인가요? : 초보 개발자적 관점

컴파일 안 하니까 사후에 에러를 확인한다.

컴파일 안 하고 인터프리터로 한줄씩 읽으니까 중간에 맛이 가면 갑자기 멈춘다.

파일 타입이 지정되지 않아 유효성 검사가 복잡해지고(이것은 object일까 DOM일까 null일까 undefined일까 NaN일까 등등) 가끔 오류 발생의 원인이 된다.

유저가 읽고자 하면 읽을 수 있다. 즉, 원본 소스가 노출된다. 즉, 보안을 철저히 해야 한다. 즉, 암호화 복호화를 적절히 하지 않으면 정말로 위험하다.

 

그럼 TypeScript란 무엇인가요? 특징은 뭐죠?

설명은 마쏘에서 조린 JavaScript으로 하겠습니다... 근데 거기에 규칙을 곁들인

JavaScript의 상위 확장(Superset) 언어로서, JavaScript에 Type이나 Class의 개념등을 도입해 좀 더 크고 엄격한 프로그래밍이 가능하도록 한 언어, 컴파일 과정을 거치도록 한 언어이다.

 

TypeScript는 어떻게 쓰죠?

자세한 설명은 여기가 더 좋겠다. 타입스크립트 핸드북의 한국어 번역 프로젝트다.

즉, JavaScript로 쓰되, 커멘드 등을 활용하여 컴파일 과정을 거쳐 실행함으로써, 문법 오류 등을 체크하는 식의 사용이 가능하다.

 

TypeScript의 장점은 뭐죠? 단점은 뭐죠?

TypeScript로 할 수 있는 것들이 장점이다. 컴파일 과정에서 에러 체크가 쉬워지고, Type 설정을 통해 유효성 검사의 무게를 한결 덜 수 있다.

장점과 단점을 한데 묶어서 말해주는 좋은 말이 있는데, JavaScript의 레거시 소스에 TypeScript를 도입하는 것은 어렵고 힘들다. 하지만 TypeScript로 만든 어플리케이션은 유지 보수가 쉽고 커뮤니케이션에서의 정보 분실이 덜 하다는 것이다.

 

바깥의 지식을 엮고 묶은 글에 불과하지만 틀렸다면 날카롭고 모질게 지적 바랍니다.

세상에, 코딩 글을 쓰면서 코드 하나 쓰지 않다니... 역시 난 문과인가.