๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
![[css] ์ธ๋ผ์ธ, ๋ธ๋ก ์์](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvQS7M%2FbtrNwCFez9b%2FM4HPhsDT5VXuhqyIm7ebkK%2Fimg.png)
[css] ์ธ๋ผ์ธ, ๋ธ๋ก ์์
์ธ๋ผ์ธ ์์์ ๊ฒฝ์ฐ, ๋ธ๋ก ์์์ ์์ฑ ๊ฐ์ ์ ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์, ์ธ๋ผ์ธ ์์๋ฅผ ๋ธ๋ก ์์์ฒ๋ผ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ ์ ์๋ค ์ฐธ๊ณ ๋ก css ์ ํ์์์ .box::before { content : ""; display : block; width : 30px; background-color: royalblue; } ๊ฐ์ ๊ฒฝ์ฐ์๋ ::after, ::before ๋ ์ธ๋ผ์ธ ์์์ด๊ธฐ์ display ์์ฑ ๊ฐ์ block ์ผ๋ก ์ค๋ค๋ฉด ๋ธ๋ก ์์์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค ๊ฒฐ๋ก , css ์์๋ inline ์์์ block ๊ตฌ์กฐ์ ๋ํ ํน์ง์ ์ ์๊ณ ์์ด์ผ ํ๋ค ๋ํ์ ์ธ inline ์์๋ span , a ํ๊ทธ์ด๋ฉฐ block ์ ๋ํ์ ์ธ ์์๋ div ํ๊ทธ๋ฅผ ์์ง๋ง์
![ํฌ๋กฌ๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ์ฌ๋ฐฑ ์ ๊ฑฐํ๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaJq97%2FbtrNAx3APCV%2FGLntQPMNaMxFbg9ZFVJt11%2Fimg.png)
ํฌ๋กฌ๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ์ฌ๋ฐฑ ์ ๊ฑฐํ๊ธฐ
์น์ฌ์ดํธ๋ง๋ค ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง์ผ๋ก ์ธํด์, ๊ฐ๊ธฐ ๋ค๋ฅธ ๊ฐ๋ค์ ใฑ์ง ์ ์๋๋ฐ, ์ ํ, ๊ตฌ๊ธ์์ ์๋ก ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๊ฒฐ๊ณผ ๊ฐ์ด ๋์ฌ ์ ์๊ธฐ์, 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 ์ฝ๋ฐฑ ํจ์](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmtrhk%2FbtrNpJi7kpA%2FuqNCf91Z6cdUC9nsqYoY7k%2Fimg.png)
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)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDxFqK%2FbtrNlQYhXLA%2FWhR7VBkCUJW3aeBkGfrao1%2Fimg.png)
์จ๋ ์์ธก ํ์ด์ง ๋ง๋ค๊ธฐ(๊ณต๊ณต 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.์ ๋ ฌ)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr5p0m%2FbtrNo7LhnE2%2F3tTM57n0C8xbGZlV6ipB10%2Fimg.png)
json ๋ฐ์ดํฐ vscode๋ก ๊น๋ํ๊ฒ ๋ณด๋ ๋ฐฉ๋ฒ(feat.์ ๋ ฌ)
ํ์ฅ์ : beautify ์ค์น ํ json ํ์ผ์ ์์ฑํด์, f1 ํค + beautify file ํด๋ฆญํ๋ฉด ์ ๋ ฌ๋์ง ์์๋ ํ ์คํธ๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๊น๋ํ๊ฒ ์ ๋ ฌ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ before after
![์ ๊ธฐ์ฐจ ๋ฐฐํฐ๋ฆฌ ์ ์๊ฐํ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckULok%2FbtrMUMOpJfa%2FskyswJqg1jrLojvrGd1gFk%2Fimg.png)
์ ๊ธฐ์ฐจ ๋ฐฐํฐ๋ฆฌ ์ ์๊ฐํ
์๋ ํ์ธ์ ๊ณต๋ถํ๋ ์ ์ด์ ๋๋ค. ์ค๋์ ์์ ์ ๊ณต๋ถํ์ง๋ง ๋ด์ฉ์ ๋ณต์ตํ๋ ์ฐจ์์์ ๋ฐฐํฐ๋ฆฌ ๊ทธ๋ฆฌ๊ณ ๋ฐฐํฐ๋ฆฌ์์์ ์ ์ ๊ฐํ์ ๋ํด ์ด์ผ๊ธฐ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ํํ ๋ง์ด ์ฌ์ฉํ๊ณ ์๋ ๊ตญ์ฐ์ 2์ข ๋ฅ์ธ 18650๊ณผ 21700(์ง๋ฆ 21mm·๋์ด 70mm) ์ ๋ํด ์ด๋ค ๋ฐฐํฐ๋ฆฌ ํน์ฑ์ฐจ์ด๊ฐ ์๋์ง ๋น๊ต๋ฅผ ํ๋ฒ ํด๋ณด๊ฒ ์ต๋๋ค. (*์ฐธ๊ณ ๋ก ํ ์ฌ๋ผ๋ 2022๋ ๋ถํฐ ์ฐจ์ธ๋ ๋ฐฐํฐ๋ฆฌ๋ก 46800 ์ํตํ ๋ฐฐํฐ๋ฆฌ๋ฅผ ์์ฐ ์ฐจ๋์ ๋ฃ์ ์์ ์ด๋ผ๊ณ ํ๋๋ฐ, ๋ฐฐํฐ๋ฆฌ์ ๊ธฐ์ ์ด ๋๋ ํ ์ข์์ง๊ณ ์๋ ๊ฒ์ ๋ณด๋, ๋ฐฐํฐ๋ฆฌ ์ฐ์ ์ ๋ฏธ๋๊ฐ ๊ธฐ๋๋ฉ๋๋ค.) https://www.inews24.com/view/1431221 ํ ์ฌ๋ผ, ์ฐจ์ธ๋ ์ํตํ ๋ฐฐํฐ๋ฆฌ '46800' ๋ฐ์ฃผ๋ฌผ๋ ํ๋ณด ๊ฒฝ์ ์น์๋ [์์ด๋ด์ค24 ์ค์ ์ง ๊ธฐ์] ํ ์ฌ๋ผ๊ฐ ์ฐจ์ธ๋ ์ํตํ ๋ฐฐํฐ๋ฆฌ..
![[AWS + Filezila] ์น์๋น์ค ๋ฐฐํฌ ์ํ ์์](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgJ5yP%2FbtrMS2C5Qll%2FZsVkxOm0OHKDw8EY3Tsml0%2Fimg.png)
[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 ์ด์ฉํ๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUJtNi%2FbtrMSWJHIyC%2FoAfx58IlPYlnkXKXNT6ua1%2Fimg.png)
[์น์๋น์ค ๋ฐฐํฌ] 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] ๋ฒํท๋ฆฌ์คํธ ์น ํ์ด์ง ๋ง๋ค๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdj9Vsx%2FbtrMRrbAMgJ%2FgEjqBJb09Vfm7pN1wu4aKk%2Fimg.png)
[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๋ ๊ฐ๋จํ ๋งํ๋ฉด ํ์ด์ง ์ ์ฒด๋ฅผ ๋ฆฌํ๋ ์ ํ์ง ์๊ณ ์๋ ์ํํ ์ ..