프로젝트 구조를 세우자
프로젝트 큰 구조를 세우고 본격적인 구현에 들어가려 합니다.
1. 구조
- 흐름 : 입력 -> 장소 찾기 -> 장소 출력 -> URL 띄우기
- 도메인 : 사용자 입력 쿼리, 장소
- 기타 : 예외처리
2. 흐름
(1) 입출력 분리
- 입력과 출력을 따로 처리하는 클래스를 만들고, 오로지 여기에서만 입출력이 진행됩니다.
- 입력 -> 장소 찾기 -> 장소 출력 -> URL 띄우기
(2) 장소 찾기 분리
- 장소 찾기 흐름 : 키워드로 좌표 찾기 -> 좌표로 장소 찾기
- 위 두가지 모두 Kakao API를 통해 얻어와야하므로, Kakao API 클래스로 분리
- 이 후, Kakao API 모두 HTTP 통신을 거쳐야하므로, HTTP 통신만을 담당하는 Http 클래스 분리
- 입력 -> 장소 찾기 -> 장소 출력 -> URL 띄우기
(3) URL 띄우기
- Desktop 클래스를 이용
- 메서드로 분리해서 사용
3. 도메인
(1) 사용자 쿼리
- 필드 : 키워드, 반경(m)
(2) 장소
- 필드 : 상호명, 주소, 전화번호, URL ...
4. 예외처리
- 각 예외 상황에 맞는 메시지를 같이 던지도록 구현
- Message는 따로 constant로 분리
5. 구현
구현을 완료하여 프로젝트 종료!!!
단순히 구현뿐만 아니라, 구조에 대해서 고민하며 확장성 있는 프로젝트를 만들고 싶었다. 사소한 것까지 많이 고민하다보니 시간은 오래걸렸지만, 나중에 다 자산이 될 것이라고 생각한다.
'부트캠프' 카테고리의 다른 글
패스트캠퍼스X야놀자 : 백엔드 개발 부트캠프_Java 심화 과제2(3) (0) | 2023.08.29 |
---|---|
패스트캠퍼스X야놀자 : 백엔드 개발 부트캠프_Java 심화 과제2(2) (0) | 2023.08.29 |
패스트캠퍼스X야놀자 : 백엔드 개발 부트캠프_Java 심화 과제2(1) (0) | 2023.08.29 |
패스트캠퍼스X야놀자 : 백엔드 개발 부트캠프_Java 심화 과제(2) (0) | 2023.08.22 |
패스트캠퍼스X야놀자 : 백엔드 개발 부트캠프_Java 심화 과제(1) (0) | 2023.08.18 |