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

[2단계 - 경로 조회 기능] 제이미(임정수) 미션 제출합니다. #195

Merged
merged 65 commits into from
Jun 5, 2023
Merged
Changes from 1 commit
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
a84733b
refactor: 패키지 분리 및 이동
JJ503 May 17, 2023
bcf9345
refactor: SectionStationMapper 엔티티 생성
JJ503 May 17, 2023
b5fb095
refactor: Sections sort 메서드 분리
JJ503 May 17, 2023
1604c0f
refactor: Domain, Entity 동등성 재정의 및 toString 재정의
JJ503 May 17, 2023
2bce4a2
fix: 오류 발생 테스트 문제 해결
JJ503 May 18, 2023
fae6028
refactor: schema section 필드 추가
JJ503 May 18, 2023
9c5b287
test: SectionDao 단위 테스트 추가
JJ503 May 18, 2023
9ce5ea5
refactor: LineDao NamedParameterJdbcTemplate로 변경
JJ503 May 18, 2023
50a54d7
refactor: SectionDao SimpleJdbcInsert 수정
JJ503 May 18, 2023
1491e9e
test: LineDao 단위 테스트 추가
JJ503 May 18, 2023
b803d60
refactor: Station을 도메인과 엔티티로 분리
JJ503 May 18, 2023
e991338
test: LineDao 테스트 조건 수정
JJ503 May 18, 2023
deed89c
refactor: exception 네이밍 변경
JJ503 May 18, 2023
94ab852
test: StationDao 단위 테스트 추가
JJ503 May 18, 2023
21cfb58
refactor: Section 필드에 id 추가
JJ503 May 19, 2023
69f38f6
refactor: 역 추가에 대한 로직을 서비스에서 Sections로 이동
JJ503 May 19, 2023
d07b5b3
test: 추가적인 SectionDao 단위 테스트 추가
JJ503 May 19, 2023
4ed9e53
refactor: 역 제거 대한 로직을 서비스에서 Sections로 이동
JJ503 May 19, 2023
aa7eaab
refactor: 기타 컨벤션 적용
JJ503 May 19, 2023
8629a4f
test: 삭제 인수 테스트 추가
JJ503 May 19, 2023
ae241ae
docs: 경로 조회 api 추가
JJ503 May 21, 2023
24fd5cc
refactor: 프로덕션과 테스트 데이터베이스 분리
JJ503 May 21, 2023
7716d5d
feat: 최단 경로 조회 기능 추가
JJ503 May 21, 2023
2f5fa83
feat: 데이터 초기값 파일 설정 추가
JJ503 May 21, 2023
4e4ee12
feat: 경로와 거리를 담는 path 생성
JJ503 May 21, 2023
fdc0c60
docs: 2단계 기능 목록 추가 및 완료 사항 체크
JJ503 May 21, 2023
b51b860
feat: 지하철 요금 계산 및 조회 기능 추가
JJ503 May 21, 2023
e1729e7
refactor: 코드 컨벤션 적용
JJ503 May 21, 2023
c8e5200
test: SectionDao 단위 테스트 추가 및 컨벤션 적용
JJ503 May 21, 2023
d00523e
test: StationDao 단위 테스트 추가 및 컨벤션 적용
JJ503 May 21, 2023
fff3ab8
refactor: LineDaoTest, SectionDaoTest given-when-then 패턴 적용
JJ503 May 21, 2023
a2d3262
test: 테스트 초기 정보 수정
JJ503 May 22, 2023
b96cc79
fix: 역 정렬 잘못된 로직 수정
JJ503 May 22, 2023
7ab3454
test: LineDaoTest 초기 정보 수정
JJ503 May 22, 2023
65a7139
refactor: 정적팩토리메서드로 객체 생성
JJ503 May 22, 2023
3519845
test: LineService 단위 테스트 추가
JJ503 May 22, 2023
7430b1b
feat: 누락된 fare 파일 추가
JJ503 May 22, 2023
6a8592c
refactor: 중복 코드 제거
JJ503 May 22, 2023
d3b33bd
refactor: 중복되는 상수들 TestFeature로 묶음
JJ503 May 22, 2023
c6d8dc0
test: Sections 단위 테스트 추가
JJ503 May 22, 2023
95251c7
test: Map 단위 테스트 추가
JJ503 May 22, 2023
4571dba
test: Fare 단위 테스트 추가
JJ503 May 22, 2023
c3dce4d
test: PathService 단위 테스트 추가
JJ503 May 22, 2023
3df8609
test: SectionService 단위 테스트 추가
JJ503 May 22, 2023
6811348
docs: 완료한 기능 목록 체크
JJ503 May 24, 2023
5ddbeea
test: StationService 단위 테스트 추가
JJ503 May 24, 2023
8c95325
refactor: SQLException GlobalExceptionHandler로 통합
JJ503 May 25, 2023
f078c63
refactor: 주석 제거
JJ503 May 25, 2023
99b8ce2
feat: MethodArgumentNotValidException에 대한 예외 처리 추가
JJ503 May 25, 2023
247f12c
test: Line 통합 테스트 추가
JJ503 May 25, 2023
378c5f6
test: StationController 단위 테스트 추가
JJ503 May 25, 2023
c947831
test: SectionController 단위 테스트 추가
JJ503 May 25, 2023
6691c86
test: PathController 단위 테스트 추가
JJ503 May 25, 2023
197d9db
test: SectionController 통합 테스트 추가
JJ503 May 25, 2023
1c2346a
fix: 코드 수정으로 인한 테스트 오류 해결
JJ503 May 25, 2023
e7593a0
test: PathController 통합 테스트 추가
JJ503 May 25, 2023
ee150fa
refactor: 존재 여부에 대해 exist를 통해 확인하도록 수정
JJ503 Jun 3, 2023
5127fe8
refactor: 중복코드 제거를 위한 메서드 분리
JJ503 Jun 3, 2023
8f7c83e
refactor: 노선의 구간 존재 여부 확인을 dao에서 하도록 수정
JJ503 Jun 4, 2023
b32430d
refactor: 사용하지 않는 생성자 제거
JJ503 Jun 4, 2023
0227734
feat: StationService delete 역 존재 여부 검증 추가
JJ503 Jun 4, 2023
02bcca7
refactor: 생성자 체이닝 적용
JJ503 Jun 4, 2023
c2cc9e2
refactor: SubwayMap 클래스 네이밍 변성
JJ503 Jun 4, 2023
9100f67
refactor: 사용하지 않는 생성자 제거
JJ503 Jun 4, 2023
4093128
refactor: 한 메서드가 10라인이 넘지 않도록 수정
JJ503 Jun 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
docs: 경로 조회 api 추가
  • Loading branch information
