{"id":29404542,"url":"https://github.com/lxxjn0/jwp-refactoring","last_synced_at":"2025-08-02T18:06:48.510Z","repository":{"id":303781288,"uuid":"324974439","full_name":"lxxjn0/jwp-refactoring","owner":"lxxjn0","description":"🖥 웹 어플리케이션 리팩토링 미션을 진행하는 Repository","archived":false,"fork":false,"pushed_at":"2020-12-28T09:57:49.000Z","size":160,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-09T11:53:59.205Z","etag":null,"topics":["java","jwp","refactoring"],"latest_commit_sha":null,"homepage":"https://github.com/woowacourse/jwp-refactoring","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lxxjn0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-28T09:57:33.000Z","updated_at":"2020-12-28T09:58:08.000Z","dependencies_parsed_at":"2025-07-09T11:54:01.546Z","dependency_job_id":"347ddf58-7ce5-4954-ab0d-6a9b6cb21923","html_url":"https://github.com/lxxjn0/jwp-refactoring","commit_stats":null,"previous_names":["lxxjn0/jwp-refactoring"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lxxjn0/jwp-refactoring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxxjn0%2Fjwp-refactoring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxxjn0%2Fjwp-refactoring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxxjn0%2Fjwp-refactoring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxxjn0%2Fjwp-refactoring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lxxjn0","download_url":"https://codeload.github.com/lxxjn0/jwp-refactoring/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxxjn0%2Fjwp-refactoring/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264648521,"owners_count":23643669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","jwp","refactoring"],"created_at":"2025-07-10T20:13:06.429Z","updated_at":"2025-07-10T20:13:07.361Z","avatar_url":"https://github.com/lxxjn0.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 키친포스\n\n## 요구 사항\n\n### 1단계 - 테스트를 통한 코드 보호\n\n- [x] 키친포스의 요구 사항을 `README.md`에 작성한다.\n- [ ] 정리한 키친포스의 요구 사항을 토대로 테스트 코드를 작성한다.\n  - [x] 모든 Business Object에 대한 테스트 코드를 작성한다.\n  - [x] `@SpringBootTest`를 이용한 통합 테스트 코드를 작성한다.\n  - [ ] `@ExtendWith(MockitoExtension.class)`를 이용한 단위 테스트 코드를 작성한다.\n  - [ ] (권장) Controller의 테스트 코드를 작성한다.\n\n## 기능 목록\n\n### 상품\n\n- 상품을 등록할 수 있다.\n  - 상품의 가격이 올바르지 않으면 등록할 수 없다.\n    - 상품의 가격은 0원 이상이어야 한다.\n- 상품의 목록을 조회할 수 있다.\n\n### 메뉴 그룹\n\n- 메뉴 그룹을 등록할 수 있다.\n- 메뉴 그룹의 목록을 조회할 수 있다.\n\n### 메뉴\n\n- 메뉴를 등록할 수 있다.\n  - 메뉴의 가격이 올바르지 않다면 등록할 수 없다.\n    - 메뉴의 가격은 0원 이상이어야 한다.\n    - 메뉴에 속한 상품 금액의 합보다 가격이 작다면 등록할 수 없다.\n  - 메뉴가 특정 메뉴 그룹에 속하지 않다면 등록할 수 없다.\n  - 등록하려는 메뉴의 상품이 등록되어 있지 않다면 메뉴로 등록할 수 없다.\n- 메뉴의 목록을 조회할 수 있다.\n\n### 주문 테이블\n\n- 주문 테이블을 등록할 수 있다.\n- 주문 테이블의 목록을 조회할 수 있다.\n- 주문 테이블을 빈 테이블로 설정 또는 해지할 수 있다.\n  - 존재하지 않는 주문 테이블일 경우 설정 또는 해지할 수 없다.\n  - 단체 지정이 된 주문 테이블일 경우 설정 또는 해지할 수 없다.\n  - 주문 테이블의 주문 상태가 조리 중이거나 식사 중일 경우 설정 또는 해지할 수 없다.\n- 주문 테이블의 방문한 손님 수를 설정할 수 있다.\n  - 존재하지 않는 주문 테이블일 경우 방문한 손님 수를 설정할 수 없다.\n  - 방문한 손님 수가 올바르지 않다면 설정할 수 없다.\n    - 방문한 손님 수는 0 이상이어야 한다.\n  - 주문 테이블이 빈 테이블일 경우 방문한 손님 수를 설정할 수 없다.\n\n### 단체 지정\n\n- 주문 테이블을 단체 지정할 수 있다.\n  - 단체 지정할 주문 테이블의 수가 올바르지 않다면 지정할 수 없다.\n    - 단체 지정할 주문 테이블의 수는 2 이상이어야 한다.\n  - 존재하지 않는 주문 테이블이 포함될 경우 지정할 수 없다.\n  - 중복된 주문 테이블이 포함될 경우 지정할 수 없다.\n  - 주문 테이블이 빈 테이블이 아니거나 이미 단체 지정이 되어있을 경우 지정할 수 없다.\n- 단체 지정을 해지할 수 있다.\n  - 단체 지정된 주문 테이블의 상태가 조리 중이거나 식사 중일 경우 해지할 수 없다.\n\n### 주문\n\n- 주문을 등록할 수 있다.\n  - 주문할 메뉴에 종류의 수가 올바르지 않다면 등록할 수 없다.\n    - 주문할 메뉴에 종류의 수는 0 이상이어야 한다.\n  - 주문할 메뉴에 종류가 중복된 경우 등록할 수 없다.\n  - 주문할 메뉴가 존재하지 않을 경우 등록할 수 없다.\n  - 주문 테이블이 존재하지 않을 경우 등록할 수 없다.\n  - 주문 테이블이 빈 테이블일 경우 등록할 수 없다.\n- 주문의 목록을 조회할 수 있다.\n- 주문의 상태를 변경할 수 있다.\n  - 주문이 존재하지 않을 경우 변경할 수 없다.\n  - 주문의 상태가 계산 완료인 경우 변경할 수 없다.\n\n## 용어 사전\n\n| 한글명 | 영문명 | 설명 |\n| --- | --- | --- |\n| 상품 | product | 메뉴를 관리하는 기준이 되는 데이터 |\n| 메뉴 그룹 | menu group | 메뉴 묶음, 분류 |\n| 메뉴 | menu | 메뉴 그룹에 속하는 실제 주문 가능 단위 |\n| 메뉴 상품 | menu product | 메뉴에 속하는 수량이 있는 상품 |\n| 금액 | amount | 가격 * 수량 |\n| 주문 테이블 | order table | 매장에서 주문이 발생하는 영역 |\n| 빈 테이블 | empty table | 주문을 등록할 수 없는 주문 테이블 |\n| 주문 | order | 매장에서 발생하는 주문 |\n| 주문 상태 | order status | 주문은 조리 ➜ 식사 ➜ 계산 완료 순서로 진행된다. |\n| 방문한 손님 수 | number of guests | 필수 사항은 아니며 주문은 0명으로 등록할 수 있다. |\n| 단체 지정 | table group | 통합 계산을 위해 개별 주문 테이블을 그룹화하는 기능 |\n| 주문 항목 | order line item | 주문에 속하는 수량이 있는 메뉴 |\n| 매장 식사 | eat in | 포장하지 않고 매장에서 식사하는 것 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flxxjn0%2Fjwp-refactoring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flxxjn0%2Fjwp-refactoring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flxxjn0%2Fjwp-refactoring/lists"}