패스트캠퍼스X야놀자: 백엔드 개발 부트캠프_Java 과제 1
Java 과제 1은 Kakao 로컬 REST API중 키워드로 장소 검색하기, 카테고리로 장소 검색하기를 활용하여 위치 기반 장소 검색 Java 어플리케이션을 개발하는 것이었다.
이번 과제는 하나의 클래스가 하나의 역할만 하게끔 즉, 객체 지향적으로 프로그램을 설계하려고 노력했다.

먼저 전체적인 구성은 다음과 같다.
API와 관련된 클래스가 있는 dto 패키지에는 호출된 데이터를 담는 KaKaoApiResponse, Meta, Document 클래스가 있고, API 호출 메서드를 구현한 KakaoApi 클래스가 있다.
사용자 인터페이스를 구현한 view 패키지에는 입력 값을 구현한 Input 클래스와 출력값을 구현한 Output 클래스가 있다.
마지막으로 service 패키지는 앞서 구현한 api 패키지와 view 패키지의 클래스를 사용하여 전체적인 로직을 구성한다.
KakaoApi 클래스는 다음과 같이 Webclient와 Builder를 사용하여 구현했으며,
키워드로 장소 검색하기, 카테고리로 장소 검색하기를 따로 만들어 API 호출하였다.

Input 클래스와 Output 클래스는 다음과 같다.


마지막으로 Search 클래스는 위에서 구현한 Input, Output, KakaoApi 클래스에서 필요한 메서드를 적절하게 호출하여 전체적인 로직을 구성하였다.

<고찰>
먼저 예외처리를 제대로 하지 않았다. 입력값으로 음수가 들어올 때나 API 호출 시 호출된 데이터가 없는 경우 프로그램에 에러가 발생할 수 있다.
두번째로 KakaoApi 클래스에서 키워드로 장소 검색하기, 카테고리로 장소 검색하기를 따로 구현하였는데, 두 가지를 한번에 구현한다면 코드 양을 줄일 수 있겠다는 생각이 들었다.
마지막으로 주석처리를 적절히 하지 않아서 다른 개발자나 협업 팀원들이 내 코드를 쉽게 이해하기 어렵겠다는 생각도 들었다.


