내일배움캠프 TIL (2021-09-15)

김우진·2021년 9월 15일
0

내일배움캠프 TIL

목록 보기
3/21

회의 내용

  1. 금일까지 모든 인원 5주차까지 완료 될 것으로 예상
  2. 09/16(목) PM 06:00 부터 각 주차 과제 Code Review 및 질문 타임
  3. 플렛폼 이용 방법
    • 개인공부 및 회의록 작성 etc... - Notion 이용
    • 개인 질문(글로 작성 가능) - Slack 이용
    • 개인 질문(음성 필요) - Discord 이용

중요한 내용 및 추가로 알게된 사실

PyMongo 사용법

  1. 가상환경(Virtual Environment) 의 pip로 패키지 설치하는 방법으로 pymongo를 설치한다.
  2. 아래와 같은 코드로 사용할 db를 설정한다.
# 사용할 db 설정(없으면 만들어짐)
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

Insert Code

# 넣을 데이터 생성
doc = {'name':'bobby','age':21}
# db 컬렉션(테이블)에 데이터 넣기
db.users.insert_one(doc)

Find Code

주로 여러개의 값을 가져올 경우 list 형태로 가져온다.
그렇지 않으면 Object의 주소값을 가져온다.

# list(찾을 db의 컬렉션({조건},{안가져올 column:False}))
same_ages = list(db.users.find({'age':21},{'_id':False}))
print(same_ages)

----------result----------
[{'name': 'bobby', 'age': 21}, {'name': 'jane', 'age': 21}]

하나만 가져올 경우 find_one() 을 사용한다.
결과 값이 여러개인 경우에도 맨 위 결과 값 하나만을 가져온다.

user = db.users.find_one({'name':'bobby'})
print(user)

----------result----------
{'_id': ObjectId('6140050a810244d4ee68b0dd'), 'name': 'bobby', 'age': 21}

Update Code

# update_one({찾을 조건},{'$set':{변경할 column:변경값}})
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

여러 개를 동시에 업데이트시키려면 update_many() 를 사용하면 되지만, 실무에선 거의 사용하지 않는다.

Delete Code

# delete_one({찾을 조건})
db.users.delete_one({'name':'bobby'})

여러 개를 동시에 삭제시키려면 delete_many() 를 사용하면 되지만, 실무에선 거의 사용하지 않는다.

Nohup에 관해서

nohup이란?

  • 리눅스, 유닉스에서 쉘 스크립트파일 (*.sh)을 데몬형태로 실행시키는 프로그램
  • 터미널 세션이 끊겨도 실행을 멈추지 않고 동작하도록 함

데몬이란?

멀티태스킹 운영 체제에서 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램.

일반적으로 데몬이라는 표시를 위해 뒤에는 d가 붙는다.

이러한 속성 때문에 강의에서 git bash 프로그램을 꺼도(ubuntu 서버와 내 local의 연결이 끊어져도) 내 홈페이지가 여전히 실행 될 수 있는 것 같다.

&이란?

추가적으로 조사하다가 nohup python app.ap & 명령어에서 & 는 nohup의 한 부분이 아니라 독립적인 명령어 라는 것을 알게되었다.
&는 프로세스를 실행할 때 백그라운드에서 동작하도록 만드는 명령어이다.
요즘은 & 명령어 만으로도 nohup과 같은 동작을 보이는 경우도 많다고 한다.

nohup 사용 시 주의사항

nohup으로 실행할 쉘 스크립트 파일의 현재 퍼미션이 755 이상의 상태여야 한다.
(이러한 이유 때문에 강의에서도 실행하기 전 chmod 755 [app.py](http://app.py)를 해준 것 같다.)

종료방법

  1. ps -ef | grep 파일명(app.py) 로 백그라운드로 실행중인 프로그램을 찾는다.
  2. kill -9 PID번호 로 해당 프로세스를 종료한다.

0개의 댓글