๋ฐฐํฌ ์ค๋น๋ฅผ ํ๋ก์ ํธ ๋ง๋ฐ์ง์ ์ค๋นํ๋ฉด ๊ทธ๋ ๋ง์ด ๋๋ฌผ์ ํ๋ฆด ๊ฒ ๊ฐ์์ ๋ฏธ๋ฆฌ ์ค๋น๋ฅผ ์์ํ๋ค.
๋๋ฌผ์ ๋จผ์ ํ๋ ธ๋ค...
๊ฐ์ฅ ๋จผ์ ํ๋ก์ ํธ์ ์ ์ ๋ฆฌ์์ค๋ฅผ S3
์ ์ฌ๋ฆฌ๊ณ ์น ํธ์คํ
์ค์ ์ ํ๊ณ CloudFront
๋ฅผ ํตํด ์ ๊ทผํ๋ ๊ฒ์ Github Action
์คํฌ๋ฆฝํธ์ ํตํด ์๋ํํ๋ค.
.github/workflows/front.yml
์ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ค.
[ main ๋ธ๋์น์ push ๋ ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํ ]
on:
push:
branches:
- main
์ด์ jobs
์๋์ ๋ฐฐํฌ๋ฅผ ์ํ ์ผ๋ จ์ step
์ ์ค์ ํ๋ค.
jobs:
build:
runs-on: ubuntu-latest
env:
# IAM key ์ธํ
[ repo - settings - secrets - new repository secret ]
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'ap-northeast-2'
steps:
# ๋ฐฐํฌ๋ฅผ ์ํ job์ด ์ํ๋ ๊ฐ์๋จธ์ ์ ๋ํ ์ค์
- name: Checkout source code.
uses: actions/checkout@master
# flask์ templates์ static ํด๋๋ฅผ S3์ ์
๋ก๋ ํ๋ค.
- name: upload html css js file to S3
run: |
aws s3 sync ./templates s3://todaylaw-s3/templates --acl public-read
aws s3 sync ./static s3://todaylaw-s3/static --acl public-read
# ๊ธฐ์กด์ CloudFront์ ์บ์ฑ๋ ์ ์ ๋ฆฌ์์ค๋ค์ ์ญ์ ํ๋ ๊ธฐ๋ฅ์ ์ํํ๋ค.
# ์๋กญ๊ฒ S3์ ์
๋ก๋๋ ๋ฆฌ์์ค๋ฅผ ์บ์ฑํ๊ธฐ ์ํจ์ด๋ค.
- name: Invalidate cache CloudFront
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: |
aws cloudfront create-invalidation --distribution-id ${{ secrets.DISTRIBUTION_ID }} --paths "/*"
ํด ...
์ด์ ์ ์ด์ด์ ๊ธฐ์กด ๊ธฐ๋ฅ์ ์ธ์ฆ์ ์ถ๊ฐํ๊ณ ์กฐ๊ธ ๋ณด์ํ๋ ์ด์์ด๋ค.
๊ธฐ์กด์๋ ๋์ผํ ์ฌ์ฉ์๊ฐ ๊ณ์ํด์ ์ข์์๋ฅผ ๋๋ฅผ ์ ์๋ ์ํ์๋๋ฐ ํ ๋ฒ ๋๋ฅด๋ฉด ์ข์์
๋๋ฒ์งธ ๋๋ฅด๋ฉด ์ข์์๊ฐ ์ทจ์
๋๋๋ก ์ฒ๋ฆฌํ๋ค.
if id_receive in like_laws: # ์ข์์๊ฐ ์ด๋ฏธ ๋๋ฆฐ ๋ฒ์์ธ ๊ฒฝ์ฐ
# ์ฌ์ฉ์์ ์ข์์ ๋ชฉ๋ก์์ ์ ๊ฑฐ
db.users.update(
{'user_id':user['user_id']},
{'$pull':{'like_laws':id_receive}}
)
# ์ข์์๋ฅผ ๊ฐ์์ํค๋ ๋ถ๋ถ
likes = db.ranking.find_one({'id': id_receive})
current_like = likes['like']
new_like = current_like - 1
current_hate = likes['hate']
db.ranking.update_one({'id': id_receive}, {'$set': {'like': new_like}})
else: # ์ข์์๊ฐ ์ฒ์ ๋๋ฆฐ ๋ฒ์์ธ ๊ฒฝ์ฐ
# ์ฌ์ฉ์์ ์ข์์ ๋ชฉ๋ก์ ์ถ๊ฐ
db.users.update(
{'user_id': user['user_id']},
{'$push': {'like_laws': id_receive}}
)
# ์ข์์๋ฅผ ์ฆ๊ฐ์ํค๋ ๋ถ๋ถ
likes = db.ranking.find_one({'id': id_receive})
current_like = likes['like']
new_like = current_like + 1
current_hate = likes['hate']
db.ranking.update_one({'id': id_receive}, {'$set': {'like': new_like}})
return jsonify({'id': id_receive, 'like': new_like, 'hate': current_hate})
์ซ์ด์
๋ํ ์์ ํ ๋๊ฐ์ ๋ก์ง์ ์ฌ์ฉํด์ ๊ตฌํํ๋ค.
์ด์ mongoDB
๋๋ฌธ์ ์กฐ๊ธ ๊ณ ์์ ํ๋ ์ค๋์ ๋๋ฆ ์ฆ๊ฑฐ์ด ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค ๐ ใ
๐
๋ฐ์ ํ๋ค!!!!!!!