interested in/Dev

์›น๊ฐœ๋ฐœ ๊ณต๋ถ€ 15์ผ์ฐจ

Loc Han 2022. 1. 8. 13:45

๐ŸŽถ ์šฐ์„  14์ผ์ฐจ์— ์•ˆ ๋œ ๋ถ€๋ถ„.....

๋‚˜๋Š” ์˜ค๋ฅ˜๋ฉ”์‹œ์ง€๋งŒ ์—ด์‹ฌํžˆ ๋ณด๋ฉด์„œ ์–ด๋–ค ์ค„์ด ํ‹€๋ ธ๋‚˜ ์ฐพ๊ณ ์žˆ์—ˆ๋Š”๋ฐ

ํŠœํ„ฐ์ชฝ์— ๋ฌธ์˜๋ฅผ ๋„ฃ์–ด๋ณด๋‹ˆ...............

function show_bucket() {
    $.ajax({
        type: "GET",
        url: "/bucket",
        data: {},
        success: function (response) {
            let rows = response['buckets']
            for (let i = 0; i < rows.length; i++){
                let num = rows[i]['num']
                let cmt = rows[i]['bucket']
                let done = rows[i]['done']

                let temp_html = ``
                if (done==0){
                    temp_html = `    <li>
                                        <h2>โœ… ${cmt}</h2>
                                        <button onclick="done_bucket(${num})" type="button" class="btn btn-outline-primary">์™„๋ฃŒ</button>
                                    </li>`
                } else {
                    temp_html = `<li>
                                    <h2 class="done">โœ… ${cmt}</h2>
                                </li>`
                }
                $('#bucket-list').append(temp_html)
            }
            alert(response["msg"])
        }
    });
}

let num = row[i]['num'] ์„ ์ž˜๋ชป์“ด๊ฑฐ์˜€๋‹คใ… ใ… ใ… 

์•„๋‹ˆ ์˜ค๋ฅ˜๋ฉ”์‹œ์ง€๋ž‘ ์ „ํ˜€ ์ƒ๊ด€์—†๋Š” ๊ณณ์—์„œ ํ‹€๋ ค๋ฒ„๋ฆฌ๋ฉด ๋‚˜๊ฐ™์€ ์ดˆ๋ณด๋Š” ์–ด๋–ป๊ฒŒ ์ฐพ๋ƒ๊ตฌ์š”...

๋„์›€์„ ๋ฐ›์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด ์ง„๋„ ๋ชป ๋บ„ ๋ป” ํ–ˆ๋‹ค.. ํ•ด๊ฒฐํ•ด์„œ ๋‹คํ–‰์ด๋‹ค....

 

๐ŸŽถ AWS ์„œ๋ฒ„ ์„ค์ •ํ•˜๊ธฐ

1. ๋กœ๊ทธ์ธ ํ•˜๋ฉด ๊ธฐ๋ณธ ํ™”๋ฉด

๋งŒ์•ฝ ์ด๊ฒŒ ๋‚˜์˜ค๋ฉด ๊ฐ€์ƒ ๋จธ์‹  ์‹œ์ž‘ ํด๋ฆญ

์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋ฉด ' ์ธ์Šคํ„ด์Šค ' ๋ˆŒ๋Ÿฌ์ค€๋‹ค

๊ทธ๋Ÿผ ์ด๋Ÿฐ ๋ชจ์–‘์ด ๋‚˜์˜ค๋Š”๋ฐ, ๋‚˜๋Š” ์ญ‰ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ์ผ์ง€๋•Œ๋ฌธ์— ์ข…๋ฃŒ์‹œ์ผฐ์Œ......... 

์—ฌ๊ธฐ์„œ ์˜ค๋ฅธ์ชฝ ์œ„์— ์ฃผํ™ฉ์ƒ‰ '์ธ์Šคํ„ด์Šค ์‹œ์ž‘' ๋ˆŒ๋Ÿฌ์ค€๋‹ค.

์กฐ๊ธˆ ๋‚ด๋ฆฌ๋ฉด ๋‚˜์˜ค๋Š” Ubuntu 20.04 ์„ ํƒ

๊ทธ ๋’ค๋กœ ์‹œ์ž‘์„ ๋‘ ๋ฒˆ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ์•„๋ž˜๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜ค๋Š”๋ฐ

