LIG 임베디드 SW 5기 학습 기록
방산 임베디드 SW 개발자를 목표로, 교육에서 배운 개념과 실습 과정, 문제 해결 경험을 쌓아가는 TIL(Today I Learned) 저장소입니다.
- C/C++와 메모리 동작 원리를 이해하고 하드웨어를 제어하는 코드를 작성한다.
- MCU, RTOS, 임베디드 Linux를 학습하며 소프트웨어와 하드웨어가 연결되는 과정을 설명할 수 있도록 한다.
- 방산 임베디드 SW 진로를 준비하며 실시간성, 안정성, 예외 처리와 검증을 고려하는 개발 습관을 기른다.
- 실습 결과와 오류 해결 근거를 기록해, 직접 구현하고 검증한 경험을 보여주는 포트폴리오로 발전시킨다.
공식 5기 커리큘럼의 과목명·순서·일정과는 차이가 있을 수 있으며, 실제 수업 진행에 맞춰 갱신합니다.
| 학습 영역 | 정리할 내용 |
|---|---|
| C / 자료구조 / 알고리즘 | 포인터, 메모리, 구조체, 동적 할당, 자료구조 구현과 문제 풀이 |
| C++ | 객체지향, 클래스, 상속, 다형성과 객체 수명 |
| C# / WPF / MVVM | UI 구성, 데이터 바인딩, 화면과 로직 분리 |
| 프로세서 / MCU | 아키텍처, 레지스터, GPIO, 인터럽트, 타이머, 주변장치 통신 |
| RTOS / FreeRTOS | 태스크, 스케줄링, 동기화, 공유 자원 관리 |
| 임베디드 Linux / 시스템 프로그래밍 | 셸, 빌드, 프로세스, 스레드, IPC |
| 네트워크 | TCP/UDP와 소켓 통신 실습 |
| Linux 커널 / 디바이스 드라이버 | 장치 제어, 인터럽트 처리, Device Tree |
현재는 학습 기록을 시작하는 단계이며, 완료 여부는 실제 기록과 결과물을 기준으로 갱신합니다.
- 수업 과목별 폴더를 만들고 첫 TIL 작성하기
- C/C++ 핵심 개념을 직접 작성한 예제와 함께 정리하기
- 교육용 보드와 개발 환경, 빌드·실행 방법 기록하기
- MCU 주변장치 제어 실습과 동작 결과 남기기
- RTOS 태스크와 동기화 실습에서 실행 순서·타이밍 확인하기
- Linux 시스템 프로그래밍과 네트워크 통신 실습 정리하기
- 커널·드라이버 실습 과정과 디버깅 경험 기록하기
- 팀 프로젝트의 요구사항, 담당 역할, 설계와 검증 결과 정리하기
- 학습 내용을 바탕으로 기술 면접 질문과 답변 정리하기
교육 실습과 프로젝트에서 아래 항목을 적용하고, 확인한 결과를 기록합니다.
- 실시간성: 주기 작업의 실행 시간과 지연을 측정하고 목표 주기 충족 여부 확인
- 안정성: 잘못된 입력, 통신 끊김, 타임아웃 등 실패 조건을 정의하고 처리 결과 확인
- 자원 관리: 메모리 수명과 공유 자원 접근을 점검하고 누수·경쟁 상태의 원인 분석
- 검증과 추적: 요구사항별 테스트 조건, 기대 결과, 실제 결과를 연결해 기록
C/
├── C_DataType.md # 개념 정리
├── src/ # C 실습 코드
│ └── C_DataType.c
└── img/ # 정리 문서의 참고 이미지
새로운 C 실습 코드는 C/src/에 추가합니다.
각 TIL은 다음 흐름으로 작성합니다.
- 학습 주제와 목표: 무엇을 배우고 확인하려 했는지
- 핵심 개념: 동작 원리와 이해한 내용을 자신의 말로 정리
- 실습 환경과 코드: 사용 장비·도구, 빌드 및 실행 방법
- 결과와 문제 해결: 기대 결과, 실제 결과, 오류 원인과 해결 과정
- 회고와 다음 할 일: 부족한 부분과 이어서 확인할 내용
프로젝트는 요구사항 → 설계 → 구현 → 테스트 → 회고 흐름으로 정리하고, 외부 자료를 참고한 경우 출처를 함께 남깁니다.