Giter Site home page Giter Site logo

baseball-02's Introduction

온라인 야구게임 2조⚾️

팀원

Class 🐱
BE Dingo, Dion
FE Reese
iOS 모스

Ground Rule

1. ⏰Time rule

  • 오전 11시 스크럼 google hangout을 사용, hackMd 사용
    • 컨디션, 하루 목표, 어제 공유했던 사항 회고를 한다.
  • 스크럼 마스터를 매일 매일 돌아가면서 한다. (딩고-리즈-디온-모스)
    • 스크럼 마스터는 스크럼을 주도한다.
    • 스크럼 마스터는 hangout Link, hackMd Link를 공유해준다.
    • 스크럼 마스터는 스크럼 내용을 정리해서 github Wiki에 업로드한다.

2. 📝Commit convention

타입 설명
feat 새로운 기능 추가
fix 버그 수정
docs 문서 수정
refactor 코드 리팩토링
style 코드 포맷팅 (코드 변경이 없는 경우)
test 테스트 코드 작성
chore 소스 코드를 건들지 않는 작업(빌드 업무 수정)
  • 예시
    • [#22] docs: README.md 수정
    • 그리고 어떤 내용을 수정했는지 작성하기
  • 참고

3. 🌲Git branch rule

  • master: 배포용 브랜치
  • develop: 개발 브랜치
  • 작업을 시작할 때: 자신의 클래스 개발 브랜치에서 <클래스>-feature/기능명 으로 브랜치 생성
    • ex) iOS-feature/기능명
  • review를 위해 리뷰 브랜치를 생성한다.
    • ex) fe-review
  • 이슈 단위로 개발한다.
  • 작업이 완료되었으면, 작업하던 브랜치에서 개발 브랜치(develop)로 Pull Request를 생성한다.
  • 머지를 완료했으면 기능(feature)브랜치는 github과 local git에 모두 삭제한다.
  • BE는 Pull request 시 상대방은 assignee에 할당하고, 할당받은 사람은 해당 pull request를 확인 후, merge 한다.
  • dev 브랜치로 merge 될 때, PR 메시지로 해당하는 issue를 닫아준다.
    • 예시: Resolve #1, Closed #1..
  • default branch는 develop으로 설정한다.

4. 🧑‍💻구현 기능

  • 선택 기능을 제외한 나머지
  • 파트별 스프레트시트에 적어서 공유
  • BE가 구현한 API에 대해서는 위키 공유

baseball-02's People

Contributors

reesekimm avatar ksundong avatar kyungrae avatar godrm avatar

Stargazers

 avatar 모스 avatar

Watchers

 avatar James Cloos avatar crong avatar Hoyoung Jung avatar  avatar

Forkers

moto6

baseball-02's Issues

[Team] 서버 클라이언트 API 통신 방법

방법 1

백엔드 역할

클라이언트에서 pitch API를 호출하면 가능한 모든 상황을 서버에서 처리한다.
ex) pitch 결과(ball, strike, out), 볼 카운트(ball, strike, out), 주자 관리, 점수 조건, 타석 관리

클라이언트 역할

각 회에 대한 점수 이력 관리 및 게임에서 선수 기록 이력 관리
ex) 상세 점수 팝업 및 선수 명단 팝업

방법 2

백앤드 역할

  1. 클라이언트에서 pitch API를 호출할 때 타자와 투수에 대한 정보를 함께 요청한다.
    ex) pitch 결과(ball, strike, out)를 리턴하고 그에 대한 선수 기록과 한 회에 대한 점수 정보를 업데이트한다.
  2. 인게임 선수 결과 API 제공
  3. 각 회에 대한 점수 API 제공

클라이언트 역할

  1. 사용자가 pitch 버튼을 눌렀을 때 타자와 투수에 대한 정보를 함께 API로 요청한다.
  2. API에 대한 결과를 스트라이크, 볼, 아웃을 상태로 관리한다.
  3. 3 스트라이크, 4 볼, 3 아웃과 같은 이벤트를 처리한다.
  4. 타석관리

[BE] Spring Project Initialize

스프링 부트 프로젝트를 시작합니다.

  • 의존성
    • spring-web
    • spring-data-jdbc
    • swagger
    • lombok
    • flyway
    • mysql connector
  • gitignore 설정
  • indent tab >> space

[FE] 상태관리 구현

  • Context API와 useState, useReducer를 활용한 상태관리 방법 학습
    • reducer에서 data fetching하는 방법 알아보기
  • 프로젝트에 적용 (게임 시작 화면부터)

[BE] Game match API 기능 구현

기능

  • User 대 User 게임이 가능하도록 테이블 수정
  • User 클래스를 구별할 수 있도록 기능 구현
  • polling을 통해 게임을 시작할 수 있도록 게임 API 구현

[BE] Auto Deploy 기능 개발

Auto Deploy 기능을 개발합니다.

요구 사항

  • 로컬에서 jar 파일을 생성하고 결과물을 s3에 올리고 이 파일을 감지해서 서버에서 배포를 수행한다. (git hook, crontab 사용)
  • 배포 서버에는 항상 동작하고 있는 버전이 배포되어 있어야 한다. 또한 master 브랜치를 이용해서 서비스를 배포한다.
  • 프론트 배포는 NginX를 설정해서 사용한다. 프론트는 80포트에서 동작한다.

기능 분석

  • 로컬에서 빌드할 것(jar, react)
  • master 브랜치를 감지할 것(git hook, crontab 사용)
  • 빌드 결과물을 S3에 올릴 것
  • S3의 파일을 감지해서 서버에서 배포할 것

[BE] Github OAuth 기능 추가

GitHub OAuth 연동을 합니다

  • GitHub OAuth App 등록
  • OAuth 등록 방식 구상(전통적? SPA?)
  • OAuth Controller 개발
  • OAuth 관련 객체 생성
  • OAuth 공부

[BE] Pitch API 개발

Pitch API를 개발합니다.

  • Inning 테이블의 inning_number type 수정
  • Inning 테이블과 연관관계가 형성될 Inning Domain 객체 생성
  • DateTime Formatter를 공통 상수로 추출합니다.
  • Inning Table의 id컬럼에 AUTO_INCREMENT 제약조건이 누락되어 추가합니다.

[FE] React Router 적용

기능

  • React Router 적용 및 Route path 지정
  • Route별 컴포넌트/페이지 skeleton 코드 작성 및 라우팅 테스트
  • webpack dev server - history fallback 처리

[BE] 초기화면 API 개발

초기화면 API를 개발합니다.

  • home team, away team 정보를 담습니다.
  • 각 팀에는 타자정보와 투수 정보를 담습니다.

[BE] DB User Table 설계

DB의 User Table 설계

  • id, nickname, email, token 컬럼이 필요합니다.

  • AUTO_INCREMENT 제약조건이 있는 컬럼의 이름을 id로 할지, ID 자체를 id로 할 지 논의하고 싶어요.

  • 1안

Index Column Name Type Constraint
PK id INT AUTO_INCREMENT
uid VARCHAR(25) NON_NULL
nickname VARCHAR(25) NON_NULL
UNIQUE(?) email VARCHAR(255) NON_NULL
github_token VARCHAR(255) NON_NULL
  • 2안
Index Column Name Type Constraint
PK uid INT AUTO_INCREMENT
id VARCHAR(25) NON_NULL
nickname VARCHAR(25) NON_NULL
UNIQUE(?) email VARCHAR(255) NON_NULL
github_token VARCHAR(255) NON_NULL

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.