์ƒˆ ํ‚คํŽ˜์–ด ์ƒ์„ฑ์œผ๋กœ ์„ ํƒํ•˜๊ณ  

์ด๋ฆ„ ์ž…๋ ฅํ•˜๊ณ  ํ‚คํŽ˜์–ด ๋‹ค์šด๋กœ๋“œ ํ•˜๋ฉด ๋ญ”๊ฐ€ ํ•˜๋‚˜๊ฐ€ ๋‹ค์šด์ด ๋œ๋‹ค. ์ž˜ ๋†”๋‘์ž. ๊ทธ๋ฆฌ๊ณ  ์ธ์Šคํ„ด์Šค ์‹œ์ž‘.

์ด๋ ‡๊ฒŒ ๋Œ€๊ธฐ ์ค‘ ์œผ๋กœ ๋œจ๋ฉด ์ž˜ ๋œ๊ฑฐ๊ณ , ๋ช‡ ๋ถ„ ์žˆ์œผ๋ฉด 

์ด๋ ‡๊ฒŒ ์‹คํ–‰ ์ค‘ ์œผ๋กœ ๋ฐ”๋€๋‹ค. ๊ธ€์ž ์˜†์— ๋นˆ ์นธ์„ ํด๋ฆญํ•˜๋ฉด

์•„๋ž˜์ชฝ์— ์ •๋ณด๊ฐ€ ๋œฌ๋‹ค. ํผ๋ธ”๋ฆญ IPv4 ์ฃผ์†Œ ์•„๋ž˜ ๋ณต์‚ฌ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ๋†“๋Š”๋‹ค.

 

์‹œ์ž‘์—์„œ Git Bash ์‹คํ–‰. ๋œจ๋Š” ์ฝ˜์†”์ฐฝ์—

ssh -i 

๊นŒ์ง€ ์ž…๋ ฅํ•˜๊ณ  ์ข€ ์ „์— ๋‹ค์šด๋ฐ›์•„์ง„ ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ๋Œ์–ด์™€ ๋†“๋Š”๋‹ค.

๊ทธ๋Ÿผ ์ฃผ์†Œ๊ฐ€ ์ž…๋ ฅ๋˜๊ณ , ํ•œ ์นธ ๋„๊ณ 

ubunto@

์ž…๋ ฅํ•˜๊ณ  ์•„๊นŒ ๋ณต์‚ฌํ–ˆ๋˜๊ฑฐ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์œผ๋กœ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•œ๋‹ค.

๊ธ€๋กœ ์ ์œผ๋‹ˆ ์ข€ ๋ณต์žกํ•ด ๋ณด์ธ๋‹ค. ์ด๋Ÿฐ ๋ชจ์Šต์ด๋‹ค.

์ค‘๊ฐ„์— ๋‹ค์‹œ ํ•˜๊ณ  ๊ทธ๋ž˜์„œ ip ์ฃผ์†Œ๊ฐ€ ์œ„์™€ ๋‹ค๋ฅด๋‹ค

๋งˆ์šฐ์Šค ์šฐํด๋ฆญ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•œ ๊ฒŒ ์•„๊นŒ ๋ณต์‚ฌํ•œ๊ฑฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ์ •๋ง ์—ฐ๊ฒฐํ• ๊ฑฐ๋ƒ๊ณ  ๋œจ๋Š”๋ฐ yes์—”ํ„ฐ

๊ทธ๋Ÿผ ๋์ด๋‹ค.

 

๋Œ€์ถฉ ์š”๋Ÿฐ์‹์œผ๋กœ ๋‚˜์˜ค๋ฉด ์ž˜ ๋œ ๊ฒƒ.

๊ฐ„๋‹จํ•œ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด

ls: ๋‚ด ์œ„์น˜์˜ ๋ชจ๋“  ํŒŒ์ผ์„ ๋ณด์—ฌ์ค€๋‹ค.

pwd: ๋‚ด ์œ„์น˜(ํด๋”์˜ ๊ฒฝ๋กœ)๋ฅผ ์•Œ๋ ค์ค€๋‹ค.

mkdir: ๋‚ด ์œ„์น˜ ์•„๋ž˜์— ํด๋”๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ ๋‹ค.

