๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

    [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

    ์ „๊ธฐ์ฐจ ๋ฐฐํ„ฐ๋ฆฌ ์ „์••๊ฐ•ํ•˜

    ์ „๊ธฐ์ฐจ ๋ฐฐํ„ฐ๋ฆฌ ์ „์••๊ฐ•ํ•˜

    ์•ˆ๋…•ํ•˜์„ธ์š” ๊ณต๋ถ€ํ•˜๋Š” ์›…์ด์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์˜ˆ์ „์— ๊ณต๋ถ€ํ–ˆ์ง€๋งŒ ๋‚ด์šฉ์„ ๋ณต์Šตํ•˜๋Š” ์ฐจ์›์—์„œ ๋ฐฐํ„ฐ๋ฆฌ ๊ทธ๋ฆฌ๊ณ  ๋ฐฐํ„ฐ๋ฆฌ์—์„œ์˜ ์ „์•• ๊ฐ•ํ•˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”ํžˆ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ตญ์‚ฐ์…€ 2์ข…๋ฅ˜์ธ 18650๊ณผ 21700(์ง€๋ฆ„ 21mm·๋†’์ด 70mm) ์— ๋Œ€ํ•ด ์–ด๋–ค ๋ฐฐํ„ฐ๋ฆฌ ํŠน์„ฑ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ๋น„๊ต๋ฅผ ํ•œ๋ฒˆ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. (*์ฐธ๊ณ ๋กœ ํ…Œ์Šฌ๋ผ๋Š” 2022๋…„๋ถ€ํ„ฐ ์ฐจ์„ธ๋Œ€ ๋ฐฐํ„ฐ๋ฆฌ๋กœ 46800 ์›ํ†ตํ˜• ๋ฐฐํ„ฐ๋ฆฌ๋ฅผ ์–‘์‚ฐ ์ฐจ๋Ÿ‰์— ๋„ฃ์„ ์˜ˆ์ •์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋ฐฐํ„ฐ๋ฆฌ์˜ ๊ธฐ์ˆ ์ด ๋‚˜๋‚ ํžˆ ์ข‹์•„์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ณด๋‹ˆ, ๋ฐฐํ„ฐ๋ฆฌ ์‚ฐ์—…์˜ ๋ฏธ๋ž˜๊ฐ€ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.) https://www.inews24.com/view/1431221 ํ…Œ์Šฌ๋ผ, ์ฐจ์„ธ๋Œ€ ์›ํ†ตํ˜• ๋ฐฐํ„ฐ๋ฆฌ '46800' ๋ฐœ์ฃผ๋ฌผ๋Ÿ‰ ํ™•๋ณด ๊ฒฝ์Ÿ ์Šน์ž๋Š” [์•„์ด๋‰ด์Šค24 ์˜ค์œ ์ง„ ๊ธฐ์ž] ํ…Œ์Šฌ๋ผ๊ฐ€ ์ฐจ์„ธ๋Œ€ ์›ํ†ตํ˜• ๋ฐฐํ„ฐ๋ฆฌ..

    [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",..

    [์›น์„œ๋น„์Šค ๋ฐฐํฌ] AWS EC2 + Filezila ์ด์šฉํ•˜๊ธฐ

    [์›น์„œ๋น„์Šค ๋ฐฐํฌ] AWS EC2 + Filezila ์ด์šฉํ•˜๊ธฐ

    ์ŠคํŒŒ๋ฅดํƒ€ ์ฝ”๋”ฉ ์›น๊ฐœ๋ฐœ 5์ฃผ์ฐจ ๋งˆ์ง€๋ง‰ ๊ฐ•์˜ ๋‚ด์šฉ์„ ๋“ฃ๊ณ  ์ž‘์„ฑํ•œ ๋‚ด์šฉ์ด๋ฉฐ, ์ฐธ๊ณ  ๋ฐ”๋ž๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•œ ๊ฒƒ : AWS EC2(Linux Ubuntu 22.04 LTS Server), Git Bash, Filezila, HTML , CSS , JS, Bootstrap, Ajax 1. ์›น์„œ๋น„์Šค๋ž€? ์›น ์„œ๋น„์Šค ๋Ÿฐ์นญ์ด๋ž€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ํ•ญ์ƒ ์‘๋‹ตํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์— ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ ์–ธ์ œ๋‚˜ ์š”์ฒญ์— ์‘ํ•˜๋ ค๋ฉด ๋‹ค์Œ 2๊ฐ€์ง€๊ฐ€ ์ถฉ์กฑ๋˜์–ด์•ผ ํ•จ ์ปดํ“จํ„ฐ๋Š” ํ•ญ์ƒ ์ผœ์ ธ์žˆ๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๊ณ  ๋ชจ๋‘๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐœ ์ฃผ์†Œ์ธ ๊ณต๊ฐœ IP ์ฃผ์†Œ ( Publick IP Address)๋กœ ๋‚˜์˜ ์›น ์„œ๋น„์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผํ•จ ๊ฐ€๋น„์•„์—์„œ IP ์ฃผ์†Œ๋ฅผ ์‹ ์ฒญํ•˜์—ฌ ์ฃผ์†Œ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ฌ gs-tom.shop ์ด๋ผ๋Š” ์ฃผ..

    [Ajax, Flask] ๋ฒ„ํ‚ท๋ฆฌ์ŠคํŠธ ์›น ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

    [Ajax, Flask] ๋ฒ„ํ‚ท๋ฆฌ์ŠคํŠธ ์›น ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

    ์‚ฌ์šฉ ์Šคํƒ : HTML, CSS, Javascript, bootstrap, Ajax, Flask, MongoDB Post ๋ฐฉ์‹ ์—ฐ์Šต ( ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•) API ๋ฅผ ๋งŒ๋“ค๊ณ  ์‚ฌ์šฉํ•ด๋ณด์ž ๋ฒ„ํ‚ท๋ฆฌ์ŠคํŠธ ๊ธฐ๋ก API ( CREATE ์€ POST ๋ฐฉ์‹์œผ๋กœ) ์š”์ฒญ์ •๋ณด๋Š” URL = /bucket ์ด๋ฉฐ ์š”์ฒญ๋ฐฉ์‹์€ POST ๋ฐฉ์‹์œผ๋กœ ํด๋ผ์ด์–ธํŠธ (ajax) ์—์„œ ์„œ๋ฒ„(flask) ๋กœ ๋ณด๋‚ด๋ฉฐ bucket ์„ ๋ณด๋‚ด๋ ค๊ณ  ํ•œ๋‹ค templates ์•ˆ์— ์žˆ๋Š” index.html ์ด ํ”„๋ก ํŠธ์—”๋“œ ๋ถ€๋ถ„์ด๋ฏ€๋กœ ํ†ต์ƒ ํด๋ผ์ด์–ธํŠธ๋กœ ์นญํ•จ bucket์€ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ธํ’‹ ํผ์—์„œ ๋ฐ›์€ ๋ฒ„ํ‚ท๋ฆฌ์ŠคํŠธ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ์ด๋ฉฐ ๊ธฐ๋กํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ๋‚ด์šฉ์„ ์„œ๋ฒ„์— ๋ณด๋‚ด๊ฒŒ ๋จ ์ฐธ๊ณ ๋กœ ajax๋ž€ ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ๋ฆฌํ”„๋ ˆ์‹œ ํ•˜์ง€ ์•Š๊ณ ์„œ๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ..