분류 전체보기302 CMake와 Meson에서 만든 정적 라이브러리 .a 파일, 호환이 될까? C++ 프로젝트를 빌드할 때 자주 사용되는 빌드 시스템인 CMake와 Meson, Bazel.이 두 빌드 시스템은 내부 구조가 다르지만, 둘 다 .cpp 파일을 컴파일해 .o를 만들고, .o를 모아서 .a라는 정적 라이브러리를 생성한다는 점은 같습니다.그렇다면,CMake로 만든 .a 정적 라이브러리 파일을 Meson 프로젝트에서 사용할 수 있을까요?혹은 그 반대는 가능할까요?결론부터 말씀드리면, 가능합니다. 하지만 몇 가지 조건을 만족해야 해요.정적 라이브러리 .a의 정체정적 라이브러리(.a)는 여러 개의 오브젝트 파일(.o)을 묶은 압축 파일로, 실행파일을 만들 때 링커가 참조하는 대상입니다.📦 예시:ar rcs libmylib.a file1.o file2.o이 파일은 libmylib.a라는 이름의 .. 임베디드 관련 카테고리/C++ 2025. 4. 11. C++ 빌드 개념과 오브젝트 파일(.o), 정적 라이브러리(.a), 링커 이해하기 C++ 개발을 시작하면 반드시 마주치는 개념 중 하나가 바로 오브젝트 파일(.o), 정적 라이브러리(.a), 그리고 **링커(Linker)**입니다.특히 CMake나 Meson처럼 빌드 시스템을 사용하여 다양한 디렉터리로 나뉘어진 프로젝트를 빌드할 때, 이 구조에 대한 이해는 필수예요.이 글에서는 빌드 과정을 쉽게 설명하고, 실무에서 자주 겪는 정적 라이브러리 연동과 링커의 역할까지 함께 정리해보겠습니다.🛠️ C++ 빌드 과정, 단계별로 이해하기C++ 프로그램은 아래와 같은 과정을 거쳐서 실행파일이 됩니다.1. 전처리 (Preprocessing)#include, #define, #ifdef 같은 전처리 지시문을 처리하는 단계입니다..cpp 파일에서 헤더 파일들을 실제 코드로 치환해 .i 파일을 만들어냅.. 임베디드 관련 카테고리/C++ 2025. 4. 11. JAX에 대해 알아보자 GPU 가속 + 자동 미분의 끝판왕, 그리고 NumPy와의 완벽한 호환성 🧠 JAX란?JAX는 NumPy와 같은 API를 제공하면서 GPU 가속과 자동 미분 기능까지 지원하는 차세대 수학 라이브러리입니다.요약하자면,NumPy + Autograd + XLA = JAX🧩 JAX의 주요 기능기능설명jnp (JAX NumPy)NumPy와 거의 동일한 문법으로 GPU 연산 가능grad()함수의 도함수를 자동으로 구함 (Autograd)jit()연산을 Just-In-Time 컴파일하여 속도 향상vmap()벡터화 자동 처리 (for문 없이도 여러 입력 처리)GPU/TPU 가속코드 수정 없이 자동으로 GPU에서 연산 실행⚙️ 설치 방법기본 설치 (CPU만):pip install jax jaxlibGPU 사용 환경 .. 임베디드 관련 카테고리/Embedded System 2025. 4. 8. PyCUDA란 무엇인가? Python으로 GPU를 직접 다루는 법, 쉽고 강력하게! 🧠 PyCUDA란?PyCUDA는 CUDA(C++) 코드를 Python에서 작성하고 실행할 수 있게 해주는 라이브러리입니다.즉,Python + GPU + 병렬 처리 = PyCUDAPyCUDA는 다음과 같은 강점을 가지고 있어요:장점설명CUDA 커널 직접 작성 가능고성능 커스터마이징 가능NumPy와 자연스럽게 연동데이터를 GPU로 넘기기 쉬움빠른 컴파일과 실행런타임에 CUDA 코드를 컴파일GPU 메모리 직접 제어최적화에 용이함⚙️ 설치 방법pip install pycuda💡 설치 전에 CUDA Toolkit이 설치되어 있어야 합니다.nvcc --version으로 확인해보세요!🧪 PyCUDA 기본 예제: 벡터 덧셈이제 간단한 GPU 연산 예제를 .. 임베디드 관련 카테고리/Embedded System 2025. 4. 7. NumPy란 무엇인가? GPU 연산 전에 꼭 알아야 할 파이썬 수학 연산의 기본기👋 시작하며“GPU 연산? CUDA? PyCUDA? JAX?”이런 단어들이 눈에 띄기 시작했다면,그 전에 먼저 NumPy를 제대로 이해하는 것이 아주 중요합니다.오늘은 수치 연산의 기본기이자,GPU 연산의 출발점이라고 할 수 있는 NumPy를예제 중심으로 쉽고, 빠르게 이해해보겠습니다.🧩 NumPy란?**NumPy(Numerical Python)**는 과학 계산에 특화된 파이썬 라이브러리입니다.특히 배열 연산, 선형대수, 통계 처리 등에서 많이 쓰여요.간단히 말해서:"파이썬을 수학 계산용 언어로 만들어주는 도구"💡 NumPy를 쓰면 뭐가 좋을까?기능설명고성능 다차원 배열ndarray라는 타입을 사용브로드캐스팅 지원크기가 다른 배열 간 연산 자.. 임베디드 관련 카테고리/Embedded System 2025. 4. 7. GitHub 저장소에 독립적인 브랜치 추가하기: 용량 최적화 가이드 🔍 문제 상황GitHub에 이미 존재하는 저장소에 완전히 새로운 코드를 추가하고 싶지만, 기존 코드의 히스토리나 파일은 필요 없는 경우가 있습니다. 특히 저장소 용량을 최소화하면서 프로젝트를 관리하고 싶을 때 유용한 방법을 소개합니다.💡 해결책: Orphan 브랜치 사용하기Git의 --orphan 옵션을 사용하면 기존 브랜치의 히스토리나 파일을 상속받지 않는 완전히 독립적인 브랜치를 생성할 수 있습니다.📝 단계별 가이드1. 저장소 클론하기먼저 대상 저장소를 로컬에 클론합니다:git clone https://github.com/사용자명/저장소명.gitcd 저장소명2. Orphan 브랜치 생성하기히스토리가 없는 새로운 브랜치를 생성합니다:git checkout --orphan 새브랜치명3. 현재 스테이.. 임베디드 관련 카테고리/Github 2025. 3. 17. SSL/TLS 인증서 파일 확장자 종류(pem, key, csr, crt) 및 사용 가이드 1. SSL/TLS 인증서 관련 주요 파일 형식1.1 PEM (Privacy Enhanced Mail)가장 일반적인 인증서 포맷Base64로 인코딩된 텍스트 파일보통 .pem, .crt, .cer, .key 확장자 사용-----BEGIN CERTIFICATE-----와 -----END CERTIFICATE----- 형태로 시작과 끝 표시인증서, 개인 키, 공개 키, 인증서 체인 등 다양한 정보를 포함할 수 있음1.2 키 파일 (.key)개인 키(Private Key)가 저장된 파일서버에서만 보관하고 절대 외부에 노출되면 안 됨SSL/TLS 연결 시 암호화 및 복호화에 사용내부적으로는 보통 PEM 형식 사용1.3 CSR (Certificate Signing Request) 파일인증서 서명 요청 파일인증 기.. 임베디드 관련 카테고리/프로토콜 2025. 3. 11. UART 포트와 케이블 종류 및 차이점 정리 UART(Universal Asynchronous Receiver-Transmitter)는 임베디드 시스템, MCU(마이크로컨트롤러), SBC(싱글보드 컴퓨터), 산업 장비 등에서 직렬 통신을 위한 핵심적인 인터페이스다.이번 글에서는 UART 포트와 케이블의 종류 및 차이점을 정리하고, 실전에서 어떻게 활용할 수 있는지 알아보겠다.🔹 1. UART 포트의 종류와 명칭UART 포트는 직렬 통신을 위한 하드웨어 인터페이스로, 전압 레벨과 사용 환경에 따라 여러 종류가 있다.✅ 주요 UART 포트 종류 및 비교명칭설명사용 예시UART 포트기본적인 UART 기반의 직렬 통신 포트TX/RX 핀, UART Header, UART Serial PortTTL 시리얼 포트로직 레벨이 3.3V 또는 5V인 UART 포트.. 임베디드 관련 카테고리/Embedded System 2025. 3. 1. 데이터 통신 방식: 직렬 통신과 병렬 통신 데이터를 전송하는 방식은 크게 직렬(Serial) 통신과 병렬(Parallel) 통신으로 나뉜다. 각각의 방식은 속도, 전송 거리, 하드웨어 요구 사항 등에 따라 차이가 있다. 이번 글에서는 두 방식의 개념과 대표적인 프로토콜을 비교해 보자.🔹 1. 직렬 통신(Serial Communication)직렬 통신은 데이터를 1비트씩 순차적으로 전송하는 방식이다. 마치 자동차가 한 차선에서 줄지어 이동하는 것과 비슷하다.✅ 특징데이터를 한 줄로 보내므로 하드웨어가 단순하고 배선이 적다.긴 거리에서도 신호 간섭이 적고 안정적이다.같은 속도를 유지하려면 더 높은 주파수(클럭)가 필요하다.✅ 대표적인 직렬 통신 프로토콜프로토콜특징주요 사용 사례UART비동기 통신, TX/RX 2선 사용마이크로컨트롤러, 짐벌, 센서S.. 임베디드 관련 카테고리/프로토콜 2025. 2. 28. 파일 디스크립터(fd)와 epoll 쉽게 이해하기 리눅스에서 파일 디스크립터(fd)란?epoll은 어떤 역할을 할까?이 두 개념을 제대로 이해하면 고성능 네트워크 프로그래밍과 시스템 프로그래밍을 더 쉽게 다룰 수 있습니다.오늘은 파일 디스크립터(fd)와 epoll이 어떻게 동작하는지 쉬운 예제와 함께 설명해보겠습니다.🔹 파일 디스크립터(fd)란?운영체제에서 파일, 디렉터리, 소켓, 파이프, 장치 파일 같은 모든 I/O 자원을 관리하는 번호(핸들)입니다.**즉, fd는 "운영체제가 파일을 다루기 위해 부여하는 숫자"**라고 생각하면 됩니다.📌 기본적인 fd 값fd 값설명0표준 입력 (stdin, 키보드 입력)1표준 출력 (stdout, 터미널 출력)2표준 에러 (stderr, 오류 메시지)우리가 프로그램을 실행할 때, 기본적으로 이 3개의 fd가 항상.. 임베디드 관련 카테고리/Ubuntu 2025. 2. 27. [DTED] GNSS와 GPS의 차이점, 활용 사례, 그리고 정확도 보정 기술 📌 GNSS와 GPS란?GPS라는 단어는 익숙하지만, 사실 GPS는 GNSS(Global Navigation Satellite System, 전 세계 위성 항법 시스템)의 한 종류일 뿐이다.즉, GPS는 미국이 운영하는 위성 항법 시스템이고, GNSS는 여러 국가의 위성 시스템을 포함하는 더 넓은 개념이다.1️⃣ GNSS와 GPS의 차이점구분GNSS (Global Navigation Satellite System)GPS (Global Positioning System)정의전 세계 위성 항법 시스템의 총칭미국이 운영하는 GNSS의 한 종류운영국미국, 러시아, 유럽, 중국, 일본, 인도 등미국대표 시스템GPS, GLONASS, Galileo, BeiDou 등 포함GPS만 해당특징다양한 위성을 활용하여 정확.. 임베디드 관련 카테고리/Embedded System 2025. 2. 6. TLS와 JWT의 역할과 차이점, 그리고 조합의 강점 보안이 중요한 현대 웹 애플리케이션에서는 안전한 데이터 전송과 사용자 인증이 필수적입니다. 이를 위해 가장 널리 사용되는 두 가지 기술이 바로 TLS(Transport Layer Security)와 JWT(JSON Web Token)입니다. 이 글에서는 TLS와 JWT의 각각의 역할, 차이점, 그리고 이 둘을 조합했을 때 얻을 수 있는 강점에 대해 알아보겠습니다.TLS(Transport Layer Security)의 역할1. 데이터 암호화TLS는 클라이언트와 서버 간의 통신 데이터를 암호화하여 네트워크를 통한 데이터 탈취를 방지합니다. 이를 통해 중간자 공격(Man-In-The-Middle Attack)을 차단하고, 민감한 정보가 안전하게 전송될 수 있습니다.2. 서버 인증TLS는 클라이언트가 통신하려는.. 임베디드 관련 카테고리/네이버 클라우드 플랫폼(NCP) 2025. 1. 23. 이전 1 2 3 4 ··· 26 다음 728x90 반응형