반응형

2025/08 32

Python asyncio를 활용한 비동기 네트워크 통신

Python asyncio를 활용한 비동기 네트워크 통신Python에서 비동기 프로그래밍은 고성능 네트워크 애플리케이션 개발을 위해 필수적입니다. asyncio는 Python에서 비동기 작업을 처리하기 위한 표준 라이브러리로, 효율적인 네트워크 통신을 가능하게 합니다. 이번 포스팅에서는 asyncio를 활용해 비동기 네트워크 통신을 구현하는 방법을 살펴보겠습니다.1. asyncio란?asyncio는 Python 3.4부터 포함된 표준 라이브러리로, 비동기 I/O 작업을 지원합니다. 주로 네트워크 애플리케이션이나 I/O 바운드 작업에서 유용하며, 다음과 같은 기능을 제공합니다:비동기 작업 실행이벤트 루프 관리네트워크 소켓 관리비동기 HTTP 서버/클라이언트asyncio는 코루틴을 기반으로 작동하며, asy..

STM32F429의 CAN 컨트롤러 특징 및 설정 방법

STM32F429의 CAN 컨트롤러 특징 및 설정 방법STM32F429의 CAN 컨트롤러 개요STM32F429 마이크로컨트롤러는 강력한 CAN(Controller Area Network) 통신 기능을 내장하고 있어 다양한 산업용 및 자동차 애플리케이션에서 활용될 수 있습니다. STM32F429의 CAN 컨트롤러는 Bosch CAN 2.0B 프로토콜을 지원하며, 최대 1 Mbps의 전송 속도를 제공합니다.CAN 컨트롤러는 CAN1과 CAN2 두 개의 독립적인 채널을 제공하며, 각 채널은 별도의 메시지 필터를 갖추고 있어 효율적인 데이터 수신이 가능합니다. 또한, STM32F429의 CAN 인터페이스는 HAL 라이브러리를 통해 쉽게 구성할 수 있으며, 다양한 운영 모드를 지원합니다.STM32F429의 CAN..

CAN/CAN Open 2025.08.06

Python socket 모듈을 이용한 네트워크 프로그래밍

Python socket 모듈을 이용한 네트워크 프로그래밍Python은 다양한 네트워크 프로그래밍 작업을 지원하는 강력한 표준 라이브러리를 제공합니다. 그중에서도 socket 모듈은 네트워크 통신을 구현하는 핵심 도구입니다. 이번 포스팅에서는 Python의 socket 모듈을 사용해 네트워크 프로그래밍의 기초를 이해하고, 간단한 예제를 통해 실습해보겠습니다.1. socket 모듈 소개socket 모듈은 저수준 네트워크 인터페이스를 제공합니다. 이를 통해 개발자는 네트워크 소켓을 생성하고 데이터를 송수신할 수 있습니다.주요 기능TCP와 UDP 소켓 지원IP 주소와 포트 번호를 통한 네트워크 연결클라이언트와 서버 간의 데이터 송수신기본 구조네트워크 프로그래밍은 보통 다음 단계를 따릅니다:소켓 생성주소 및 포..

CANOpen 노드 구현 (STM32CubeIDE 및 HAL 활용)

