๐š†๐šŽ๐š‹

JSP javascript ๋ฐฑํ‹ฑ ${} ์‚ฌ์šฉ ์•ˆ ๋จ → \${} ์‚ฌ์šฉํ•˜๊ธฐ

ํ•ด๋ฒ„๋‹ˆ 2024. 7. 17. 22:35
๋ฐ˜์‘ํ˜•

 

 

jsp๋ฅผ ์ด์šฉํ•ด์„œ ํ”„๋ก ํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋˜ ์™€์ค‘์— script ๋ถ€๋ถ„์—์„œ ๋ฐฑํ‹ฑ์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ๋ฐฑํ‹ฑ ์ถœ๋ ฅ์ด ์ž˜ ๋˜์ง€ ์•Š์•˜๋‹ค.

 

 

let name = 'ํ™๊ธธ๋™';
let greeting = `์•ˆ๋…•ํ•˜์„ธ์š”, ${name}๋‹˜!`;
console.log(greeting);

 

์ด๋ ‡๊ฒŒ ์ž…๋ ฅ์„ ํ•˜๋ฉด

 

 

// ์•ˆ๋…•ํ•˜์„ธ์š”, ๋‹˜!

๊นŒ์ง€๋งŒ ์ถœ๋ ฅ์ด ๋˜๋Š” ํ˜„์ƒ์ด ์žˆ์—ˆ๋‹ค. (๋ณ€์ˆ˜์— ์žˆ๋Š” ๊ฐ’์ด ์ถœ๋ ฅ์ด ์•ˆ ๋๋‹ค๐Ÿฅน)

jsp๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋Š” ์ „์ž์ •๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ๋ฐฑํ‹ฑ ์‚ฌ์šฉ์„ ๋ง‰์•˜๋‚˜? ํ•˜๋Š” ์ƒ๊ฐ์„ ํ–ˆ์—ˆ๋‹ค.

์™œ๋ƒ๋ฉด ์ด ๋ฐฉ๋ฒ• ์ € ๋ฐฉ๋ฒ• ๋‹ค ํ•ด๋ดค๋Š”๋ฐ ๋ฐฑํ‹ฑ์—์„œ ๋ณ€์ˆ˜๊ฐ’ ์ถœ๋ ฅ์ด ์•ˆ๋๊ธฐ ๋•Œ๋ฌธ์— T.T ์ €๋Ÿฐ ์ƒ๊ฐ๊นŒ์ง€ ํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค..(๋ถ€๋„)

 

 

๊ทธ๋ž˜์„œ ๋ถˆํŽธํ•จ์„ ๊ฐ์ˆ˜ํ•˜๊ณ  ๋ฐฑํ‹ฑ ์‚ฌ์šฉ์„ ํ•˜์ง€ ์•Š๊ณ  '' ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋‚˜ "" ์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜๊ณ , ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์„ ๋•Œ๋Š” + ๋กœ ์ด์–ด์„œ ์—ฐ๊ฒฐ์„ ํ•ด์คฌ๋‹ค.

์ด๋ ‡๊ฒŒ ์“ฐ๋ ค๋ฉด ๋ˆˆ์•Œ ์•ˆ ๋น ์ง€๊ฒŒ ์กฐ์‹ฌํ•ด์•ผ ํ•œ๋‹ค.. ์˜คํƒ€ ์ž˜๋ชป ๋“ค์–ด๊ฐ€๋ฉด...๐Ÿ˜ฎ

 

 

 

 

 

 

๊ทธ๋ ‡๊ฒŒ ๋ช‡ ์ฃผ๋ฅผ ์œ„์ฒ˜๋Ÿผ ์‚ฌ์šฉ์„ ํ•˜๋‹ค๊ฐ€, '์•„๋‹ˆ.. ์„ค๋งˆ ๋ฐฑํ‹ฑ.. ์‚ฌ์šฉ์„ ๋ชปํ•˜๊ฒŒ ํ–ˆ์„๊นŒ? ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€ ์•Š์„๊นŒ?'ํ•ด์„œ ์ฐพ์•„๋ดค๋”๋‹ˆ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜๋‹ค.

(→ GPTํ•œํ…Œ๋„ ์—ด์‹ฌํžˆ ๋ฌผ์–ด๋ดค์—ˆ๋Š”๋ฐ ์›ํ•˜๋Š” ๋‹ต์„ ์–ป์ง€ ๋ชปํ–ˆ์—ˆ๋Š”๋ฐ)

 

 

 

