Top 31 모듈 이란 The 146 Detailed Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 모듈 이란 on Google, you do not find the information you need! Here are the best content compiled and compiled by the Toplist.maxfit.vn team, along with other related topics such as: 모듈 이란 프로그래밍 모듈 뜻, 파이썬 모듈이란, 건축 모듈이란, 반도체 모듈이란, 통신 모듈이란, 모듈식 뜻, 자바 모듈이란, 시스템 모듈


모듈이란? 모듈화란? module
모듈이란? 모듈화란? module


모듈

  • Article author: www.ktword.co.kr
  • Reviews from users: 32691 ⭐ Ratings
  • Top rated: 4.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 모듈 일반적으로, 모듈 이란? ㅇ 보다 작고 이해할 수 있는 단위로 나뉘어진 것 ㅇ 본체(本體)에서 분리되어, – 작은 부분으로 유기적으로(기능별로) 구성 … …
  • Most searched keywords: Whether you are looking for 모듈 일반적으로, 모듈 이란? ㅇ 보다 작고 이해할 수 있는 단위로 나뉘어진 것 ㅇ 본체(本體)에서 분리되어, – 작은 부분으로 유기적으로(기능별로) 구성 …
  • Table of Contents:
모듈
모듈

Read More

모듈 소개

  • Article author: ko.javascript.info
  • Reviews from users: 17355 ⭐ Ratings
  • Top rated: 4.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 모듈 소개 개발하는 애플리케이션의 크기가 커지면 언젠간 파일을 여러 개로 분리해야 하는 시점이 옵니다. 이때 분리된 파일 각각을 ‘모듈(module)’이라고 부르는데, … …
  • Most searched keywords: Whether you are looking for 모듈 소개 개발하는 애플리케이션의 크기가 커지면 언젠간 파일을 여러 개로 분리해야 하는 시점이 옵니다. 이때 분리된 파일 각각을 ‘모듈(module)’이라고 부르는데, …
  • Table of Contents:

모듈이란

모듈의 핵심 기능

브라우저 특정 기능

빌드 툴

요약

댓글

모듈 소개
모듈 소개

Read More

