[강의1-23]html문서에 javascript 이외에도 사용할 수 있는 언어가 있나요?

조회수 1117회

강의 1-23의 1분 20초경 <script type="">에서 타입을 지정해줄 수 있고 기본값으로 javascript가 지정되어 있다는 이야기를 들었습니다. 제가 알기로 웹브라우저는 html css javascript 이 세가지만을 다룰 수 있다고 들었는데 타입 지정이 있다는 것은 혹시 다른 script언어나 프로그래밍 언어를 사용할 수 있다는 뜻인가요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 안녕하세요 야무입니다. ㅡ^

    결론부터 이야기 드리면 플러그인 없이 브라우저에서 바로 작동 가능한 클라이언트 사이드 스크립트 언어는 ECMAScript(JavaScript) 밖에 없습니다.

    하지만 플러그인을 사용해 ActionScript , Silverlight, Java 등을 사용하거나, 컴파일 프로세스를 활용해 Dart, CoffeeScript, TypeScript 등을 JavaScript로 변경하여 사용할 수도 있습니다.

    ECMAScript가 유일한 클라이언트 사이드 스크립트 언어인 이유는 모든 브라우저가 고유한 버전의 사양을 구현해야 하기 때문입니다. 따라서 브라우저 제조사는 자신들만의 비 표준 언어로 유도하기 보다는 표준 언어를 지원하는데 힘써야 합니다.

    혼돈 - 표준이 확립되기 이전 시대

    표준이 확립되기 이전 클라이언트 사이트 스크립트 언어는 제조사 마다 구현이 달랐기 때문에 여러가지 MIME 타입을 지정해야 하는 문제가 있었습니다.

    <!-- 다양한 MIME 설정 -->
    
    <script type="text/javascript" src="temp.js"></script>
    
    <script type="text/ecmascript" src="temp.js"></script>
    
    <!-- x- 의미는 비공식으로 실험 중 -->
    <script type="application/x-javascript" src="temp.js"></script>
    
    <script type="text/javascript1.5" src="temp.js"></script>
    
    <!-- 비표준 -->
    <script language=”JavaScript” src="temp.js"></script>
    

    표준 확립

    이와 같은 혼란을 해결하기 위해 ECMAScript(JavaScript) MIME 표준 타입이 확정되었습니다. 내용을 살펴보면 Javascript 프로그램은 그 성격상 text 문서로 지정하는 것은 적절치 않으며, 대신 application/javascript 혹은 application/ecmascript (보다 엄격한 적용 규칙 설정)를 대신 사용할 것을 권장하였습니다.

    그래서 MIME 타입의 전체 목록을 살펴보면 확장자가 .js인 ECMAScript(JavaScript) 파일의 표준 MIME 타입은 application/javascript인 것을 알 수 있습니다.

    <!-- 표준 MIME 설정 -->
    <script type="application/javascript" src="temp.js"></script>
    
    <script type="application/ecmascript" src="temp.js"></script>
    

    구시대의 유물이 미치는 영향

    하지만 안타깝게도 구형 IE(<= 8)브라우저에서는 정상적으로 처리하지 못하기 때문에, 프로젝트에서 구형 IE를 고려해야 한다면 text/javascript 유형을 사용해야만 합니다.

    <script type="text/javascript" src="temp.js"></script>
    

    HTML5 표준

    HTML5 문서에서는 연결된 스타일/스크립트 문서의 MIME 타입을 생략할 수 있습니다. 브라우저는 MIME 타입을 명시적으로 설정하지 않을 경우 JavaScript로 인식하여 처리합니다.

    <script src="temp.js"></script>
    

    HTML5 표준 문서는 다음과 같이 기술합니다.

    type 속성을 통해 사용자가 스크립트 유형을 설정할 수 있습니다.

    속성을 생략하거나 JavaScript MIME 타입을 설정 하면, 클래식 JavaScript로 처리합니다. type, language 등 하나 이상의 속성을 통해 다양한 MIME 타입을 설정하기 보다는 속성을 생략하는 것이 낫습니다.

    The type attribute allows customization of the type of script represented: Omitting the attribute, or setting it to a JavaScript MIME type, means that the script is a classic script, to be interpreted according to the JavaScript Script top-level production. Classic scripts are affected by the charset, async, and defer attributes. Authors should omit the attribute, instead of redundantly giving a JavaScript MIME type.

    결론

    HTML5 문서에서 <script> 요소를 사용할 때 type 속성은 생략하고 사용하는 것이 좋습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 생각보다 깊은 역사적 맥락이 있었네요 ㅎㅎ 정성이 가득 느껴지는 답변 감사합니다😆 알 수 없는 사용자 2018.3.23 15:36

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)