본문 바로가기

반응형

IT

(30)
[Buildroot] 임베디드 리눅스 구조의 이해 서 론 빌드루트, Buildroot(혹은 하드웨어 스케일에 따라서는 Yocto)라는 툴을 다루는 것은 임베디드 리눅스의 영역, 그것도 BSP(Board Support Package)의 영역이다. 분명 학부 때는 전기공학과를 다니며, 펌웨어 코딩과 자동제어를 주로 프로그래밍했었는데, 어느 새 취업을 하고 보니 임베디드 리눅스의 영역도 다루게 되고 있다. Buildroot에 대해 다루기 전에, 임베디드 리눅스의 구조에 대해 알아볼 필요가 있다. Buildroot라는 툴을 다루려면 최소한 그 안에서 어떤 동작을 하는지, 그 구조는 어떻게 되는지에 대해서는 알아야 하기 때문이다. 임베디드 리눅스를 구성하는 가장 중요한 요소들은 무엇일까? 그것에 대해 매우 간략히 정리해보도록 하겠다. 리눅스, Linux Embe..
[Git] Github, Git Commit Rule (깃허브 커밋 룰) 서 론 깃허브(Github)를 위시한 각종 Git들이 포트폴리오 대용으로까지 활용되는 시대에, 사실 너무 많은 git들이 막 올려지고 있고, 너무 많은 사람들이 제대로 된 Git Commit Rule이 무엇인지는 커녕 존재하는지조차 모르고 있다. 사실 필자도 Git Commit Rule이란 것이 뭔지 한동안은 몰랐었다. (심지어 아직도 너무 마이너한 커밋은 아주 짧은 커밋 메시지만을 (initial commit 등) 작성한 채 push 해버린다.) 무엇보다 귀찮기 때문이 아닐까, 라는 핑계거리는 있지만…… N모사의 한 책임개발자는 "신입을 뽑을 때 깃 커밋 메시지만 봐도 뽑아야할지 말아야할지 알 수 있다"라고 말한 것을 들은 적이 있다. 사실 취업에 있어서, 경력이 아닌 신입 채용에서 가장 중요한 것은 ..
[Golang] 자체 MQTT 브로커 서버 구현 - 2 기능 상세 설명 [Golang] 자체 MQTT 브로커 서버 구현 - 1 MQTT Broker 서버 구현 MQTT 브로커 서버 구현에 앞서, 만약 이론적 배경이 궁금하다면 아래 포스트를 먼저 읽고 오는 것을 추천한다. 링크 1: MQTT 원리 이론편 [통신 이론] MQTT, MQTT Protocol (MQTT 프로토콜.. underflow101.tistory.com 위 1편에서 설명된 자체 MQTT Broker 서버의 기능 상세 설명을 하려 한다. 이를 위한 소스 코드는 아래 깃허브에서 확인 가능하다. underflow101/goMQTTServer MQTT Broker Server in Golang. Contribute to underflow101/goMQTTServer development by crea..
[Golang] 자체 MQTT 브로커 서버 구현 - 1 MQTT Broker 서버 구현 MQTT 브로커 서버 구현에 앞서, 만약 이론적 배경이 궁금하다면 아래 포스트를 먼저 읽고 오는 것을 추천한다. 링크 1: MQTT 원리 이론편 [통신 이론] MQTT, MQTT Protocol (MQTT 프로토콜) 이란? - 1 (이론편) 이 론 MQTT(Message Queueing Telemetry Transport)는 2016년 국제 표준화 된 (ISO 표준 ISO/IEC PRF 20922) 발행-구독(Publish-Subscribe) 기반의 메시지 송수신 프로토콜이다. 작은 코드 공간이 필요하거나 네.. underflow101.tistory.com 링크 2: MQTT - Arduino(ESP32) 실전편 [통신 이론] MQTT, MQTT Protocol (MQTT..
[DSP] 푸리에 변환, DFT와 FFT (Fast Fourier Transform) - 1 서 론 FFT란 무엇인가? 프로그래밍을 하다보면, 특히 영상처리, 인공지능(머신러닝/딥러닝), 디지털 신호처리(DSP), 임베디드 시스템, 등을 하다보면 FFT라는 말이 자주 나온다. 그리고 공대생이라면 대학교 1학년이나 2학년 과정에서 자주 들어봤을 단어이기도 하다. (특히 공업수학/공학수학에서...) FFT란 Fast Fourier Transform의 약자이며 고속 푸리에 변환이라는 뜻이다. 그렇다면 고속 푸리에 변환이 있다면 중속 푸리에 변환과 저속 푸리에 변환도 있을까? 우선 이러한 개념을 익히기 위해 푸리에 변환에 대해 알아야 한다. 푸리에 변환은 기본적으로 시간 도메인(Time Domain)을 주파수 도메인(Frequency Domain)으로 변환시키는, 즉 시간에 대한 함수(혹은 신호)를 구..
[통신 이론] MQTT, MQTT Protocol (MQTT 프로토콜) 이란? - 2 (실전편) Broker 다운로드 MQTT를 실제로 이용해보기 위해선 MQTT 서버 역할을 하는 Broker가 필요하다. 물론 그 서버를 만드는 것도 하나의 방법이겠지만, 널리 사용되는 방법 중 하나인 상용 Broker를 이용해보자. 우리가 사용해볼 Broker는 mosquitto라는 MQTT Broker이다. 다운로드하는 방법은 아래와 같다. Windows 기준 https://mosquitto.org/download/ Download Source mosquitto-1.6.8.tar.gz (319kB) (GPG signature) Git source code repository (github.com) Older downloads are available at https://mosquitto.org/files/ Bin..
[통신 이론] MQTT, MQTT Protocol (MQTT 프로토콜) 이란? - 1 (이론편) 이 론 MQTT(Message Queueing Telemetry Transport)는 2016년 국제 표준화 된 (ISO 표준 ISO/IEC PRF 20922) 발행-구독(Publish-Subscribe) 기반의 메시지 송수신 프로토콜이다. 작은 코드 공간이 필요하거나 네트워크 대역폭이 제한되는 원격 통신을 위해, 즉 IoT와 같은 제한된, 혹은 대규모 트래픽 전송을 위해 만들어진 프로토콜이다. 그렇기에 TCP/IP 프로토콜 위에서 동작하지만 동시에 굉장히 가벼우며, 많은 통신 제약들을 해결해준다. (그러나 이 말은 동시에 MQTT는 Bluetooth나 Zigbee처럼 별도의 모듈로 별도의 대역폭을 갖는 통신 규약이 아닌, WiFi나 기타 방법을 통해 인터넷을 통해 TCP/IP 기반의 메시지 송수신을 한..
[Golang] 고루틴과 채널(chan)을 이용한 피보나치 수열 이번에는 고루틴과 채널을 이용하여 피보나치 수열을 생성하는 함수를 만들어보자. 소스 코드는 다음과 같다. // Go Fib package main import "fmt" func Fib(max uint64)

반응형