Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

우아한테크코스 6기 최종 코딩 테스트: OnCall 리뷰용 브랜치 #1

Open
wants to merge 43 commits into
base: donghoony
Choose a base branch
from

Commits on Dec 16, 2023

  1. docs: 기능 목록 작성

    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    4f9003e View commit details
    Browse the repository at this point in the history
  2. feat(OnCallException): 프로그램에서 사용될 커스텀 예외 템플릿 작성

    앞으로 예외 사항은 해당 클래스를 상속하여 진행한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    7b5fbf5 View commit details
    Browse the repository at this point in the history
  3. feat(Worker): 근무자 클래스 작성, 이름 제한 검증 구현

    기본적인 근무자 클래스를 작성하고, 이에 대한 이름 검증 클래스를 구현한다. 이름은 최대 다섯 글자 이내여야 한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    40da02b View commit details
    Browse the repository at this point in the history
  4. feat(OnCallRoster): 근무표 클래스 작성, 기본 검증 구현

    근무자로 이루어진 근무표 클래스를 작성하고, 기본 검증을 구현한다. 근무자가 5명 이상 35명 이하여야 하고, 중복된 근무자는 존재하면 안 된다.
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    3ba3bb6 View commit details
    Browse the repository at this point in the history
  5. feat(OnCallRoster): 같은 근무자로 이루어졌는지 확인하는 기능 구현

    두 개의 근무표를 비교해 같은 근무자로 이루어졌는지 확인하는 기능을 구현한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    5696be2 View commit details
    Browse the repository at this point in the history
  6. refactor(OnCallRoster): Roster로 클래스명 변경

    어플리케이션 이름이 OnCall이므로, 불필요한 접두사를 제거한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    369289a View commit details
    Browse the repository at this point in the history
  7. feat(Roster): 다음 근무자 순번을 알아내는 기능 구현

    `Iterator`를 사용해 다음 근무자 순번을 알아낸다. 경우에 따라 다다음 근무자 순번이 필요할 수 있으므로, 이 경우에는 다다음을 얻은 뒤, 스킵을 만들어 둔다.
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    22f4a78 View commit details
    Browse the repository at this point in the history
  8. feat(CombinedRoster): 평일, 휴일 근무표를 관리하는 기능 구현

    평일, 휴일에 다음 순번을 가져오는 메서드를 가진다. 직전 근무자 정보를 받아, 다음 혹은 다다음 순번의 근무자를 알려주는 역할을 한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    7a3fedc View commit details
    Browse the repository at this point in the history
  9. refactor(Worker): 클래스를 레코드 타입으로 변경

    Worker는 이름만을 가진다. 또 이름만으로 다른 사람과 비교하므로, 간결하게 작성하기 위해 Record로 변경한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    07c98bd View commit details
    Browse the repository at this point in the history
  10. feat(RosterDay): 날짜 클래스, 휴일 여부 판단 구현

    기존 날짜 클래스는 연도가 필요하기에, 적절한 날짜를 만들기 위해 새로운 자료형이 필요하다고 판단한다. 따라서 월, 일과 그날의 요일을 받는다. 또, 해당 날짜가 휴일에 포함되는지 확인한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    b1a900f View commit details
    Browse the repository at this point in the history
  11. feat(RosterDay): 출력 형식에 맞도록 toString 정의

    `Locale`을 활용해 원하는 대로 출력할 수 있게 구현한다.
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    44f2d9f View commit details
    Browse the repository at this point in the history
  12. feat(MonthlyCalendar): 한 달의 달력을 구현, 날짜 수를 기반으로 날짜 생성 구현

    `RosterDay`를 리턴해 주는 클래스. 프로그램은 한 달 안에서 돌아가기 때문에, 해당 달을 한 번 생성한 뒤 계속 사용한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    2364bd3 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    6db2c73 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    5b157eb View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    303702d View commit details
    Browse the repository at this point in the history
  16. feat(DailyRoster): 일일 근무자를 기록하는 클래스 작성, toString 구현

    Service에서 생성할 일일 근무자 클래스, 각각의 toString과 worker.name을 통해 출력 형식을 지킨다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    830f614 View commit details
    Browse the repository at this point in the history
  17. feat(MonthlyRoster): 월별 근무자를 모두 담는 클래스 작성, toString 구현

    Service에서 생성할 월별 근무자 클래스. 최종적으로 서비스가 만들어 내는 것이며, 이를 출력하여 사용자에게 보여준다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    ba7d9a1 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    b48d1cd View commit details
    Browse the repository at this point in the history
  19. feat(CombinedRoster): 날짜가 주어지면, 날짜의 휴일 여부를 판단해 다음 근무자를 배정하도록 구현

    바깥에서 각각 `getWeekDayWorker`, `getHolidayWorker`를 분기하지 않고, 내부에서 확인해 알아내도록 한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    c2a663c View commit details
    Browse the repository at this point in the history
  20. feat(RosterService): 핵심 로직 구현

    지금까지 작성한 도메인을 바탕으로 특정 달의 근무표를 만들어내는 역할을 한다.
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    7e41023 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    9cd3de1 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    2b176e4 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    64f36d7 View commit details
    Browse the repository at this point in the history
  24. refactor(OnCallInput): 평일/휴일 비상근무 입력 방식 통일

    두 개의 입력 메서드가 아닌, 같은 메서드를 활용하도록 한다. 추후에 컨트롤러 단에서 이를 적절히 활용한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    75c769b View commit details
    Browse the repository at this point in the history
  25. feat(OnCallConsoleInput): 입력 형식에 맞도록 OnCallInput 구현체 작성

    입력 사항 및 입력에 대한 검증을 이곳에서 수행한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    89d28f1 View commit details
    Browse the repository at this point in the history
  26. refactor(RosterService): CombinedRoster를 그때그때 받아 만들 수 있도록 수정

    확장성 및 재사용성을 고려해서, 서비스가 생성될 때 고정하는 것이 아니라, 매번 근무표를 생성할 때마다 명단을 받아오도록 수정한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    931120b View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    ad6ad3d View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    bf58727 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    31fb9a4 View commit details
    Browse the repository at this point in the history
  30. fix(RosterService): 달의 마지막 날이 포함되지 않던 오류 수정

    IntStream.range`는 exclusive이기 때문에 끝 날짜가 포함되지 않았다. 이를 `rangeClosed`로 수정해 구현한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    a9e12a8 View commit details
    Browse the repository at this point in the history
  31. fix(CombinedRoster): 다음 날짜와 체크할 때, iterator가 움직이는 현상 수정

    `getNextWorker`로 확인할 때 `iterator`가 같이 움직여 다다음 근무자가 선정되던 오류를 수정한다
    donghoony committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    28d1267 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    b4182fc View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    37c7a88 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    10b65d1 View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    c06ab0c View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    eeb9e20 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    fd11bf2 View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    f2bea11 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    6381ab2 View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    a770c3b View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    0de20c2 View commit details
    Browse the repository at this point in the history
  42. Configuration menu
    Copy the full SHA
    2412bc3 View commit details
    Browse the repository at this point in the history
  43. Configuration menu
    Copy the full SHA
    a92e9ab View commit details
    Browse the repository at this point in the history