๐Ÿ‘จโ€๐Ÿ’ป Seungineer's GitHub Contribution

๐Ÿ› ๏ธ Tool 10

[MySQL] Nullable field์—์„œ NOT IN ๊ตฌ๋ฌธ ์‚ฌ์šฉ ์‹œ ์œ ์˜ํ•  ์ (#3์ค‘๋…ผ๋ฆฌ #NOT EXISTS)

๊ฒฐ๋ก Nullable field์— NULL ๊ฐ’์ด ํ•˜๋‚˜๋ผ๋„ ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ, WHERE 'A' NOT IN (nullable field)์˜ ๊ฒฝ์šฐ ํ•ญ์ƒ false๋กœ ํ‰๊ฐ€๋œ๋‹ค. ์ด์— Nullable field์—์„œ 'A'๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ์กฐ๊ฑด์„ ๊ฑธ๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ WHERE NOT EXISTS (nullable field์— NULL์„ ์ œ์™ธํ•œ 'A'์ธ ๊ฒฝ์šฐ์˜ ์„œ๋ธŒ ์ฟผ๋ฆฌ)์˜ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ์—๋Š” 'A'๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ์‹œ ์•„๋ฌด ๊ฒƒ๋„ ์กด์žฌํ•˜์ง€ ์•Š๊ฒŒ ๋˜๊ณ , NOT EXISTS()๋Š” true๊ฐ€ ๋œ๋‹ค. 3์ค‘ ๋…ผ๋ฆฌMySQL์˜ 3์ค‘ ๋…ผ๋ฆฌ์— ์˜ํ•ด์„œ 'True', 'False', 'Unknown' ์ค‘ ํ•˜๋‚˜๋กœ ๋…ผ๋ฆฌ๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. ๊ฐ€๋ น WHERE 'A' IN ('A', NULL, 'B') ๋ผ๊ณ  ํ•˜๋ฉด, ์„œ๋ธŒ์ฟผ๋ฆฌ์— ..

[PS] ์Šคํƒ ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ํšจ๊ณผ์ ์ธ ์ƒํ™ฉ

์˜ค๋Š˜ ๋ฐฑ์ค€ 17298 '์˜คํฐ์ˆ˜' ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋“œ๋””์–ด(..!) ์Šคํƒ ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋Š” ์ง๊ด€์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์žฌ๊ท€, dynamic programming์—์„œ ์ด๋Ÿฐ ์ง๊ด€์„ ์–ป๊ณ , PS ์—ญ๋Ÿ‰์ด ์•ฝ๊ฐ„ ์˜ฌ๋ผ๊ฐ”๋‹ค๊ณ  ์ฒด๊ฐํ–ˆ๋˜ ํ„ฐ๋ผ ๊ธฐ๋ถ„ ์ข‹์€ ๊นจ๋‹ฌ์Œ์ด์—ˆ๋‹ค.์Šคํƒ ์ž๋ฃŒ ๊ตฌ์กฐ๋Š” ์–‘ํŒŒ ๊ป์งˆ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์“ฐ์ธ๋‹ค.์ •๊ธ€ ๊ณผ์ • ์ค‘ ์ฝ”์น˜๋‹˜๊ป˜์„œ ํ•˜์‹  ๋ง์”€์ด๋‹ค. ๊ทธ๋•Œ ๋‹น์‹œ์—๋Š” ๋ฐฑ์ค€ 9012 '๊ด„ํ˜ธ'์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ์–ด๋ ดํ’‹์ด '๋ฌธ์ œ๊ฐ€ ์–‘ํŒŒ ๊ฐ™๊ธด ํ•˜๋‹ค' ์ •๋„๋กœ ์ƒ๊ฐํ•˜๊ณ  ๋๋‚ฌ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์‚ฌ์‹ค์€ ๋” ํฐ ๋œป์ด ์žˆ์—ˆ๋‹ค.์–‘ํŒŒ '๊ป์งˆ'์ด๋ผ, ์–‘ํŒŒ ์•ˆ์€ ๊ด€์‹ฌ์ด ์—†๋‹ค!9012 '๊ด„ํ˜ธ' ๋ฌธ์ œ์™€ ๊ฐ™์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ด„ํ˜ธ๊ฐ€ ๋‹ซํ˜”๋Š”์ง€ ํ™•์ธํ•  ๋•Œ๋ฅผ ๊ฐ€์ •ํ•œ๋‹ค. (()(())) ์ด case์˜ ๊ฒฝ์šฐ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋นจ๊ฐ„์ƒ‰ ')'์œผ๋กœ ๋‹ซํžˆ..

[LeetCode-JS 30 days] #3.Function Transformations - 1(#ํ•จ์ˆ˜๊ฐ์ฒด)

2024.08.06 - [๐Ÿ› ๏ธ Tool/FE] - [LeetCode-JS 30 days] #2. Array Transformation - 1(#์ˆœํšŒ) [LeetCode-JS 30 days] #2. Array Transformation - 1(#์ˆœํšŒ)2024.08.03 - [๐Ÿ› ๏ธ Tool/FE] - [LeetCode-JS 30 days] #1. Closures ๊ฐœ๋… - 1(#์€๋‹‰ #๋ณด์กด) [LeetCode-JS 30 days] #1. Closures ๊ฐœ๋… - 1(#์€๋‹‰ #๋ณด์กด)์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์“ฐ์˜€๊ณ  ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฒ€์ฆ๋œ ์„ค๋ช…์ด LeetCode Discuss์— ์˜ฌ๋ผ์˜คseungineer.tistory.com์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์“ฐ์˜€๊ณ  ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฒ€์ฆ๋œ ์„ค๋ช…์ด LeetCode Discuss์— ์˜ฌ๋ผ์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ ,..

[LeetCode-JS 30 days] #2. Array Transformation - 1(#์ˆœํšŒ)

2024.08.03 - [๐Ÿ› ๏ธ Tool/FE] - [LeetCode-JS 30 days] #1. Closures ๊ฐœ๋… - 1(#์€๋‹‰ #๋ณด์กด) [LeetCode-JS 30 days] #1. Closures ๊ฐœ๋… - 1(#์€๋‹‰ #๋ณด์กด)์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์“ฐ์˜€๊ณ  ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฒ€์ฆ๋œ ์„ค๋ช…์ด LeetCode Discuss์— ์˜ฌ๋ผ์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ , JS Basic ๊ณต๋ถ€์— ์ด๋ฅผ ํ™œ์šฉํ•ด๋ณด๊ณ ์ž ํ•˜์˜€๋‹ค. LeetCode PS์ฒ˜๋Ÿผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉฐ JS์˜ basic skill์„ ์ตํž ์ˆ˜ ์žˆ๋„seungineer.tistory.com ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์“ฐ์˜€๊ณ  ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฒ€์ฆ๋œ ์„ค๋ช…์ด LeetCode Discuss์— ์˜ฌ๋ผ์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ , JS Basic ๊ณต๋ถ€์— ์ด๋ฅผ ํ™œ์šฉํ•ด๋ณด๊ณ ์ž ํ•˜์˜€๋‹ค. LeetCode PS์ฒ˜๋Ÿผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉฐ J..

[LeetCode-JS 30 days] #1. Closures ๊ฐœ๋… - 1(#์€๋‹‰ #๋ณด์กด)

์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์“ฐ์˜€๊ณ  ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฒ€์ฆ๋œ ์„ค๋ช…์ด LeetCode Discuss์— ์˜ฌ๋ผ์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ , JS Basic ๊ณต๋ถ€์— ์ด๋ฅผ ํ™œ์šฉํ•ด๋ณด๊ณ ์ž ํ•˜์˜€๋‹ค. LeetCode PS์ฒ˜๋Ÿผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉฐ JS์˜ basic skill์„ ์ตํž ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.ClosuresBasic Array TransformationsFunction TransformationsPromises and TimeJSONClasses์ด 6๊ฐœ์˜ Part๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ๋ณธ ํฌ์ŠคํŠธ์—์„œ๋Š” Closures(ํด๋กœ์ ธ)์— ๋Œ€ํ•ด ๋‹ค๋ฃฌ๋‹ค.Create Hello World Function๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ฒƒ๋ณด๋‹ค ํ•ด๋‹น ๋ฌธ์ œ์˜ Discuss๋ฅผ ๋ณด๋Š” ๊ฒŒ ๋” ์ค‘์š”ํ•˜๋‹ค!์š”์•ฝLexical environment๋Š” closure๊ฐ€ ์ƒ์„ฑ๋  ๋‹น์‹œ scope ๋‚ด์˜ ๋ชจ๋“  ๋ณ€์ˆ˜..

[React] input tag์˜ ์กฐ๊ฑด์— ๋”ฐ๋ฅธ focus ์ด๋™ ์˜ˆ์ œ ๊ด€๋ จ ์˜๋ฌธ ์‚ฌํ•ญ ๐Ÿค”(#useEffect, #onChange)

์–ด๋–ค ์›น์‚ฌ์ดํŠธ์—์„œ form์„ ์ž…๋ ฅํ•  ๋•Œ ์ž…๋ ฅ์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ ๋‹ค์Œ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š” ๋นˆ์นธ์œผ๋กœ ๋„˜์–ด๊ฐ€๋„๋ก ๊ตฌํ˜„๋œ ์›น์‚ฌ์ดํŠธ๊ฐ€ ๋งŽ๋‹ค. id์™€ pw๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ id๋ฅผ 10์ž ์ด์ƒ ์ž…๋ ฅํ•˜๋ฉด pw ์ž…๋ ฅ ์นธ์œผ๋กœ ๋ฐ”๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋˜ ์ค‘ React์˜ ๋ฐฐ์น˜ ์—…๋ฐ์ดํŠธ ํŠน์„ฑ์„ ์ž˜ ์‚ด๋ ค์„œ ๊ตฌํ˜„๋˜์—ˆ๋Š”์ง€ ์˜๋ฌธ์ด ๋“ค์—ˆ๋‹ค.๊ตฌํ˜„ App.js์˜ App() ์ปดํฌ๋„ŒํŠธ์—์„œ return ํ•˜๋Š” input tag๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.function App() { ... useEffect(() => { if (id.length >= 10) { pwRef.current.focus(); } }, [id]); return ( ์•„์ด๋”” : ..

[ํ”„๋ฆฌ์ฝ”์Šค] ์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„ ver.javascript - Cypress All Pass

๊ตฌํ˜„์„ ์œ„ํ•œ MEMOindex.html์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ด๋ฏธ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ์— ์ „์—ญ ๊ฐ์ฒด๋กœ ์ถ”๊ฐ€๋˜์–ด ์žˆ์Œ- ๋”ฐ๋กœ import ํ•˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ// ex)const randomNumber = Random.pickNumberInRange(1, 9);import๋ชจ๋“ˆ์—์„œ ์—ฌ๋Ÿฌ ๋ฉค๋ฒ„๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜์˜ import๋กœ ํ˜„์žฌ ๋ฒ”์œ„ ๋‚ด์— foo, bar ๋ฉค๋ฒ„๋ฅผ ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.import { foo, bar } from "my-module.js";commit message convention(Angular JS)- ์ปค๋ฐ‹ ์ „์— ํ™•์ธํ•˜๊ธฐ!!๋”๋ณด๊ธฐSubject lineSubject line contains succinct description of the change.Allowed feat (featur..

๋ชจ๋˜ ์ž์Šค๋กœ ๋ฐฐ์šฐ๋Š” ๋ฆฌ์•กํŠธ ์ž…๋ฌธ2 - 2์žฅ ๋งˆ๋ฌด๋ฆฌ

2.1 const, let์„ ์ด์šฉํ•œ ๋ณ€์ˆ˜ ์„ ์–ธvar๋ฅผ ์ด์šฉํ•œ ๋ณ€์ˆ˜ ์„ ์–ธ์˜ ๋ฌธ์ œ์ - ๋ฎ์–ด์“ฐ๊ธฐ ๊ฐ€๋Šฅ : ํ•œ ๋ฒˆ ์ •์˜ํ•œ ๋ณ€์ˆ˜์— ๋‹ค๋ฅธ ๊ฐ’์„ ๋Œ€์ž…ํ•  ์ˆ˜ ์žˆ์Œ(์˜๋„ํ•˜์ง€ ์•Š๊ฒŒ ๋ฎ์–ด์จ์งˆ ์ˆ˜ ์žˆ๊ธฐ์— ๋ฌด์กฐ๊ฑด ๋ฎ์–ด์“ฐ๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์Œ)- ์žฌ์„ ์–ธ ๊ฐ€๋Šฅ : ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ˆœ์„œ์— ๋”ฐ๋ผ ์–ด๋Š ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋˜๋Š”์ง€ ํ•ด์„ํ•˜๊ธฐ ์–ด๋ ค์›€(var๊ฐ€ '๋ณ€์ˆ˜'๋ผ๋Š” ๋œป์ด๊ธฐ์— ๋‘˜ ๋‹ค ๋ณ€๋™ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐ, var๋Š” ์ž์ฃผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ) let์„ ์ด์šฉํ•œ ๋ณ€์ˆ˜ ์„ ์–ธ- ๋ฎ์–ด ์“ฐ๊ธฐ ๊ฐ€๋Šฅ- ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ(let์ด 'OO์ด๋ผ ํ•˜์ž~'๋ผ๋Š” ๋œป์ด๊ธฐ์— ์„ ์–ธ์€ ํ•œ ๋ฒˆ ํ–ˆ๊ณ , ๋ฎ์–ด์“ฐ๊ธฐ๋Š” ๊ฐ€๋Šฅํ•œ var๊ฐ€ ์„ ์–ธ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐ)let v1 = 3;console.log(v1) // 3v1 = "๋ฌธ์ž์—ด๋กœ ๋ฎ์–ด์จ๋ฒ„๋ฆฌ๊ธฐ~~";console.log(v1) // ๋ฌธ์ž์—ด๋กœ ๋ฎ์–ด์จ๋ฒ„๋ฆฌ๊ธฐ~~t..

๋ชจ๋˜ ์ž์Šค๋กœ ๋ฐฐ์šฐ๋Š” ๋ฆฌ์•กํŠธ ์ž…๋ฌธ2 - 1์žฅ ๋งˆ๋ฌด๋ฆฌ

1.5 ๋ชจ๋“ˆ ํ•ธ๋“ค๋Ÿฌ, ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ๋ฆฌ์•กํŠธ์˜ 'create-react-app'์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“ˆ ํ•ธ๋“ค๋Ÿฌ, ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ ์˜์‹ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ์ธ ๊ฒฝ์šฐ ์„ค์ • ํŒŒ์ผ์„ ์กฐ์ž‘ํ•  ํ•„์š”๊ฐ€ ์žˆ๊ธฐ์— ๋‚ด๋ถ€ ๊ตฌ์กฐ์™€ ๊ฐœ๋…์„ ์•„๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.๋ชจ๋“ˆํ•ธ๋“ค๋Ÿฌ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ '์„ธ์„ธํ•˜๊ฒŒ ๋‚˜๋ˆ„์–ด' ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๊ฐœ๋ฐœํ•  ๋•Œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ๋กœ๋”ฉ ํšŸ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๊ธฐ๋„ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ํŒŒ์ผ์„ ๋‚˜๋ˆ„๊ณ , ํ”„๋กœ๋•์…˜ ์šฉ์œผ๋กœ ๋นŒ๋“œํ•  ๋•Œ๋Š” ํŒŒ์ผ ํ•˜๋‚˜์— ๋ชจ์œผ๊ธฐ ์œ„ํ•ด js ํŒŒ์ผ์ด๋‚˜ css ํŒŒ์ผ ๋“ฑ์„ ํ•œ๋ฐ ํ•ฉ์ณ์ฃผ๋Š” '๋ชจ๋“ˆ ํ•ธ๋“ค๋Ÿฌ'๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๋‹ค(์„ธ์„ธํ•˜๊ฒŒ ๋‚˜๋‰˜์–ด ๊ฐœ๋ฐœ๋œ ๊ฒƒ์„ '๋ชจ๋“ˆ', ์ด ๋ชจ๋“ˆ์„ ๋‹ค๋ค„์ฃผ๋Š” ๊ฒŒ 'ํ•ธ๋“ค๋Ÿฌ'๋ผ๊ณ  ์ƒ๊ฐ).ํŠธ๋žœ์ŠคํŒŒ์ผ๋Ÿฌ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ‘œ๊ธฐ๋ฒ•์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹ค..

HTML ์Šคํฌ๋ฆฝํŠธ ๋กœ๋”ฉ ์ˆœ์„œ์˜ ์ค‘์š”์„ฑ(#ํ‹ฐ์Šคํ† ๋ฆฌ HTML์— script ์ ์šฉ์ด ์•ˆ ๋  ๋•Œ)

์ •๊ธ€ ๋™๊ธฐ๋“ค์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„์„œ ๋ธ”๋กœ๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ ์ž HTML ํŽธ์ง‘์„ ํ•ด๋ณด์•˜๋‹ค. ๊ธฐ์กด์—๋Š” ์‚ฌ์ด๋“œ๋ฐ” HTML ๋ฐ•์Šค์— ์žˆ๋˜ github contribution graph๋ฅผ ๋ธ”๋กœ๊ทธ ์ƒ๋‹จ์œผ๋กœ ์˜ฌ๋ฆฌ๋Š” ๊ฒŒ ๋ชฉ์ !์‚ฌ์ด๋“œ๋ฐ”์˜ ์š”์†Œ๋ฅผ ๋‹จ์ˆœํžˆ ๋ธ”๋กœ๊ทธ ์ƒ๋‹จ์˜ Header Div์— ์œ„์น˜์‹œํ‚ค๋ฉด ๋˜๊ฒ ๊ฑฐ๋‹ˆ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์ œ๋Œ€๋กœ ๋˜์ง€ ์•Š์•˜๋‹ค.๋ฒ„๊ทธ์‚ฌ์ด๋“œ๋ฐ”์— ์žˆ๋˜ ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์™€์„œ ๋‚ด ์œ„์น˜์‹œ์ผฐ์œผ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๋‹ค. ์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์š”์†Œ์— ๊ธฐ๋ณธ ๋ฌธ๊ตฌ๋กœ ๋„ฃ์–ด๋‘” 'Loading data...'๋งŒ ํ‘œ์‹œ๋˜์—ˆ๊ณ , script๊ฐ€ ์ž‘๋™๋˜์–ด ์š”์†Œ๋ฅผ ์•Œ๋งž์€ ํ˜•ํƒœ๋กœ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ๊ทธ๋Ÿฌ์ง€ ๋ชป ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.๋””๋ฒ„๊ทธ์ด ๋ฌธ์ œ์˜ ์›์ธ์€ ์Šคํฌ๋ฆฝํŠธ ๋กœ๋”ฉ ์ˆœ์„œ์˜ ๋ฌธ์ œ์˜€๋‹ค.HTML ๋ฌธ์„œ๋Š” ๋ธŒ๋ผ์šฐ์ €์— ์˜ํ•ด์„œ ํŒŒ์‹ฑ๋˜์–ด DOMํŠธ๋ฆฌ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. HTML..