| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- rolldown
- adb pair
- custom printing
- nextjs
- adb connect
- github pdf
- 티스토리 성능
- device in use
- Git
- dvh
- github 100mb
- Failed to compiled
- Recoil
- camera permission
- ffi-napi
- npm package
- Can't resolve
- react-native-dotenv
- Each child in a list should have a unique "key" prop.
- 이미지 데이터 타입
- ELECTRON
- html
- github lfs
- animation
- vercel git lfs
- augmentedDevice
- camera access
- silent printing
- electron-packager
- react-native
- Today
- Total
목록CS (17)
Bleeding edge
도커(Docker) 환경에서 고성능 통신을 구축할 때 핵심인 ipc: host 옵션에 대해 정리합니다. "한 대의 PC에서 여러 대의 PC가 네트워크로 연결된 것처럼 테스트하면서도, 로컬 PC의 자원을 공유하는 환경"을 만드는 것이 목적입니다.# 왜 ipc: host 설정이 필요한가?기본적으로 도커 컨테이너는 독립된 환경을 가집니다. 자기들만의 격리된 통신 공간(IPC)을 할당받기 때문입니다. 하지만 여러 대의 PC가 같은 네트워크망에 물려있으면서도 실제로는 로컬 자원을 공유하는 효율적인 테스트 환경을 만들려면 이 격리를 해제해야 합니다.ipc: host 옵션을 사용하면 컨테이너의 격리된 담장을 허물고 호스트 PC의 메모리 공간을 직접 공유하게 됩니다.# 이 옵션으로 할 수 있는 것들 (Feat. 다중 ..
SOF0, SOF2, 그리고 Baseline JPEG / Progressive JPEG 쉽게 이해하기JPEG 파일을 다루다 보면 가끔 이런 말을 보게 됩니다.FF C0 = SOF0 → baseline DCTFF C2 = SOF2 → progressive DCT처음 보면 무슨 암호처럼 보입니다.하지만 알고 나면, 이 값들은 JPEG 이미지가 어떤 방식으로 저장되었는지 알려주는 아주 중요한 단서입니다.이번 글에서는 FF C0, FF C2, SOF0, SOF2, 그리고 baseline JPEG와 progressive JPEG의 차이를 쉽게 정리해보겠습니다.JPEG 파일 안에는 “마커”가 있다JPEG는 단순히 픽셀만 저장하는 포맷이 아닙니다.파일 내부에는 여러 종류의 마커(marker) 가 들어 있고, 디코더는..
영상 코덱을 보다 보면 H.264, HEVC, AV1 이렇게 계속 나오는데, 처음엔 그냥 “세대 올라간거” 정도로만 생각했다. 근데 하나씩 보면 이게 단순 발전이 아니라, 각 시점에서 해결하려던 문제가 다르다.전체 흐름 (한 번에 보면 이거다)H.264 → “영상 전송 가능하게 만들자”HEVC → “용량 더 줄이자 (4K 대응)”AV1 → “돈 안 내고 더 줄이자”1. H.264 — 영상이 “가능해진” 시점옛날에는 영상 자체가 너무 커서 인터넷으로 보내는 게 힘들었다. 그래서 나온 게 H.264다. 핵심은 단순하다.“영상 크기 줄여서 전송 가능하게 만들자”그래서:블록 단위 압축이전 프레임 활용 (inter)기본적인 motion estimation결과:Before : 영상 = 너무 큼 (전송 불가)A..
요즘 영상 인코딩 쪽을 보다 보면 계속 부딪히는 질문이 있다.“NVENC가 빠르다는데 AV1은 왜 쓰지?” / “NVENC 최고 옵션이면 이미 좋은거 아닌가?”이걸 그냥 속도 vs 품질 정도로 이해하고 있었는데, 조금 깊게 보니까 이건 그런 문제가 아니라애초에 설계 철학이 다른 문제였다.구조부터 다름NVENC는 GPU 안에 들어있는 전용 인코딩 칩(ASIC)이다. 프로그램이 아니라 하드웨어다.그래서 특징이 명확하다: 빠름 / 일정함 / 대신 유연성 없음.반대로 AV1 (libaom, SVT, 그리고 GPU 기반 구현들)은 그냥 코드다.CPU든 GPU든 위에서 돌아가는 알고리즘이다. 그래서 느릴 수 있지만, 대신 얼마든지 복잡하게 만들 수 있다.핵심 차이: 얼마나 많이 비교하느냐영상 압축은 결국 이 문제다..
ROS 2에서 카메라 노드 제어: Inactive vs Subprocess로봇 시스템을 개발하다 보면, 센서나 카메라 노드를 켰다 껐다(on/off) 해야 하는 경우가 많습니다. 예를 들어, 카메라를 계속 켜두면 전력이나 리소스를 많이 차지할 수 있고, 다른 프로세스에서 카메라 장치를 접근해야 하는 경우도 있죠. 이때 ROS 2에서는 크게 두 가지 접근 방식이 있습니다:Lifecycle Node의 inactive 상태 활용프로세스(subprocess) 단위로 노드를 완전히 종료 후 재실행1. Lifecycle Node의 inactive 상태ROS 2에는 Managed Lifecycle Node라는 개념이 있습니다.Lifecycle Node는 노드가 여러 상태(unconfigured → inactive →..
🔎 ROS2 DDS 환경 설정 확인하기: ps 명령어 활용 가이드ROS2를 실행하다 보면DDS 설정 파일 (CYCLONEDDS_URI, FASTRTPS_DEFAULT_PROFILES_FILE)ROS Domain ID (ROS_DOMAIN_ID)RMW 선택 (RMW_IMPLEMENTATION)이런 환경 변수들이 실제 실행된 프로세스에 어떻게 적용되었는지 확인하고 싶을 때가 있습니다.이럴 때 유용하게 쓸 수 있는 도구가 바로 ps 입니다.1. 실행 중인 프로세스 찾기먼저 특정 노드 프로세스를 찾습니다.ps -ef | grep 예시 (talker 노드 실행 중):ps -ef | grep talker2. ps --pid 로 특정 프로세스 보기--pid 옵션을 사용하면 특정 PID의 프로세스 상태를 확인할 수 ..
1. DDS란 무엇인가?DDS(Data Distribution Service)는 분산 시스템에서 데이터를 효율적이고 신뢰성 있게 주고받기 위한 퍼블리시–서브스크라이브(Pub-Sub) 기반 미들웨어 표준입니다.ROS 2는 노드 간 통신을 위해 DDS를 기본 기반 기술로 사용합니다.기존 TCP/UDP 소켓 통신과 달리, DDS는 단순 데이터 송수신을 넘어 다음 기능을 제공합니다.QoS(Quality of Service) 설정신뢰성, 지연 허용 범위, 데이터 유지 기간 등을 설정 가능자동 Discovery네트워크에 새로운 참여자(Participant)가 나타나면 자동으로 연결멀티캐스트 / 유니캐스트 지원보안 기능 (암호화, 인증)실시간 데이터 전송을 위한 최적화 2. DDS의 주요 구현체 종류DDS는 OMG(..
네트워크 본딩(Network Bonding)이란 두 개 이상의 네트워크 인터페이스를 하나로 묶어 트래픽을 공유하거나 백업할 수 있도록 하는 기술입니다. 이를 통해 네트워크의 안정성을 높이고, 특정 인터페이스가 다운되더라도 연결이 유지될 수 있도록 설정할 수 있습니다. 물론 저 같은 경우에는 무선으로 인터넷을 연결하고 유선으로는 로봇을 연결하였습니다이번 글에서는 유선(eno2)과 무선(wlo1) 네트워크를 본딩하여 사용할 수 있도록 설정하는 방법을 소개합니다. 1. 네트워크 인터페이스 설정 파일 수정터미널을 열고 다음 명령어를 실행하여 네트워크 인터페이스 설정 파일을 엽니다.sudo vi /etc/network/interfaces파일이 열리면 아래 내용을 추가합니다.auto bond0iface bond0 ..
문제가 생기는 조건 vscode의 terminal에서 code 라는 커맨드를 사용하면 zsh: command not found: code라는 에러가 생긴다. 이를 해결하기 위해서 이전에 검색을 해보니 Shift+cmd+P를 이용하여 code를 재설치하라는 이야기가 나왔었다. 문제는 이 문제가 근본적인 해결은 아니고 code에 대해서 한번 사용하고 나서 조금만 지나도 다시 같은 문제가 발생한다 해결 방법 관리자 권한 없이 실행을 위한 코드를 작성하기 위해 다음과 같이 code에 대한 내용을 추가하였다. code () { VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $* ;} source ~/.zshrc