Giter Site home page Giter Site logo

baseball-02's Issues

[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 제약조건이 누락되어 추가합니다.

[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] 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

[FE] 상태관리 구현

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

[BE] Spring Project Initialize

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

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

[BE] Auto Deploy 기능 개발

Auto Deploy 기능을 개발합니다.

요구 사항

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

기능 분석

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

[BE] Game match API 기능 구현

기능

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

[FE] React Router 적용

기능

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

[BE] 초기화면 API 개발

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

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

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.