Frontend/javaScript

JSPμ—μ„œ JavaScript λͺ¨λ“ˆ μ‚¬μš©ν•˜κΈ°

dddzr 2025. 4. 6. 21:43

πŸ“Œ JSPμ—μ„œ JavaScript λͺ¨λ“ˆ μ‚¬μš©ν•˜κΈ°

JSPμ—μ„œ JavaScript λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λ €λ©΄ λͺ‡ 가지 μ£Όμ˜ν•΄μ•Ό ν•  점이 μžˆλ‹€. 특히, <script type="module">을 μ‚¬μš©ν•  λ•Œ μ΄ν΄λ¦½μŠ€μ—μ„œ μ½”λ“œ 색상이 μ‚¬λΌμ§€λŠ” λ¬Έμ œκ°€ μžˆμ—ˆλ‹€. 

이 문제λ₯Ό ν•΄κ²°ν•˜λ©΄μ„œ λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λŠ” 방법을 μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.


πŸ“Œ 1. 일반적인 JS 파일 λ‘œλ“œ 방법

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

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

common.js 파일이 λ‘œλ“œλ˜λ©°, μ „μ—­ μŠ€μ½”ν”„μ—μ„œ μ‚¬μš© κ°€λŠ₯. ν•˜μ§€λ§Œ ES6 λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λ©΄ μ΄λ ‡κ²Œ λ‘œλ“œν•  수 μ—†λ‹€.

 

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

ES6 λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λ €λ©΄ <script type="module">을 μ‚¬μš©!! JSPμ—μ„œ ν‘œμ€€ 방식이닀.

 

πŸ“–  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">을 μ‚¬μš©ν•˜λ©΄ μ½”λ“œ 색상이 μ‚¬λΌμ§€λŠ” λ¬Έμ œκ°€ λ°œμƒ.

 

πŸ“Œ 3. JSPμ—μ„œ λͺ¨λ“ˆμ„ μ‰½κ²Œ μ‚¬μš©ν•˜λ €λ©΄? (window 객체 ν™œμš©)

type="module"을 μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„ JSPμ—μ„œ λͺ¨λ“ˆμ²˜λŸΌ μ‚¬μš©ν•˜λ €λ©΄, μ „μ—­ 객체(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 λͺ¨λ“ˆμ²˜λŸΌ ν™œμš©ν•  수 μžˆλ‹€.

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