| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 주유소
- 리눅스
- 오토바이
- 휘발류
- 연습문제
- 개발
- 개발기
- virtualmachine
- Linux
- 잡담
- 에러
- 템플릿
- VM
- 퇴근길
- C언어
- ubuntu
- 티스토리챌린지
- 인프라
- K&R
- 오블완
- 가상머신
- node.js
- Flutter
- FreeBSD
- DART
- podman
- 객체지향프로그래밍
- Bloc
- 일상
- VMware
- Today
- Total
그냥저냥
회고 | 나의 임베디드 개발 경험 본문
아래의 이야기는 오래전에 있었던 일입니다. 그래서 기억이 애매한 부분이 많이 있으므로, 이점 참고 부탁합니다.
풍력발전기 날개 제어 프로그램
2011년, 대구의 한 전문대생이었던 저는 지인의 소개로 작은 회사에서 아르바이트를 시작했습니다.
펌웨어가 아닌 윈도우용 제어 소프트웨어를 C#으로 개발하는 일이었죠.
가장 기억에 남는 프로젝트는 '도시형 풍력발전 프로펠러 제어 프로그램'이었습니다.
바람의 세기에 따라 날개를 접고 펴며 회전수를 조절하는 하드웨어를 개발하였는데,
하드웨어 대표님과 펌웨어 개발자분 사이에서 데이터의 흐름을 조율하며 개발의 재미를 느꼈습니다.
- 당시의 환경
- AVR MPU 기반 PCB
- RS-232(UART)
당시의 열악한 환경 D-SUB9(DB9) 커넥터에 3선(RXD, TXD, GND)을 투박하게 납땜하고,
작업용 노트북에 시리얼 포트가 없어 USB 젠더를 전전하던 시절의 기억이 선명하네요.
인턴 생활과 '타이밍'의 벽
3학년이 되어 인턴으로 취업한 곳에서는 ETRI 과제에 참여하고, 안드로이드 초기 모델(갤럭시 A, S 시리즈)용 간단한 게임을 만들기도 하며 실무 경험을 쌓았습니다.
그러다 저에게 AVR MPU를 활용한 온도 센서 값 읽기라는 도전적인 과제가 주어졌습니다.
열심히 책을 뒤적이며 코드를 짰지만, 결과값이 어뚱했습니다.
며칠을 고민하다 선배님께 도움을 요청했죠.
며칠 뒤 들려온 해결 소식을 들었는데요.
C언어로 타이밍을 맞추기 어려워, 어셈블리어로 좀 더 디테일하게 타이밍을 맞췄다.
펌웨어는 하드웨어와의 미세한 '타이밍'이 중요한지 깨달은 순간이었습니다.
새로운 도전 Cortex-M3

2012년, 그 대표님을 따라 용인으로 근거지를 옮겼습니다.
이번 과제는 차량용 OBD(On-Board Diagnostics) 제품 개발이었습니다.
차량의 ECU와 통신하여 속도, RPM 등 실시간 데이터를 추출한 후 안드로이드 앱으로 전달해 연비를 계산·관리하는 프로젝트였습니다.
차량 네트워크의 표준인 CAN(Controller Area Network) 통신이 핵심이었습니다.
따라서 MCU는 자연스럽게 CAN 컨트롤러가 내장된 ARM Cortex-M3로 변경되었습니다.
"익숙함을 넘어 성장의 단계로"
나름대로 최선을 다했고, 기술적으로도 많은 것을 배웠다고 생각했습니다.
불행히도 이 프로젝트는 망했습니다.
그럼에도 남은 것이 있다면, 익숙했던 8비트 AVR을 벗어나 32비트 아키텍처를 다루기 위해 데이터 시트와 전공 서적을 수십 번씩 탐독하며 하드웨어 레벨의 이해도를 높였다는 점입니다.
마무리
이 시기의 치열한 고민과 학습은 훗날 제가 시스템 엔지니어로 성장하는 데 가장 든든한 밑거름이 되었습니다.
군 생활 시절 인생의 첫 번째 깨달음을 얻었다면,
용인에서의 이 프로젝트는 기술적으로 한 단계 더 큰 도약을 이뤄낸 소중한 시간이었다고 생각합니다.
'개발기' 카테고리의 다른 글
| 기본기의 재정의 | "할 줄 아는 것"과 "끝낼 줄 아는 것" (0) | 2026.03.08 |
|---|---|
| 뻘짓거리 | 리눅스에서 가상 메모리가 고갈되면 어떤 일이 벌어질까? (C언어 테스트) (0) | 2026.03.06 |
| Functional Programming in Scala 연습문제 2.1 (0) | 2025.10.12 |
| [Scala] Java 24 환경에서 Scala 실행 시 sun.misc.Unsafe 경고 발생 해결 방법 (Scala 3.8 로드맵) (0) | 2025.09.13 |
| [Javascript] Truthy/Falsy 값 (0) | 2025.02.28 |