문제
Open API 실습
문제 1: 공공 데이터 포털의 대기오염 정보 조회
- 목표: 특정 지역의 대기오염 정보를 출력하는 프로그램 작성.
- API 예시: 한국환경공단_에어코리아 대기오염정보 API
- 요구사항:
- 사용자가 입력한 지역(시군구)의 대기오염 정보를 조회하세요.
- 미세먼지(PM10), 초미세먼지(PM2.5), 오존 농도 등의 데이터를 출력하세요.
- 대기질 상태에 따라 "좋음", "보통", "나쁨"으로 상태를 분류하여 표시하세요.
문제 2: 도서관 정보 검색
- 목표: 특정 지역의 공공 도서관 정보를 출력하는 프로그램 작성.
- API 예시: 공공도서관 정보 API
- 요구사항:
- 사용자가 입력한 지역명을 기준으로 도서관 목록을 검색하세요.
- 도서관 이름, 주소, 전화번호를 출력하세요.
문제 3: 버스 정류장 정보 조회
- 목표: 특정 버스 정류장의 정보를 출력하는 프로그램 작성.
- API 예시: 서울시 버스 정류소 정보 API
- 요구사항:
- 정류소 ID 또는 정류소 이름을 입력받아 정류소 정보를 조회하세요.
- 현재 도착 예정인 버스 번호와 도착 시간을 출력하세요.
문제 4: 관광지 정보 조회
- 목표: 특정 지역의 관광지 정보를 출력하는 프로그램 작성.
- API 예시: 한국관광공사_국내 관광정보 API
- 요구사항:
- 사용자가 입력한 지역명에 해당하는 관광지 목록을 출력하세요.
- 관광지 이름, 주소, 소개 정보를 표시하세요.
문제 5: 지하철 실시간 정보 조회
- 목표: 서울 지하철의 실시간 열차 도착 정보를 출력하는 프로그램 작성.
- API 예시: 서울교통공사_지하철 실시간 도착 정보 API
- 요구사항:
- 사용자가 입력한 역 이름을 기준으로 실시간 도착 정보를 조회하세요.
- 상행선/하행선 정보와 도착 예정 시간, 열차 번호를 출력하세요.
문제 6: 국내 도로 교통 정보 제공
- 목표: 실시간 교통 상황 정보를 출력하는 프로그램 작성.
- API 예시: 국토교통부_도로교통정보 API
- 요구사항:
- 특정 도로 또는 지역의 실시간 교통 혼잡도를 조회하세요.
- 혼잡도를 "원활", "보통", "정체"로 분류하여 사용자에게 표시하세요.
문제 7: 병원 정보 조회
- 목표: 특정 지역의 병원 정보를 출력하는 프로그램 작성.
- API 예시: 공공보건포털_병원 정보 API
- 요구사항:
- 사용자가 입력한 지역명과 진료과목(예: 내과, 소아과 등)을 기준으로 병원 정보를 조회하세요.
- 병원 이름, 주소, 전화번호, 운영 시간을 출력하세요.
문제 8: 한국 주식 시장 정보 조회
- 목표: 특정 주식 종목의 실시간 주가 정보를 출력하는 프로그램 작성.
- API 예시: 한국거래소 Open API
- 요구사항:
- 종목 코드를 입력받아 실시간 주가 정보를 조회하세요.
- 현재가, 고가, 저가, 거래량 정보를 출력하세요.
문제 9: 번역 API를 활용한 실시간 번역기 개발
- 목표: 입력 텍스트를 원하는 언어로 번역하는 프로그램 작성.
- API 예시: Google Translate API
- 요구사항:
- 사용자가 번역할 텍스트와 대상 언어 코드를 입력하면 번역된 결과를 출력합니다.
- 원본 텍스트와 번역 결과를 JSON 파일로 저장하세요.
문제 10: 위치 기반 맛집 검색 서비스
- 목표: 사용자의 현재 위치를 기반으로 주변 맛집 정보를 제공하는 프로그램 작성.
- API 예시: Google Places API
- 요구사항:
- 사용자의 위도와 경도를 입력받아 주변 맛집 정보를 검색하세요.
- 맛집 이름, 평점, 주소를 출력하세요.
문제 11: 사용자 맞춤 추천 시스템
- 목표: 사용자의 관심사를 입력받아 관련 추천 데이터를 제공하는 프로그램 작성.
- API 예시: Spotify API
- 요구사항:
- 사용자에게 음악 장르를 입력받아 해당 장르의 인기 플레이리스트를 검색하세요.
- 플레이리스트 제목과 URL을 출력하세요.
문제 12: 영화 정보 검색 API 활용
- 목표: 영화 제목으로 검색하여 관련 정보를 출력하는 프로그램 작성.
- API 예시: OMDb API
- 요구사항:
- 영화 제목을 입력받아 API를 호출합니다.
- 출력 내용에 영화 제목, 개봉 연도, 장르, 줄거리를 포함하세요.
문제 13: 날씨 API 활용
- 목표: 특정 도시의 날씨 정보를 출력하는 프로그램 작성.
- API 예시: OpenWeather
- 요구사항:
- 사용자가 도시 이름을 입력하면 API를 호출하여 현재 날씨를 출력하세요.
- 날씨, 온도, 습도 등의 정보를 JSON에서 파싱하여 출력하세요.
문제 14: 환율 정보 API 활용
- 목표: 특정 통화의 환율 정보를 출력하는 프로그램 작성.
- API 예시: ExchangeRatesAPI
- 요구사항:
- 기준 통화와 대상 통화를 입력받아 환율을 조회하세요.
- 환율과 함께 기준 통화에서 대상 통화로 환산된 금액을 출력하세요.
문제 1: 서울시 버스 정류장 정보 조회
- 목표: 특정 지역의 버스 정류장 목록 출력.
- API 예시: 서울 열린데이터 광장
- 요구사항:
- 사용자가 입력한 지역명(예: 강남구)을 기준으로 버스 정류장 목록을 출력하세요.
- 정류장 이름과 정류장 ID를 함께 표시하세요.
문제 2: 공공도서관 정보 조회
- 목표: 특정 지역의 공공 도서관 정보 출력.
- API 예시: 공공데이터 포털
- 요구사항:
- 지역명을 입력받아 해당 지역의 공공 도서관 목록을 출력하세요.
- 도서관 이름, 주소, 운영 시간을 표시하세요.
문제 3: 영화 박스오피스 순위 조회
- 목표: 현재 박스오피스 순위를 출력.
- API 예시: 영화진흥위원회
- 요구사항:
- 오늘 날짜의 박스오피스 순위를 출력하세요.
- 순위, 영화 제목, 관객 수를 표시하세요.
- 추가적으로, 특정 영화 제목을 입력하면 상세 정보를 조회하세요.
문제 4: 대기오염 정보 조회
- 목표: 특정 지역의 대기오염 상태 출력.
- API 예시: 한국환경공단_에어코리아
- 요구사항:
- 사용자에게 지역명을 입력받아 해당 지역의 미세먼지(PM10)와 초미세먼지(PM2.5) 농도를 출력하세요.
- 농도에 따라 "좋음", "보통", "나쁨"으로 상태를 표시하세요.
문제 5: 서울 지하철 실시간 도착 정보 조회
- 목표: 특정 지하철역의 실시간 열차 도착 정보 출력.
- API 예시: 서울 열린데이터 광장
- 요구사항:
- 사용자에게 역 이름을 입력받아 해당 역의 실시간 열차 도착 정보를 조회하세요.
- 도착 예정 시간, 열차 번호, 상행/하행 정보를 출력하세요.
문제 6: 전국 교통사고 통계 조회
- 목표: 특정 지역의 교통사고 통계 출력.
- API 예시: 도로교통공단 TAAS
- 요구사항:
- 사용자가 입력한 지역의 연간 교통사고 건수, 사망자 수, 부상자 수를 출력하세요.
- 데이터를 바탕으로 간단한 시각화를 추가하세요(예: 바 차트).
문제 7: 국내 관광지 검색 및 추천 서비스
- 목표: 사용자의 입력에 따라 관광지를 추천하는 프로그램 작성.
- API 예시: 한국관광공사
- 요구사항:
- 사용자가 관심 있는 지역(예: 부산)을 입력하면 해당 지역의 관광지를 출력하세요.
- 관광지의 이름, 주소, 주요 설명을 표시하세요.
- 사용자가 선택한 관광지의 상세 정보를 추가로 제공하세요.
문제 8: 날씨 기반 추천 시스템
- 목표: 실시간 날씨 정보를 기반으로 추천 활동 제공.
- API 예시: 기상청 기상자료개방포털
- 요구사항:
- 특정 지역의 현재 날씨를 조회하세요.
- 날씨 상태에 따라 추천 활동(예: 맑음 -> 야외 활동 추천, 비 -> 실내 활동 추천)을 제공하세요.
- 추천 활동과 관련된 장소 정보(예: 영화관, 공원 등)를 함께 출력하세요.
실습 가이드 (위 문제중 하나는 선택하여 API 구현하시오 )
- API 키 발급: 공공데이터 포털 또는 관련 기관에서 회원가입 후 API 키를 발급받으세요.
- 요청 방식 이해: 대부분의 API는 GET 또는 POST 요청을 사용하며, URL과 헤더 설정이 필요합니다.
- 에러 처리: 잘못된 입력 또는 API 호출 실패 시 적절한 에러 메시지를 반환하도록 구현하세요.
- 확장 가능성 고려: 단순 출력 외에 데이터를 저장하거나 시각화하는 기능을 추가해보세요.
풀이
68. [JAVA] 공공데이터 포털 API 이용 방법 : 영화 박스오피스순위
68. [JAVA] 공공데이터 포털 API 이용 방법 : 영화 박스오피스순위
공공데이터 포털 API 이용 방법공공데이터 포털 API는 다양한 데이터를 제공하여 개발자가 쉽게 활용할 수 있도록 합니다. Java를 사용해 공공데이터 포털 API를 이용하는 방법을 입니다. 1. 공공
danmi1109.tistory.com
문제 3: 영화 박스오피스 순위 조회
- 목표: 현재 박스오피스 순위를 출력.
- API 예시: 영화진흥위원회
- 요구사항:
- 오늘 날짜의 박스오피스 순위를 출력하세요.
- 순위, 영화 제목, 관객 수를 표시하세요.
- 추가적으로, 특정 영화 제목을 입력하면 상세 정보를 조회하세요.
실습 가이드 (위 문제중 하나는 선택하여 API 구현하시오 )
- API 키 발급: 공공데이터 포털 또는 관련 기관에서 회원가입 후 API 키를 발급받으세요.
- 요청 방식 이해: 대부분의 API는 GET 또는 POST 요청을 사용하며, URL과 헤더 설정이 필요합니다.
- 에러 처리: 잘못된 입력 또는 API 호출 실패 시 적절한 에러 메시지를 반환하도록 구현하세요.
- 확장 가능성 고려: 단순 출력 외에 데이터를 저장하거나 시각화하는 기능을 추가해보세요.
Postman
1. 응답 예시 참고하여 포스트맨 테스트 진행
intelliJ
1. mevn 동기화 진행
2. application.yml 파일 생성
spring:
profiles:
active: dev
movie:
api:
key: 발급키
url: http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json
3. config 패키지 생성
3-1. MovieConfig 클래스 생성
@Configuration
public class MovieConfig {
@Value("${movie.api.key}")
public String apiKey;
@Value("${movie.api.url}")
public String url;
}
3-2. RestTemplateConfig 클래스 생성
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
4. controller 패키지 생성
4-1. MovieController 클래스 생성
@GetMapping("/movies/rank")
getMovies(@RequestParam("date") String date){
movieService.getMovies(date);
}
5. service 패키지 생성
5-1. MovieService 클래스 생성
@Service
public class MovieService {
getMovies(String date){
5-2. 요청 인터페이스 확인
필수는 무조건 사용 , 다른것들은 API명세서 요청에 맞게 진행하면됩니다.
@Service
public class MovieService {
@Autowired
MovieConfig movieConfig;
getMovies(String date){
// 영화진흥원 API 를 호출.
// Uri 를 만든다.
URI uri = UriComponentsBuilder
.fromUriString(movieConfig.url)
.queryParam("key", movieConfig.apiKey)
.queryParam("targetDt", date)
.queryParam("multiMovieYn", "N")
.build()
.encode()
.toUri();
// 헤더 셋팅은 없으니까 헤더는 셋팅 안한다.
HttpHeaders headers = new HttpHeaders();
6. dto 패키지 생성
응답구조를 참조하여 작성합니다.
6-1. BoxOfficeResult 클래스 생성
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DailyBoxOffice {
public String rnum;
public String rank;
public String rankInten;
public String rankOldAndNew;
public String movieCd;
public String movieNm;
public String openDt;
public String salesAmt;
public String salesShare;
public String salesInten;
public String salesChange;
public String salesAcc;
public String audiCnt;
public String audiInten;
public String audiChange;
public String audiAcc;
public String scrnCnt;
public String showCnt;
}
6-2. Movie 클래스 생성
필요한 정보만 선택하여 클래스에 작성합니다.
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Movie {
public String rank;
public String rankInten;
public String movieCd;
public String movieName;
public String openDate;
public String salesAcc;
public String audiAcc;
}
'API > 실습' 카테고리의 다른 글
78. [JAVA] API 문서 문제 : JDBC -> JPA 진행 (2) (0) | 2025.01.15 |
---|---|
76. [JAVA] API 문서 문제 : JDBC -> JPA 진행 (1) (0) | 2025.01.14 |
63. [ JAVA ] Spring Boot를 이용한 API 통신 : 유튜브 검색 예시 (1) | 2025.01.12 |
61. [ JAVA ] API 리뷰 작성시 사진 추가 업로드 구현 (0) | 2025.01.12 |
55. [ JAVA ] API 문서 문제 : JWT(Json Web Token)(보안) / Admin(2) (1) | 2025.01.11 |