본문 바로가기
항해99

[TIL] 항해 1일차

by yeaseul912 2022. 7. 11.
728x90

미니 프로젝트 설계를 마치고 개발에 본격적으로 돌입한다.

오늘의 목표는 데이터베이스 완료하고 임시데이터 넣어주기임

 

- 목차 -
1. git repo 다운로드 받기
2. 브랜치 만들기
3. 브랜치 전환하기
4. IDE에서 프로젝트 열어주고 Interpreter 추가하기
5. branch 에 올리기
6. DB  Setting - MongoDB에서 json 을 이용한 대용량 데이터 넣어주기
7. sourcetree 사용하기

 

1. git repo 다운로드 받기
$ git clone < git address >

 

2. 브랜치 만들기

현재는 main branch

결제 서비스를 맡게 되어 yeaseul_payService 라고 이름을 지었다.

$ git branch yeaseul_payService                               git:main

 

3. 브랜치 전환하기
$ git git checkout yeaseul_payService                         git:main
Switched to branch 'yeaseul_payService'
Tip.
브랜치 만들고 바로 전환하기
$ git branch -b yeaseul_payService                               git:main
4. IDE에서 프로젝트 열어주고 Interpreter 추가하기

clone 후 실행했을때 console 창에 모듈 설치해달라는거 추가해주면 된다.

 

상단에서 Preferences -> Project -> Python InterPreter 선택 후 "+" 클릭

flask, pymongo, certifi, dnspython 설치

5. branch 에 올리기

잘 돌아가면 내 branch에 push를 해주자

$ git add .
$ git commit -m "create branch"
$ git push origin yeaseul_payService

 

6. DB  Setting

임시 데이터를 넣어주어야 해서 DB와 Collection을 생성하고 데이터를 넣어주려고한다.

이때, 대량으로 넣기위해 json 을 활용하였고 app.py와는 별개의 파일을 만들어 주어서 필요할 때만 실행하도록 하였다.

 

places.json

[
  { "id": 1, "storeName": "논현역사거리", "storeAddress": "서울특별시 강남구 강남대로 538 (논현동)", "contact": "1522-3232"},
  { "id": 2, "storeName": "압구정로", "storeAddress": "서울특별시 강남구 압구정로42길 32 (신사동)", "contact": "1522-3232"},
  { "id": 3, "storeName": "선정릉역", "storeAddress": "서울특별시 강남구 봉은사로 407 (삼성동) 에프오빌딩", "contact": "1522-3232"},
  { "id": 4, "storeName": "수유역", "storeAddress": "서울특별시 강북구 도봉로 342 (번동)", "contact": "1522-3232"},
  { "id": 5, "storeName": "마곡역", "storeAddress": "서울특별시 강서구 공항대로 168 (마곡동)", "contact": "1522-3232"},
  { "id": 6, "storeName": "낙성대역", "storeAddress": "서울특별시 관악구 남부순환로 1908 (봉천동)", "contact": "1522-3232"},
  { "id": 7, "storeName": "신림사거리", "storeAddress": "서울특별시 관악구 남부순환로 1619 (신림동)", "contact": "1522-3232"},
  { "id": 8, "storeName": "건국대", "storeAddress": "서울특별시 광진구 능동로 117 (화양동)", "contact": "1522-3232"},
  { "id": 9, "storeName": "쌍문역", "storeAddress": "서울특별시 도봉구 도봉로 480 (창동)", "contact": "1522-3232"},
  { "id": 10, "storeName": "노량진동", "storeAddress": "서울특별시 동작구 노량진로 190 (노량진동, 고려교육타워-어바니엘한강) 101호~105호", "contact": "1522-3232"}
]

db_insert.py

import json
from pymongo import MongoClient
client = MongoClient('')
db = client.spabucks

# places collection 가져오기
collection_places = db.places 

# collection 비우기
collection_places.delete_many({}) 

# json 파일 가져오기
with open('places.json') as places:
    places_data = json.load(places)

# places collection 에 json 데이터 넣기
collection_places.insert_many(places_data)

# db 닫아주기
client.close()

이후 db_insert.py 파일을 command에서 별도로 실행시켜준다

python db_insert.py

데이터가 잘 들어갔다.

 

하.. 근데 메뉴에 사이즈 같은 부가 정보를 외래키로 사용하려고 했는데 mongoDB에서 외래키를 어떻게 사용하는 건지 모르겠다.

그래서 원래 products, size(톨, 그란데, 벤티), temp(아이스,핫), menu(음료, 푸드) 로 나누었던 collection 을

beverages, foods  로 나누고 size와 temp 를 그냥 배열 형태로 넣어주었다. 

 

변경 전(초기 설계)
변경 후

7. sourcetree 사용하기

약간 감으로 add, push하고 pull request하고 merge 하라고해서 했다.

일단 충돌은 없으니 성공! 근데 순서가 어떻게 되는지 다시 공부는 해야할것같다.

이걸로 끗!

 

8. 마치며

아.. 설계하고 면담하고 일정확인하느라 정신이 없었다. 시간이 정말정말 빨리 지나갔다.

그래도 팀원분들이 잘 이끌어주시고 열심히 해주셔서 각자 맡은바 소임을 다 했다.

처음에 사실 flask랑 mongoDB 안쓸거같은데~~ 이거 꼭 열심히 해야하나~~ 했지만

미니프로젝트를 완수해야 한다는 책임감에 또 열심히 하고있다.

약해빠진 소리 하지말고 하라면 하자.. 잘할수 있잖아..!

오늘 하려고 했던 분량을 마칠수 있어서 뿌듯하다.

내일도 화이팅 하자~

 

reference

https://stackoverflow.com/questions/49510049/how-to-import-json-file-to-mongodb-using-python

 

How to import JSON file to MongoDB using Python

I have this JSON file, currencies.json: { "AUD": 1.5978, "BGN": 1.9558, "BRL": 4.0726, "CAD": 1.5868, "CHF": 1.1703, "CNY": 7.7975, "CZK": 25.405, "DKK": 7.4478, ...

stackoverflow.com

https://blog.naver.com/PostView.naver?blogId=ljk041180&logNo=221589750306&parentCategoryNo=&categoryNo=13&viewDate=&isShowPopularPosts=true&from=search 

 

[플라스크(Flask)] Flask + MongoDB 연동해보기_1

파이썬의 프레임워크 중 하나인 Flask와 Nosql 중에서 가장 유명한 MongoDB를 연동해보려고 합니다. ...

blog.naver.com

https://ljs93kr.tistory.com/60

 

[MySQL-Flask SqlAlchemy] Python 으로 ORM 완벽사용 (2)

안녕하세요, 건프입니다.  앞에서 ORM 의 개념과, 클래스 지정 방법에 대해서 알아봤습니다.  이번에는 ORM 방법으로 Flask-Sqlalchemy 에서는 어떤식으로 DB 에서 Query 하는지를 알아보고, 실전에서 자

ljs93kr.tistory.com

 

반응형

'항해99' 카테고리의 다른 글

[WIL] 항해 7일차  (0) 2022.07.19
[TIL] 항해5일차  (0) 2022.07.16
[TIL] 항해 4일차  (0) 2022.07.14
[TIL] 항해 2일차  (0) 2022.07.13
[미니PJ] S.A(Starting Assignment)  (0) 2022.07.11

댓글