프로젝트
-
Spring Batch란?프로젝트/스프링 배치 튜토리얼 2023. 2. 4. 00:01
Spring Batch 공식문서 https://docs.spring.io/spring-batch/docs/current/reference/html/ Spring Batch - Reference Documentation Welcome to the Spring Batch reference documentation! This documentation is also available as single html and pdf documents. The reference documentation is divided into several sections: The following appendices are available: Lucas Ward, Dave Syer, Thomas docs.spring.io Sprin..
-
DataGrip으로 테이블 DDL DML 추출하기프로젝트/미디어 스트리밍 서버 프로젝트 2023. 1. 31. 00:01
개요 Intellij의 DataGrip을 통해 database를 보던 중 application에 테스트 데이터를 추가하기 위해 테이블 정의를 위한 DDL과 insert query를 위한 DML을 추출하고 싶어 졌습니다. DDL 추출하기 테이블을 조회하면 상단의 중간부에 DDL이라는 단어가 보입니다. 해당 단어를 클릭하면 DDL문이 추출됩니다. -- auto-generated definition create table test_db ( test_column1 varchar(10) not null constraint pk_test_db primary key, test_column2 numeric(10, 2) not null, test_column3 timestamp not null, test_column4 ..
-
CDN이란?프로젝트/미디어 스트리밍 서버 프로젝트 2023. 1. 17. 00:01
[1] CDN 이란? [2] [AWS] CloudFront와 S3 연결하기 [이론편] CDN이란? Content Delivery Network의 약자로 콘텐츠 전송 네트워크입니다. 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술을 의미합니다. 비디오, 오디오, 앱, 게임, OS 업데이트와 같은 다운로드까지 광범위한 콘텐츠를 전송합니다. 마치 길거리의 ATM을 이용하게 된다면 직접 은행에 가지 않아도 되는 것을 떠올리면 좋습니다. CDN의 등장 배경 ATM이 없이 특정 은행에서만 돈을 출금할 수 있으면 어떻게 될까요? 1. 은행에서 거리가 먼 사람들은 은행에 가기 위해 오래 걸리게 됩니다. (사용자별 차별화된 경험) 조금 더 구체적으로 말하면 누구는 은행에 ..
-
선착순 쿠폰 발급 프로젝트 개요프로젝트/선착순 쿠폰 발급 시스템 2023. 1. 16. 00:01
개요 새로운 기술들을 접하면서 다양한 토이 프로젝트들을 진행해 보았습니다. - Python Flask를 활용한 주가 크롤링 - Pyhon을 활용한 Upbit RSI 알림이 - Google Teachable Machine을 활용한 동물 질병 분류 사이트 - Java + Spring으로 로그인 + 게시판 기능 구현해보기 - 싱글 모듈 Java + Spring을 Kotlin 멀티 모듈로 바꾸어 보기 - WebRTC(OpenVidu)를 활용한 운동 화상채팅 플랫폼 - Kotlin-TDD(자동차 경주 게임, 숫자 야구 게임) - 미디어 스트리밍 서버 구축 이 과정들 속에서 새롭게 배웠던 내용들도 존재하며 여러 프로젝트에 거쳐 공통적으로 적용했던 내용들도 있습니다. 다양한 프로젝트를 진행하며 쌓아온 경험들을 모두 ..
-
S3 pre-signed url 만들기(Kotlin + Spring)프로젝트/미디어 스트리밍 서버 프로젝트 2023. 1. 6. 00:01
pre-sigend url이란? 모든 객체 및 버킷은 기본적으로 private입니다. 보통 고객/사용자가 AWS 보안 자격 증명을 얻어 버킷에 접근하여 객체에 업로드합니다. 이때 pre-signed url을 통해 선택적으로 객체를 공유하여 보안 자격 증명이나 권한 없이 버킷에 객체를 업로드하는 것을 허용할 수 있습니다. 보통 pre-sigend url의 기능은 이를 만든 사용자의 권한에 의해 제한됩니다. pre-sigend url을 만들기 위해서는 보안 자격 증명을 제공하고 버킷 이름, 객체 키, HTTP 메서드 및 만료 날짜와 시간을 지정해야 합니다. 지정된 기간 동안만 유효합니다. pre-signed url 동작 과정 [그림 1] 과정을 글로 설명하면 다음과 같습니다. 1. 클라이언트가 서버에게 pr..
-
Adaptive Bitrate와 MPD파일프로젝트/미디어 스트리밍 서버 프로젝트 2023. 1. 5. 00:01
개요 mediaconvert의 ABR옵션을 알아보고 적용하는 과정에서 MPD파일과 APR옵션에 대한 이해를 가져가려고 합니다. 비디오를 전체 다운로드하고 비디오를 시청해야 할까? 비디오 파일을 보기 전 전체를 다운로드 할 필요가 없습니다. 이와 동일한 효과를 얻기 위해 재생을 위한 약간의 미디어 청크를 가져올 수 있습니다. 이때 주의할 점은 플레이어가 미디어를 소비하는 속도만큼 미디어를 수신해야 합니다. 만약 고품질 비디오를 스트리밍하려면 더 빠른 네트워크가 필요하게됩니다. 하지만 네트워크 속도는 상황에 따라 달라질 수 있습니다. ABR(Adaptive BitRate) 등장 위의 문제를 해결하기 위해 ABR이 등장하게 되었습니다. ABR은 2가지의 개념으로 이 문제를 해결합니다. 1. 다양한 품질 수준의..
-
Kotlin DSL Gradle 멀티 모듈 적용프로젝트/자프링 -> 코프링 마이그레이션 2022. 12. 27. 00:01
기존 프로젝트의 패키지 구조 기존 프로젝트는 [그림 1]처럼 하나의 단일 모듈 기반의 프로젝트로 구성되어 있습니다. build.gradle.kts에서 의존성이 관리되며 main폴더 아래에 모든 코드들이 들어가 있습니다. 이러한 구조를 멀티모듈으로 변환하고자 합니다. Why 멀티모듈? 현재는 단일 프로젝트이며 외부에 노출되는 external-api들만 존재합니다. 제공되는 기능 예시 - 사용자는 게시글을 쓸 수 있다 - 사용자는 로그인을 할 수 있다 - 사용자는 회원가입을 할 수 있다 이 상황에서 멀티 모듈을 도입하더라도 큰 의미가 없을 수 있습니다. 하지만 만약 내부에서만 사용하는 internal-api 관리자 api가 존재할 경우 이야기가 달라질 수 있습니다. 다른 프로젝트에서 internal-api를..
-
스프링과 스트리밍 서버프로젝트/미디어 스트리밍 서버 프로젝트 2022. 12. 23. 00:01
https://junuuu.tistory.com/467 스트리밍 서버란? 스트리밍이란? 스트리밍이란 인터넷(네트워크)을 바탕으로 사용자에게 각종 비디오, 오디오등의 멀티미디어 디지털 정보를 제공하는 기술로 인터넷에서 영상 및 음향 등의 파일을 다운로드 없 junuuu.tistory.com 이전시간에 스트리밍 서버에 대해서 알아보고 멀티미디어 전송방식에 대해서 알아보았습니다. 개요 각 전송방식에 대해 스프링을 활용하여 어떻게 구현할 수 있는지 알아보겠습니다. HTML5(video) + Spring Boot : Progressive download HTML5 태그 중 VIDEO 태그를 사용하여 웹에서 동영상을 플레이하는 기능입니다. HTML 소스에서는 아래와 같이 호출합니다. ... not use video..