space.coding :: 모듈 1.모듈이란? 2.모듈화 3.Node.js 4.라이브러리 5.라이브러리사용하기

  • Article author: tjsdudkim.tistory.com
  • Reviews from users: 380 ⭐ Ratings
  • Top rated: 4.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about space.coding :: 모듈 1.모듈이란? 2.모듈화 3.Node.js 4.라이브러리 5.라이브러리사용하기 모듈이란? 순수한 자바스크립트에서는 모듈(module)이라는 개념이 분명하게 존재하지는 않는다. 하지만 자바스크립트가 구동되는 호스트 환경에 … …
  • Most searched keywords: Whether you are looking for space.coding :: 모듈 1.모듈이란? 2.모듈화 3.Node.js 4.라이브러리 5.라이브러리사용하기 모듈이란? 순수한 자바스크립트에서는 모듈(module)이라는 개념이 분명하게 존재하지는 않는다. 하지만 자바스크립트가 구동되는 호스트 환경에 … 1.모듈이란? 프로그램은 작고 단순한 것에서 크고 복잡한 것으로 진화한다. 그 과정에서 코드의 재활용성을 높이고, 유지보수를 쉽게 할 수 있는 다양한 기법들이 사용된다. (아주 좋은 부품을 만들어서 사용한다..
  • Table of Contents:

네비게이션

모듈 1모듈이란 2모듈화 3Nodejs 4라이브러리 5라이브러리사용하기

사이드바

검색

space.coding :: 모듈 1.모듈이란? 2.모듈화 3.Node.js 4.라이브러리 5.라이브러리사용하기
space.coding :: 모듈 1.모듈이란? 2.모듈화 3.Node.js 4.라이브러리 5.라이브러리사용하기

Read More

[JavaScript] 모듈이란?

  • Article author: velog.io
  • Reviews from users: 44319 ⭐ Ratings
  • Top rated: 4.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [JavaScript] 모듈이란? 모듈이 뭘까? 자바스크립트 모듈만의 특징이 있을까? … 프로그래밍에서 모듈 이란 프로그램을 구성하는 구성요소의 일부입니다. 개발하는 애플리케이션의 … …
  • Most searched keywords: Whether you are looking for [JavaScript] 모듈이란? 모듈이 뭘까? 자바스크립트 모듈만의 특징이 있을까? … 프로그래밍에서 모듈 이란 프로그램을 구성하는 구성요소의 일부입니다. 개발하는 애플리케이션의 … 1️⃣ 모듈이 뭘까? 자바스크립트 모듈만의 특징이 있을까?
  • Table of Contents:
[JavaScript] 모듈이란?
[JavaScript] 모듈이란?

Read More

5.1 모듈이란 – 왕초보를 위한 Python: 쉽게 풀어 쓴 기초 문법과 실습

  • Article author: wikidocs.net
  • Reviews from users: 8521 ⭐ Ratings
  • Top rated: 3.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 5.1 모듈이란 – 왕초보를 위한 Python: 쉽게 풀어 쓴 기초 문법과 실습 5.1 모듈이란 … 모듈은 프로그램의 꾸러미라고 생각하시면 되지요. … 위에서는 math 모듈 내에 정의되어 있는 pi 변수를 사용했습니다. pi는 원주율을 뜻하지요. …
  • Most searched keywords: Whether you are looking for 5.1 모듈이란 – 왕초보를 위한 Python: 쉽게 풀어 쓴 기초 문법과 실습 5.1 모듈이란 … 모듈은 프로그램의 꾸러미라고 생각하시면 되지요. … 위에서는 math 모듈 내에 정의되어 있는 pi 변수를 사용했습니다. pi는 원주율을 뜻하지요. 온라인 책을 제작 공유하는 플랫폼 서비스
  • Table of Contents:
5.1 모듈이란 - 왕초보를 위한 Python: 쉽게 풀어 쓴 기초 문법과 실습
5.1 모듈이란 – 왕초보를 위한 Python: 쉽게 풀어 쓴 기초 문법과 실습

Read More

로지 :: [ 용어 ] 모듈(Module)이란

  • Article author: redssin.tistory.com
  • Reviews from users: 35072 ⭐ Ratings
  • Top rated: 3.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 로지 :: [ 용어 ] 모듈(Module)이란 [ 용어 ] 모듈(Module)이란 … 1. 기능상 성격이 비슷한 또는 연관성 있는 부분들이 조립된 덩어리를 말합니다. … 등등으로 구성된다고 한다면, 엔지 모듈, … …
  • Most searched keywords: Whether you are looking for 로지 :: [ 용어 ] 모듈(Module)이란 [ 용어 ] 모듈(Module)이란 … 1. 기능상 성격이 비슷한 또는 연관성 있는 부분들이 조립된 덩어리를 말합니다. … 등등으로 구성된다고 한다면, 엔지 모듈, … 1. 기능상 성격이 비슷한 또는 연관성 있는 부분들이 조립된 덩어리를 말합니다. 예를 들어 자동차를 구성하는 기능은 엔진 기능, 차체 기능, 트랜스 미션 기능, 컨트롤 기능 등등으로 구성된다고 한다면, 엔지 모..
  • Table of Contents:
로지 :: [ 용어 ] 모듈(Module)이란
로지 :: [ 용어 ] 모듈(Module)이란

Read More

모듈(Module)와 모듈화란? | VincentGeranium Blog

  • Article author: vincentgeranium.github.io
  • Reviews from users: 44479 ⭐ Ratings
  • Top rated: 3.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 모듈(Module)와 모듈화란? | VincentGeranium Blog 프로그래밍에서, 모듈 이란? · 자바 언어 -> 패키지는 여러 클래스들의 모음, 모듈은 여러 패키지들의 모음 · 기타 언어 -> 모듈은 기능(함수)별로 여럿을 … …
  • Most searched keywords: Whether you are looking for 모듈(Module)와 모듈화란? | VincentGeranium Blog 프로그래밍에서, 모듈 이란? · 자바 언어 -> 패키지는 여러 클래스들의 모음, 모듈은 여러 패키지들의 모음 · 기타 언어 -> 모듈은 기능(함수)별로 여럿을 … 모듈(Module)
  • Table of Contents:
모듈(Module)와 모듈화란? | VincentGeranium Blog
모듈(Module)와 모듈화란? | VincentGeranium Blog

Read More

모듈(Module)/모듈화(Modularization)프로그래밍 :: DOHAN’s iOS

  • Article author: doh-an.tistory.com
  • Reviews from users: 37345 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 모듈(Module)/모듈화(Modularization)프로그래밍 :: DOHAN’s iOS 무슨 말인지 알 것 같긴 한데…. 모듈에 대해 처음 접한다면 알듯말듯 한 설명이다. 쉽게 말하면, 모듈이란 특정 기능별로 나누어지는 프로그램 덩어리 … …
  • Most searched keywords: Whether you are looking for 모듈(Module)/모듈화(Modularization)프로그래밍 :: DOHAN’s iOS 무슨 말인지 알 것 같긴 한데…. 모듈에 대해 처음 접한다면 알듯말듯 한 설명이다. 쉽게 말하면, 모듈이란 특정 기능별로 나누어지는 프로그램 덩어리 … 모듈 Module 이란? 개발을 하면서 모듈화 프로그래밍의 중요성에 대해 한번쯤은 들어본 적이 있을 것이다. 모듈이란 무엇이며, 모듈화가 왜 중요한 걸까? 다음은 네이버에서 모듈(module)을 검색했을 때 나오는 결..Like a piece of cake. 🍰 iOS Dev.
  • Table of Contents:

모듈 Module 이란

TAG

관련글 관련글 더보기

인기포스트

티스토리툴바

모듈(Module)/모듈화(Modularization)프로그래밍 :: DOHAN's iOS
모듈(Module)/모듈화(Modularization)프로그래밍 :: DOHAN’s iOS

Read More

모듈 이란

  • Article author: www.terms.co.kr
  • Reviews from users: 26514 ⭐ Ratings
  • Top rated: 4.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 모듈 이란 컴퓨터 하드웨어나 전자공학에서 말하는 모듈이란, 커다란 장치나 배열 내에서 비교적 작은 크기의 부품으로서 독립적으로 설치되고, 교체되고, 사용될 수 있도록 설계된 … …
  • Most searched keywords: Whether you are looking for 모듈 이란 컴퓨터 하드웨어나 전자공학에서 말하는 모듈이란, 커다란 장치나 배열 내에서 비교적 작은 크기의 부품으로서 독립적으로 설치되고, 교체되고, 사용될 수 있도록 설계된 …
  • Table of Contents:
모듈 이란
모듈 이란

Read More

모듈(Module)과 모듈화(Modularization)에 대한 정의와 이해

  • Article author: iwuooh.com
  • Reviews from users: 21379 ⭐ Ratings
  • Top rated: 3.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 모듈(Module)과 모듈화(Modularization)에 대한 정의와 이해 모듈(Module) 모듈이란 프로그램을 구성하는 시스템을 기능 단위로 독립적인 부분으로 분리한 것이다. 단순히 규모가 큰 것을 작게 여러 개로 나눈 … …
  • Most searched keywords: Whether you are looking for 모듈(Module)과 모듈화(Modularization)에 대한 정의와 이해 모듈(Module) 모듈이란 프로그램을 구성하는 시스템을 기능 단위로 독립적인 부분으로 분리한 것이다. 단순히 규모가 큰 것을 작게 여러 개로 나눈 … 모듈(Module) 모듈이란 프로그램을 구성하는 시스템을 기능 단위로 독립적인 부분으로 분리한 것이다. 단순히 규모가 큰 것을 작게 여러 개로 나눈 조각이 아니라, 하나 이상의 논리적인 기능을 수행하기 위한 명..
  • Table of Contents:

모듈(Module)

모듈화(Modularization)

관련글

댓글0

모듈(Module)과 모듈화(Modularization)에 대한 정의와 이해
모듈(Module)과 모듈화(Modularization)에 대한 정의와 이해

Read More


See more articles in the same category here: toplist.maxfit.vn/blog.

모듈 소개

개발하는 애플리케이션의 크기가 커지면 언젠간 파일을 여러 개로 분리해야 하는 시점이 옵니다. 이때 분리된 파일 각각을 ‘모듈(module)’이라고 부르는데, 모듈은 대개 클래스 하나 혹은 특정한 목적을 가진 복수의 함수로 구성된 라이브러리 하나로 구성됩니다.

자바스크립트가 만들어 진지 얼마 안 되었을 때는 자바스크립트로 만든 스크립트의 크기도 작고 기능도 단순했기 때문에 자바스크립트는 긴 세월 동안 모듈 관련 표준 문법 없이 성장할 수 있었습니다. 새로운 문법을 만들 필요가 없었던 것이죠.

그런데 스크립트의 크기가 점차 커지고 기능도 복잡해지자 자바스크립트 커뮤니티는 특별한 라이브러리를 만들어 필요한 모듈을 언제든지 불러올 수 있게 해준다거나 코드를 모듈 단위로 구성해 주는 방법을 만드는 등 다양한 시도를 하게 됩니다.

그 시도는 다음과 같은 모듈 시스템으로 이어졌습니다.

AMD – 가장 오래된 모듈 시스템 중 하나로 require.js라는 라이브러리를 통해 처음 개발되었습니다.

CommonJS – Node.js 서버를 위해 만들어진 모듈 시스템입니다.

UMD – AMD와 CommonJS와 같은 다양한 모듈 시스템을 함께 사용하기 위해 만들어졌습니다.

이런 모듈 시스템은 오래된 스크립트에서 여전히 발견할 수 있는데, 이제는 역사의 뒤안길로 사라져가고 있습니다.

모듈 시스템은 2015년에 표준으로 등재되었습니다. 이 이후로 관련 문법은 진화를 거듭해 이제는 대부분의 주요 브라우저와 Node.js가 모듈 시스템을 지원하고 있습니다. 이제 본격적으로 모던 자바스크립트에서 쓰이는 모듈에 대해 알아봅시다.

모듈은 단지 파일 하나에 불과합니다. 스크립트 하나는 모듈 하나입니다.

모듈에 특수한 지시자 export 와 import 를 적용하면 다른 모듈을 불러와 불러온 모듈에 있는 함수를 호출하는 것과 같은 기능 공유가 가능합니다.

export 지시자를 변수나 함수 앞에 붙이면 외부 모듈에서 해당 변수나 함수에 접근할 수 있습니다( 모듈 내보내기 ).

지시자를 변수나 함수 앞에 붙이면 외부 모듈에서 해당 변수나 함수에 접근할 수 있습니다( ). import 지시자를 사용하면 외부 모듈의 기능을 가져올 수 있습니다( 모듈 가져오기 ).

export 지시자를 사용해 파일 sayHi.js 내부의 함수 sayHi 를 외부로 내보내 봅시다.

// 📁 sayHi.js export function sayHi(user) { alert(`Hello, ${user}!`); }

이제 import 지시자를 사용해 main.js 에서 함수 sayHi 를 사용할 수 있게 해봅시다.

// 📁 main.js import {sayHi} from ‘./sayHi.js’; alert(sayHi); // 함수 sayHi(‘John’); // Hello, John!

위 예시에서 import 지시자는 상대 경로( ./sayHi.js ) 기준으로 모듈을 가져오고 sayHi.js 에서 내보낸 함수 sayHi 를 상응하는 변수에 할당합니다.

이제 브라우저에서 모듈이 어떻게 동작하는지 예시를 이용해 알아봅시다.

모듈은 특수한 키워드나 기능과 함께 사용되므로

브라우저가 자동으로 모듈을 가져오고 평가한 다음, 이를 실행한 것을 확인할 수 있습니다.

모듈은 로컬 파일에서 동작하지 않고, HTTP 또는 HTTPS 프로토콜을 통해서만 동작합니다. 로컬에서 file:// 프로토콜을 사용해 웹페이지를 열면 import , export 지시자가 동작하지 않습니다. 예시를 실행하려면 로컬 웹 서버인 static-server나, 코드 에디터의 ‘라이브 서버’ 익스텐션(Visual Studio Code 에디터의 경우 Live Server Extension)을 사용하세요.

‘일반’ 스크립트와 모듈의 차이는 무엇일까요?

모든 호스트 환경에 공통으로 적용되는 모듈의 핵심 기능에 대해 알아봅시다.

모듈은 항상 엄격 모드(use strict) 로 실행됩니다. 선언되지 않은 변수에 값을 할당하는 등의 코드는 에러를 발생시킵니다.

모듈은 자신만의 스코프가 있습니다. 따라서 모듈 내부에서 정의한 변수나 함수는 다른 스크립트에서 접근할 수 없습니다.

user.js 와 hello.js 를 가져오고 user.js 에서 선언한 변수 user 를 hello.js 에서 사용해봅시다. 에러가 난 것을 확인할 수 있습니다(개발자 도구 확인).

alert(user); // 모듈은 변수를 공유하지 않기 때문에 `Uncaught ReferenceError: user is not defined`라는 에러가 콘솔 패널에 출력됩니다. let user = "John";

외부에 공개하려는 모듈은 export 해야 하고, 내보내진 모듈을 가져와 사용하려면 import 해줘야 합니다.

전역변수를 대신하여 hello.js 에 user.js 를 가져와 필요한 기능을 얻을 수 있습니다.

아래와 같이 코드를 수정하면 정상적으로 동작합니다.

import {user} from './user.js'; document.body.innerHTML = user; // John export let user = "John";

브라우저 환경에서도

참고로 브라우저 환경에서 부득이하게 window 레벨 전역 변수를 만들어야 한다면 window 객체에 변수를 명시적으로 할당하고 window.user 와 같이 접근하는 방식을 취하시면 됩니다. 그런데 이 방법은 정말 필요한 경우에만 사용하길 권유합니다.

동일한 모듈이 여러 곳에서 사용되더라도 모듈은 최초 호출 시 단 한 번만 실행됩니다. 실행 후 결과는 이 모듈을 가져가려는 모든 모듈에 내보내 집니다.

이런 작동 방식은 중요한 결과를 초래합니다. 예시를 통해 이에 대해 알아봅시다.

alert 함수가 있는 모듈( alert.js )을 여러 모듈에서 가져오기로 해봅시다. 얼럿 창은 단 한 번만 나타납니다.

// 📁 alert.js alert("모듈이 평가되었습니다!");

// 동일한 모듈을 여러 모듈에서 가져오기 // 📁 1.js import `./alert.js`; // 얼럿창에 '모듈이 평가되었습니다!'가 출력됩니다. // 📁 2.js import `./alert.js`; // 아무 일도 발생하지 않습니다.

실무에선 최상위 레벨 모듈을 대개 초기화나 내부에서 쓰이는 데이터 구조를 만들고 이를 내보내 재사용하고 싶을 때 사용합니다.

이제 좀 더 어려운 예시를 살펴보겠습니다.

객체를 내보내는 모듈을 만들어봅시다.

// 📁 admin.js export let admin = { name: "John" };

이 모듈을 가져오는 모듈이 여러 개이더라도 앞서 설명한 것처럼 모듈은 최초 호출 시 단 한 번만 평가됩니다. 이때 admin 객체가 만들어지고 이 모듈을 가져오는 모든 모듈에 admin 객체가 전달됩니다.

각 모듈에 동일한 admin 객체가 전달되는 것이죠.

// 📁 1.js import {admin} from './admin.js'; admin.name = "Pete"; // 📁 2.js import {admin} from './admin.js'; alert(admin.name); // Pete // 1.js와 2.js 모두 같은 객체를 가져오므로 // 1.js에서 객체에 가한 조작을 2.js에서도 확인할 수 있습니다.

자, 다시 한번 말씀드리겠습니다. 모듈은 단 한 번만 실행되고 실행된 모듈은 필요한 곳에 공유되므로 어느 한 모듈에서 admin 객체를 수정하면 다른 모듈에서도 변경사항을 확인할 수 있습니다.

이런 특징을 이용하면 모듈 *설정(configuration)*을 쉽게 할 수 있습니다. 최초로 실행되는 모듈의 객체 프로퍼티를 원하는 대로 설정하면 다른 모듈에서 이 설정을 그대로 사용할 수 있기 때문이죠.

예시를 통해 이에 대해 자세히 알아봅시다. 아래 admin.js 모듈은 어떤 특정한 기능을 제공해주는데, 이 기능을 사용하려면 외부에서 admin 객체와 관련된 인증 정보를 받아와야 한다고 가정해봅시다.

// 📁 admin.js export let admin = { }; export function sayHi() { alert(`${admin.name}님, 안녕하세요!`); }

최초로 실행되는 스크립트인 init.js 에서 admin.name 을 설정해주었습니다. 이렇게 하면 admin.js 를 포함한 외부 스크립트에서 admin.name 에 저장된 정보를 볼 수 있습니다.

// 📁 init.js import {admin} from './admin.js'; admin.name = "보라";

또 다른 모듈에서도 admin.name 에 저장된 정보를 볼 수 있다는 걸 확인해 봅시다.

// 📁 other.js import {admin, sayHi} from './admin.js'; alert(admin.name); // 보라 sayHi(); // 보라님, 안녕하세요!

import.meta 객체는 현재 모듈에 대한 정보를 제공해줍니다.

호스트 환경에 따라 제공하는 정보의 내용은 다른데, 브라우저 환경에선 스크립트의 URL 정보를 얻을 수 있습니다. HTML 안에 있는 모듈이라면, 현재 실행 중인 웹페이지의 URL 정보를 얻을 수 있습니다.

사소한 내용이지만 튜토리얼의 완전성을 위해 이 내용을 언급하고 넘어가야 할 것 같습니다.

모듈 최상위 레벨의 this 는 undefined 입니다.

모듈이 아닌 일반 스크립트의 this 는 전역 객체인 것과 대조됩니다.

브라우저 환경에서 type="module" 이 붙은 스크립트가 일반 스크립트와 어떤 점이 다른지 알아봅시다.

자바스크립트 초심자나 브라우저 환경에서 자바스크립트를 사용하지 않고 있다면 이 내용은 넘어가셔도 됩니다.

모듈 스크립트는 항상 지연 실행됩니다. 외부 스크립트, 인라인 스크립트와 관계없이 마치 defer 속성을 붙인 것처럼 실행됩니다( defer 속성에 대한 자세한 내용은 defer, async 스크립트에서 확인할 수 있습니다).

따라서 모듈 스크립트는 아래와 같은 특징을 보입니다.

외부 모듈 스크립트 하단의 일반 스크립트와 비교해 봅시다.

위 예시에서 일반 스크립트는 첫 번째 모듈 스크립트보다 먼저 실행된다는 점에 주의하시기 바랍니다. undefined 가 먼저, object 는 나중에 출력됩니다.

모듈 스크립트는 지연 실행되기 때문에 문서 전체가 처리되기 전까지 실행되지 않고, 일반 스크립트는 바로 실행되므로 위와 같은 결과가 나타났습니다.

모듈을 사용할 땐 HTML 페이지가 완전히 나타난 이후에 모듈이 실행된다는 점에 항상 유의해야 합니다. 페이지 내 특정 기능이 모듈 스크립트에 의존적인 경우, 모듈이 완전히 로딩되기 전에 페이지가 먼저 사용자에게 노출되면 사용자가 혼란을 느낄 수 있기 때문입니다. 모듈 스크립트를 불러오는 동안엔 투명 오버레이나 '로딩 인디케이터(loading indicator)'를 보여주어 사용자의 혼란을 예방해 주도록 합시다.

모듈이 아닌 일반 스크립트에서 async 속성은 외부 스크립트를 불러올 때만 유효합니다. async 속성이 붙은 스크립트는 로딩이 끝나면 다른 스크립트나 HTML 문서가 처리되길 기다리지 않고 바로 실행됩니다.

반면, 모듈 스크립트에선 async 속성을 인라인 스크립트에도 적용할 수 있습니다.

아래 인라인 스크립트엔 async 속성이 붙었기 때문에 다른 스크립트나 HTML이 처리되길 기다리지 않고 바로 실행됩니다.

가져오기( ./analytics.js ) 작업이 끝나면 HTML 파싱이 끝나지 않았거나 다른 스크립트가 대기 상태에 있더라도 모듈이 바로 실행됩니다.

이런 특징은 광고나 문서 레벨 이벤트 리스너, 카운터 같이 어디에도 종속되지 않는 기능을 구현할 때 유용하게 사용할 수 있습니다.

type="module" 가 붙은 외부 모듈 스크립트엔 두 가지 큰 특징이 있습니다.

src 속성값이 동일한 외부 스크립트는 한 번만 실행됩니다. 외부 사이트같이 다른 오리진에서 모듈 스크립트를 불러오려면 CORS 챕터에서 설명한 바와 같이 CORS 헤더가 필요합니다. 모듈이 저장되어있는 원격 서버가 Access-Control-Allow-Origin: * 헤더를 제공해야만 외부 모듈을 불러올 수 있습니다. 참고로 * 대신 페치(fetch)를 허용할 도메인을 명시할 수도 있습니다. 이 특징은 보안을 강화해 줍니다.

브라우저 환경에서 import 는 반드시 상대 혹은 절대 URL 앞에 와야 합니다. ‘경로가 없는’ 모듈은 허용되지 않습니다.

아래 예제에서 import 는 무효합니다.

import {sayHi} from 'sayHi'; // Error! // './sayHi.js'와 같이 경로 정보를 지정해 주어야 합니다.

Node.js나 번들링 툴은 경로가 없어도 해당 모듈을 찾을 수 있는 방법을 알기 때문에 경로가 없는 모듈을 사용할 수 있습니다. 하지만 브라우저는 경로 없는 모듈을 지원하지 않습니다.

구식 브라우저는 type="module" 을 해석하지 못하기 때문에 모듈 타입의 스크립트를 만나면 이를 무시하고 넘어갑니다. nomodule 속성을 사용하면 이런 상황을 대비할 수 있습니다.

브라우저 환경에서 모듈을 '단독’으로 사용하는 경우는 흔치 않습니다. 대개 웹팩(Webpack)과 같은 특별한 툴을 사용해 모듈을 한 데 묶어(번들링) 프로덕션 서버에 올리는 방식을 사용합니다.

번들러를 사용하면 모듈 분해를 통제할 수 있습니다. 여기에 더하여 경로가 없는 모듈이나 CSS, HTML 포맷의 모듈을 사용할 수 있게 해준다는 장점이 있습니다.

빌드 툴의 역할은 아래와 같습니다.

HTML의

번들링 과정을 거치면 모듈이 일반 스크립트가 되어버리긴 하지만 네이티브 모듈도 당연히 사용 가능하므로 이 튜토리얼에선 웹팩없이 내용을 전개해보도록 하겠습니다.

지금까지 배운 내용을 요약해봅시다.

모듈은 하나의 파일입니다. 브라우저에서 import , export 지시자를 사용하려면

위의 코드는 아무런 문제가 없다. 하지만 welcome 함수가 자주 사용되는 것이라고 가정해보자. 이런 경우 이것이 필요할 때마다 이 함수를 정의해서 사용하는 것은

유지보수도 어렵고 낭비가 될 것이다. 이럴 때 모듈이 필요하다. 함수 welcome을 모듈로 만들어보자.

main파일

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 < !DOCTYPE html > < html > < head > < meta charset = "utf-8" / > < script src = "greeting.js" > < body > < script > //모듈화 이해를 돕기위한 코드 // 이 규모는 모듈화가 필요는 없다 // 하지만 welcome()함수 안이 매우 복잡하다 가정하자 // 여기에 welcome()함수를 작성하기 다소 복잡할 수 있다그러니 별도의 파일로 빼고 별도의 파일을 읽어모는것을 통해서 welcome()함수를 사용할 수 있다면 길고 복잡한 함수가 단 한줄로 바뀔 수 있다 /*function welcome(){//이함수를 컷팅해서 greeting함수에 너어준다 return 'Hello world' } */ alert (welcome()); //welcome() 한 페이지에서 50번 호출된다 생각해보자 Colored by Color Scripter cs

참고 그림 greenting.js 파일

1 2 3 4 function welcome(){ return 'Hello world' } Colored by Color Scripter cs

참고 그림

파일을 분류함으로 해서 main파일이 코드가 간겨해진 점을 볼 수 있다

이렇게 sub.html파일 에서 도 사용할 수 있다

1 2 3 4 5 6 7 8 9 10 11 12 13 14 < !DOCTYPE html > < html > < head > < script src = "greenting.js" > < title > < body > < script > welcome(); cs

모듈의 사용

새로운 파일을 만든다. 이름은 greeting.js 다. 자바스크립트 파일은 확장자로 js를 사용한다.

greeting.js

function welcome(){

return 'Hello world';

}

main.html의 내용을 다음과 같이 변경한다.

main.html

이전 예제와 비교했을 때 결과는 같다.

하지만 함수 welcome을 main.html의 외부 파일로 분리했다. 다음은 위의 코드에 대한 분석이다.

JavaScript와 HTML은 완전히 다른 문법을 가진 언어다. 그런데 HTML 문서 안에는 JavaScript와 HTML이 동시에 표현된다. 따라서 브라우저에게 어디서부터 어디까지가 JavaScript이고, HTML인지를 구분해서 알려줘야 한다. 이 역할을 하는 HTML 태그가 script 태그다.

script 태그 안쪽에 위치하는 컨텐츠는 브라우저에 의해서 JavaScript로 인식된다. 그런데 위의 코드는 컨텐츠 대신에 src 속성이 있다. 브라우저는 src 속성에 있는 파일을 다운로드해서 실행시킨다. greeting.js에는 함수 welcome가 정의되어 있기 때문에 main.html 안에 이 함수가 정의 되어 있지 않음에도 실행할 수 있는 것이다.

3.Node.js

서버쪽 자바스크립트이다.우리가 웹브라우져서에 동작하는 자바스크립트는 클라이언트쪽 자바스크립트

모듈을 로드하는 기능

Node.js를 위한 것 아니기 때문에 Node.js를 실행하는 방법은 다루지 않는다.

호스트 환경(구글플레이스,Node.js,웹 브라우져)에 따라서 모듈을 로드하는 방법이 달라진다는 것을 보여주기 위한 예제일 뿐이기 때문임.

모듈을 로드하는 방법은 호스트 환경에 따라서 달라진다. Node.js에서는 아래와 같은 방법으로 모듈을 로드한다.

node.circle.js (로드될 대상)//읽음을 당하는 쪽

var PI = Math.PI;

exports.area = function (r) {

return PI * r * r;

};

exports.circumference = function (r) {

return 2 * PI * r;

};

node.demo.js (로드의 주체)// 파일을 읽어 오는 쪽

// 1. 모듈화 파일 읽어 오는 방법 = Node.js가 제공하는 require함수를 호출할때 인자값으로 파일명을 넣어 준다

//2. 그럼 그파일을 가져와서 circle변수에 담는다

var circle = require('./node.circle.js');

console.log( 'The area of a circle of radius 4 is '

+ circle.area(4));//3.여기서 circle.area(4))를 호출하면 위에있는 exports.area가 호출이되어 실행된다

아래는 실행방법과 실행 결과다.

F:\BitNami\wampstack-5.4.22-0\apache2\htdocs\javascript\module>node node.demo.js

The area of a circle of radius 4 is 50.26548245743669//4.결과

4.라이브러리

라이브러리는 모듈과 비슷한 개념이다. 모듈이 프로그램을 구성하는 작은 부품으로서의 로직을 의미한다면 라이브러리는 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합을 의미한다고 할 수 있다. 프로그래밍의 세계에는 휼룡한 라이브러리가 많다. 좋은 라이브러리를 선택하고 잘 사용하는 것은 프로그래밍의 핵심이라고 할 수 있다.

미리 만들어진 것을 잘사용하는 것이 좋다

자바스크립트로 웹브라우져를 제어하는 방법은 기본적으로 웹브라우져에서 제공하는 기능,자바스크립트가 제공하는 기능을 이용해서 모든것을 다 할 수 있다. 이것들이 할 수 없는 것,즉 웹브라우져에서 제공하는 기능,자바스크립트가 제공하는 기능 이 두가지가를 제외한 어떠한 기능도 할 수 없다 . 우리는 브라우져가 허용하는 기능 많을 사용할 수 있다 하지만 브라우져가 제공하는 기능 들은 불편하다 너무 자유도가 높고 기능이 파편하다 라이브러리는 어떠한 목표를 선정해 놓은 로직들의 집합이라고 할 수 있다

웹페이지를 쉽게 제어하거나 , 서버와 쉽게 통신할 수 있게 하는 것 또는 목적을 정해 놓고 그목적을 쉽게 달성할 수 있도록 만들어 놓은 코드들의 집합이다 .그래서 라이브러리를 이용하면 한줄로 끝나던일이 우리가 직접 브라우져가 제공하는 기능을 사용하면 1만줄 한달이 걸릴수가 있다

자바스킄립트에서 사람들이 가장많이 사용하는 라이브러리는 jQuery이다

하지만 라이브러리는 유행이 잇고 그시대 흐름레 따라 유행이 달라진다

일단 홈페이지에 들어가서 jQuery의 자바스크립트 파일을(모듈)을 가지고 와야한다 다운로드하고 그것을 읽어오면 된다

또하나는 APIdocumention(사용 설명서)이다 jQuery가 우리에게 제공하는 명령어 리스트라생각하면된다 greenting.js= welcom함수를 제공한 다 이것 과같은 월리

5.라이브러리사용하기

아래 예제는 유명 라이브러리인 jQuery를 사용하는 방법이다.

jQuery 홈페이지에서 파일을 다운로드 받는다.

http://jquery.com/

jQuery 메뉴얼을 이용해서 사용법을 파악한다.

http://api.jquery.com/

아래는 jQuery를 이용한 예제이다.

쭉 보면 괸장히 큰 파일이라는 것을 알 수 있다

간다한 코드를 작성하고 파일을 가져온뒤

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 < !DOCTYPE html > < html > < head > < script src = "jQuery.js" > < body > < ul id = "list" > < li >empty < li >empty < li >empty < li >empty cs

실행시키고 나서f12누루고 Network를 누르면 다운로드된 파일 들을 확인 할 수 있다

jQuery파일이 있다면 잘인코딩 되었나는 것을 알 수 있다

활용 코드 jQueryr를 사용해 단 3줄로 버튼 클릭시 글바뀝 .

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 < !DOCTYPE html > < html > < head > < script src = "jQuery.js" > < body > < ul id = "list" > < li >empty < li >empty < li >empty < li >empty < input type = "button" id = "execute_btn" value = "execute" / > < script type = "text/javascript" > $( '#execute_btn' ).click( function (){ $( '#list li' ).text( 'kim sunyoung' ); }) //jQuery에서 우리에게 제공하는 약속되어 있는 예약어= '$' 이다 //jQuery= 모든 경우 $로 시작한다 //'#list'=아이디 값이 list인 테그를 가르킨다 (ul태그를 가르킨다 ) //$('#list li').text('kim sunyoung');//아이디 값이 list인 테그의 li를 가르킴 // 이러한 기능을 우리가 직접 만들면 상당이 힘들어 진다 Colored by Color Scripter cs

결과

  • empty
  • empty
  • empty
  • empty

다음은 jQuery를 이용하지 않고 동일한 기능을 구현한 예제이다. 이렇게 많은 코드가 사용된다는 것을 확인할 수 있다

  • empty
  • empty
  • empty
  • empty

라이브러리를 사용하는 것이 얼마나 유용한것인지 알 수 있다 .

5.1 모듈이란

자료구조 부분이 드디어 끝났죠? 좀 지루하셨을 수도 있지만, 컴퓨터에 있어서 자료구조의 중요성은 절대적이라고 할 만큼 크답니다. 작게는 CPU 내의 기억장소에서부터, 크게는 파일, 데이터베이스, 전체 시스템에까지 두루 적용된다고 하니까 틈틈이 공부해두시면 좋겠네요.

우리가 지금까지는 혼자서 변수, 함수를 만들어 쓰면서 자급자족하는 방법을 배웠다고 한다면, 이제부터는 남이 만들어 놓은 부품을 가져다가 사용하는 방법을 배울 차례입니다.

우리가 복잡한 프로그램을 작성하기 위해서 필요한 모든 과정을 직접 만들어야 한다면 어떤 모습이 될까요? 전체적인 모습에서부터 작은 기능 하나하나까지 모두 구상해서, 만들고, 오류를 수정해서 한 곳에 모아두면 또 오류가 생기고… 더구나, 또 다른 프로그래머는 나와 비슷한 기능을 하는 프로그램을 만들면서 똑같은 시행착오를 답습할테구요.

그래서, 이런 문제를 해결하기 위해 대부분의 프로그래밍 언어에서는 모듈이라는 개념을 사용합니다. 모듈은 프로그램의 꾸러미라고 생각하시면 되지요.

math 모듈

수학적인 계산 기능이 필요하다면 math라는 모듈을 불러와서 사용하시면 됩니다.

>>> import math # math 모듈을 가져와라

제곱근(square root)을 구해볼까요?

>>> math.sqrt(2) # 2의 제곱근 1.4142135623730951 >>> math.sqrt(3) # 3의 제곱근 1.7320508075688772 >>> math.sqrt(4) # 4의 제곱근 2.0

원주율도 알아보겠습니다.

>>> math.pi # math 모듈의 변수 pi의 값은? 3.1415926535897931

위에서는 math 모듈 내에 정의되어 있는 pi 변수를 사용했습니다. pi는 원주율을 뜻하지요.

calendar 모듈

이번에는 달력을 불러볼까요? 딱 두 줄만 치면 됩니다.

>>> import calendar >>> calendar.prmonth(2013, 7) July 2013 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

훌륭하죠?

tkinter 모듈

이번에는 더욱 훌륭한 것을 보여드리지요.

>>> from tkinter import * >>> widget = Label(None, text='I love Python!') >>> widget.pack()

이렇게 파이썬에서는 좋은 기능들을 모듈로 묶어서 자체적으로 제공해 준답니다. 파이썬 뿐만이 아니라 대부분의 언어에서 이런 식으로 프로그래밍을 편리하게 할 수 있도록 지원해주지요.

모듈을 잘 들여다 보면 배울 것이 많을 것 같군요. 내일 또 만나요~.

So you have finished reading the 모듈 이란 topic article, if you find this article useful, please share it. Thank you very much. See more: 프로그래밍 모듈 뜻, 파이썬 모듈이란, 건축 모듈이란, 반도체 모듈이란, 통신 모듈이란, 모듈식 뜻, 자바 모듈이란, 시스템 모듈

Leave a Comment