오늘이라도

35. 외부 API ① 본문

취업성공패키지 SW 개발자 교육/Java

35. 외부 API ①

upcake_ 2020. 4. 7. 20:28
반응형

https://github.com/upcake/Class_Examples

교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다. 

gif 파일은 클릭해서 보는 것이 정확합니다.


○ 외부 API 등록하는 법

 ① 전체 프로젝트에 등록하기

  - 등록하고자 하는 API(라이브러리)를 복사한다.
  - JRE 설치된 폴더\lib\ext(C:\Program Files\Java\jre1.8.0_241\lib\ext) 붙여 넣기
  - Eclipse 재시작(File MenuBar > Restart)
  - 모든 프로젝트에서 해당 API를 활용할 수 있다.
  - Export 할 때 별도로 해당 라이브러리를 함께 내보내기 해야 한다.

 ② 특정 프로젝트에만 등록하기 (권장)

  - 해당 프로젝트 > 우클릭 > Build Path > Configure Build Path
  - 상단 탭 : Libraries > Add External JARs... > 해당 라이브러리를 선택 > Apply and Close
  - 해당 프로젝트에서만 API를 활용할 수 있다.
  - Export 할 때 해당 라이브러리도 같이 내보내기 된다.

 ★ ①과 ②를 혼용할 시 오류가 발생할 수 있다.

 

※ 개발자가 알아둬야 할 사이트

 1. 오라클(https://www.oracle.com/kr/)

 2. 이클립스(https://www.eclipse.org/)

 3. 소스포지(https://sourceforge.net/)

 4. 아파치(https://www.apache.org/)

 5. 메이븐 리포지토리(https://mvnrepository.com/)

 6. 깃허브(https://github.com/)

 

 

▲예제 1 - 1. JSON 예시 DTO

 

▲예제 1 - 2. JSON 예시

① JSON Array 객체와 JSON Object 객체를 생성한다.

② DTO 객체를 JSON Object 객체로 변환하고 JSON Array에 추가한다.

③ JSON Array를 출력하면 JSON 형식의 코드가 출력된다.

④ 결과를 화면에 출력한다.

 i) JSON Array의 JSON Object를 변수에 담는다.

 ii) JSON Object 중 member란 이름을 가진 것만 골라낸다.

 iii) 골라낸 JSON Object를 toBean() 메서드를 이용해 JsonDTO 타입의 객체로 캐스팅한다.

 iv) 각 요소를 양식에 맞게 출력한다.

⑤ 결과를 파일로 저장한다.

 i) 파일로 저장하는데 한글이 들어가므로 FileWriter와 BufferedWriter 클래스 객체를 생성한다.

 ii) write() 메서드와 flush() 메서드로 출력하고 파일로 저장한다.

 iii) close() 메서드로 스트림을 닫아준다.

 

▲예제 1 - 3. 생성된 JSON 파일

 - Ctrl + Shift + F로 JSON 파일을 보기 좋게 정렬할 수 있다.

 

▲예제 1 - 4. 무한 배열을 활용한 JSON 예시

 - 무한 배열을 활용하여 JSON 구조로 변환할 경우 JSON Object 객체로 변형하는 과정을 생략할 수 있다는 장점이 있다.

 

▲예제 1 - 5. 무한 배열을 활용해서 생성된 JSON 파일

 

 

▲예제 2 - 1. 광주 시내버스 노선 API

 - http://bus.gwangju.go.kr/guide/usemethod/apiMethod#

 - 해당 페이지에서 제공되는 API를 찾을 수 있다.

▲예제 2 - 2. 광주 시내버스 API와 JSON을 활용한 예시

 - getJsonData() : API 파일을 읽은 뒤 String 변수에 저장하여 반환하는 메서드

  ① 제공되는 API를 받아서 읽어온다.

   i) json 파일로 저장했으므로 읽어오기 위해 FileReader, BufferedReader 클래스를 사용한다.

   ii) br.readLine()으로 읽어오는 내용을 받아줄 String 타입 변수 json과 받은 데이터를 누적해서 작성할 jsonData를 선언하고 초기화한다.

   iii) while() 문 내부에 br.readLine()으로 읽어 온 뒤 jsonData에 누적시키는 실행문을 작성하고 더 읽어오는 내용이 없을 경우 반복문을 빠져나가는 break 조건문을 작성한다.

  ② 사용이 끝난 입력 스트림을 닫아준다.

  ③ 작성이 끝난 jsonData를 반환해준다.

 

 - main() : 메인 메서드에서 양식에 맞게 출력한다.

  ① getJsonData() 메서드에서 반환되는 String 데이터를 받아줄 변수 jsonData를 선언한다.

  ② 순수한 JSON Object인 jsonData를 fromObject() 메서드를 이용해 JSON Array로 만들어준다.

  ③ 출력하기 위해 foreach문을 작성하는데 반복시킬 배열에서 나오는 변수의 타입을 정확히 모르므로 super 클래스인 Object를 사용한다.

  ④ 타입을 정확히 알 수 없는 object를 foreach문에 사용하기 위해 JSONSerializer 클래스를 사용해서 JSON 형식으로 바꾼 뒤, 다시 JSON Object로 캐스팅한다.

  ⑤ JSONObject.get("키 값")을 이용해  양식에 맞게 출력한다.

반응형

'취업성공패키지 SW 개발자 교육 > Java' 카테고리의 다른 글

37. JDBC ①  (0) 2020.04.14
36. 외부 API ② : Jericho HTML Parser 이용하기  (0) 2020.04.08
34. Networking ②  (0) 2020.04.03
33. Networking ①  (0) 2020.04.02
32. IO ③  (0) 2020.04.01