๐จ ์ผ๋งค์ฃผ์ Kakao Developers ์นด์นด์ค API๋ฅผ ํ์ฉํ์ฌ ๋ค์ํ ์ดํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํด๋ณด์ธ์. ์นด์นด์ค ๋ก๊ทธ์ธ, ๋ฉ์์ง ๋ณด๋ด๊ธฐ, ์น๊ตฌ API, ์ธ๊ณต์ง๋ฅ API ๋ฑ์ ์ ๊ณตํฉ๋๋ค. developers.kakao.com ์ธ์ข
๋์๋ ๋ง์ธ. ํ๊ธ๋ก ๋ ๋ฌธ์๊ฐ ์์ผ ๋ฐ๊ฐ๋ค. ๋ฌธ์์์ ์นด์นด์ค ๋ก๊ทธ์ธ์ด ์งํ๋๋ ๊ณผ์ ์ ์ด๋ ๊ฒ ํํํ๊ณ ์๋ค. ํ๋ก ํธ์์ ์นด์นด์ค ์๋ฒ๋ก ๋ก๊ทธ์ธ์ ์์ฒญํ๋ฉด ์ธ๊ฐ ์ฝ๋๊ฐ ๋ฐ๊ธ๋๋ค. ๊ทธ ์ธ๊ฐ ์ฝ๋๋ก ์นด์นด์ค ์๋ฒ์ ๋ค์ ์์ฒญํด์ ํ ํฐ์ ๋ฐ์์ ์ฌ์ฉํ๋ค. ๋จผ์ Kakao Developers ์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ฑํ๋ค. ์นด์นด์ค ๋ก๊ทธ์ธ ๋์ ํญ๋ชฉ, ๋๋ฉ์ธ, ๋ฆฌ๋ค์ด๋ ํธ URI ๋ฑ์ ์ค์ ํ๊ณ ์ฑ ํค๋ฅผ ํ์ธํ๋ค. 1ํธ ๋
ธ๋ ์๋ฒ์์๋ REST API๋ฅผ, ๋ฆฌ์กํธ ํ๋ก ํธ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ SDK๋ฅผ ์ฌ์ฉ..
๐ง๐ป ์งง์ํธํก/~ 2021
๊ตฐ๋๋ฅผ ๋ง ์ ์ญํ๊ณ ๋์ ์ด๊ฒ์ ๊ฒ ์ด์ฌํ ํด๋ณด์์ด์[211011] 10์์ ์ฒ์์ผ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ค์ด๋ณด๋ฉด์ ๊ฐ๋ตํ๊ฒ ์ ์๋ ๊ธฐ๋ก๋ค์ด๋ค. ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ๋ฅผ ๊ฐ์คํ๋ฉด์ ๊ทธ๋๋ก ์ฎ๊ธด ๊ธ. ์ด๋๋ ์ด์ฌํ ์ข ์ธ๊ฑธ ๊ทธ๋ฌ๋ค. ์ด๋ฏธ์ง ์
๋ก๋ SNS ํผ๋์ฒ๋ผ ์
๋ก๋ํ ์ด๋ฏธ์ง๋ค์ ๋ณผ ์ ์๋๋ก ํ๋ค. ์ด๋ฏธ์ง๋ฅผ ์๋ฒ์ชฝ์ ์ ์ฅํ๋ ค๊ณ ํ์ง๋ง ์ด๋๋ค ์ ์ฅํ ์ง๊ฐ ๊ณ ๋ฏผ. ๊ฐ์ธ์ ์ธ ๊ณต๋ถ๋ฅผ ์ํด ํ๋ ํ๋ก์ ํธ๋ผ, ์๋ง์กดs3 ๊ฐ์ ์คํ ๋ฆฌ์ง ์๋น์ค๋ฅผ ์ฐ๊ธฐ์ ๊ตณ์ด ๋ผ๋ ๋๋์ด ๋ค์๋ค. ์๋ฒ์ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์ ํ์ผ์ ์ ์ฅํ๊ธฐ๋ก ํ๋ค. @app.route('/api/upload', methods=['POST']) def post_topster(): now = datetime.now() now2 = now.strftime("%D_%H%M_%S") date = now2.replace('/', '-..
[211011] 10์์ ์ฒ์์ผ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ค์ด๋ณด๋ฉด์ ๊ฐ๋ตํ๊ฒ ์ ์๋ ๊ธฐ๋ก๋ค์ด๋ค. ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ๋ฅผ ๊ฐ์คํ๋ฉด์ ๊ทธ๋๋ก ์ฎ๊ธด ๊ธ. ์ด๋๋ ์ด์ฌํ ์ข ์ธ๊ฑธ ๊ทธ๋ฌ๋ค. ์ฝ๋๋ฅผ ๋์์ธํ ๋ฐฉ๋ฒ์ด ์ ์์ ์ธ ๋ฐฉ๋ฒ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ด์ฐ ๋๋ ๋์๊ฐ๊ธฐ๋ ํ๋ค. ๋ง๋ค์ด์ง ํ์คํฐ๋ฅผ ์ด๋ฏธ์ง๋ก ๋ณํํด์ ํ์ผ๋ก ๋ค์ด๋ฐ์ ์ ์๊ณ , ์๋ฒ์ ์
๋ก๋ํด์ ๋ณผ ์ ์๋ค. sns ํผ๋์ฒ๋ผ ๋ง๋ค๊ณ ์ถ์ด์ ํ์๊ฐ์
๊ณผ ๋ก๊ทธ์ธ๋ ๊ฐ๋จํ ๊ตฌํํ๋ค. ํ์๊ฐ์
์
๋ ฅํ ์ ๋ณด๋ฅผ ๊ทธ๋ฅ json ํ์์ผ๋ก ๋ณด๋๋ค. ์ด๋ฏธ ์๋ id๋ฉด ๊ทธ๋ฅ ๋ฆฌํดํ๊ณ ์ id์ธ ๊ฒฝ์ฐ์ ํ์๊ฐ์
์ ์งํํ๋ค. bcrypt ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ ์ํธํ๋ฅผ ํด์ db์ ์ ์ฅํ๋ค. ์๊พธ ์ค๋ฅ๊ฐ ๋๋๋ฐ ๋ฐ์ด๋๋ฆฌ ํ์์ผ๋ก ๋์ค๋ํด์ str์ผ๋ก ๋์ฝ๋ฉํด์ ๋ณด๋ด๋๊น ์ค๋ฅ๋ ์๋๋ค. @app.rout..
[211011] 10์์ ์ฒ์์ผ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ค์ด๋ณด๋ฉด์ ๊ฐ๋ตํ๊ฒ ์ ์๋ ๊ธฐ๋ก๋ค์ด๋ค. ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ๋ฅผ ๊ฐ์คํ๋ฉด์ ๊ทธ๋๋ก ์ฎ๊ธด ๊ธ. ์ด๋๋ ์ด์ฌํ ์ข ์ธ๊ฑธ ๊ทธ๋ฌ๋ค. ๋ฐฐ๊ฒฝ ์์ / ํ๊ณผ ์ด์ ์ / ์จ๋ฒ ๊ฐ ๊ฐ๊ฒฉ๊ณผ ํ
๋๋ฆฌ์ ๋๊ป ๋ฅผ ์ ํ ์ ์๋ค. context api๋ฅผ ์ด์ฉํด ์ํ๋ฅผ ๊ด๋ฆฌํ๊ณ ์๋ค. ์์
API ์จ๋ฒ์ํธ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ๋ last.fm์ api๋ฅผ ์ฌ์ฉํ๋ค. ์ ํ๋ธ์์ ํฌ๋กค๋งํด์์ ๋ง๋ ๋ฐ์ดํฐ๋ค์ด๋ผ๊ณ ํ๋ค. ๊ฒ์ํ ๊ฒฐ๊ณผ๋ค์ด ๋ ์ค๋ก ๊ฐ๋ก๋ก ๋ณด์ฌ์ง๋ค. ๋๋๊ทธ์ค ๋๋์ผ๋ก ํ์คํฐ์ ์ฎ๊ฒจ ๋ฐฐ์นํ ์ ์๋ค. last.fm api์์ ๋ถ๋ฌ์จ ์จ๋ฒ์ํธ ์ด๋ฏธ์ง๋ค์ด ์ค์ ์ ๋ค๋ฅด๊ฑฐ๋ ์๋ ๊ฒ๋ค์ด ๊ฝค ์์๋ค. ํ์ฌ๋ Spotify api๋ก ๋ฐ๊พธ์๋ค. Spotipy ๋ผ๋ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ ๋ฐฑ์๋์์..
์ฐธ๊ณ 1 ์ฐธ๊ณ 2 RDS๋ EC2์ ํจ๊ป ์ฌ์ฉํ๋ฉฐ ์๋ง์กด์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ํธํ๊ฒ ์ด์ฉํ ์ ์๊ฒ ํด์ฃผ๋ DB์ ์ฉ ์๋ฒ์ด๋ค. 1. RDS ์์ฑ 1) RDS ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ MySQL, ํ๋ฆฌ ํฐ์ด๋ฅผ ์ ํํ๋ค. 2) ๋ง์คํฐ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ VPC ๋ณด์ ๊ทธ๋ฃน, ์ด๊ธฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ ๋ฑ์ ์ง์ ํด์ค๋ค. 3) ํผ๋ธ๋ฆญ ์ก์ธ์ค๋ฅผ '์'๋ก ์ค์ ํ๋ค. ์ค์ ์ ๋ชจ๋ ์๋ฃํ๊ณ '์์ฑ ์ค' ์ํ๋ก ๋ช๋ถ ๊ธฐ๋ค๋ฆฌ๋ฉด RDS ์์ฑ์ด ์๋ฃ๋๋ค. 2. EC2์์ RDS ์ ๊ทผ 1) ์ธ๋ฐ์ด๋ ๊ท์น์ ์์ ํ๋ค. ์ฌ์ฉํ๋ EC2 ๋ณด์๊ทธ๋ฃน์ ๊ทธ๋ฃนID๋ฅผ ๋ณต์ฌํด์ ๋ฃ๋๋ค. ์ฒ์์ ํ์ฌ ์ ์ํ IP๋ง ์ด๋ ค์๋ค. 2) EC2์์ ๋ค์์ ๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ RDS ์ธ์คํด์ค์ ์ ๊ทผํ๋ค. sudo mysql -u [์ฌ์ฉ์ ์ด๋ฆ] -p -h [RDS์ธ์คํด์ค..
์ฐธ๊ณ 1 ์ฐธ๊ณ 2 'dev.9yujin.shop' ๊ทธ๋ฆฌ๊ณ 'prod.9yujin.shop' ์ด๋ ๊ฒ ๋ ๊ฐ์ ์๋ธ ๋๋ฉ์ธ์ ๋ง๋ค์ด๋ณด์. 1. ๊ฐ๋น์ DNS ๋ ์ฝ๋ ์์ ๊ฐ๋น์์์ ๋จผ์ CNAME์ผ๋ก ์๋ฒ ๋๋ฉ์ธ์ ๋ฑ๋กํด์ค๋ค. dev์ prod ๋๊ฐ๋ฅผ ์์ฑํ๋ค. 2. ์๋ธ๋๋ฉ์ธ ํ์ด์ง ์ ์ ํ์ผ ์์ฑ 1) ์๋ธ๋๋ฉ์ธ์ผ๋ก ์์ฒญ์ด ๋ค์ด์ค๋ฉด ๋ณด์ฌ์ค ํ์ผ๋ค์ ๋ฃ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ ๋ค. ๊ธฐ์กด /var/www/html ์ ์ถ๊ฐ๋ก /var/www/dev ๊ณผ /var/www/prod ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค์๋ค. 2) /var/www/dev์ html ํ์ผ์ ์์๋ก ์์ฑํด์ค๋ค. hello dev-subdomain 3. Nginx ์ค์ 1 1) /etc/nginx/sites-available ๋๋ ํ ๋ฆฌ์ ์๋ธ๋๋ฉ์ธ์ ์ํ ์ค์ ํ์ผ์ ๋ง..
์ฐธ๊ณ 1 1. ๋๋ฉ์ธ ์ฐ๊ฒฐ ์ด์ ์ ๊ฐ๋น์์์ ๊ตฌ๋งค๋ฅผ ํด๋๊ณ ์์ฐ๋ ๋๋ฉ์ธ์ด ์์ด์, ๊ทธ ๋๋ฉ์ธ์ ๋ด IP๋ฅผ ์ฐ๊ฒฐํ๋ค. 10๋ถ ์ ๋ ๊ธฐ๋ค๋ฆฌ๋ฉด ๋ด ๋๋ฉ์ธ๊ณผ IP๊ฐ ๋งค์นญ์ด ๋๋ค. 2. Certbot ์ค์น (Let's Encrypt) Let's Encrypt๋ SSL ์ธ์ฆ์๋ฅผ ๋ฌด๋ฃ๋ก ๋ฐ๊ธํด HTTPS๋ฅผ ๋๋ฆฌ ๋ณด๊ธํ๊ธฐ ์ํด ์์๋ ๋น์๋ฆฌ๊ธฐ๊ด์ด๋ค. ์ง์ PEM key๋ค์ ๋ฐ๊ธ๋ฐ์์ ์ค์ ํด์ฃผ์ด๋ ๋์ง๋ง ๋ง์ด ๋ฒ๊ฑฐ๋กญ๊ธฐ ๋๋ฌธ์, ์น์๋ฒ์ ์ฝ๊ฒ ์ธํ
ํ ์ ์๋๋ก ๋์์ฃผ๋ ๋๊ตฌ๋ค์ด ์๋ค. wget์ผ๋ก Certbot-auto๋ฅผ ๋ค์ด๋ฐ์ ์ค์นํ๋ ๋ธ๋ก๊ทธ๋ค์ ๋ณด๊ณ ๋ฐ๋ผํ๋๋ฐ ํด๋น ํ์ผ์ด ์กด์ฌํ์ง ์๋๋ค. ๋์ snap์ผ๋ก Certbot์ ์ค์นํ ์ ์๋ค. apt์ ๋น์ทํ(?) ํจํค์ง ๊ด๋ฆฌ ์์คํ
์ด๋ค. snap์ ์คํํ๊ธฐ ์ํด sn..
์ฐธ๊ณ 1 ์ฐธ๊ณ 2 1. Nginx ์ค์น sudo apt install nginx sudo service nginx start ๋ก nginx๋ฅผ ์คํํ๋ค. sudo service nginx status ๋ก ์คํ์ด ์ ๋๊ณ ์๋์ง ํ์ธํ ์ ์๋ค. 2. Nginx ์ค์ nginx์ ์ค์ ๋ค์ ๋ชจ๋ nginx.conf ์ ์๋ค. nginx.conf ์ http ๋ธ๋ก์ include ๋์ด ์๋ ํ์ผ๋ค์ด๋ค. include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; /conf.d : conf ์ ์ฅ ํด๋. ์์ฃผ ์ฌ์ฉ๋๋ ์ค์ ์ conf.d ํด๋ ํ์์ ์ค์ ์ผ๋ก ๋นผ์ include ํด์ค๋ ๋ฐฉ์์ผ๋ก ์ค๋ณต์ ์ ๊ฑฐํ ์ ์๋ค. /sites-enabled : ํ์ฑํ..