๋ฐ˜์‘ํ˜•

JavaScript 36

[The Web Developer Bootcamp 2024] section 3: HTML ๊ธฐ์ดˆ

์ด ๊ธ€์€ udemy์˜ The Web Developer Bootcamp 2024 ๊ฐ•์ขŒ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. 19. ์„น์…˜์ฃผ์ œskip 20. HTML ๊ฐœ์š”HTML์€ ์›น ํŽ˜์ด์ง€์˜ ๋ช…์‚ฌ ๊ฐ™์€ ๊ฒƒ์œผ๋กœ ์ฝ˜ํ…์ธ ์˜ ๊ตฌ์กฐ๋ฅผ ๊ทœ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.It’s just about marking up a documentHTML์€ ์›น ํŽญ์ด์ง€๋ผ๋Š” ๋ฌธ์„œ์— ๋งˆํฌ์—…์„ ํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด ๋˜๋Š” ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค.  21. ์šฐ๋ฆฌ์˜ ์ฒซ HTML Pageskip 22. Tip ๋ชจ์งˆ๋ผ ๊ฐœ๋ฐœ์ž ๋„คํŠธ์›Œํฌ https://developer.mozilla.org/ko/docs/Web/HTMLMDN Web Docs(Mozilla Developer Network Web Docs)๋Š” ์›น ๊ฐœ๋ฐœ์ž๋“ค์ด HTML, CSS, JavaScript ๋ฐ ์›น ๊ธฐ์ˆ ๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ์–ป..

[The Web Developer Bootcamp 2024] section 2: ์›น ๊ฐœ๋ฐœ์ด๋ž€?

