๐๏ธ์ํํธ์จ์ด

json ๋ฐ์ดํฐ vscode๋ก ๊น๋ํ๊ฒ ๋ณด๋ ๋ฐฉ๋ฒ(feat.์ ๋ ฌ)
ํ์ฅ์ : beautify ์ค์น ํ json ํ์ผ์ ์์ฑํด์, f1 ํค + beautify file ํด๋ฆญํ๋ฉด ์ ๋ ฌ๋์ง ์์๋ ํ ์คํธ๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๊น๋ํ๊ฒ ์ ๋ ฌ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ before after
![[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๋ ๊ฐ๋จํ ๋งํ๋ฉด ํ์ด์ง ์ ์ฒด๋ฅผ ๋ฆฌํ๋ ์ ํ์ง ์๊ณ ์๋ ์ํํ ์ ..
![[ajax] post, get ๋ฐฉ์ ์ด์ฉํ ์น์ฌ์ดํธ ๋ง๋ค๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqClXr%2FbtrMNMgOmRr%2FzYSgZuTVQJ3WzQjiktaKhK%2Fimg.png)
[ajax] post, get ๋ฐฉ์ ์ด์ฉํ ์น์ฌ์ดํธ ๋ง๋ค๊ธฐ
์ฌ์ฉ ์คํ : html, css, bootstrap, ajax, mongoDB ์๋ฃ ๊ตฌ์กฐ : templates์ index.html ์ฝ๋ ๊น์น๋ฏผ ํฌ๋ช ๋ก ํ์ฌ๊ธฐ์จ: 36๋ ๋๋ค์ ์์๋๊ธ ์์ ๋จ๊ธฐ๊ธฐ app.py ์ฝ๋ - mongoDB ๋ ๋ณธ์ธ์ DB ๊ณ์ ์์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค URL ์ ์ด์ฉํ๋ฉด ์ ์ ๊ฐ๋ฅํฉ๋๋ค 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=majo..
![[python] ์์ ์ ๋ณด ํฌ๋กค๋งํ๊ธฐ(feat.์น๊ตฌ ์ถ์ฒ ์ด๋ฒคํธ)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeAeuN%2FbtrMKsuNLz5%2FoTGy6F48O8WTTK4ItmSjx0%2Fimg.png)
[python] ์์ ์ ๋ณด ํฌ๋กค๋งํ๊ธฐ(feat.์น๊ตฌ ์ถ์ฒ ์ด๋ฒคํธ)
์คํ๋ฅดํ ์น๊ฐ๋ฐ ์ฝ์ค 3์ฃผ์ฐจ ๊ณผ์ ๊ด๋ จ ๋ด์ฉ - ์ฌ์ฉํด๋ณด๊ณ ์ถ์๋ ๊ธฐ๋ฅ์ ์๋ ์ฐธ์กฐ ์์ผ๋, ์ฌ์ฉํด๋ณด์ง๋ ๋ชปํด์ ์์ฌ์ .next_siblings() - ์ด๊ธฐ์ ssl ์ธ์ฆ ๊ด๋ จ์๋ฌ๊ฐ ์์ด์, requests ์์ verify = False ๋ก ์ค์ ํจ ์ฌ์ฉํ ์ฝ๋ # genie ํฌ๋กค๋ง # ๊ฐ์ํ๊ฒฝ conda env sparta_py38 ## ํฌ๋กค๋ง ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ import requests from bs4 import BeautifulSoup # ์์กด์ฑ ์๋ฌ import ssl ## DB # from pymongo import MongoClient headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36..
[html + css + js] ๊ณต๊ณต๊ธฐ์จ API ํ์ฉ - ajax
์ฌ์ฉ ๊ธฐ๋ฅ - ํ๋ฉด ์ ์ ์ฑ๊ณต์ alert ์ฐฝ ๋์ธ ์ ์๋๋ก ํจ - ๊ธฐ์จ API ํ์ฉํ์ฌ ์จ๋ ๋ฐ์ดํฐ ๋ถ๋ฌ์์ ํ๋ฉด์ ๋์ ์ผ๋ก ๋์ - ์ ์ ์ธ ์จ๋๊ฐ ๋์น๋จ - ๋๋จธ์ง๋ ๊ธฐ์กด์ ๋ง๋ค์ด๋์ ๊น์น๋ฏผ ๋ฉํผ ํฌ๋ช ๋ก์์ ๊ตฌํํ์์ ์คํ๋ฅดํ ์น๊ฐ๋ฐ ๊ฐ๋ฐ ์ผ์ง ์์ฑ์ผ๋ก ์ธํ์ฌ ๊ธ ์์ฑ ์ฌ์ฉํ ์ฝ๋ ์ฌ์ฉํ ์ฝ๋๋ ์๋์ ๊ฐ์ ๊น์น๋ฏผ ํฌ๋ช ๋ก ํ์ฌ ๊ธฐ์จ : 1๋๋ ๋๋ค์ ์์ ๋๊ธ ์์ ๋จ๊ธฐ๊ธฐ ์๋ก์ด ์จ๋ฒ ๋๋ฌด ๋ฉ์ ธ์!!!!!!!! Tom ์๋ก์ด ์จ๋ฒ ๋๋ฌด ๋ฉ์ ธ์!!!!!!!! Tom ์๋ก์ด ์จ๋ฒ ๋๋ฌด ๋ฉ์ ธ์!!!!!!!! Tom ์ฝ๋์ ๊ดํ ์ง๋ฌธ์ ์ธ์ ๋ ์ง ๋๊ธ ๋ฐ๋๋๋ค.
![[html/css] ์คํ๋ฅดํ์ฝ๋ฉ 1์ฃผ์ฐจ:์น๊ฐ๋ฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjBbgf%2FbtrMxXpm6in%2Fvmswgox8ltQYG5BjkkUKr1%2Fimg.png)
[html/css] ์คํ๋ฅดํ์ฝ๋ฉ 1์ฃผ์ฐจ:์น๊ฐ๋ฐ
์์ฑ ํ๋ฉด - ํฐํธ๋ ๊ตฌ๊ธ ํฐํธ๋ฅผ ํ์ฉ - ๋ฒํผ, ์ด๋ฏธ์ง, Quote ๋ค์ ๋ถํธ์คํธ๋ฉ ํ์ฉ - ํ์์ ๋ง๊ฒ ์ปค์คํ ๋ง์ด์งํจ - ์ปค๋ฒ ์ด๋ฏธ์ง๋ฅผ ์ด๋ก๊ฒ ์ฒ๋ฆฌํ์ฌ, ํฐ์ ์ ๋ชฉ์ด ๋๋ณด์ด๊ฒ ๊ตฌ์ฑ - ๋ง์ง ์ฒ๋ฆฌ๋ฅผ ์ฌ์ ๋กญ๊ฒ ์ค์ ํ์ฌ ๊ณต๊ฐ๊ฐ์ ๊ฐ๊ธฐ ์ํด ๋ ธ๋ ฅ ํฌํด๋ฝ ํ๋ฉด ํ์ด์ง ๊ฐ๋จํ๊ฒ ๊ตฌ์ฑํด๋ด (์๊ฐ : 20๋ถ) ์ฝ๋ ๊น์น๋ฏผ ํฌ๋ช ๋ก ๋๋ค์ ์์ ๋๊ธ ์์ ๋จ๊ธฐ๊ธฐ ์๋ก์ด ์จ๋ฒ ๋๋ฌด ๋ฉ์ ธ์!!!!!!!! Tom ์๋ก์ด ์จ๋ฒ ๋๋ฌด ๋ฉ์ ธ์!!!!!!!! Tom ์๋ก์ด ์จ๋ฒ ๋๋ฌด ๋ฉ์ ธ์!!!!!!!! Tom
![[Vue.js] ๋ฌธ๋ฒ ๊ธฐ์ด 2ํธ(props, v-bind, v-on, router, axios)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEtfIz%2FbtrMrx4iv90%2FpvVKf2bGaNNIgovU39K3H0%2Fimg.png)
[Vue.js] ๋ฌธ๋ฒ ๊ธฐ์ด 2ํธ(props, v-bind, v-on, router, axios)
๐ก watch ์์ฑ data์ ๋ณํ์ ๋ฐ๋ผ์ ํน์ ๋ก์ง์ ์คํ ์ฐ์ vue ์ธ์คํด์ค ๋ด๋ถ์ ๋ค์ด๊ฐ๋ ์์ฑ ์์ el, data, watch, methods ๋ฑ watch ์์ data ๊ฐ์ธ num์ ๊ณ ์ ํด๋ watch๋ computed๋ ๋น์ทํ ๋๋์ ๊ฐ๊ณ ์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์๋น์ค ๊ตฌํ์ ์์ด์์ ์ฐจ์ด์ ์??? computed ๋ ๋จ์ํ ๊ณ์ฐ, ํ ์คํธ ์ ๋ ฅ ๊ฐ์ ๋ฐ์์ validation watch๋ ๋ฌด๊ฑฐ์, ๋งค๋ฒ ์คํ๋๋ ๊ฒ์ด ๋ถ๋ด์ค๋ฌ์ด ๊ฒ๋ค!!!!!!!!( ์ค์) ๊ฐ์ ๋ณํ๋ฅผ ๊ณ์ ์ถ์ ํจ function(newValue, oldValue) ๋ผ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ๊ณ ์์ this.fetchUserByNumber(newValue) ๐ก computed ์์ฑ์ ์ด์ฉํ ํด๋์ค ์ฝ๋ ์์ฑ๋ฐ boolean ํ์ ์ ๋ํ..
![[Vue.js] ๋ฌธ๋ฒ ๊ธฐ์ด 1ํธ(props, v-bind, v-on, router, axios)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQn4YV%2FbtrMnmWHoSc%2FzpDaawBh53aKd1j9CTrBE1%2Fimg.png)
[Vue.js] ๋ฌธ๋ฒ ๊ธฐ์ด 1ํธ(props, v-bind, v-on, router, axios)
์ด๋ฒคํธ ์์ฑ์ ๋ํด์ ๋ค๋ค๋ณด๊ณ ์ ํ๋ค. ๋ฌผ๋ก , ๊ทธ ์ธ์๋ ์ ๋ฐ์ ์ผ๋ก Vue.js ๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌํ ๋ด์ฉ์ ์ ๋ ๋ธ๋ก๊ทธ ๊ธ์ ์ฐ์ฌํ๋ ค๊ณ ํ๋ค. ๋์์์ด ๋ฐฐ์ด ๋ด์ฉ์ ์ ๋ฆฌํ ๊ฑฐ๋ผ, ์๋ชป๋ ๋ด์ฉ์ด ์๋ค๋ฉด ์ธ์ ๋ ์ง ํผ๋๋ฐฑ ์ฃผ๊ธธ๋ฐ๋ผ๋ฉฐ, ์ฝ์ด์ฃผ์ ์ ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. Thanks for you guys. ์น๊ฐ๋ฐ์ ์ฝ๊ฒ ํ๊ธฐ ์ํด์ ์ ํํ ํ๋ ์์ํฌ์ธ ๋งํผ, React๋ Angular ๋งํผ์ ์๋์ง๋ง, Vue.js ๋ ์ถฉ๋ถํ ๋งค๋ ฅ์ ์ธ ๋๊ตฌ์ธ ๊ฒ ๊ฐ์์ ์ฌ๋ฐ๋ค. inputfiled + prop ๊ด๋ จ ๊ฐ๋ ์ ์ ๋ฆฌ๋์ด ์์ https://whitepro.tistory.com/255 ์๋ฐ์คํฌ๋ฆฝํธ - forEach ๋ฐฐ์ด์ ์ํํ๋ ๋ฐฉ๋ฒ ์ค ํ๋ ๊ธฐ์กด ์ฝ๋ const numbers = [1,2,3,4,5] for (i =..