전체 글 133

V4L2 카메라 버퍼 관리 방식: MMAP과 USERPTR의 차이

V4L2(Video4Linux2)를 이용해 카메라 데이터를 처리할 때는 카메라 프레임 버퍼를 어떻게 할당하고 관리할 것인지를 결정해야 한다.대표적인 방식이 MMAP과 USERPTR이다. MMAP은 Driver가 버퍼를 관리하고 Application이 mmap()으로 접근하는 방식이고, USERPTR은 Application이 버퍼를 관리하고 Driver에 버퍼 주소를 전달하는 방식이다.1. MMAP 방식MMAP 방식에서는 V4L2 Driver가 카메라 프레임을 저장할 버퍼를 관리한다.Application은 mmap()을 호출하여 Driver가 관리하는 버퍼를 자신의 User Space 주소 공간에 매핑한다.카메라에서 전달되는 데이터는 DMA를 통해 버퍼에 기록되고, Application은 mmap()된 주..

Camera 2026.08.27

Raspberry Pi 서버를 Cloudflare Tunnel로 외부에 연결하기

Raspberry Pi 서버를 Cloudflare Tunnel로 외부에 연결하기개인 프로젝트를 Raspberry Pi에서 개발하면서, 외부에서도 API를 호출할 수 있도록 Cloudflare Tunnel을 구성했다.목표는 간단했다.Raspberry Pi의 로컬 Flask 서버를 인터넷에 직접 노출하지 않고, 고정된 도메인으로 외부에서 API를 호출하기최종적으로 다음과 같은 구조를 만들었다.[Android / PC] │ │ HTTPS ▼[Cloudflare] │ │ Cloudflare Tunnel ▼[Raspberry Pi] │ ├─ cloudflared │ └─ Flask :80801. Raspbe..

Web 2026.08.24

[SSH] 퍼블릭 키(Public Key) 생성 및 원격 서버 등록

RSA vs ED25519 차이점 비교두 알고리즘 모두 SSH 키 쌍(Key Pair)을 만드는 방식이지만, 기술적인 세대 차이가 존재한다. 현재 표준은 ED25519이다.결론: 시스템이 너무 오래된 구형 서버가 아니라면, 보안과 성능이 모두 뛰어난 ED25519 방식을 사용하는 것이 전 세계적인 권장 사항이다. SSH 키 생성 및 서버 등록 가이드1. 로컬 PC: 키 생성 및 복사아래 명령어를 순서대로 실행하고, 질문에는 모두 엔터(Enter)를 누른다. # 1. 키 생성ssh-keygen -t rsa -b 4096# 2. 퍼블릭 키 내용 출력 (화면에 나오는 텍스트 전체 복사)cat ~\.ssh\id_rsa.pub 2. 원격 서버: 키 등록 및 권한 변경 (Linux)서버에 접속하여 복사한 키를 ..

Linux, etc 2026.07.24

[Ollama] vs pytorch transformers

🔄 Ollama vs PyTorch/transformersPyTorch 직접 사용✅ 장점: 모델 구조에 직접 접근, 세밀한 제어 가능❌ 단점: 복잡한 설정, GPU 메모리 관리, 모델 로딩 시간 오래 걸림📦 특징: Transformers 라이브러리로 모델을 직접 다운로드하고 메모리에 로딩Ollama 사용✅ 장점: 간단한 설정, 자동 최적화, 빠른 시작, 모델 관리 편리✅ 특징: 서버-클라이언트 구조, 양자화 자동 적용, 메모리 효율적🚀 최적화: C++로 작성된 llama.cpp 엔진 사용 (더 빠름)# ollama 설치curl -fsSL https://ollama.com/install.sh | sh# llama3.2 1B(가장 작은 모델) 설치ollama pull llama3.2:1b 📊 Olla..

AI 2025.08.11

[SLM] smollm 돌려보기 with copilot

