본문 바로가기

개발 기록/Spring-boot

(4)
[Spring-boot] 영상 컨버팅 관련 AWS MediaConvert API 연동 및 ABR 모드 처리 이번에 AWS MediaConvert를 통해 ABR 형태 HLS 포맷으로 영상을 자동 컨버팅 할 수 있도록 하는 시스템을 구축하는 사항이 생겼다. 그래서 찾아보던 중 AWS MediaConvert JAVA 예제 github 소스를 발견하여 해당 소스를 활용하여 Spring-boot에서 사용할 수 있도록 모듈화 해보았다. 앞서 ABR 모드로 트랜스코딩하기 때문에 ABR에 대해 간결하게 적어본다. ABR이란? ABR (Available Bit Rate) : 가용 비트율 네트워크 프로그램이 활용할 수 있는 주파수 대역을 가능한 최대로 쓰면서 효과적으로 사용하도록 한다. 네트워크 트래픽을 발생시키는 장치에 피드백을 지속적으로 보내는데, 피드백을 받은 장치는 스위치 장비가 양질의 서비스를 보장할 수 있도록 하며,..
[Spring-boot] 다중 TransactionManager 멀티 트랜잭션 처리 mySQL를 사용할때 JPA를 활용하고 MongoDB는 starter-data-mongodb 라이브러리를 활용하여 데이터베이스를 처리하는 중에 항상 고민였던것이 다중 트랜잭션 처리였다. 나는 각각 서비스 및 기능에 따른 데이터베이스를 나누어 관리하는것을 선호하는 편이기에 회원과 서비스 데이터베이스가 각각 나뉘어져 있다. 그렇기 때문에 별도로 다중 datasource를 선언하고 트랜잭션을 각각 선언하여 사용하고 있다. 최근 개발하던 중 MongoDB 기반으로 회원 컬렉션과 서비스 관련 컬렉션을 동시에 처리하는 로직이 생겨서 트랜잭션을 어떻게 처리를 해야할지 고민 하던중에 스프링에서 지원하는 ChainedTransactionManager를 발견하였다. ChainedTransactionManager는 여러 트..
[Spring boot] EmbeddedMongo 기반 Multi DataSource(database) 이슈 (어플리케이션 정상 종료가 안되는 현상) 지난번 포스팅한 EmbeddedMongo에 대한 레플리케이션 셋팅을 다뤘었다. 프로젝트를 진행하면서 여러 라이브러리 및 클래스를 구현하다 보니 어느순간부터 어플리케이션 및 junit 테스트를 진행시 정상 종료가 안되는 현상이 있었다. 그래서 구현된 클래스 및 라이브러리들을 삭제해가면서 확인 하던중 뜻하지 않은곳에서 에러가 발생한거였다. 바로 EmbeddeRedis 설정시 yml파일에 설정한 time-out 설정값이 영향이 생기게 되었다. 좀 더 면밀하게 뜯어봐야 알겠 지만 EmbeddeRedis에 time-out을 설정하는 경우 Embedded기반의 관련 라이브러리들이 SpringShutdown Hook에 종 료 처리를 비동기식으로 처리하면서 timeout에 설정한 시간 동안 종료 시키지 않는 문제였다...
[Spring boot] EmbeddedMongo 기반 Multi DataSource(database) 설정 임베디드 MongoDB는 사실 라이브러리 Scope를 테스트에서만 돌리는것을 권장하여 testImplementaion 으로 설정을 한다. 한번 어플리케이션 레벨에 구동도 하고 싶고 다중 데이터 베이스 및 멀티 트랜잭션을 설정하는 방법을 찾아보았다. 구글링을 해봐도 내가 원하는 질문이나 답변은 없어서 하나하나 찾아서 결합 해보았다. 일단 찾아보니 조건 이러했다. 1. 멀티 트랜잭션을 설정하고 사용하려면 우선적으로 MongoDB가 Replication 설정이 되어 있어야 한다. 2. 멀티 트랜잭션을 통해 CRUD를 하는 경우 우선적으로 Collection이 생성 되어 있어야 한다. 3. 설정된 트랜잭션에 설정된 CollectionEntity Repository 외에 타 트랜잭션 및 데이터베이스의 Collec..