본문 바로가기

반응형

Tech

(56)
[Docker] Docker Compose compose는 multi-container Docker applications을 정의하고 실행하는 도구이다. docker compose에서는 YAML 파일을 통해 애플리케이션 서비스를 설정할 수 있다. compose 사용법은 기본적으로 3가지 단계를 거친다. app의 환경을 Dockerfile로 정의하여 어느 곳에서는 재사용할 수 있도록 한다. app의 서비스들을 docker-compose.yml 파일에 정의하여 독립된 환경에서 함께 동작할 수 있도록 한다. 'docker compose up' 명령어를 통해 전체 app을 실행시킨다. docker-compose binary를 사용하여 'docker-compose up' 명령어를 사용해도 된다. - docker-compose.yml version: "3...
[Docker] Dockerfile 개념 정리 1. Dockerfile Dockerfile은 새로운 도커 이미지를 빌드할 때 사용하는 파일이다. Docker는 Dockerfile에 작성되어 있는 명령어를 읽어들여 자동으로 이미지를 빌드할 수 있다. Dockerfile은 텍스트 문서로 사용자가 이미지를 빌드하기 위한 명령어 들로 구성되어있다. Dockerfile을 실행하기 위해서는 'docker build' 명령어를 사용하여 실행한다. docker build 명령어 실행 시, Dockerfile에 작성되어 있는 명령어들로 도커 이미지를 빌드한다. 2. Usage 'docker build' 명령어는 Dockerfile의 내용과 context를 통해 이미지를 빌드한다. 빌드 context는 해당 위치의 PATH 또는 url에 있는 파일들의 집합을 의미한다..
[Deepstream] Gst-nvdsanalytics Gst-nvdsanalytics는 nvinfer와 nvtracker에 의해 추가된 metadata에 대한 분석을 진행한다. 분석은 ROI filtering, Overcrowding Detection, Direction Detection, Line Crossing에 대해서 진행한다. 해당 기능은 batch mode로 동작하는데, 여러 stream의 context를 독립적으로 조작한다. ROI 기반의 분석은 primary detector의 결과에서 동작하지만 Direction Detection이나 Line Crossing은 이전의 기록/상태를 분석하기 위해서 tracker-id가 필요하다. 해당 플러그인의 설정은 configuration file을 통해서 할 수 있다. Gst-nvdsanalytics는 ba..
[Deepstream] Gst-nvinfer Gst-nvinfer plugin은 NVDIA TensorRT를 사용하여 입력값을 inferencing한다. 이 플러그인은 NV12/RGBA buffer를 입력받는데, 이때 Gst Buffer에 NvDsBatchMeta structure가 미리 추가되어 있어야 한다. low-level library (libnvds_infer)는 network height와 width 차원의 INT8 RGB, BGR 또는 GRAY 데이터에서 작동한다. Gst-nvinfer는 해당 network의 요청에 맞춰 input data를 변형(conversion, scailing)하고, 이를 low-level library로 전달한다. low-level library는 변형된 frame을 전처리(normalizaation, mea..
[Deepstream] Gst-nvstreammux Gst-nvstreammux plugin은 multiple input sources로부터 생성되는 프레임들을 batch로 묶는 기능을 한다. nvstreammux에 source를 연결하기 위해서는 새로운 pad를 muxer에 요청하여 생성해야한다. 이때gst_element_request_pad() 함수와 pad 템플릿 sink_%u를 사용한다. muxer는 property에서 batch-size로 정해진 만큼의 frame들로 batched buffer를 구성한다. 만약 muxer의 input format과 output format이 같은 경우 해당 source에서 전송된 frame을 batched buffer에 포함시킨다. 만약 input과 output의resolution이 같지 않으면 muxer가 in..
[GStreamer] GStreamer 개념 정리 GStreamer는 스트리밍 미디어 애플리케이션을 개발을 위한 프레임워크로 Deepstream은 GStreamer를 기반으로 한 SDK이기 때문에 GStreamer의 기본 개념을 우선적으로 정리한다. gstreamer 프레임워크는 모든 형태의 스트리밍 미디어 애플리케이션을 개발할 수 있다. 오디오나 비디오 한가지 타입만 가능한 것이 아니라 두가지 타입 모두를 다룰 수 있도록 개발이 되었다. 또한 어떤 종류의 데이터 흐름도 구성할 수 있는 파이프라인 구조로 되어있다. [gstreamer plugins] - protocols handling- sources: for audio and video- formats: parsers, formaters, muxers, demuxers, metadata, subtit..
[Spring] Spring Framework 개념 정리 Spring Framework Overview Spring은 자바 엔터프라이즈 애플리케이션의 생성을 간단하게 해주는 프레임워크이다. 자바 언어 기반 뿐만 아니라 Groovy와 Kotlin을 JVM 환경에서 개발하기 위한 기능을 제공해준다. Spring Framework 특징 1. Ioc Container 스프링은 IoC 개념 기반으로 설계되었다. IoC (Inversion of Control)는 제어의 역전이라는 뜻으로 DI (Dependency Injection) 으로도 알려져 있다. 해당 개념은 객체 생성자 인자 또는 인스턴스 프로퍼티 설정 등의 방법 만을 통해서 그들의 의존성을 정의한다. 그리고 컨테이너는 bean이 생성될 때 정의된 의존성을 주입시켜준다. 이러한 과정을 통해서 컨트롤의 제어 주도권..
[Docker] 도커 개념 정리 Docker 도커는 어플리케이션의 개발, 실행 관리 등을 할 수 있도록 해주는 오픈 플랫폼이다. 주로 개발 환경을 관리하는 가상 환경과 같은 플랫폼으로 개발 인프라를 관리하는데에 사용한다. 도커를 사용하여 개발 인프라를 관리하고 이를 기반으로 개발, 배포 등을 진행하여 사용자의 인프라에 상관없이 어플리케이션을 실행할 수 있도록 한다. The Docker platform 도커는 컨테이너라고 부르는 독립된 환경을 통해서 어플리케이션을 패키징하고 실행할 수 있다. 컨테이너를 사용하여서 현재 로컬의 환경과는 상관없이 어플리케이션 실행에 필요한 독립된 개발환경을 구축할 수 있다. 또한 구축된 컨테이너를 공유, 배포할 수 있다. What can I use Docker for? ■ application CI/CD -..

반응형