์ฐพ์•„๋ณด๋‹ˆ JSP(Java Server Pages)์™€ JavaScript๊ฐ€ ๊ฐ™์€ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฑํ‹ฑ์— ์žˆ๋Š” ๋ณ€์ˆ˜๋ช…์ด ๋จนํžˆ์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ด์—ˆ๋‹ค.

JSP๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ฒ˜๋Ÿผ ${...} ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ EL(Expression Language) ํ‘œํ˜„์‹์„ ์ž‘์„ฑํ•œ๋‹ค.
์ด ํ‘œํ˜„์‹์€ ์„œ๋ฒ„์—์„œ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ฐ’์„ ๋™์ ์œผ๋กœ ์‚ฝ์ž…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ์ด ๋œ๋‹ค.

 

 

JSP EL ํ‘œํ˜„์‹ ์˜ˆ์‹œ ์ฝ”๋“œ!

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
    <title>EL ์˜ˆ์ œ</title>
</head>
<body>
    <h2>EL ์˜ˆ์ œ</h2>

    <!-- ์ž๋ฐ”๋นˆ์ฆˆ์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ EL๋กœ ์ถœ๋ ฅ -->
    <p>์‚ฌ์šฉ์ž ์ด๋ฆ„: ${user.name}</p>
    <p>์‚ฌ์šฉ์ž ๋‚˜์ด: ${user.age}</p>

    <!-- JSTL๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ -->
    <c:if test="${not empty user.name}">
        <p>์‚ฌ์šฉ์ž ์ด๋ฆ„์€ ๋น„์–ด์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.</p>
    </c:if>
</body>
</html>

์ด๋Ÿฐ์‹์œผ๋กœ JSP ํŽ˜์ด์ง€์—์„œ EL ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ, JSP ํŽ˜์ด์ง€์—์„œ JavaScript ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, JSP๊ฐ€ ${...} ๋ถ€๋ถ„์„ ์ž์‹ ์˜ EL ํ‘œํ˜„์‹์œผ๋กœ ์˜คํ•ดํ•˜๊ณ  ๋จผ์ € ํ•ด์„ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ JavaScript์˜ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.

 

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ${...} ๋ถ€๋ถ„์„ ๋ฌธ์ž์—ด๋กœ ๊ฐ์‹ธ์ฃผ๋ฉด ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด JSP๋Š” ์ด ๋ถ€๋ถ„์„ ์ผ๋ฐ˜ ๋ฌธ์ž์—ด๋กœ ์ธ์‹ํ•˜๊ณ  ๋ฌด์‹œํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ JavaScript๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์ด ๋ฌธ์ž์—ด์ด ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด๋กœ ํ•ด์„๋˜๊ณ , ${name} ๋ถ€๋ถ„์ด name ๋ณ€์ˆ˜์˜ ๊ฐ’์œผ๋กœ ์น˜ํ™˜๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

 

 

 

 

์ฝ”๋“œ๋กœ ๋ณด์ž๋ฉด

let name = 'ํ™๊ธธ๋™';
let greeting = `์•ˆ๋…•ํ•˜์„ธ์š” ${'${name}'}๋‹˜! "ํ•˜์ด์š” ${'${name}'}"`;
console.log(greeting);
// ์•ˆ๋…•ํ•˜์„ธ์š” ํ™๊ธธ๋™๋‹˜! "ํ•˜์ด์š”"

 

์ด๋Ÿฐ ์‹์œผ๋กœ ${} ์•ˆ์— '${๋ณ€์ˆ˜๋ช…์ด๋ฆ„}' ์„ ๋„ฃ์–ด์คฌ๋”๋‹ˆ ์ž˜ ์ถœ๋ ฅ์ด ๋˜์—ˆ๋‹ค.

 

 

 

+

+ ์ถ”๊ฐ€

+  

 

์–ด๋–ค ๋ถ„์ด ๋Œ“๊ธ€๋กœ ๋” ์‰ฌ์šด ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์…จ๋‹ค! 

${'${}'} ์ด ๋ฐฉ๋ฒ•๋„ ๋˜์ง€๋งŒ \${} ์ด๋Ÿฐ์‹์œผ๋กœ ์•ž์— ์—ญ์Šฌ๋ž˜์‹œ๋ฅผ ๋ถ™์—ฌ๋„ ๋œ๋‹ค

 

const name = '์ปคํ”ผ';
console.log(`name : \{name}`);

 

 

์•„์ฃผ ์ž˜ ๋œ๋‹ค!

์œ„ ๋ฐฉ๋ฒ•์ด ๋” ๊น”๋”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ \${}๋กœ ๋ฐ”๊ฟจ๋‹ค 

 

๋ฐ˜์‘ํ˜•