Skip to content

Feature/#46 kspo video stream#47

Merged
melonhong merged 2 commits intodevelopfrom
feature/#46-kspo-video-stream
Dec 3, 2025
Merged

Feature/#46 kspo video stream#47
melonhong merged 2 commits intodevelopfrom
feature/#46-kspo-video-stream

Conversation

@melonhong
Copy link
Contributor

#️⃣연관된 이슈

ex) #이슈번호, #이슈번호

close #46

📝작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능)

국민체력100 공공데이터의 동영상 리소스를 안정적으로 스트리밍하기 위한 백엔드 프록시 API를 구현했습니다.

  • 동영상 스트리밍 프록시 아키텍처 구축
  • 외부 서버의 미디어 파일을 다운로드 대기 없이 실시간으로 클라이언트에 중계하는 로직 구현
  • 서버 리소스 최적화 (Stream Pipelining)
  • 대용량 미디어 전송 시 서버 메모리에 데이터를 적재하지 않고, Input/Output 스트림을 직접 연결하여 메모리 효율성 증대
  • 외부 통신 안정성 및 보안 강화
  • 외부 서버의 봇(Bot) 차단 정책 및 프로토콜 리다이렉트 이슈에 유연하게 대응하는 통신 프로세스 적용
  • 브라우저 환경에서 별도의 파일 다운로드 과정 없이 즉시 영상이 재생되도록 응답 프로토콜 및 헤더 규격 조정

스크린샷 (선택)

image

💬리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

- 기존 FeignClient 기반의 파일 다운로드 방식을 HttpURLConnection 스트리밍 방식으로 전면 수정
- 공공데이터 포털의 301 Moved Permanently (HTTP -> HTTPS) 리다이렉트 수동 처리 로직 추가
- 외부 서버의 봇(Bot) 차단 정책 우회를 위한 User-Agent 헤더 위장(Chrome) 적용
- StreamUtils.copy를 사용하여 서버 메모리 점유를 최소화하고 응답을 실시간 파이프라이닝 처리
- 브라우저 내 즉시 재생 지원을 위해 Content-Disposition: inline 및 Content-Type: video/mp4 헤더 명시
@melonhong melonhong merged commit d32f42a into develop Dec 3, 2025
1 check passed
@melonhong melonhong deleted the feature/#46-kspo-video-stream branch December 3, 2025 07:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] 국민체력100 동영상 스트리밍 프록시 API 구현

1 participant