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

    [์›น์„œ๋น„์Šค ๋ฐฐํฌ] 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๋ž€ ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ๋ฆฌํ”„๋ ˆ์‹œ ํ•˜์ง€ ์•Š๊ณ ์„œ๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ..

    [ajax] post, get ๋ฐฉ์‹ ์ด์šฉํ•œ ์›น์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ

    [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)

    [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)

    [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๋ฌธ ์ด์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ

    ์ค‘์ฒฉ for๋ฌธ ์ด์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๊ฐ์„ ์ตํžˆ๋Š”์ค‘์ด๋‹ค. ๊ฒฐ๊ณผ๋ฌผ ์ด๋ฒˆ ๊ฒƒ์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ 1. table ํƒœ๊ทธ๋ฅผ ํ™œ์šฉํ•˜๊ธฐ 2. ํ–‰์€ tr ํƒœ๊ทธ๋กœ 3. ์—ด์€ td ํƒœ๊ทธ๋กœ 4. ํ•ญ์ƒ ํƒœ๊ทธ๋Š” ์—ด์—ˆ์œผ๋ฉด ๋‹ซ๋Š” ํƒœ๊ทธ๋„ ๊ฐ™์ด ๋„ฃ์–ด์ฃผ๊ธฐ 5. console.log ๋ฅผ ์ด์šฉํ•ด์„œ ์ž˜ ์ถœ๋ ฅ๋˜๋Š”์ง€ ํ•œ๋ฒˆ ๋” ํ™•์ธํ•ด๋ณด๊ธฐ 6. ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„์—์„œ ๊ฐ€์žฅ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” : ๋Œ€์ž… ์—ฐ์‚ฐ์ž(๋ณตํ•ฉ ๋Œ€์ž…) += ํ™œ์šฉํ•ด๋ณด๊ธฐ ( ๋ณ€์ˆ˜ t์—๋‹ค๊ฐ€ html ์ฃ•๋‹ค ์ง‘์–ด ๋˜์ง€๊ธฐ ์‹œ์ „!)

    ํ™€์ง์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ƒ‰์ƒ ์ฃผ๊ธฐ(spanํƒœ๊ทธ, pํƒœ๊ทธ color, style ์ง€์ •)

    ํ™€์ง์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ƒ‰์ƒ ์ฃผ๊ธฐ(spanํƒœ๊ทธ, pํƒœ๊ทธ color, style ์ง€์ •)

    ์ฝ”๋“œ๋Š” styleํƒœ๊ทธ๋Š” ์ „์ฒด p ํƒœ๊ทธ์— ํ•œํ•ด์„œ ์ƒ‰์ƒ์„ ์ •ํ•ด์คฌ๊ธฐ ๋•Œ๋ฌธ์—, ์ถ”ํ›„ ๋ฐ‘์— ํ™€์ˆ˜ ๋ฒˆ์งธ๋ฅผ pํƒœ๊ทธ๋กœ ์ง€์ •ํ•ด๋†”๋„ ์ƒ‰์ƒ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋”ฐ๋กœ span ํƒœ๊ทธ๋ฅผ ํ™œ์šฉํ•˜๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŠน์ • span ํƒœ๊ทธ์˜ style์„ ์ง€์ •ํ•ด์ฃผ๋ฉด์„œ ๋ถ€๋ถ„ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

    ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„

    ์ผ๋ฐ˜์ ์ธ ์‚ฐ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ์—๋„ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ์—ฐ์‚ฐ์ž์—๋„ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์žˆ๋‹ค. 6๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ, ์•”๊ธฐ ์‚ฌํ•ญํ•˜๊ธฐ ์ข‹๊ฒŒ ๋ฌด๋‹จ์‚ฐ๋น„๋…ผ๋Œ€ ์ด๋ ‡๊ฒŒ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์ข‹๋‹ค. 1. ๋ฌด () 2. ๋‹จ - ๋‹จํ•ญ ์—ฐ์‚ฐ์ž( --, ++, !) 3. ์‚ฐ - ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž(*, /, %, +, -) 4. ๋น„ - ๋น„๊ต ์—ฐ์‚ฐ์ž(>, >=,