cd [๊ฐˆ ๊ณณ]: ๋‚˜๋ฅผ [๊ฐˆ ๊ณณ] ํด๋”๋กœ ์ด๋™์‹œํ‚จ๋‹ค.

cd .. : ๋‚˜๋ฅผ ์ƒ์œ„ ํด๋”๋กœ ์ด๋™์‹œํ‚จ๋‹ค.

cp -r [๋ณต์‚ฌํ•  ๊ฒƒ] [๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•  ๊ฒƒ]: ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ

rm -rf [์ง€์šธ ๊ฒƒ]: ์ง€์šฐ๊ธฐ

sudo [์‹คํ–‰ ํ•  ๋ช…๋ น์–ด]: ๋ช…๋ น์–ด๋ฅผ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•œ๋‹ค.
sudo su: ๊ด€๋ฆฌ๊ฐ€ ๊ถŒํ•œ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. (๋‚˜์˜ฌ๋•Œ๋Š” exit์œผ๋กœ ๋‚˜์˜ด)

์—ฌ๊ธฐ๊นŒ์ง€ ํ•˜๋ฉด ์„œ๋ฒ„๋กœ ์“ธ ์ปดํ“จํ„ฐ๋ฅผ ๋”ฑ ๋†“์€๊ฒƒ ๊นŒ์ง€ ์™„๋ฃŒ๋‹ค.

 

๐ŸŽถ ์„œ๋ฒ„ ์„ธํŒ…ํ•˜๊ธฐ

1. ์ด 5๊ฐ€์ง€๋ฅผ ๋ณต๋ถ™ํ•ด์ค˜์„œ ์„ค์น˜ํ•œ๋‹ค.

# python3 -> python
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

# pip3 -> pip
sudo apt-get update
sudo apt-get install -y python3-pip
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

# port forwarding
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

 

2. ์„ค์น˜ํ•ด๋’€๋˜ FileZilla ๋ฅผ ์‹คํ–‰ํ•ด์„œ ํŒŒ์ผ(F) ๋ฐ‘์— ๋ณธ์ฒด 3๋Œ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์€ ์•„์ด์ฝ˜ ํด๋ฆญ

 

3.  New site ๋ฅผ ๋ˆŒ๋Ÿฌ ์ด๋ฆ„์„ ์ •ํ•ด์ฃผ๊ณ , ์˜ค๋ฅธ์ชฝ ์„ธํŒ…์€ ๋˜‘๊ฐ™์ด ํ•ด์•ผํ•œ๋‹ค. ํ˜ธ์ŠคํŠธ๋งŒ ๋‚ด ์ธ์Šคํ„ด์Šค IPv4 ์ž…๋ ฅ.

์•Œ์ˆ˜์—†๋Š” ํ˜ธ์ŠคํŠธํ‚ค ๋œจ๋ฉด ํ™•์ธ.

๊ทธ๋Ÿผ ์•„๋ž˜์ฒ˜๋Ÿผ ์˜ค๋ฅธ์ชฝ์— ์„œ๋ฒ„ํ™”๋ฉด์ด ๋œฌ๋‹ค. sparta ๋Š” ๋‚ด๊ฐ€ ๋งŒ๋“ค์–ด ๋‘” ํด๋”์ด๋‹ค. 

 

4. ์ˆ™์ œ๋กœ ํ–ˆ๋˜ ํŒฌ๋ช…๋ก์„ ์„œ๋ฒ„์— ์˜ฌ๋ฆฐ๋‹ค. app.py templates static ์„ธ ๊ฐ€์ง€๋งŒ ์˜ฌ๋ฆฌ๋ฉด ๋œ๋‹ค. ๋“œ๋ž˜๊ทธ ๋“œ๋ž์œผ๋กœ ๊ฐ€๋Šฅ.

 

Git basg ๊ฐ€์„œ ๋ช…๋ น์–ด๋ฅผ ์ณ๋ณด๋ฉด ์ž˜ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

5. ์‹คํ–‰์„ ์œ„ํ•ด python app.py๋ฅผ ์ž…๋ ฅ

 

ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ flask ๊ฐ€ ์•ˆ๊น”๋ ธ๋‹ค๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ๋œฌ๋‹ค. pip install flask ๋ฅผ ์ž…๋ ฅํ•ด์ค˜์„œ ์„ค์น˜ํ•ด์ค€๋‹ค.

๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ bs4, dnspython, pymongo ๋ฅผ ์„ค์น˜ํ•ด์ฃผ๊ณ  python app.py๋ฅผ ์ž…๋ ฅํ•˜๋ฉด

์ด๋ ‡๊ฒŒ, pycharm ์•„๋ž˜์ชฝ ์ฝ˜์†”์—์„œ ๋ดค๋˜ ๊ฒƒ๊ณผ ๋น„์Šทํ•œ ๋ชจ์Šต์ด ๋ณด์ด๋ฉด์„œ ์‹คํ–‰์ด ์™„๋ฃŒ๋œ๋‹ค.

 

6. ํฌํŠธ ์—ด์–ด์ฃผ๊ธฐ

[๋ณด์•ˆ] ํƒญ์—์„œ ๋ณด์•ˆ ๊ทธ๋ฃน ์•„๋ž˜์— ์žˆ๋Š” launch-wizard ๋ฅผ ํด๋ฆญ. ๋’ค์— ์ˆซ์ž๋ฅผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

์šฐ์ธกํ•˜๋‹จ์— [์ธ๋ฐ”์šด๋“œ ๊ทœ์น™ ํŽธ์ง‘] ์˜์–ด๋กœ [Edit Inbound rules] ๋กœ ๋ผ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

๊ทœ์น™ ์ถ”๊ฐ€๋ฅผ ํ•ด์„œ 5000๋ฒˆ๊ณผ 80์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ๊ทธ ์˜ค๋ฅธ์ชฝ์„ Anywhere-IPv4 ๋กœ ๋ณ€๊ฒฝ ํ›„ ๊ทœ์น™ ์ €์žฅ

โ€ป 80๋ฒˆ์€ ๊ณต์šฉํฌํŠธ๋‹ค. ๋ณดํ†ต ์ธํ„ฐ๋„ท ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋’ค์— 80์ด ์ƒ๋žต๋ผ์žˆ๋Š”๊ฒƒ. ๊ทธ๋ž˜์„œ ์œ„์— ์šฐ๋ถ„ํˆฌ ํŒจํ‚ค์ง€ ์ค‘์—

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

์ด ๋ถ€๋ถ„์ด 80์œผ๋กœ ๋“ค์–ด์˜จ ๊ฑธ 5000์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•ด์ฃผ๋Š” ํŒจํ‚ค์ง€์ด๋‹ค.

 

์ดํ›„ ์ธํ„ฐ๋„ท ์ฃผ์†Œ์ฐฝ์— ํผ๋ธ”๋ฆญ IPv4 ์ฃผ์†Œ:5000 ์„ ์ž…๋ ฅํ•˜๋ฉด ์ ‘์†์ด ์ •์ƒ์ ์œผ๋กœ ๋œ๋‹ค. 5000์„ ์•ˆ๋ถ™์—ฌ๋„ ๋œ๋‹ค.

 

๐ŸŽถ Git ์„ ๊บผ๋„ ์„œ๋ฒ„ ๋Œ์•„๊ฐ€๊ฒŒ ํ•˜๊ธฐ - nohup ์„ค์ •ํ•˜๊ธฐ

Git ์—์„œ Ctrl + c ๋ฅผ ๋ˆŒ๋Ÿฌ ์„œ๋ฒ„์œ„์น˜์—์„œ ๋น ์ ธ ๋‚˜์˜จ ๋’ค

nohup python app.py &

๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด

 

์ด๋ ‡๊ฒŒ ๋œจ๋ฉด์„œ, Git ์„ ๊บผ๋„ ์›นํŽ˜์ด์ง€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

๋งŒ์•ฝ ์ฝ”๋”ฉ ์ˆ˜์ • ๋“ฑ์˜ ์ด์œ ๋กœ ์„œ๋ฒ„๋ฅผ ์ข…๋ฃŒํ•˜๊ณ ์‹ถ๋‹ค๋ฉด

ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill

 

์–ด์šฐ ์‚ฌ์ง„๋“ค๋•œ์— ์—„์ฒญ ๊ธธ์–ด์กŒ๋”ฐ. ์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€..............