본문 바로가기

분류 전체보기66

gst-rtsp-server 시그널 이해하기: media-configure와 media-constructed GStreamer의 gst-rtsp-server 라이브러리를 사용하여 RTSP 서버를 개발할 때, 클라이언트 요청에 따라 미디어 스트림이 동적으로 생성되고 파이프라인이 구성되는 경우가 많다. 이때 GstRTSPMedia 객체는 클라이언트에게 제공될 미디어 파이프라인을 관리하며, 파이프라인의 특정 부분이 동적으로 생성될 때 media-configure 및 media-constructed 시그널을 발생시킨다.이 시그널들은 특히 GstRTSPMediaFactory를 사용하여 파이프라인을 생성할 때 유용하며, 사용자가 동적으로 생성되는 파이프라인 부분에 개입하여 추가적인 엘리먼트를 연결하거나 설정을 변경할 수 있도록 한다.1. media-configure 시그널 (GstRTSPMedia)발생 시점:클라이언트로부.. 2025. 5. 16.
PM2에서 ecosystem.config.js를 사용하는 이유와 장점 PM2는 Node.js 애플리케이션을 관리하기 위한 강력한 프로세스 매니저이다. PM2는 실행 환경을 구성할 수 있도록 ecosystem 파일 방식을 제공한다. 이 구성 파일은 두 가지 형태로 작성할 수 있다.JSON 형식 (ecosystem.json)JS 모듈 형식 (ecosystem.config.js)이 문서에서는 ecosystem.config.js 파일을 사용하는 이유, 장점, 그리고 추가적으로 활용할 수 있는 기능에 대해 얘기하고자 한다.1. ecosystem.config.js vs ecosystem.jsonJSON 파일 사용 시 특징구조가 단순하여 자동 생성하기 쉬움정적(static) 설정만 가능주석을 작성할 수 없음환경 변수 하드코딩 필요JS 모듈 사용 시 특징Node.js 문법을 사용할 수 .. 2025. 5. 15.
Appwrite Android Quick Start 정리 Android 프로젝트를 Appwrite와 연동하기 위해 진행한 Quick Start 작업을 진행했지만 시행착오들을 겪었다. 첫 시도라 중간중간 기억해둬야 하겠다 싶은 개념이나 작업들이 있어, 이를 기록해두기 위해서 이 글을 작성한다. --- ### 1. Android 프로젝트 생성 1. Android Studio에서 **New Project** 클릭 2. **Empty Activity** 템플릿 선택 후 **Next** 3. 앱 이름(App name)과 패키지 이름(Package name) 입력. 패키지 이름이 Appwrite 프로젝트의 Android 플랫폼과 연동이 되기 때문에 중요하다. * 예: `cohttp://m.example.myapp` 4. **Finish** 클릭하여 프로젝트 생성 -.. 2025. 5. 15.
Jetpack Compose에서 FocusRequester의 개념과 필요성, 사용 방법 Jetpack Compose의 `FocusRequester`는 컴포저블(TextField 등)에 **프로그래밍적으로 포커스를 요청**할 수 있도록 돕는 유틸리티이다. 이것은 사용자의 입력을 유도하거나 특정 UI 상태 변화에 따라 입력 필드에 자동으로 포커스를 주어야 할 때 유용하게 사용된다. ## 1. 개념 `FocusRequester`는 Compose의 포커스 시스템과 연결되어 있으며, 특정 컴포저블이 **포커스를 받을 수 있도록 요청(Request)** 하는 역할을 한다. 일반적으로 키보드 포커스를 유도하기 위해 사용되며, 다음과 같은 경우에 활용된다. * 앱 시작 시 특정 TextField에 자동으로 포커스를 주고 싶을 때 * 버튼 클릭 후 입력 필드에 포커스를 주고 싶을 때 * 사용자의 행동에 따.. 2025. 5. 15.