CANOpen 노드 구현 (STM32CubeIDE 및 HAL 활용)개요CANOpen은 산업 자동화 및 임베디드 시스템에서 널리 사용되는 프로토콜로, STM32F429를 활용하여 CANOpen 노드를 구현할 수 있습니다. 본 장에서는 STM32CubeIDE와 HAL 라이브러리를 이용하여 CANOpen 노드를 개발하는 방법을 설명합니다.개발 환경 구성CANOpen 노드 구현을 위해 다음과 같은 개발 환경이 필요합니다:하드웨어STM32F429 보드CAN 트랜시버 (MCP2551 또는 TJA1050 등)CAN Bus 연결을 위한 하드웨어 (케이블, 종단 저항 120Ω)소프트웨어STM32CubeIDESTM32CubeMXCANOpenNode 또는 CANFestival 라이브러리HAL (Hardware Abstrac..

CAN/CAN Open 2025.08.05

웹 스크래핑을 위한 Python BeautifulSoup와 Scrapy

웹 스크래핑을 위한 Python BeautifulSoup와 Scrapy웹 스크래핑(Web Scraping)은 웹사이트에서 데이터를 추출하는 기술로, 데이터를 분석하거나 저장하려는 목적에서 많이 사용됩니다. 이 포스팅에서는 Python의 인기 있는 웹 스크래핑 도구인 BeautifulSoup와 Scrapy를 사용하여 실전 예제와 함께 웹 스크래핑 방법을 소개합니다.1. 웹 스크래핑의 기본 개념웹 스크래핑은 클라이언트가 HTML을 다운로드하여 원하는 데이터를 추출하는 프로세스를 말합니다. 웹 스크래핑은 크롤링(Crawling)과 함께 사용되기도 합니다. 크롤링은 웹 페이지를 탐색하는 작업을 뜻합니다.웹 스크래핑을 시작하기 전, 다음 사항을 기억해야 합니다:Robots.txt: 웹사이트의 robots.txt ..

CANOpen 스택 구조 분석

CANOpen 펌웨어 개발 (STM32F429)CANOpen은 산업 자동화 및 임베디드 시스템에서 널리 사용되는 프로토콜로, STM32F429 마이크로컨트롤러를 활용하여 효율적으로 구현할 수 있습니다. 본 장에서는 STM32CubeIDE와 HAL 라이브러리를 이용하여 CANOpen 펌웨어를 개발하는 방법을 다룹니다.STM32F429는 강력한 성능과 다양한 주변 장치를 제공하는 마이크로컨트롤러로, 내장된 CAN(Controller Area Network) 인터페이스를 활용하여 CANOpen 노드를 구현할 수 있습니다. 이를 통해 다양한 산업 환경에서 CANOpen 기반의 통신을 효율적으로 수행할 수 있습니다.이 장에서는 먼저 STM32F429의 CAN 인터페이스 설정 방법을 설명한 후, CANOpen 프로..

CAN/CAN Open 2025.08.04

Python FastAPI로 REST API 개발하기

Python FastAPI로 REST API 개발하기안녕하세요, 소프트웨어 공장에 오신 것을 환영합니다. 오늘은 Python의 인기 있는 웹 프레임워크 중 하나인 FastAPI를 사용하여 REST API를 개발하는 방법에 대해 알아보겠습니다. FastAPI는 빠른 개발 속도와 간결한 코드 작성, 그리고 뛰어난 성능으로 많은 개발자들에게 사랑받고 있습니다. 이 포스팅에서는 기초부터 시작해 실제로 API를 설계하고 구현하는 예제를 함께 살펴보겠습니다.1. FastAPI란?FastAPI는 다음과 같은 특징을 가진 Python 기반의 웹 프레임워크입니다:빠른 개발: 자동으로 문서화를 생성하고 타입 힌트를 기반으로 코드를 작성할 수 있어 개발 속도가 빠릅니다.높은 성능: Starlette와 Pydantic을 기반..

CANOpen 개발 라이브러리 및 툴

CANOpen 개발 라이브러리 및 툴CANOpen을 활용한 임베디드 시스템 개발에서는 효율적인 프로토콜 구현을 위해 오픈소스 라이브러리와 툴을 활용하는 것이 중요합니다. 대표적인 CANOpen 개발 라이브러리로는 CANopenNode와 CANFestival이 있으며, 이들은 다양한 플랫폼에서 CANOpen 프로토콜을 손쉽게 적용할 수 있도록 지원합니다. 본 장에서는 각각의 라이브러리의 특징과 사용법을 설명하고, STM32F429에서의 적용 방법을 다룹니다.CANopenNodeCANopenNode는 오픈소스로 제공되는 CANOpen 스택으로, 높은 유연성과 모듈성을 갖춘 것이 특징입니다.주요 특징ANSI C로 구현되어 있어 다양한 마이크로컨트롤러에서 사용 가능Object Dictionary 기반의 구조화된..

CAN/CAN Open 2025.08.03

Python Django를 이용한 웹 애플리케이션 구축

Python Django를 이용한 웹 애플리케이션 구축Python은 웹 애플리케이션 개발을 위한 다양한 프레임워크를 제공하며, 그중 Django는 강력한 기능과 확장성을 갖춘 프레임워크로 유명합니다. 이번 포스팅에서는 Django를 이용해 간단한 웹 애플리케이션을 구축하는 방법을 단계별로 알아보겠습니다.Django란?Django는 Python 기반의 웹 프레임워크로, "The web framework for perfectionists with deadlines"라는 슬로건처럼 생산성과 효율성을 강조합니다. 주요 특징은 다음과 같습니다:MTV 아키텍처: Model, Template, View로 구성된 구조.강력한 ORM: 데이터베이스 연동을 쉽게 할 수 있도록 지원.내장된 관리자 페이지: 빠르게 CRUD ..

CAN 인터페이스 보드 (PEAK, Ixxat, Kvaser 등)

CAN 인터페이스 보드 (PEAK, Ixxat, Kvaser 등)CANOpen 장치를 개발하고 테스트하는 과정에서 PC와 CAN 네트워크 간의 연결이 필요합니다. 이를 위해 다양한 CAN 인터페이스 보드가 활용되며, 대표적인 제품으로 PEAK-System, Ixxat, Kvaser 등의 브랜드가 있습니다. 본 장에서는 각 브랜드별 CAN 인터페이스 보드의 특징과 사용법에 대해 설명하겠습니다.PEAK-System CAN 인터페이스PEAK-System은 산업용 및 연구용 CAN 인터페이스 장치를 제공하는 대표적인 회사 중 하나입니다. 주요 제품으로는 다음과 같습니다.PCAN-USB: USB 인터페이스를 통해 PC와 CAN 네트워크를 연결하는 장치로, 사용이 간편하며 다양한 소프트웨어와 호환됩니다.PCAN-P..

CAN/CAN Open 2025.08.02
반응형