Archive Category

소스코드 읽을때 표류안하는 기법 2

Posted on

이 글에서 소스코드 공부에 임하는 요령을 몇가지 소개했습니다. 이번 글에서는 심화해서 요령을 더 말씀드려보겠습니다. 소스코드 실행 흐름을 알아차리는 요령입니다. 저 글에서 소개한 변수 선언문을 예로 들면요. int a = 10; 이 구문을 딱 보면 우선 자료형 변수명 대입기호 값 이렇게 구성 성분 분류를 떠올려보셔야 하는데요. 여기에는 이유가 있습니다. 우선 변수니까 메모리에 값을 저장하는 공간을 예약한다고 …

소스코드 읽을때 표류안하는 기법

Posted on

소스코드를 읽을때 첫대면시에 어렵게 느껴지는 이유가 무엇일까요? 이 두가지가 일반적입니다. 우리가 익숙한 방식으로 기호를 보게 되는 것이 당연하고, 아직 체현이 안된 방식은 익숙하지 않으니 시선에 안들어오는 것이죠. 우선 소스코드는 언어별로 상이한 문법과 기호로 표시되는데요. 그럼에도 불변하는 형식과 의미가 공통되기도 합니다. 이점에 기반해서 한 언어를 배우고 익숙해지면 공통된 것과 차이나는 것을 구별하게 될때 타언어에서도 적용되는 것을 …

라즈베리파이 피코와 PCM5101A로 오디오 재생하기 프로젝트

Posted on

라즈베리파이 피코는 Cortex-M0+ 듀얼코어를 장착한 MCU 개발보드로 264KB의 램을 제공합니다. 피코에 PCM5101A를 장착하면 PCM 신호를 보내 고음질의 음악을 연주할 수 있습니다. MP3는 따로 PCM으로 변환해야 하고, 인터페이스는 I2S여야 합니다. 라즈베리파이 피코는 I2S 핀을 따로 제공하지 않으므로 PIO 상태기계를 활용해서 I2S를 에뮬레이션해야 하구요. 마침 라즈베리파이 재단에서 제공하는 pico-extras 프로젝트 하위 프로젝트인 pico_audio_i2s를 활용하면 기정의된 PIO로 만들어진 …

운영체제에 대한 개념들 1 – 컴퓨터와 운영체제의 구조와 구성

Posted on

현대의 모든 컴퓨터들은 폰 노이만 시스템이나 하버드 아키텍처가 근간이 되는 경우가 많습니다. 이들 표준의 특징은 (1) 전기로 작동한다 (2) 메모리와 저장장치를 갖는다 (3) 운영체제가 존재하고 사용자의 입력과 상호작용을 한다 이구요. 현대화되어 발전된 체제에 의하면 멀티프로그램이나 멀티태스킹, 스레드, 고도화된 파일시스템 등을 지원하는 방대한 체계로 성장했습니다. 이번글에서는 운영체제와 컴퓨터 시스템이 어떻게 구성되어 있는지 살펴보고 이에 대한 입론을 …

인공지능 기능 구현의 기저에 있는 수학적 분석 원리 정리

Posted on

인공지능은 LLM 챗봇으로 우선 우리에게 널리 쓰이기 시작했구요. 기기구현에 있어 화상 인식과 같은 형태로 쓰여서, 지문을 인식하는 기기나 과일 선별 등에도 이용이 되기도 하죠. 비행기 조종을 블랙박스를 몰라도 운용하듯이 인공지능도 봉인된 내부 작동을 몰라도 쓰는게 가능하지만, 일단은 개발이 어떻게 이루어지는지, 기능 구현의 기저에 있는 수학적 원리가 어떻게 이루어지는지를 알면 한차원 더 높은 이해가 되어 활용 …

STM32-H755ZI-Q 개발 보드에서 이더넷으로 DHCP 연결 수립후 IP 받아오는 설정

Posted on

STM32-H755ZI-Q 개발 보드는 RJ45 커넥터와 LAN8742 PHY를 내장으로 지원합니다. 주요 사양은 구요. 라우터가 왠만하면 요즘 나오는 제품은 지원을 합니다. (물론 10BASE-T와 100BASE-TX는 아주 오래전 규격인데, MP3나 WAV 스트리밍도 되는 사양일 것입니다.) 우선 연결도는 아래와 같구요 STM32 보드 === lwIP (DHCP client) === 라우터 (DHCP server) 우리가 해야 하는 것은 ETH를 켜는 것과, lwIP 옵션 지정입니다. …

다트의 call by sharing이 플러터에서 작동하는 원리에 대한 해설

Posted on

프로그래밍 기술은 소프트웨어 연구에 의해 성립된 개념에 의해 구현됩니다. 함수를 호출한다고 했을때, 매개변수가 넘겨진다면 이 매개변수를 넘겨서 참조하는 방법도 경우에 따라 차이가 있으며 이를 개념화한 것이 언어의 특징으로 규정되어 있습니다. “값에 의한 호출” (call by value) “메모리 주소에 의한 호출” (call by reference) “공유에 의한 호출” (call by sharing) 이 그 개념들입니다. 이들 세가지 개념은 …

just_audio로 배경음악 연주하는 코드들 해설

Posted on

플러터에서 배경음악 연주를 할때 중요한 것은 지연시간입니다. 음악 연주를 하다가 화면이 바뀔때 다른 배경음악을 연주해야 한다면 아래와 같은 현상이 있게 됩니다. 이 지연시간을 줄인 패키지가 just_audio입니다. just_audio는 지연시간이 1초보다 작아서 활용에 유리합니다. 지원되는 플랫폼은 Android, iOS, macOS, Web으로 윈도우는 지원을 안하는 것 같애요. 그래도 안드로이드와 iOS가 지원되서 좋습니다. 사용법은 매우 쉬운 편인데요. 함수가 간결하고 직관적입니다. …



1 2 3 37