[패스트캠퍼스 X 야놀자: 백엔드 개발 부트캠프] 과제1 후기

정의정·2023년 8월 24일
1

FC

목록 보기
1/6
post-thumbnail

나는 2023.07.10~2024.01.30 기간동안 내일배움카드로 수강하는 국비지원교육 중 K-digital training(패스트캠퍼스 X 야놀자: 백엔드 개발 부트캠프 4기)에 참여하고 있다.

🌟 첫 번째 과제!

부트캠프에 참여한 지 7주차가 된 시점에 자바 과제가 주어졌다.

지금까지 실시간 강의와 온라인 강의를 병행하며 공부하고 그룹 스터디를 통해 사이드 프로젝트를 진행하고 있었는데, 드디어 첫 과제를 받은 것이다.

넘치는 의욕으로 빠르게 요구사항을 살펴봤다.

과제1: 위치기반 장소 검색 Java 애플리케이션 개발

이번 과제는 카카오API를 이용해 장소를 검색하는 Java 애플리케이션을 개발하라는 내용이었다.

이전에 카카오API로 로그인 및 사용자 데이터를 받아온 경험이 있었기 때문에 카카오API를 활용한 개발이 그리 어렵게 느껴지지는 않았다.

💡 Keypoint

  1. 네트워크API(HttpUrlConnection|HttpClient|OkHttp)를 사용할 수 있는가?
  2. OpenAPI 를 적절히 사용해 필요한 데이터를 받아올 수 있는가?
  3. Json 형태의 응답을 적절히 파싱하여 사용할 수 있는가?
  4. url로 브라우저를 띄울 수 있는가?

어떤 네트워크API를 사용할까? 🤔

KakaoAPI를 사용하려면 네트워크API를 사용해야 한다.

강사님이 제시해주신 가장 대표적인 네트워크API들 세가지 중, 나는 HttpUrlConnection을 사용하기로 했다. 다른 API들도 장점이 있지만, 익숙하고 클래식한 HttpUrlConnection을 사용하기로 했다.

사실 어떤 네트워크 API를 사용하는 지는 이번 과제에서 중요한 점은 아니기 때문에 크게 고민할 일은 없었다.

Kakao Developers 💬

자, 이제 어떤 네트워크API를 사용할 지 정했으니, 본격적으로 카카오API를 사용하기 위해 Kakao Developers에 접속했더니, 익숙한 화면이 나를 반겼다.

자 이제 로그인을 하고 내 애플리케이션에 들어가 새 애플리케이션을 만들면 된다.

그럼 REST API 키를 받을 수 있는데, 이 키가 있어야 카카오API를 통해 원하는 데이터를 받아올 수 있다!

요구사항 확인 🧐

나는 이번 과제에서 카카오API 중 어떤 기능을 사용해야 하는 지, 예시 입력과 출력을 유심히 살펴봤다.

냅다 위치정보를 불러오기만 해서는 과제가 원하는 어플리케이션을 개발할 수 없다.

어떤 입력을 받고, 그에 따라 어떤 출력을 기대하는 지를 살펴 보는 것이 중요하다고 생각했다.

사실 앞으로 회사를 들어가게 되면 개발 전에 요구사항 명세서를 꼼꼼히 살펴야 하는 것과 같은 맥락이다.

Json 파싱 ⚒️

REST API는 응답을 Json으로 하는 것이 일반적이다. 따라서 나는 이 응답을 Java 어플리케이션에서 파싱을 통해 이모저모 예쁘게 처리하고 정리해서 출력하면 되는 것이다.

요구사항에서 사용할 API를 지정해주었기 때문에 나는 지정된 API인 org.json:json을 사용했다.

구현 ⌨️

1 - 기반 위치가 될 장소의 키워드를 입력 받는다.
2 - 네트워크API를 통해 카카오API에 요청을 보내고 해당 장소의 위도와 경도를 받아온다.
3 - 받아온 위도와 경도를 기반으로 카테고리 장소 검색을 한다.
4 - 응답 받은 Json을 잘 받아와서 예쁘게 출력한다.
5 - url을 입력 받으면 브라우저를 연다.
6 - exit을 입력 받으면 프로그램을 종료시킨다.

앞서 과제 요구사항을 열심히 봤기 때문에 이런 흐름으로 순탄하게 요구사항에 맞는 코드를 작성할 수 있었다.

다음은 최종적으로 입력받은 url로 브라우저를 연 모습이다.

성공적으로 브라우저가 열리는 것을 확인할 수 있었다! 😀

🎀 느낀 점

이번 자바 과제1을 수행하면서 개발 과정에 대해 다시 한 번 생각해 볼 수 있었다.

요구사항을 바탕으로 어떤 기술을 사용할 지 고민하고,
어떤 입력(요청)에 어떤 출력(응답)을 기대하고 있는지 파악하고,
어떤 흐름으로 진행해야 하는 지 구체적인 가이드라인을 세우는,

일련의 과정을 거치면서 성공적으로 구현을 마칠 수 있었던 것 같다.

어떤 개발이든 목적, 요구사항, 사용할 기술, 흐름 을 먼저 파악하고 고민해야 한다는 것을 한 번 더 느낄 수 있었다.

이번 과제는 이렇게 마무리 됐지만, 아직 남은 과제와 프로젝트들이 있다. 열심히 배우고 성장해야겠다! 😀

profile
배움 기록

0개의 댓글