JJ503 committed May 21, 2023
commit ae241ae69bc23e8322dc8569fbd15baba57d51e0
28 changes: 9 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
```
DELETE /lines/{lineId}/stations/{stationId}
```
-

3. 노선 조회 API 수정
1. 노선 조회
```
Expand All @@ -48,24 +48,14 @@
```
GET /lines
```

4. 테스트 하기
- 노선에 역이 하나도 등록되지 않은 상황에서 최초 등록 시 두 역을 동시에 등록해야 합니다.
- 하나의 역은 여러 노선에 등록이 될 수 있습니다.
(1호선: A-B-C, 2호선: Z-B-D 처럼 B역은 두개 이상의 노선에 포함될 수 있습니다.)
- 노선 가운데 역이 등록 될 경우 거리 정보를 고려해야 합니다.
A-B-C 노선에서 B 다음에 D 역을 등록하려고 하는데
B-C가 3km, B-D거리가 2km라면 B-D거리는 2km로 등록되어야 하고 D-C 거리는 1km로 등록되어야 합니다.
- 노선 가운데 역이 등록 될 경우 거리는 양의 정수라는 비즈니스 규칙을 지켜야 합니다.
A-B-C 노선에서 B 다음에 D 역을 등록하려고 하는데
B-C역의 거리가 3km인 경우 B-D 거리는 3km보다 적어야 합니다.
- 노선에 역 제거 테스트
- 노선에서 역을 제거할 경우 정상 동작을 위해 재배치 되어야 합니다.
A-B-C-D 역이 있는 노선에서 C역이 제거되는 경우 A-B-D 순으로 재배치됩니다.
- 노선에서 역이 제거될 경우 역과 역 사이의 거리도 재배정되어야 합니다.
A-B가 2km, B-C가 3km, C-D가 4km인 경우 C역이 제거되면 B-D 거리가 7km가 되어야 합니다.
- 노선에 등록된 역이 2개 인 경우 하나의 역을 제거할 때 두 역이 모두 제거되어야 합니다.
A-B 노선에서 B를 제거할 때 거리 정보를 포함할 수 없기 때문에 두 역 모두 제거되어야 합니다.

4. 경로 조회 API
1. 출발역과 도착역 사이의 경로 조회
- 출발역과 도착역 사이의 최단 경로를 조회 (환승도 고려)
- 해당 경로를 통한 이동에 대한 요금도 함께 응답
```
GET /path
```


## 도메인 설계하기
Expand Down