PROJECT

package project.footballinfo.controller; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import java.io.IOException; import java.util.*; @Controller @RequiredArgsConstructor public class HomeController { /** * 외부 API 를 이용 * 화면에 출력 */ @GetMapping("/") public Str..
package project.footballinfo.controller; import org.springframework.http.RequestEntity; import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; import java.util.Map; public class ApiResponse { /** * API 요청 (URL을 통한) * * @param requestURL : API 요청 URL * @return : API 응답값 */ public static ResponseEntity getAPIResponse(String requestURL) { RestTemplate re..
문제1 - 각 리그 국기를 클릭하여, 알맞은 순위표로 변경하기 [문제1 - 해결 방법] : 자바스크립트를 이용하여, "버튼 클릭 이벤트" 와 "AJAX 비동기 통신" 을 이용하여 해결 문제2 - 불필요하게 너무 많은 API 요청으로 인한 오류 발생 "football-data.org" 에서 "free plan" 은 '분당 10회' 로 API 요청이 제한되어있다. [문제2 - 해결 방법] API 요청으로 받은 응답을 Caffeine 캐시를 이용하여 관리한다. 이를 통해 불필요하게 많은 요청을 방지한다. 'build.gradle' dependencies 추가 //Caffeine 캐시 implementation 'org.springframework.boot:spring-boot-starter-cache' imp..
[MatchController.java - 리그 매치 일정 엔드 포인트] //리그 별 매치 일정 검색 (leagueId 기반) //page, pageSize 별로 캐싱 @GetMapping("/matches/league/{leagueId}") @ResponseBody @Cacheable(value = "leagueMatchesCache", key = "#leagueId + '_' + #pageable.pageNumber + '_' + #pageable.pageSize", unless = "#result == null or #result.isEmpty()") public Page getMatchesByLeagueId(@PathVariable Long leagueId, Pageable pageable) th..
1. 프로젝트 스타트 패키지 만들기 [ https://start.spring.io/ ] 2. application.yml 설치 spring: profiles: active: local datasource: url: jdbc:h2:tcp://localhost/~/footballinfo username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: true use_sql_comments: true logging.level: org.hibernate.SQL: debug # org.hibernate.type: trace H2..
[개요] : 해외 축구 정보 API를 이용하여 실시간 해외 축구 정보를 제공하는 웹 서비스 [기능 설명] 카카오 오븐을 이용해 대략적 이미지 작성 [ https://ovenapp.io/ ] 1. 해외 축구 실시간 정보 제공 2. 관심있는 팀, 선수 정보 저장 및 중점 제공 +) 회원 가입 / 로그인 기능 [참고자료] https://www.youtube.com/watch?v=j_8mHz_G3Nw&list=LL&index=2&t=272s
내가 잘한다 했잖아
'PROJECT' 카테고리의 글 목록 (4 Page)