프로젝트 구조를 세우자

프로젝트 큰 구조를 세우고 본격적인 구현에 들어가려 합니다.

 

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. 구현


구현을 완료하여 프로젝트 종료!!!

단순히 구현뿐만 아니라, 구조에 대해서 고민하며 확장성 있는 프로젝트를 만들고 싶었다. 사소한 것까지 많이 고민하다보니 시간은 오래걸렸지만, 나중에 다 자산이 될 것이라고 생각한다. 

과제의 핵심을 구현하자

과제의 핵심은 Kakao API 통신JSON데이터 파싱이라고 생각합니다. 본격적으로 과제 수행 전에 이 두 가지를 확실히 파악하려고 합니다.

 

1. Kakao API 통신

   (1) Kakao API 사용법

      - https://developers.kakao.com/docs/latest/ko/local/dev-guide 여기 링크에 자세한 사용법이 나와있습니다.

      - 간단하게 보면, 요청 헤더에 Kakao에서 받은 API key를 넣고 쿼리 파라미터에 원하는 값을 넣는 방식입니다.

   (2) Java에서 통신하기

      - http통신을 위해 다운로드한 httpcomponents 라이브러리를 사용합니다.

      - 사용방법은 크게 URI 만들기, 요청 메시지 만들기, 결과 받기로 나누어져 있습니다.

 

2. JSON데이터 파싱

   - JSON데이터 파싱을 위해 다운로드한 json 라이브러리를 사용합니다.

   - 사용방법은 JSON String을 JSON Object 또는 JSON Array로 변환하고, 그 안에서 값을 추출하는 것입니다.


 프로젝트 핵심 기능 파악 완료!!!

시작이 반이다

프로젝트 시작전 초기 세팅을 완료하면 절반은 완료했다고 생각합니다. 지금부터 그 절반을 완료하려합니다.

 

1. Github Repository에서 클론 후 프로젝트 열기

   - git clone <repository의 주소>

   - IntelliJ에서 프로젝트 열기

 

2. JDK 세팅

   - IntelliJ의 좌측 상단에 File - Project Structure에서 JDK 11로 세팅

 

3. 프로젝트에 필요한 Library 다운로드

   - json과 httpcomponents 라이브러리 다운로드

   - pom.xml에 다음과 같이 추가

 

4. commit

   - git commit convention에 맞춰서 작성 예정

   - git commit -m "chore : JDK 및 Library 세팅 완료"


프로젝트 절반 완료!!!

+ Recent posts