๐๏ธ์ํํธ์จ์ด/๐JavaScript
![[์น์๋น์ค ๋ฐฐํฌ] 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..
[html + css + js] ๊ณต๊ณต๊ธฐ์จ API ํ์ฉ - ajax
์ฌ์ฉ ๊ธฐ๋ฅ - ํ๋ฉด ์ ์ ์ฑ๊ณต์ alert ์ฐฝ ๋์ธ ์ ์๋๋ก ํจ - ๊ธฐ์จ API ํ์ฉํ์ฌ ์จ๋ ๋ฐ์ดํฐ ๋ถ๋ฌ์์ ํ๋ฉด์ ๋์ ์ผ๋ก ๋์ - ์ ์ ์ธ ์จ๋๊ฐ ๋์น๋จ - ๋๋จธ์ง๋ ๊ธฐ์กด์ ๋ง๋ค์ด๋์ ๊น์น๋ฏผ ๋ฉํผ ํฌ๋ช ๋ก์์ ๊ตฌํํ์์ ์คํ๋ฅดํ ์น๊ฐ๋ฐ ๊ฐ๋ฐ ์ผ์ง ์์ฑ์ผ๋ก ์ธํ์ฌ ๊ธ ์์ฑ ์ฌ์ฉํ ์ฝ๋ ์ฌ์ฉํ ์ฝ๋๋ ์๋์ ๊ฐ์ ๊น์น๋ฏผ ํฌ๋ช ๋ก ํ์ฌ ๊ธฐ์จ : 1๋๋ ๋๋ค์ ์์ ๋๊ธ ์์ ๋จ๊ธฐ๊ธฐ ์๋ก์ด ์จ๋ฒ ๋๋ฌด ๋ฉ์ ธ์!!!!!!!! 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 =..

์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ๊ฐ๋ ์ด์ ๋ฆฌ
์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ๊ธฐ๋ฐ ์ธ์ด ๊ธฐ๋ฅ, ์์ฑ ๊ฐ์ง TV๋ฅผ ์๋ฅผ๋ค๋ฉด, TV๋ ๊ฐ์ฒด(Object) ๋ฉ์๋(method) : ์ผ๋ค(), ๋๋ค(), ๋ณผ๋ฅจ ๋์ด๊ธฐ(), ๋ณผ๋ฅจ ๋ฎ์ถ๊ธฐ() ์์ฑ(Property) : ๋์ด;, ๋๋น;, ์์;, ๋ฌด๊ฒ; // ์ฝ๋ ๊ธฐ๋ณธ ๊ฐ์ฒด.๋ฉ์๋(); //๊ฐ์ฒด์ ๋ฉ์๋๋ฅผ ์คํ ๊ฐ์ฒด.์์ฑ; //๊ฐ์ฒด์ ์์ฑ๊ฐ์ ๊ฐ์ ธ์ด ๊ฐ์ฒด.์์ฑ = ๊ฐ; //๊ฐ์ฒด์ ์์ฑ๊ฐ์ ๋ฐ๊ฟ ๊ฐ์ฒด์ ์ข ๋ฅ ๋ด์ฅ๊ฐ์ฒด ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด๋ชจ๋ธ(BOM, Browser Object Model) ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ (DOM, Document Object Model) ๋ด์ฅ๊ฐ์ฒด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ด์ฅ๋์ด ์์ด ํ์ํ ๊ฒฝ์ฐ ์์ฑํด์ ์ฌ์ฉ ๊ฐ๋ฅ ๋ฌธ์(String), ๋ ์ง(Date), ๋ฐฐ์ด(Array), ์ํ(Math) ๊ฐ์ฒด ๋ฑ ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ(B..

์ค์ฒฉ for๋ฌธ ์ด์ฉํ์ฌ ํ ์ด๋ธ ๋ง๋ค๊ธฐ
์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ ์์ ๋ฅผ ํตํด ๊ฐ์ ์ตํ๋์ค์ด๋ค. ๊ฒฐ๊ณผ๋ฌผ ์ด๋ฒ ๊ฒ์์ ๋ฐฐ์ด ๋ด์ฉ 1. table ํ๊ทธ๋ฅผ ํ์ฉํ๊ธฐ 2. ํ์ tr ํ๊ทธ๋ก 3. ์ด์ td ํ๊ทธ๋ก 4. ํญ์ ํ๊ทธ๋ ์ด์์ผ๋ฉด ๋ซ๋ ํ๊ทธ๋ ๊ฐ์ด ๋ฃ์ด์ฃผ๊ธฐ 5. console.log ๋ฅผ ์ด์ฉํด์ ์ ์ถ๋ ฅ๋๋์ง ํ๋ฒ ๋ ํ์ธํด๋ณด๊ธฐ 6. ์ฐ์ฐ์ ์ฐ์ ์์์์ ๊ฐ์ฅ ๋ฎ์ ์ฐ์ ์์๋ฅผ ๊ฐ๊ณ ์๋ : ๋์ ์ฐ์ฐ์(๋ณตํฉ ๋์ ) += ํ์ฉํด๋ณด๊ธฐ ( ๋ณ์ t์๋ค๊ฐ html ์ฃ๋ค ์ง์ด ๋์ง๊ธฐ ์์ !)

ํ์ง์ ๋ฐ๋ผ ๋ค๋ฅธ ์์ ์ฃผ๊ธฐ(spanํ๊ทธ, pํ๊ทธ color, style ์ง์ )
์ฝ๋๋ styleํ๊ทธ๋ ์ ์ฒด p ํ๊ทธ์ ํํด์ ์์์ ์ ํด์คฌ๊ธฐ ๋๋ฌธ์, ์ถํ ๋ฐ์ ํ์ ๋ฒ์งธ๋ฅผ pํ๊ทธ๋ก ์ง์ ํด๋๋ ์์ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ค. ๊ทธ๋์ ๋ฐ๋ก span ํ๊ทธ๋ฅผ ํ์ฉํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ํน์ span ํ๊ทธ์ style์ ์ง์ ํด์ฃผ๋ฉด์ ๋ถ๋ถ ์์ ์ด ๊ฐ๋ฅํ๋ค.
์ฐ์ฐ์ ์ฐ์ ์์
์ผ๋ฐ์ ์ธ ์ฐ์๋ฅผ ๊ณ์ฐํ ๋์๋ ์ฐ์ ์์๊ฐ ์๋ ๊ฒ์ฒ๋ผ, ์ฐ์ฐ์์๋ ์ฐ์ ์์๊ฐ ์๋ค. 6๊ฐ์ง๊ฐ ์์ผ๋ฉฐ, ์๊ธฐ ์ฌํญํ๊ธฐ ์ข๊ฒ ๋ฌด๋จ์ฐ๋น๋ ผ๋ ์ด๋ ๊ฒ ์๊ณ ์์ผ๋ฉด ์ข๋ค. 1. ๋ฌด () 2. ๋จ - ๋จํญ ์ฐ์ฐ์( --, ++, !) 3. ์ฐ - ์ฐ์ ์ฐ์ฐ์(*, /, %, +, -) 4. ๋น - ๋น๊ต ์ฐ์ฐ์(>, >=,