์ด ๊ธ€์€ udemy์˜ The Web Developer Bootcamp 2024 ๊ฐ•์ขŒ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.11. ์„น์…˜ ์ฃผ์ œskip 12. 5๋ถ„ ๋’ค์˜ ์ธํ„ฐ๋„ท์ธํ„ฐ๋„ท์€ ๋„คํŠธ์›Œํฌ์˜ ๋„คํŠธ์›Œํฌ์ž…๋‹ˆ๋‹ค. ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋งŽ์€ ๊ธฐ๊ธฐ๋“ค์ด๋ฉฐ, ์ธํ„ฐ๋„ท์€ ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์ธํ”„๋ผ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์ด ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ๋“ค์˜ ๋ฌถ์Œ 13.์›น์ด๋ž€? ์›น์€ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ํ•˜๋Š” ์ •๋ณด ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์›น์˜ ์‹ค์ œ ์ž‘๋™ ๋ฐฉ์‹์œผ๋กœ ์ •๋ณด ์ „์†ก ๋ฐฉ์‹์—๋Š” HTTP (Hypertext Transfer Protocol)์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์›น์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋ฐฉ์‹ ๋ฆฌ์†Œ์Šค๋‚˜ ์›น ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹์˜ ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค. TCP, IP ๋“ฑ ๋‹ค๋ฅธ ํ”„๋กœํ† ์ฝœ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. 14.์š”์ฒญ/์‘๋‹ต ์ฃผ๊ธฐskip 15. ํ”„๋ŸฐํŠธ ์—”๋“œ(Fro..

[The Web Developer Bootcamp 2024] section 1: ์ฝ”์Šค ์†Œ๊ฐœ

์ด ๊ธ€์€ udemy์˜ The Web Developer Bootcamp 2024 ๊ฐ•์ขŒ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค 1. ํ™˜์˜ ์ธ์‚ฌskip 2. ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฑ„ํŒ… ๋ฐ ๊ทธ๋ฃน ์ฐธ์—ฌ ๋ฐฉ๋ฒ•skip 3. ์ปค๋ฆฌํ˜๋Ÿผ ์†Œ๊ฐœskip 4. ์ตœ์ข… ์—…๋ฐ์ดํŠธ ์ผ์ž์— ๊ด€ํ•˜์—ฌ skip 5. ์ฝ”์Šค ์—…๋ฐ์ดํŠธ ๋‚ด์—ญhttps://plum-poppy-0ea.notion.site/Web-Developer-Bootcamp-ChangeLog-45e3eab6be724c5f9a4b83c01044e126 6. ์ œ๊ฐ€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์„๊นŒ์š”? skip 7. ์ฝ”๋“œ์™€ ์Šฌ๋ผ์ด๋“œskip 8. ๋Œ€ํ™”์˜ ์ฝ”๋”ฉ ์—ฐ์Šต ๋ฐ ๊ด€๋ จํŒskip 9. ์ฝ”๋“œ์Šค ์ฝ”๋”ฉ ์‹ค์Šต ์†”๋ฃจ์…˜skip 10. ๊ตฌ๋ฒ„์ „ ๊ฐ•์˜ ๊ตฌ๋…์ž๋“ค์ด ์ƒˆ ๊ฐ•์˜๋ฅผ ๋ณด๋Š” ๋ฒ•skip

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ๋ฌธ์ž์—ด ์ •๋ ฌํ•˜๊ธฐ (2)

Problem Description ์˜์–ด ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด my_string์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, my_string์„ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พธ๊ณ  ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ ๋ฌธ์ž์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”. Restrictions. 0

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ์ฃผ์‚ฌ์œ„์˜ ๊ฐœ์ˆ˜

Problem Description ๋จธ์“ฑ์ด๋Š” ์ง์œก๋ฉด์ฒด ๋ชจ์–‘์˜ ์ƒ์ž๋ฅผ ํ•˜๋‚˜ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ ์ด ์ƒ์ž์— ์ •์œก๋ฉด์ฒด ๋ชจ์–‘์˜ ์ฃผ์‚ฌ์œ„๋ฅผ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ์ฑ„์šฐ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ƒ์ž์˜ ๊ฐ€๋กœ, ์„ธ๋กœ, ๋†’์ด๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ๋Š” ๋ฐฐ์—ด box์™€ ์ฃผ์‚ฌ์œ„ ๋ชจ์„œ๋ฆฌ์˜ ๊ธธ์ด ์ •์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ƒ์ž์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ฃผ์‚ฌ์œ„์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. Restrictions. box์˜ ๊ธธ์ด๋Š” 3์ž…๋‹ˆ๋‹ค. box[0] = ์ƒ์ž์˜ ๊ฐ€๋กœ ๊ธธ์ด box[1] = ์ƒ์ž์˜ ์„ธ๋กœ ๊ธธ์ด box[2] = ์ƒ์ž์˜ ๋†’์ด ๊ธธ์ด Input/Output Example ์ž…์ถœ๋ ฅ ์˜ˆ #1 ์ƒ์ž์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋กœ 1, ์„ธ๋กœ 1, ๋†’์ด 1์ด๋ฏ€๋กœ ๋ชจ์„œ๋ฆฌ์˜ ๊ธธ์ด๊ฐ€ 1์ธ ์ฃผ์‚ฌ์œ„๋Š” 1๊ฐœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ #2 ์ƒ์ž์˜ ํฌ๊ธฐ๊ฐ€..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ๊ฐ๋„๊ธฐ

Problem Description ๊ฐ์—์„œ 0๋„ ์ดˆ๊ณผ 90๋„ ๋ฏธ๋งŒ์€ ์˜ˆ๊ฐ, 90๋„๋Š” ์ง๊ฐ, 90๋„ ์ดˆ๊ณผ 180๋„ ๋ฏธ๋งŒ์€ ๋‘”๊ฐ 180๋„๋Š” ํ‰๊ฐ์œผ๋กœ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ angle์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์˜ˆ๊ฐ์ผ ๋•Œ 1, ์ง๊ฐ์ผ ๋•Œ 2, ๋‘”๊ฐ์ผ ๋•Œ 3, ํ‰๊ฐ์ผ ๋•Œ 4๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. Restrictions 0 angle์ด 0๋ณด๋‹ค ํฌ๊ณ  90๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ์— ์กฐ๊ฑด์ด ์ฐธ์ด ๋จ Another solutions function solution(angle) { return [0, 90, 91, 180].filter(x => angle>=x).length; } function solution(angle) { return angle < 90 ? 1 : angle === 90 ? 2 : a..

[Chart.js] Y์ถ• ์ตœ๋Œ€๊ฐ’ ๋™์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Chart.js์—์„œ Y์ถ• ์ตœ๋Œ€๊ฐ’์„ ๋™์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Case ์šฐ์„  Chart ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ถ€๋ถ„์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. option์— ๋”ฐ๋ผ ํ‘œ์‹œํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅด๊ฒŒ retrun ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋™์ ์œผ๋กœ ๋‹ฌ๋ผ์ง€๋‹ค ๋ณด๋‹ˆ y์ถ• ๋ฒ”์œ„ ์ตœ๋Œ€๊ฐ’๋„ ํ•ด๋‹น datasets์— ๋งž๊ฒŒ ๋‹ค๋ฅด๊ฒŒ ํ‘œ์‹œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. const getData = (option: string): ChartData['datasets'] => { if (option === 'hourly') { return [ { fill: false, ..., data: [0, 150, 180, 270, 210, 160, 160, 202, 265, 210, 270, 255, 290, 3..

Library 2023.06.28

[๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive] 16์žฅ ํ”„๋กœํผํ‹ฐ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ(property attribute)๋ž€?

16.1 ๋‚ด๋ถ€ ์Šฌ๋กฏ๊ณผ ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€ ์Šฌ๋กฏ (internal slot)๊ณผ ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ (internal method)๋Š” JS ์—”์ง„์˜ ๊ตฌํ˜„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ECMAScript ์‚ฌ์–‘์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์˜์‚ฌ ํ”„๋กœํผํ‹ฐ pseudo property์™€ ์˜์‚ฌ ๋ฉ”์„œ๋“œ pseudo method ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฐ์ฒด๋Š” [[Prototype]] ์ด๋ผ๋Š” ๋‚ด๋ถ€ ์Šฌ๋กฏ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ์Šฌ๋กฏ์€ JS ์—”์ง„์˜ ๋‚ด๋ถ€ ๋กœ์ง์ด๋ฏ€๋กœ ์›์น™์ ์œผ๋กœ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†์ง€๋งŒ __proto__๋ฅผ ํ†ตํ•ด ๊ฐ„์ ‘ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 16.2 ํ”„๋กœํผํ‹ฐ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์™€ ํ”„๋กœํผํ‹ฐ ๋””์Šคํฌ๋ฆฝํ„ฐ ๊ฐ์ฒด Js ์—”์ง„์€ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ”„๋กœํผํ‹ฐ์˜ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ž๋™ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœํผํ‹ฐ์˜ ์ƒํƒœ๋ž€ ๊ฐ’ (value), ๊ฐ’์˜ ๊ฐฑ์‹  ๊ฐ€๋Šฅ ์—ฌ๋ถ€ (writable), ์—ด๊ฑฐ..

[๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive] 14์žฅ ์ „์—ญ ๋ณ€์ˆ˜์˜ ๋ฌธ์ œ์ 

14.1 ๋ณ€์ˆ˜์˜ ์ƒ๋ช…์ฃผ๊ธฐ 14.1.1 ์ง€์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช…์ฃผ๊ธฐ ์ง€์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ๋Š” ํ•จ์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. function foo() { var x = 'local' // ๋ณ€์ˆ˜ x ์ƒ์„ฑ, ๋ณ€์ˆ˜ x์— ๊ฐ’ ํ• ๋‹น console.loog(x) return x // ๋ณ€์ˆ˜ ์†Œ๋ฉธ } foo(); console.log(x); // x is not defined ํ˜ธ์ด์ŠคํŒ…์€ ์Šค์ฝ”ํ”„๋ฅผ ๋‹จ์œ„๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ด์ŠคํŒ…์€ ๋ณ€์ˆ˜ ์„ ์–ธ์ด ์Šค์ฝ”ํ”„์ด ์„ ๋‘๋กœ ๋Œ์–ด ์˜ฌ๋ ค์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” JS ๊ณ ์œ ์˜ ํŠน์ง•์„ ๋งํ•ฉ๋‹ˆ๋‹ค. 14.1.2 ์ „์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ ํ•จ์ˆ˜์™€ ๋‹ฌ๋ฆฌ ์ „์—ญ ์ฝ”๋“œ๋Š” ๋ช…์‹œ์ ์ธ ํ˜ธ์ถœ ์—†์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ์ „์—ญ ๋ณ€์ˆ˜๋Š” ์ „์—ญ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ „์—ญ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ๊ฐ€ ์ „์—ญ ๊ฐ์ฒด์˜ ์ƒ๋ช… ์ฃผ๊ธฐ์™€ ..

[JavaScript] ํŠน์ • ์š”์†Œ element ์œ„์น˜๋กœ ์Šคํฌ๋กค ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ• scrollIntoView

Intro ์•ˆ๋…•ํ•˜์„ธ์š”. ๋ชจ๋ฐ”์ผ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฉ”๋‰ด์—์„œ ์Šคํฌ๋กค ์ด๋™์„ ํ‘œํ˜„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์žˆ๊ฒ ์ง€๋งŒ ์ €๋Š” ํŠน์ • ์š”์†Œ ์œ„์น˜๋กœ ์Šคํฌ๋กค ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” scrollIntoView ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. Syntax scrollIntoView() scrollIntoView(alignToTop) scrollIntoView(scrollIntoViewOptions) alignToTop - true : aligned to the top ์ƒ๋‹จ ๊ธฐ์ค€ ์Šคํฌ๋กค ์ด๋™ | scrollIntoViewOptions: {block: "start", inline: "nearest"} - false : aligned to the bottom ํ•˜๋‹จ ๊ธฐ์ค€ ์Šคํฌ๋กค ์ด๋™ | scrollIntoViewOptions: {block: "end",..

๋ฐ˜์‘ํ˜•