기타/프로젝트
팀 프로젝트 Web으로 동작 되는 RPS(가위 바위 보) 게임 1일 차
서영환
2024. 7. 4. 16:50
- 요구사항
- “가위 바위 보 게임” 을 웹 브라우저에서 즐길 수 있게
- Flask 와 HTML 을 이용
- 추가 요구사항
- sqlite 로 가위바위보 게임 전적을 저장
- HTML 에 승/무/패 통계와 게임 기록을 표시
- 기간
- 07.04~07.10 까지
- 진행 사항
- 총 프로젝트가 2가지 주어졌으나 1가지는 하루만에 끝낸 상황이라 기간이 널널 하기에 이틀간 개별로 작업 수행
- 단순히 사용자가 가위, 바위, 보를 선택 하여 승부를 보게 될 경우 서버가 임의로 선택한 가위, 바위, 보를 통하여 사용자에게 결과를 가르쳐 준다
- 이때 따로 기록 하는게 아니고 단순히 게임 페이지 아래쪽에 해당 결과는 쌓아 놓았다.
최초 화면 | 사용자가 가위, 바위, 보 선택 후 게임을 할지 결정하는 화면 |
![]() |
![]() |
게임을 진행 했을 때 결과는 전적에 표시하는 화면 | 게임을 총 13회 진행 한 화면 |
![]() |
![]() |
- 진행 중인 사항
- 사용자의 전적을 기록에 남기기 위해서는 사용자를 구별 할 필요 가 있을 것 같아 로그인과 회원가입이 필요
- 로그인 페이지 와 회원가입 페이지 작성
- 데이터 베이스에 회원관련 테이블 생성
로그인 페이지 | 회원 가입 페이지 |
![]() |
![]() |
회원 가입 완료시 해당 유저 생성 부분 | |
![]() |
- 진행 예정 중이 사항
- 아이디 중복 체크
- 비밀번호 해쉬화
- 로그인
- 로그인 때만 game.html에 접근 가능하게 수정
- game_log 테이블 생성 하여 유저별로 전적 나오게 수정
- 전적 부분을 game_log 테이블에서 조회된 것으로 변경
- 진행하면 만났던 오류 및 문제점
- database.db 파일이 github에 올라가게 됨
- 검색을 통하여 git에서 특정 파일 제외 하는 기능 확인
- 특정 파일 일때 : git rm --cached 파일명
- 특정 확장자 전체 일때 :git rm --cached *.확장자
- 특정 폴더 일때 :git rm --cached 디렉토리명/ -r
- 해당 명령어는 github에 올라가 있는 파일을 삭제 하는 것이므로 남용 하면 안된다
- 내가 임의로 만들고 테스트 할 때 잠깐 사용하는 파일이나 디렉토리들만 삭제 해야 하지 기존에 있는 파일을 임의로 삭제 하면 안된다
- 검색을 통하여 git에서 특정 파일 제외 하는 기능 확인
- flask에서 파일을 접근할 때
- python 이 아닌 php 였다면 주소를 가져와서 바로 입력을 하겠으나 flask를 사용하므로 flask에서 파일을 접근 하는 방식을 사용필요
- 하여 url_for를 이용하여 파일을 접근
- 또한 js, image, css 파일의 경우 static 폴더를 사용하여 해당 파일을 관리 하는걸 배움
- 강의에는 따로 post 형식으로 던져진 값을 확인 하는 부분이 없어 이를 검색을 통하여 해결
- 회원 가입시나 로그인 할 때에는 특정한 정보가 있고 또한 비밀번호에는 특수 문자등이 존재하므로 이를 get으로 던졌을때 url 오류가 발생 할 수도 있다.
- 그래서 post를 이용하여 url 뒤에 파라메터들이 노출 되지 않게 하는데 강의때에는 request를 활용 하여 args.get()을 통하여 파라메터를 접근 했는데 그대로 post에서 그대로 사용시 당연히 에러발생
- post일 때에는 args 대신 form을 통하여 form 데이터를 가져오는데 이때 가져오는 데이터 타입이 딕셔너리이므로 사용 파라메터에 접근을 할 때에는 form안에 입력했던 input의 name 값을 입력하여 해당 데이터에 접근 하면 쉽게 해결
- database.db 파일이 github에 올라가게 됨
참조 사이트 : https://kcmschool.com/194
[Git] git ignore 특정 파일또는 폴더 제외 or 무시하기
Git을 하게 되면 내가 작업하는 공간에는 필요하지만 remote(원격)에 push를 무시해야 하는 경우가 있습니다. 이런 경우는 소스 파일이라던가 올리면 충돌이 일어나 오류를 범할 수 있기 떄문입니다
kcmschool.com