목차
가위 바위 보 게임을 웹으로 구현하는 과제를 하는 중인데 정말 맨땅에 헤딩하듯(?) 무작정 찾아보면서 하고 있다.. 강의 학습 후 하는 것이지만 실제로 만들려니 모르는 게 거의 90프로..ㅎㅎ 아래는 새롭게 알게 된 내용들 중 나중에 다시 보고 싶은 것들!
git repository에서 개인 git 저장소(로컬 컴퓨터)로 변경내용 가져오기
전체 복사본을 가져올 때: git clone 주소 => Git repository로 초기화. repository의 모든 파일 및 commit이 받아짐.
로컬 repository가 이미 있는 경우: git fetch REMOTE-NAME => 모든 새 정보를 가져옴.
변경 내용을 로컬분기에 병합: git merge REMOTE-NAME/BRANCH-NAME
원격 repository에서 변경 내용 가져오기: git pull REMOTE-NAME BRANCH-NAME => fetch + merge 라고 이해. 반드시 로컬 작업 커밋 후 !!!
git 명령 취소하고 되돌리기
git pull 취소: git reset --hard ORIG-HEAD
git merge 취소: git reset --merge ORIG-HEAD
git commit 취소: git reset --hard HEAD
git add 취소: git reset HEAD
os.path
우선 당연히 import os 해주고 시작. path 관련 method로 경로를 선언하는 이유는 운영체제에 따라 경로를 표시하는 syntax가 다르기 때문. 호환성을 높이기 위해 필요 !!
os.path.abspath(path)
: 절대경로를 반환한다. path에 __file__(python 예약어. 실행되는 스크립트 파일명 나타냄)을 써줄 수 있다.
os.path.dirname(path)
: path의 상위 디렉토리 반환
os.path.join(path, path)
: 경로 합치기 ex. ↴
os.path.join('/Users/dy/Desktop', 'join/test')
>>> 'path.py'
os.getcwd()
: 현재 실행경로 반환.
과제 코드 내용
- 데이터베이스 설정 및 모델 정의:
SQLALCHEMY_DATABASE_URI => 사용할 SQLite 데이터베이스 파일의 경로를 설정.
RPSGame 클래스는 게임 기록을 저장하는 데이터베이스 테이블을 정의. => 게임 ID, 사용자, 컴퓨터, 결과(승리, 패배, 무승부), 승/패/무 횟수, 게임 날짜 등을 포함함.
- Flask 라우팅:
@app.route("/") 데코레이터 - 사용자가 가위바위보를 선택하는 페이지를 나타냄.
home() - 최근 게임 기록을 데이터베이스에서 불러와 화면에 표시.
- 데이터 처리:
get_data() - 사용자가 선택한 가위바위보와 컴퓨터의 선택을 비교하여 승패 결정.
결과를 데이터베이스에 저장하고, 승/패/무 횟수를 업데이트.