๐Ÿ—๏ธ์†Œํ”„ํŠธ์›จ์–ด

    Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')

    Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')

    ์—๋Ÿฌ ์›์ธ hmtl ๋กœ๋“œ ๋˜๊ธฐ ์ „์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์˜์—ญ์—์„œ html ์„ ์ฐธ์กฐํ•˜๊ธฐ ๋–„๋ฌธ addEventLister ์—์„œ html ํƒœ๊ทธ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๊ธฐ ๋–„๋ฌธ์— null ๊ฐ’์ด ๋ฐ˜ํ™˜๋˜์—ˆ๊ณ , ํ•ด๋‹น ๋ถ€๋ถ„์„ ๊ณ ์ณ์ค˜์•ผ ํ•˜๋Š” ๊ฒƒ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• - script defer ์ด์šฉ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฒฝ์šฐ, defer ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜๋ฉด, ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜๊ธด ํ•˜์ง€๋งŒ, ๋ฌธ์„œ ํŒŒ์‹ฑ์„ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ์•„๋ž˜๋กœ ๋๊นŒ์ง€ ์ฝ์–ด๋“ค์ด๋Š”๋ฐ, ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ์˜ ๊ฒฝ์šฐ html ํƒœ๊ทธ์˜ ๋ ํƒœ๊ทธ์—์„œ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค ๋ณดํ†ต, DOM ์„ ์กฐ์งํ•˜์—ฌ HTML ์˜์กด์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์— ๋จผ์ € HTML ์„ ํŒŒ์‹ฑํ•˜๊ณ ์„œ, ์‹คํ–‰๋˜์–ด์•ผ ํ•  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋„๋ก ํ•œ๋‹ค. ์ด์ „ ์ฝ”๋“œ ์ดํ›„ ์ฝ”๋“œ

    [gitbub] SSL certificate problem: unable to get local issuer certificate ์—๋Ÿฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

    [gitbub] SSL certificate problem: unable to get local issuer certificate ์—๋Ÿฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

    [2022-10-05T01:41:30.322Z] > git for-each-ref --sort -committerdate --format %(refname) %(objectname) %(*objectname) [110ms] [2022-10-05T01:41:30.337Z] > git remote --verbose [109ms] [2022-10-05T01:41:30.466Z] > git config --get commit.template [108ms] [2022-10-05T01:41:30.791Z] > git push origin main:main [304ms] [2022-10-05T01:41:30.791Z] fatal: unable to access 'https://github.com/bbeee21/sta..

    [Vuetify] ๋™๊ธฐ,๋น„๋™๊ธฐ,

    [Vuetify] ๋™๊ธฐ,๋น„๋™๊ธฐ,

    ๋™๊ธฐ ๋ฐฉ์‹๊ณผ ๋น„๋™๊ธฐ ๋ฐฉ์‹ ๋™๊ธฐ ๋ฐฉ์‹ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰์ด ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ์‹œ ์‘๋‹ต์ด ๋Œ์•„์™€์•ผ ๋‹ค์Œ ์ž‘์—…์ด ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•จ ๋น„๋™๊ธฐ ๋ฐฉ์‹ ์š”์ฒญ์„ ๋ณด๋‚ผ๋•Œ ์‘๋‹ต ์ƒํƒœ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋‹ค์Œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜ค๋Š” ๊ฒƒ๊ณผ ๋ณ„๊ฐœ๋กœ ์•„๋ž˜์˜ ์ฝ”๋“œ๋“ค์ด ์‹คํ–‰๋œ๋‹ค ์˜ˆ๋ฅผ๋“ค์–ด, setTimeout() ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด, ๋น„๋™๊ธฐ APi ์ด๋ฉฐ, ์ฒซ๋ฒˆ์งธ ์ธ์ž๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋‘๋ฒˆ์งธ ์ธ์ž๋Š” ์ง€์—ฐ์‹œ๊ฐ„์ด๋‹ค ๋‘๋ฒˆ์งธ ์ธ์ž๊ฐ€ 0 ์ด๊ธฐ์— 1 -> 2 -> 3 ์œผ๋กœ ์ถœ๋ ฅ๋ ๊ฑฐ๋ผ ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ๋‹ค console.log("1"); setTimeout( () => { console.log("2"); }, 0); console.log("3"); ํ•˜์ง€๋งŒ, ๋น„๋™๊ธฐ ๋ฉ”์†Œ๋“œ๋Š” ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ด๋‹นํ•˜๊ธฐ์—, 1 -> ..

    [css] ์ธ๋ผ์ธ, ๋ธ”๋ก ์š”์†Œ

    [css] ์ธ๋ผ์ธ, ๋ธ”๋ก ์š”์†Œ

    ์ธ๋ผ์ธ ์š”์†Œ์˜ ๊ฒฝ์šฐ, ๋ธ”๋ก ์š”์†Œ์˜ ์†์„ฑ ๊ฐ’์„ ์ ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ธ๋ผ์ธ ์š”์†Œ๋ฅผ ๋ธ”๋ก ์š”์†Œ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค ์ฐธ๊ณ ๋กœ css ์„ ํƒ์ž์—์„œ .box::before { content : ""; display : block; width : 30px; background-color: royalblue; } ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ::after, ::before ๋Š” ์ธ๋ผ์ธ ์š”์†Œ์ด๊ธฐ์— display ์†์„ฑ ๊ฐ’์„ block ์œผ๋กœ ์ค€๋‹ค๋ฉด ๋ธ”๋ก ์š”์†Œ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค ๊ฒฐ๋ก , css ์—์„œ๋Š” inline ์š”์†Œ์™€ block ๊ตฌ์กฐ์— ๋Œ€ํ•œ ํŠน์ง•์„ ์ž˜ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค ๋Œ€ํ‘œ์ ์ธ inline ์š”์†Œ๋Š” span , a ํƒœ๊ทธ์ด๋ฉฐ block ์˜ ๋Œ€ํ‘œ์ ์ธ ์š”์†Œ๋Š” div ํƒœ๊ทธ๋ฅผ ์žŠ์ง€๋ง์ž

    ํฌ๋กฌ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ์—ฌ๋ฐฑ ์ œ๊ฑฐํ•˜๊ธฐ

    ํฌ๋กฌ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ์—ฌ๋ฐฑ ์ œ๊ฑฐํ•˜๊ธฐ

    ์›น์‚ฌ์ดํŠธ๋งˆ๋‹ค ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•์œผ๋กœ ์ธํ•ด์„œ, ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ฐ’๋“ค์„ ใ„ฑ์งˆ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์• ํ”Œ, ๊ตฌ๊ธ€์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ € ๊ฒฐ๊ณผ ๊ฐ’์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๊ธฐ์—, css ์—์„œ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ ์„ธํŒ…์„ ์ดˆ๊ธฐํ™”ํ•ด์•ผํ•จ reset css cdn ์„ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•˜๋ ค๋Š” html์— link๋กœ ๋ถ™์—ฌ๋„ฃ์–ด์•ผ(์ ˆ๋Œ€๋งํฌ๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ถŒ์žฅ) https://www.jsdelivr.com/package/npm/reset-css jsDelivr - A free, fast, and reliable CDN for Open Source Supports npm, GitHub, WordPress, Deno, and more. Largest network and best performance among all CDNs. Serving more than 80 bil..

    node ์ด์šฉํ•œ json ์ฝœ๋ฐฑ ํ•จ์ˆ˜

    node ์ด์šฉํ•œ json ์ฝœ๋ฐฑ ํ•จ์ˆ˜

    node.js ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ฝ”๋“œ๋ฅผ ์ฝ์–ด์„œ ์ฒ˜๋ฆฌํ•ด ์ฃผ๋Š” ๋Ÿฐํƒ€์ž„ ๋Ÿฐํƒ€์ž„์„ ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ์‹คํ–‰๊ธฐ์ด๋ฉฐ ๊ธฐ์กด HTML์— ์ข…์†๋˜์–ด HTML ์—†์ด๋Š” ์ฝ์„ ์ˆ˜ ์—†์—ˆ๋˜ javascript๊ฐ€ ๊ฐ•ํ•ด์งˆ ์ˆ˜ ์žˆ๋˜ ๊ณ„๊ธฐ๋„ javascript๋ฅผ ์‹คํ–‰ํ•ด์ฃผ๋Š” Node๊ฐ€ ์ƒ๊ธด ์ดํ›„๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Œ(์ค‘์š”) express ์„ค์น˜๋Š” npm install express json ํ˜•ํƒœ์˜ api๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์ฝ”๋“œ node b.js ๋กœ ์„œ๋ฒ„ ์‹คํ–‰์‹œ์ผœ์ฃผ๊ธฐ /aaaa ๋กœ api๋ฅผ ๋งŒ๋“ค์–ด์ค€ ๊ฒƒ ์œ„์™€ ๊ฐ™์€ ๋‚ด์šฉ์œผ๋กœ, callback ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค 127.0.0.1์€ ๋ฃจํ”„๋ฐฑ ip ์ด๋‹ค ใ…‡

    ์˜จ๋„ ์˜ˆ์ธก ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ(๊ณต๊ณต API ํ™œ์šฉ,json)

    ์˜จ๋„ ์˜ˆ์ธก ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ(๊ณต๊ณต API ํ™œ์šฉ,json)

    open api ํ™œ์šฉํ•ด์„œ json ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ ๋ฐ›์•„์™€์„œ ์ฐจํŠธ ๋งŒ๋“ค๊ธฐ json๋ฐ์ดํ„ฐ ์˜ˆ์‹œ - hourly ์š”์†Œ์˜ time ์š”์†Œ ๊ฐ’์ด ํ•„์š”ํ•จ ํ•„์š”ํ•œ open_api ์ •๋ณด๋ฅผ ์ •์˜ํ•˜๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” hourly.time์ž„ datasets์€ ์ฐจํŠธ ๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ๋“ค๋กœ ์‚ฌ์šฉ pointHoverRadius ์„ ํ†ตํ•ด ๋งˆ์šฐ์Šค ํ˜ธ๋ฒ„๋ง๋˜๋ฉด ์›์ด ์ปค์ง€๊ฒŒ ๋จ chart ๋ฅผ ์“ฐ๊ฒŒ ๋˜๋ฉด, ๋ฐ์ดํ„ฐ ํฌ๋งทํŒ…์— ๋งž์ถฐ์„œ ๊ฐ’๋“ค์„ ์„ค์ •ํ•˜๋ฉด ๋จ myChart ๋ผ๋Š” dom ์— ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆผ(์บ”๋ฒ„์Šค์—) new Chart๋กœ fetch ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ, draw๋ฅผ ํ†ตํ•ด ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆผ window.onload dom์ด ๋กœ๊ทธ๊ฐ€ ์•ˆ๋ ๋•Œ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ, ์Šคํƒ€์ผ์‹œํŠธ ๋ฐ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ๋ชจ๋“  ์ข…์† ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•˜์—ฌ ์ „์ฒด ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋˜๋ฉด ์ด๋ฒคํŠธ๊ฐ€ ์‹œ์ž‘๋˜๊ฒŒ ..

    json ๋ฐ์ดํ„ฐ vscode๋กœ ๊น”๋”ํ•˜๊ฒŒ ๋ณด๋Š” ๋ฐฉ๋ฒ•(feat.์ •๋ ฌ)

    json ๋ฐ์ดํ„ฐ vscode๋กœ ๊น”๋”ํ•˜๊ฒŒ ๋ณด๋Š” ๋ฐฉ๋ฒ•(feat.์ •๋ ฌ)

    ํ™•์žฅ์ž : beautify ์„ค์น˜ ํ›„ json ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์„œ, f1 ํ‚ค + beautify file ํด๋ฆญํ•˜๋ฉด ์ •๋ ฌ๋˜์ง€ ์•Š์•˜๋˜ ํ…์ŠคํŠธ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊น”๋”ํ•˜๊ฒŒ ์ •๋ ฌ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ before after

    [AWS + Filezila] ์›น์„œ๋น„์Šค ๋ฐฐํฌ ์‹œํ˜„ ์˜์ƒ

    [AWS + Filezila] ์›น์„œ๋น„์Šค ๋ฐฐํฌ ์‹œํ˜„ ์˜์ƒ

    ๋‹ค๋ฅธ ๊ฒƒ๋ณด๋‹ค ์‹œํ˜„ ์˜์ƒ(์‚ฌ์ง„)๊ณผ ์ฝ”๋“œ์ด๋‹ค ์ฝ”๋“œ 1. app.py 2. index.html app.py from flask import Flask, render_template, request, jsonify app = Flask(__name__) # DB from pymongo import MongoClient client = MongoClient('mongodb+srv://test:test@cluster0.wpvuwzi.mongodb.net/Cluster0?retryWrites=true&w=majority') db = client.dbsparta @app.route('/') def home(): return render_template('index.html') @app.route("/homework",..