LLM SLM 공부하기 전 일단 돌려보자.. copilot에게 모든 코딩을 부탁해 보았다.전체 코드"""SmolLM 추론 코드 - 실제 모델 버전HuggingFace의 SmolLM-135M 모델을 사용합니다."""import warningswarnings.filterwarnings("ignore")import torchfrom transformers import AutoTokenizer, AutoModelForCausalLMclass SmolLMInference: def __init__(self, model_name="HuggingFaceTB/SmolLM-135M"): """ SmolLM 모델 초기화 Args: model_name: 사용할 S..

AI 2025.08.11

[aws ec2] vscode 연결: config 설정, 인스턴스 용량 증설

vscode 연결asw 인스턴스 생성 후 연결할 때 나오는 퍼블릭 DNS를 vscode ssh config HostName에 입력한다.그리고 인스턴스 생성 시 저장한 pem 파일 경로를 IndentityFile에 설정해준다.Host aws HostName ec2-######.compute.amazonaws.com User ubuntu Port 22 IdentityFile C:/Users/~~/.ssh/~~.pem 그리고 vscode에서 ctrl+p로 ssh 연결하면 끝 인스턴스 용량 증설아래 따라하니 성공!https://jaeyung1001.tistory.com/entry/AWS-EC2-%EC%9A%A9%EB%9F%89-%EC%A6%9D%EC%84%A4%ED%95%98%EA%B8%B..

AI 2025.08.11

[C++] thread 이해하기 기초

스레드(Thread)는 프로그램 내에서 독립적으로 실행되는 작업의 단위로, 프로세스 내에서 여러 스레드가 동시에 실행될 수 있다. 스레드는 경량 프로세스라고도 불리며, 같은 메모리 공간을 공유하기 때문에 스레드 간의 통신이 빠르고 효율적이다. 코드스레드에서 실행할 함수(threadFunction)을 정의하고, main 함수 내에서 std::thread의 인자로 정의한 함수를 전달하면, 스레드가 생성되며 함수가 실행된다.#include #include #include // Function to be executed by the threadvoid threadFunction() { std::cout  위 코드 예제에서 main 함수가 호출될 때 새로운 프로세스가 실행되며, std::thread를 사용해..

express

Express는 Node.js를 위한 빠르고 간결한 웹 프레임워크로, 웹 애플리케이션과 API를 쉽게 구축할 수 있도록 도와줍니다. Express는 미들웨어와 라우팅 기능을 제공하여 서버 측 로직을 간단하게 작성할 수 있게 해줍니다.Express의 주요 개념미들웨어(Middleware):미들웨어는 요청(Request)과 응답(Response) 객체를 처리하는 함수입니다. 미들웨어는 요청-응답 주기에서 여러 단계로 나뉘며, 각 단계에서 특정 작업을 수행할 수 있습니다. 미들웨어는 app.use()를 통해 등록되며, 순차적으로 실행됩니다.라우팅(Routing):라우팅은 클라이언트 요청에 대해 서버가 어떤 응답을 할지 결정하는 과정입니다. Express에서는 app.get(), app.post(), app.p..

Web 2024.06.17

CORS(Cross-Origin Resource Sharing)

웹 개발을 하다 보면 request를 할 때 CORS policy에 의해 에러가 발생하는 상황이 많다.CORS가 무엇인가?? CORS 웹 브라우저에서 실행되는 웹 애플리케이션이 다른 도메인, 프로토콜 또는 포트에서 리소스를 요청할 수 있도록 허용하는 보안 기능기본적으로 웹 브라우저는 동일 출처 정책 (Same-Origin Policy)를 따른다. 따라서 웹 페이지가 자신이 로드된 출처와 다른 출처의 리소스에 접근하려는 것을 제한한다.CORS는 이 제한을 완화하여 특정 조건 하에서 다른 출처의 리소스에 접근할 수 있게 만든다.여기서 출처(Origin)는 프로토콜(http/https), 도메인, 포트 번호를 포함한 세 요소로 구성된다. 같은 IP를 사용하더라도 포트 번호가 다르면 다른 출처로 간주된다. CO..

Web 2024.06.14

[ubuntu] apache로 서버 폴더 tree 보여주기

결과http://본인의 서버 IP:port/path 를 입력해서 위와 같이 서버의 폴더에 접근할 수 있게 만들어보자 ! 준비 사항ubuntu 서버에 apache가 설치되어 있다.sudo apt updatesudo apt install apache2 config 파일 수정/etc/apache2/apache2.conf 파일에서, 접근하고자 하는 폴더로의 엑세스 권한을 부여애햐 한다. Options Indexes FollowSymLinks AllowOverride None Require all granted DocumentRoot / Alias 설정/etc/apache2/sites-available/000-default.conf 파일에서, documentroot과 Alias를 설정할 수 있다...

Web 2024.05.28