프로젝트
-
[Spring + Kotlin]Kotest와 MockK를 활용한 테스트 코드 작성프로젝트/미디어 스트리밍 서버 프로젝트 2022. 8. 19. 12:52
개요 코틀린과 스프링을 같이 쓰게 되면 junit5를 주로 사용하곤 했습니다. 하지만 Kotest라는 테스트 프레임워크의 인기가 높아지고 있습니다. Kotest란? 확장 Assertions와 통합 Property test를 통해 코틀린을 위한 유연하고 우아한 다중 플랫폼 오픈 소스 테스트 프레임워크입니다. 여러 개의 독립 실행형 하위 프로젝트로 나뉘며, 각 하위 프로젝트는 독립적으로 사용할 수 있습니다. Test framework Assertions library Property testing kotest를 사용하여 세 가지 프로젝트를 모두 함께 사용할 수 있습니다. 또는 다른 프로젝트와 함께 선택하여 사용할 수 있습니다. 예를 들어 Junit과 함께 Assertions library를 사용할 수 있습니..
-
ktlint와 Github Action을 활용한 CI프로젝트/미디어 스트리밍 서버 프로젝트 2022. 8. 17. 21:57
ktlint란? Kotlin 언어의 공식 사이트에서는 코딩 컨벤션 가이드를 제공합니다. ktlint는 공식 가이드의 규칙을 포함하여 코드 스타일을 검사하고 맞춰주는 도구입니다. ktlint를 통해 팀원들과 정해진 포맷팅을 맞추어 개발할 수 있게 되고 코드 가독성이 향상되는 효과를 볼 수 있습니다. ktlint gradle 설정하기 plugins { id("org.jlleitschuh.gradle.ktlint") version "" } .editorconfig 설정하기 코드 포맷에 대한 문서의 역할을 수행하는 파일입니다. ktlint가 버전이 올라가면서 규칙의 디폴트 값이 변경될 경우를 대비할 수 있습니다. Kotlin 공식 코딩 컨벤션에 명시되지 않은 규칙까지 일치시킬 수 있습니다. .editorconf..
-
스트리밍 서버란?프로젝트/미디어 스트리밍 서버 프로젝트 2022. 8. 16. 21:21
스트리밍이란? 스트리밍이란 인터넷(네트워크)을 바탕으로 사용자에게 각종 비디오, 오디오등의 멀티미디어 디지털 정보를 제공하는 기술로 인터넷에서 영상 및 음향 등의 파일을 다운로드 없이 실시간으로 재생해 주는 기법입니다. 전송되는 데이터가 마치 물이 흐르는 것처럼 처리된다고 하여 "streaming"이라 표현합니다. 파일이 모두 전송되기 전이라도 클라이언트 브라우저 또는 플러그인이 데이터를 표현하기 시작합니다. 스트리밍의 원리 큰 용량의 오디오나 동영상 파일을 다운로드 완료될 때까지 기다리지 않고 일정량의 데이터를 특수한 압축기술로 압축한 다음 파일을 잘게 쪼개서 전송합니다. 스트리밍 서비스에서는 인터넷 속도가 가장 중요합니다. 만약 인터넷 환경이 좋지 않은 경우에 일반적인 다운로드는 다운 속도가 느려지기..
-
JPA 동시성 문제 해결하기 (트랜잭션과 락)프로젝트/WebRTC 화상통화 프로젝트 2022. 8. 9. 00:01
동시성 문제란? 두개 이상의 세션이 공통된 자원에 대해서 읽고 쓰는 작업을 할 때 발생할 수 있는 문제입니다. 기본적으로 동시성 문제는 완전한 해결이 있는 것이 아닌 타협입니다. 성능을 포기하고 정확성을 높이느냐 vs 정확성을 타협하고 성능을 높이느냐 이러한 점을 명확하게 보여주는것이 바로 트랜잭션의 격리 단게입니다. Read Uncommited, Read Commited, Repeatable read, Serializable 일반적으로 주로 사용되는 DB는 주로 Rad Commited에 해당하는 격리수준을 가지고 있습니다. 하지만 JPA를 사용할 경우 영속성 컨텍스트에 캐시해놓기 때문에 Repeatable read 수준과 동일하게 동작하게 됩니다. JPA 에서는 영속성 컨텍스트에 캐시하기 때문에 "읽관..
-
nginx에 SSL 인증서 적용하기프로젝트/WebRTC 화상통화 프로젝트 2022. 8. 8. 17:21
지난 시간에 SSL 인증서를 발급받았습니다. letsencrypt 인증서 발급하고 OpenVidu에 적용하기 :: 매일매일 꾸준히 (tistory.com) letsencrypt 인증서 발급하고 OpenVidu에 적용하기 1. Ubunto 서버에서 다음 명령어를 통해 인증서를 발급받습니다. (인증서를 발급받기 위해서는 도메인이 필요합니다) sudo apt-get install letsencrypt # 만약 nginx를 사용중이면 중지 sudo systemctl stop ngin.. junuuu.tistory.com 이 인증서를 nginx에 적용하는 법을 알아보겠습니다. nginx란? https://junuuu.tistory.com/323 자세히 알고 싶으시면 위의 링크로 이동하시면 좋을 것 같습니다. 간단..
-
Jenkins로 Gitlab CI/CD 구축하기(Spring + MySQL + JenKins + Redis + Nginx)프로젝트/WebRTC 화상통화 프로젝트 2022. 8. 6. 00:01
(1) Window에서 도커로 MySQL + SpringBoot 띄우기 (2) Ubuntu에서 Spring,MySQL, Redis Docker Compose로 배포하기 (3) Jenkins로 Gitlab CI/CD 구축하기(Spring + MySQL + JenKins + Redis + Nginx) 이해하는데 필요한 사전 지식 - Docker - Docker Compose - ubuntu / linux - gitlab 개요 이전에 Docker Compose를 활용하여 Spring + MySQL + Redis를 배포하였습니다. Jenkins로 CI/CD를 구축하게 되면 gilab에 spring이 새롭게 push 되면 기존의 spring conatiner를 내리고 새로운 spring container를 올릴 ..
-
letsencrypt 인증서 발급하고 OpenVidu에 적용하기프로젝트/WebRTC 화상통화 프로젝트 2022. 8. 5. 00:01
1. Ubunto 서버에서 다음 명령어를 통해 인증서를 발급받습니다. (인증서를 발급받기 위해서는 도메인이 필요합니다) sudo apt-get install letsencrypt # 만약 nginx를 사용중이면 중지 sudo systemctl stop nginx # 인증서 발급 sudo letsencrypt certonly --standalone -d www제외한 도메인 이름 # 이메일 쓰고 Agree # 뉴스레터 no # 키가 발급되는데 이 두 가지를 써야합니다. 밑의 경로에 각각 하나씩 있습니다. ssl_certificate /etc/letsencrypt/live/도메인이름/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/도메인이름/privkey...
-
Ubuntu에서 Spring, MySQL, Redis Docker Compose로 배포하기프로젝트/WebRTC 화상통화 프로젝트 2022. 8. 4. 13:33
(1) Window에서 도커로 MySQL + SpringBoot 띄우기 (2) Ubuntu에서 Spring,MySQL, Redis Docker Compose로 배포하기 (3) Jenkins로 Gitlab CI/CD 구축하기(Spring + MySQL + JenKins + Redis + Nginx) 지난 시간에는 Spring과 MySQL을 도커로 띄워서 사용해보았습니다. 하지만 네트워크를 생성하고 이미지를 여러 옵션을 줘서 실행시키는 번거로운 절차들이 필요했습니다. 따라서 이 점을 보완하며 여기에 redis까지 적용하여 Docker Compose로 배포해보겠습니다. https://junuuu.tistory.com/420?category=1014988 스프링 부트 + Mysql 도커로 띄우기 개요 Sprin..