Code Monkey home page Code Monkey logo

be-02-marbox's People

Contributors

hyuk0309 avatar pawer0223 avatar sdardew avatar wisehero avatar yanjuicy avatar

Stargazers

 avatar

Watchers

 avatar

be-02-marbox's Issues

고객은 로그인 할 수 있다.

개요

  • 사용자 로그인 기능 개발

설명

  • 사용자는 로그인을 요청한다.
  • 사용자 정보를 확인하고, 문제없으면 Jwt를 만들고 응답한다.

회원 가입 기능 수정

개요

  • 회원 가입 기능 수정

설명

  • 기존에는 사용자 비밀번호 그대로 DB에 저장, 이를 암호화 후 저장하게 수정
  • API 응답 설계 변경. (굳이 바디에 아이디가 있을 이유가 없다.)
  • 회원 가입시 권한 설정 부분 고민하기

PR template 변경

개요

  • PR template 변경

설명

  • 제목 작성방법 추가
  • 리뷰어 지정목록 추가

관리자는 영화관 이름을 수정할 수 있다.

개요

관리자의 영화관 이름 수정 기능 추가

설명

영화관의 두 가지 필드 중 변경될 수 있을 만한 부분은 지점명이라고 생각하여 지점명만 변경할 수 있도록 제공.

예를 들어 CGV 용산아이파크몰점이 있다고 했을 때 언젠가 아이파크몰에서 현대아울렛으로 변경된다면 CGV 현대아울렛점으로 변경.

region의 경우 행정구역 변경이 일어나야 하는데 해당 변경 사항은 자주 일어나는 일이 아님.

스케줄 클래스 수정

개요

  • 마르코 피드백 반영

설명

  • 멘토님이 해주신 피드백 반영했습니다.
  • ScheduleServiceTest 파일에서 @AfterEach를 이용해 repository를 비워주는 작업을 제거했습니다.
  • ScheduleServiceMockTest 파일에서 Movie 인스턴스를 만들 때 생성자 값에 의미있는 값을 전달했습니다.
  • Schedule 클래스에서 빌더 패턴을 이용하는데 불필요한 public 생성자를 private으로 바꿨습니다.

프로파일 이용해 dev, local 환경 분리하기

개요

  • ex) Local 용도 설정파일 만들기

설명

  • 프로파일 이용해 Local 용도 설정 파일 만들기
  • 데이터 소스 RDS로 설정하기
  • 커넥션 풀 이용하기 (application.yml)
  • ddl 옵션 고민하기

관리자 영화 목록 조회 코드 수정

문제

  • 가독성이 좋지 않음
  • 값이 상수로 관리되지 않음

변경 전

  • 가독성이 좋지 않음
  • 값이 상수로 관리되지 않음

변경 후

  • 한줄에 점 하나로
  • 값을 상수로 관리

.gitignore에 db 폴더 추가

문제

  • ./db 파일이 git에 의해 추적 된다. 그런./db 파일은 개발할 때마다 바뀌는 파일이다. 따라서 머지시 충돌 위험성이 있다.

변경 전

  • ./db 파일이 git에 의해 추적된다.

변경 후

  • ./db 파일이 git에 의해 추적되지 않는다.

예외 Dto 추가하기

문제

  • 응답에 대한 예외용 Dto가 없다.

변경 전

  • 예외가 발생한 경우, 응답 API의 형태가 팀원마다 달랐다.

변경 후

  • 예외가 발생하는 응답의 경우, 동일한 응답 API 형태로 응답한다.

MovieService 주석 추가

변경 전

  • MovieService에 주석이 없음

변경 후

  • MovieService 메서드의 기능, 파라미터, 리턴값에 대한 주석이 추가

고객은 회원 가입할 수 있다.

개요

  • 사용자 회원가입 기능 개발

설명

  • 사용자는 email, password, name, role(CUSTOMER, ADMIN) 정보를 이용해 회원가입을 요청한다.
  • 입력한 정보를 검증한다. (email, name의 유일성 검사)
  • 입력한 정보를 DB에 저장한다.

checkstyle과 java 호환 문제

문제

  • 현제 build.gradle에서 사용하는 checkstyle이 구버전이라 java 최신 문법을 분석하지 못함.

