Frontend/javaScript

JavaScript λͺ¨λ“ˆ μ‚¬μš©

dddzr 2025. 4. 6. 21:43

πŸ“Œ μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ λͺ¨λ“ˆμ΄λž€?

λͺ¨λ“ˆμ€ ν•˜λ‚˜μ˜ 파일 μ•ˆμ— κΈ°λŠ₯을 μΊ‘μŠν™”ν•˜κ³ , ν•„μš”ν•œ λΆ€λΆ„λ§Œ μ™ΈλΆ€λ‘œ 내보내 λ‹€λ₯Έ μ½”λ“œμ—μ„œ μž¬μ‚¬μš©ν•  수 있게 ν•΄μ£ΌλŠ” μ½”λ“œ λ‹¨μœ„μ΄λ‹€.

-> 즉, ν•˜λ‚˜μ˜ js νŒŒμΌμ—μ„œ λ‹€λ₯Έ js파일 ν•¨μˆ˜/객체λ₯Ό μ΄μš©ν•˜λŠ” 방법!!

 

πŸ“Œ 1. <script> νƒœκ·Έ 이용

기본적으둜 JSPμ—μ„œ JavaScript νŒŒμΌμ„ κ°€μ Έμ˜€λ €λ©΄ <script src="..."></script>λ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€.

슀크립트 파일 전체λ₯Ό λ‘œλ“œν•΄μ„œ 전역에 μΆ”κ°€ν•˜λŠ” 방식.  -> μ „μ—­ λ³€μˆ˜ 좩돌 μœ„ν—˜, λ‘œλ“œ μˆœμ„œκ°€ μ€‘μš”ν•œ 단점이 μžˆλ‹€!!

<script src="/resources/js/common.js"></script>

βœ”οΈ common.js 파일이 λ‘œλ“œλ˜λ©°, μ „μ—­ μŠ€μ½”ν”„(window)μ—μ„œ μ‚¬μš© κ°€λŠ₯.

 

πŸ“Œ 2. window 객체 ν™œμš©

λΈŒλΌμš°μ €μ˜ μ „μ—­ 객체인 window에 λ“±λ‘ν•˜λŠ” 방법.

νŠΉμ • ν•¨μˆ˜/객체만 전역에 λ…ΈμΆœ -> ν•˜μ§€λ§Œ μ—¬μ „νžˆ μΆ©λŒμœ„ν—˜/λ‘œλ“œ μˆœμ„œ μ€‘μš”.

 

πŸ“–  math.js (λͺ¨λ“ˆ νŒŒμΌμ„ μ „μ—­ λ³€μˆ˜λ‘œ 등둝)

function add(a, b) {
    return a + b;
}

// μ „μ—­ 객체에 등둝
window.MathUtils = { add };

 

πŸ“–  index.jsp (λͺ¨λ“ˆμ²˜λŸΌ μ‚¬μš©)

<script src="/resources/js/math.js"></script>

<script>
    console.log("3 + 5 =", MathUtils.add(3, 5));
</script>

βœ”οΈ JSPμ—μ„œ <script type="module"> μ—†μ΄λ„ ES6 λͺ¨λ“ˆμ²˜λŸΌ ν™œμš©ν•  수 μžˆλ‹€.

βœ”οΈ μ΄ν΄λ¦½μŠ€μ—μ„œλ„ μ½”λ“œ 색상이 μ •μƒμ μœΌλ‘œ ν‘œμ‹œ.

 

πŸ“Œ 3. ES6 λͺ¨λ“ˆ(export / import) μ‚¬μš©

βœ… ES6 λͺ¨λ“ˆμ΄λž€?

  • ES6(ECMAScript 2015)**μ—μ„œ 처음 λ„μž…λœ μžλ°”μŠ€ν¬λ¦½νŠΈ 곡식 λͺ¨λ“ˆ μ‹œμŠ€ν…œ
  • μ΄μ „μ—λŠ” require, module.exports 같은 CommonJSλ‚˜, <script>둜 μ—¬λŸ¬ JS νŒŒμΌμ„ λΆˆλŸ¬μ˜€λŠ” μ‹μœΌλ‘œ λͺ¨λ“ˆν™”λ₯Ό ν–ˆλŠ”λ°, ES6λΆ€ν„°λŠ” ν‘œμ€€ λ¬Έλ²•μœΌλ‘œ import / exportλ₯Ό 지원

 

βœ… ES6 λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λ €λ©΄?

<script type="module">을 μ‚¬μš©!! JSPμ—μ„œ ν‘œμ€€ 방식이닀.

  • 파일이 λ…λ¦½λœ λͺ¨λ“ˆ μŠ€μ½”ν”„λ‘œ 싀행됨 → μ „μ—­ μ˜€μ—Ό X.
  • import / export λ¬Έλ²•μœΌλ‘œ λͺ¨λ“ˆ κ°„ μ˜μ‘΄μ„±μ„ λͺ…μ‹œμ μœΌλ‘œ ν‘œν˜„ν•  수 있음.
  • λΈŒλΌμš°μ €κ°€ μžλ™μœΌλ‘œ μ˜μ‘΄μ„± 트리λ₯Ό νŒŒμ•…ν•΄μ„œ ν•„μš”ν•œ λͺ¨λ“ˆμ„ 뢈러옴 → λ‘œλ“œ μˆœμ„œλ₯Ό μ‹ κ²½ μ•ˆ 써도 됨.
  • 기본적으둜 μ§€μ—° μ‹€ν–‰(defer) 됨 → HTML νŒŒμ‹±μ΄ λλ‚œ λ’€ μ‹€ν–‰.

 

πŸ“–  math.js (λͺ¨λ“ˆ 파일, export μ‚¬μš©)

export function add(a, b) {
    return a + b;
}

 

πŸ“– index.jsp (λͺ¨λ“ˆ κ°€μ Έμ˜€κΈ°, import μ‚¬μš©)

<script type="module">
    import { add } from "./resources/js/math.js";  
    console.log("3 + 5 =", add(3, 5));
</script>

βœ”οΈ λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λ©΄ import ν‚€μ›Œλ“œλ₯Ό 톡해 νŠΉμ • ν•¨μˆ˜λ§Œ κ°€μ Έμ˜¬ 수 μžˆλ‹€. 

❌ μ΄ν΄λ¦½μŠ€μ—μ„œλŠ” <script type="module">을 μ‚¬μš©ν•˜λ©΄ μ½”λ“œ 색상이 μ‚¬λΌμ§€λŠ” λ¬Έμ œκ°€ λ°œμƒ.