변경 전

  • java 17 문법. ex)Record 를 checkstyle이 분석하지 못함.

변경 후

  • checkstyle이 java 17 문법을 분석할 수 있음.

Schedule 도메인 컨트롤러 추가

개요

  • Schedule 도메인의 컨트롤러 클래스 추가

설명

  • Schedule Create URL 요청 처리
  • Schedule Controller 중 createSchedule 테스트 코드 추가
  • REST DOCS를 이용한 문서화

TheaterController 작성

개요

TheaterController 작성하기

설명

영화관 추가
영화관 전체 조회
영화관 지역별 조회

컨트롤러 작성

ScheduleController 리팩터링

1. 변경 전

  • Schedule Controller에서 쿼리 스트링(@RequestParam)의 종류에 따라서 메소드를 여러 개 만드려고 했음

변경 후

  • 하나의 메소드 getSchedulesByRequestParm에서 3가지 종류의 쿼리 스트링을 다 받고 종류에 따라 서비스 메서드 호출

2. 변경 전

  • 쿼리 스트링 조건에 따라서 리턴해주는 레코드 객체가 달랐음
  • theaterId 요청 -> ResponseFindMovieListAndDateList 반환
  • theaterId, date 요청 -> ResponseFindMovieList 반환
  • theaterId, movieId, date 요청 -> ResponseTimeList 반환

변경 후

  • ResponseFindSchedule 객체만 리턴해주기로 변경
  • 위 객체 안에 movieList, theaterList, dateList, timeList 가 들어 있음
  • 컨트롤러에서 쿼리 스트링 조건에 따라서 메소드를 분리할 수 없어서 위와 같이 변경을 결정함

3. 변경 전

  • theaterId로 요청해서 movieList, dateList를 반환 받는 API 문서의 변경
    이전 문서 경로

변경 후

한 영화관의 영화, 날짜 정보 가져오기

Request
GET /schedules?theaterId=1 HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 420

{"movieList":[{"name":"영화1","limitAge":"CHILD","genre":"ACTION","runningTime":100,"posterImgLocation":"test/location"},{"name":"영화2","limitAge":"ADULT","genre":"ROMANCE","runningTime":120,"posterImgLocation":"test/location"},{"name":"영화3","limitAge":"CHILD","genre":"ANIMATION","runningTime":150,"posterImgLocation":"test/location"}],"theaterList":null,"dateList":["2022-06-30","2022-07-01"],"timeList":null}

Path Type Description
movieList[] Array 영화 리스트
movieList[].name String 영화 이름
movieList[].limitAge String 영화 관람 등급
movieList[].genre String 장르
movieList[].runningTime Number 상영시간
movieList[].posterImgLocation String 포스터 이미지 경로
dateList[] Array 상영 날짜 리스트
theaterList Null 영화관 리스트
timeList Null 상영 시간 리스트

고객은 예매를 위해 영화 정보를 조회할 수 있다.

개요

  • 현재 상영중인 영화 리스트를 반환한다.

설명

  • 현재 날짜 (월 일)을 포함하여 + 20일 까지 상영하는 영화 정보를 반환한다.
  • ex) 현재가 1월 1일 이면 1월 20일 까지 상영하는 영화 정보를 반환한다.
  • 현재 상영 중인 영화 목록 조회, Schedule을 이용해 구현

test

개요

  • ex) 유저 정보 조회기능 추가하기

설명

  • ex) 관리자는 유저정보를 조회할 수 있어야 한다
  • ex) 일반 유저는 유저목록을 조회할 수 없어야 한다.

관리자는 상영관을 추가할 수 있다.

개요

  • 관리자는 상영관을 등록할 수 있다.

설명

  • 상영관 정보를 등록하기 위해서는 영화관 정보가 필요하다.
  • 상영관 정보는 1개 이상의 좌석이 반드시 존재해야 한다.

변경 내역

  • TheaterRoom.totalCount 제거
  • Seat 다중 unique 제약조건 추가(theater_room_id, rows, columns)

Schedule 컨벤션 맞추기

개요

  • Schedule 클래스 관련 컨벤션 맞추기

설명

  • ScheduleRecord -> RequestCreateSchedule 변경
  • ScheduleConverter 클래스 추가

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.