포스트

임베디드 기사 - 개요

임베디드 기사 - 개요

개요

임베디드 소프트웨어 공부를 진행하며, 임베디드 기사를 취득해보고자 합니다. 이번 글에서는 2026 임베디드 기사 시험의 필기 및 실기 출제기준을 정리하며, 앞으로의 공부 내용은 해당 기준을 바탕으로 내용을 정리해보겠습니다.

임베디드 기사 출제기준 출처 : Q-net

출제 기준 (필기)

임베디드하드웨어

주요항목세부항목세세항목
1. 논리회로1. 논리회로 기초1. 디지털 시스템의 정의
2. 불 대수
3. 논리식 간소화
4. 수의 표현
 2. 조합논리회로1. 각종 논리게이트
2. 각종 조합논리회로(디코더, 인코더, 멀티플렉서, 가산기 패리티, 에러수정코드 등)
3. 조합논리회로 분석, 설계
 3. 순서논리회로1. 래치와 플립플롭
2. 각종 순서논리회로(레지스터, 카운터, 시프터 등)
3. 순서논리회로 분석, 설계
 4. 메모리1. 각종 메모리(RAM, ROM, EPROM, EEPROM, NAND/NOR 플래시)
 5. HDL1. 프로그래머블 로직, FPGA
2. Verilog, VHDL
3. Verilog를 이용한 논리회로 설계
2. 컴퓨터 구조와 마이크로프로세서1. CPU(중앙처리장치) 구조1. CPU/마이크로프로세서의 구조
2. 버스 시스템
3. 명령어(instruction) 집합 구조
4. 어드레싱 모드
5. 마이크로 아키텍처 (파이프라인, 수퍼스칼라, 분기예측 등)
6. ARM CPU
 2. 메모리 시스템1. 메모리 계층구조
2. 캐시메모리
3. MMU와 가상메모리 시스템, 페이징
 3. I/O 인터페이스1. 입·출력장치의 매핑
2. 폴링, 인터럽트
3. DMA
4. 입·출력 버퍼링
3. 주변장치1. 입·출력 포트1. GPIO의 설정과 이용
2. 입·출력 레지스터 (Command/Status)
3. 입·출력 포트 멀티플렉싱
4. 데이터시트의 해석
 2. 주요주변장치1. 시리얼 포트
2. 타이머
3. A/D, D/A 변환
4. 각종 센서(초음파, 적외선, 온도, 모션센서 등)
5. 입·출력 버스(I2C, SPI, USB 등)
6. 통신장치(Ethernet, Wifi 등)
7. 전원제어 인터페이스
8. 칩 실렉트 로직

임베디드펌웨어

주요항목세부항목세세항목
1. 펌웨어1. 펌웨어1. JTAG 하드웨어
2. 스타트업 코드
3. 메모리 초기화
 2. 부트로더1. 부트로더의 종류와 기능
2. OS 부트과정
3. 플래시 메모리관리
4. 초기 RAM Disk 이미지
5. 네트워크 파일 시스템 이용
6. 부트로더 작성 및 타깃시스템 이식
2. OS 포팅1. 전원관리1. 전원관리 하드웨어
2. OS 전원관리
3. 부트로더의 전원 관리
 2. 리눅스 내부구조 개요 및 포팅1. 커널의 소스 트리 구조
2. 커널 빌드 과정 개요
3. 커널 구성(configuration) 방법
 3. 리눅스 부팅1. 리눅스 부팅 과정
2. init 스크립트
3. busybox와 셀
4. 커널 모듈 관리
5. 공유 라이브러리 관리
3. 디바이스 드라이버 개발1. 디바이스 드라이버 개념1. 디바이스 드라이버의 개념
2. 디바이스 드라이버의 종류
3. 리눅스 커널 모듈
4. 시스템 콜에 의한 드라이버 접근
5. 커널 모듈 원격 디버깅
 2. 디바이스 드라이버와 커널 서비스1. 커널의 주요자료 구조
2. 디바이스 드라이버에서의 버퍼관리
3. 커널 메모리 할당과 해제
4. 상호배제 지원함수
5. 동기/비동기 드라이버 개념
6. 스케줄러를 이용한 대기
7. 커널 타이머
8. 세마포
9. 인터럽트 서비스
10. DMA(Direct Memory Access) 개념

임베디드플랫폼

주요항목세부항목세세항목
1. OS1. OS의 기본개념1. 가상머신
2. 자원관리자
3. OS의 분류(실시간 OS, 분산 OS 등)
 2. 프로세스관리1. 스레드와 프로세스
2. 프로세스 상태
3. 스케줄링 기초
 3. CPU 스케줄링1. 단일프로세서 스케줄링 기법
2. 멀티프로세서 스케줄링 기법
3. 실시간 스케줄링 기법
 4. 병행성 제어1. 상호배제
2. 세마포, 모니터
3. 교착상태
4. 교착상태 대처방법
 5. 메모리관리방법1. 캐시메모리
2. 가상메모리
3. 페이징과 세그먼테이션
 6. 장치관리방법1. 디스크 관리
2. 파일시스템
2. 리눅스 커널프로그래밍1. 리눅스 개요1. 리눅스 설치 및 관리
2. 커널 구조
 2. 커널 서비스1. 시스템 콜
2. 시그널과 인터럽트
3. /proc, /sys 파일 시스템, kobject
 3. 메모리 관리1. 주소 공간 및 구조
2. 가상 메모리, 메모리 매핑
3. 페이징, 스위칭, 캐싱
4. 프로세스 관리 및 스케줄링
 4. 디바이스 관리1. 디바이스 드라이버 구조
2. 디바이스 파일 시스템 (devfs)
3. 하드웨어 I/O
 5. 파일시스템1. 가상 파일시스템 (VFS)
2. LVM과 RAID
3. JFS
 6. 네트워크1. 리눅스 TCP/IP 스택
3. 시스템 및 네트워크 프로그래밍1. 프로세스 및 파일 처리1. fork, exec 계열
2. 저수준과 고수준 파일 핸들링
 2. 메모리1. 메모리 할당 및 해제
2. 메모리 정렬 및 검색
3. 메모리 Lock
 3. IPC(Interprocess Communication)1. 메모리맵(mmap)
2. 공유메모리
3. 세마포
4. 메시지큐
 4. I/O 인터페이스 및 멀티플렉싱1. PIPE와 FIFO
2. 소켓
3. select, pselect
4. Non-blocking I/O
5. poll, epoll
 5. 스레드1. 스레드 개념
2. 스레드 생성 및 제어
3. 스레드간 동기화
4. 프로세스의 모듈화
5. pthread API: 스레드의 생성 종료
6. Mutex와 조건 변수
7. Barrier, 여러 가지 locks
8. 스레드의 응용
 6. 시그널 기본1. 시그널의 정의
2. 시그널 핸들러
3. 시그널전송 에러처리
 7. 컴퓨터 네트워크1. 컴퓨터 네트워크 기본
2. OSI 계층 프로토콜
3. TCP, UDP, IP
4. 클라이언트/서버 프로그램
 8. 소켓 프로그래밍1. 소켓의 정의
2. TCP 소켓
3. UDP 소켓
4. 소켓 프로그래밍 응용

임베디드소프트웨어

주요항목세부항목세세항목
1. 데이터 구조1. 데이터 구조의 이해1. 알고리즘의 표현과 분석
2. 배열
3. 연결 리스트
4. 스택과 큐
5. 트리
6. 그래프
2. 프로그래밍1. C프로그래밍1. 데이터 타입과 연산자
2. 제어흐름
3. 함수와 프로그램구조
4. 포인터와 배열
5. 구조
6. 입력과 출력
 2. 객체지향 프로그래밍1. 객체지향원리
2. C++ 개요
3. C++ 객체지향기능
4. Java 개요
5. Java 객체지향기능
 3. 멀티미디어 프로그래밍1. 멀티미디어 정보표현
2. 멀티미디어 압축
3. 영상 및 신호 처리
4. 멀티미디어 통신
5. 편집도구 및 저작도구
3. 개발 방법론1. 개발프로세스1. 기본원리
2. 프로세스 모델
3. 요구사항 분석
4. 시스템 아키텍처
5. 설계기법
6. 소프트웨어 테스팅
7. UML 다이어그램
 2. 프로젝트관리1. 프로젝트관리 개요
2. 품질관리
3. C 국제표준(ISO/IEC9899) 개요

출제 기준 (실기)

주요항목세부항목세세항목
1. 임베디드 하드웨어1. 하드웨어 및 회로 분석하기1. 조합논리회로 및 순서논리회로를 분석, 설계할 수 있다.
2. ROM, EPROM, SRAM, DRAM, 플래시 등 메모리 회로를 분석 및 설계할 수 있다.
 2. 임베디드 시스템 성능 및 구조 분석하기1. 임베디드 프로세서를 위한 기계어 프로그램을 분석, 개발할 수 있다.
2. 임베디드 시스템의 성능에 영향을 미치는 요소를 분석하고 최적화할 수 있다.
3. 가상 메모리 시스템을 이해할 수 있다.
4. 임베디드 시스템을 구성하는 하드웨어 모듈들 사이의 인터페이스를 이해할 수 있다.
 3. 임베디드 시스템 주변장치 분석하기1. 데이터시트를 분석하여 주변 장치의 상태를 읽고 입출력을 제어하는 프로그램을 작성할 수 있다.
2. 인터럽트 방식의 입·출력, DMA를 이용한 데이터 전송 프로그램을 작성할 수 있다.
3. 단순 입·출력, 스캐닝 입·출력, 시리얼 포트, 타이머 등을 이용하기 위한 프로그램을 작성할 수 있다.
4. 각종 센서를 이용하기 위한 프로그램을 작성할 수 있다.
2. 임베디드 펌웨어1. 펌웨어 설계, 구현 및 테스팅하기1. 컴파일 결과 만들어지는 ELF 포맷과 binutil 도구의 사용법을 이해할 수 있다.
2. 스타트업 코드를 이해하고 수정할 수 있다.
3. 칩 실렉트 로직을 이해하여 프로그램하며, 메모리 초기화를 할 수 있다.
4. OS의 부트과정을 이해할 수 있다.
5. OS의 부팅에 필요한 초기 RAM Disk를 이해하고 구성할 수 있다.
6. 플래시 메모리 제어 및 관리 프로그램을 작성할 수 있다.
7. OS의 전원관리 기법, 하드웨어의 전원관리 방법, 부트로더의 역할을 이해하고 프로그램 할 수 있다.
 2. 임베디드의 이해 및 포팅하기1. 커널의 포팅 과정을 이해할 수 있다.
2. 부트로더의 동작을 이해하고 설명할 수 있다.
3. 교차개발 환경에 필요한 도구를 이용할 수 있다.
 3. 디바이스 드라이버 작성하기1. 데이터시트를 이해하고 레지스터의 표현과 메모리 맵을 제시할 수 있다.
2. 디바이스 드라이버의 표준 API를 정의할 수 있다.
3. OS와의 연동을 위한 저수준의 OS API를 활용할 수 있다.
4. 디바이스 초기화 및 데이터 송·수신 프로그램을 작성할 수 있다.
5. Make파일을 이해하고 작성할 수 있다.
6. 인터럽트 처리를 할 수 있다.
7. 구현에 필요한 프로그래밍 언어들(C, C++, Java)을 이해할 수 있다.
3. 임베디드 플랫폼1. 임베디드 OS의 이해하기1. 커널의 구조를 이해하고 디렉터리의 역할을 설명할 수 있다.
2. 커널의 주요 기능에 관하여 이해할 수 있다.
 2. 임베디드 커널 프로그래밍하기1. 프로세스 관리, 메모리 관리, 디바이스 관리, 파일시스템 관리를 위한 시스템 콜을 이해하고 활용할 수 있다.
2. 스레드 동기화를 위한 세마포, MUTEX 등을 이해하고 적용할 수 있다.
3. 소켓을 이용한 네트워크 프로그래밍을 할 수 있다.
4. IDE, 교차개발 환경에 필요한 도구를 이용할 수 있다.
4. 임베디드 소프트웨어1. 임베디드 프로그램 분석 및 설계하기1. 주어진 요구사항을 분석하여 UML 등 소프트웨어 공학적인 다이어그램으로 작성할 수 있다.
2. 설계 관련 산출물을 읽고 이해할 수 있다.
3. 개발 환경에 맞는 기술 문서 및 매뉴얼 작성을 할 수 있다.
 2. 임베디드 프로그램 작성하기1. 구현에 필요한 프로그래밍 언어들(C, C++, Java)을 이해할 수 있다.
2. 주어진 설계결과를 이용하여 목표 프로그래밍언어로 표현할 수 있다.
3. 개발환경에 적합한 형태로 코딩을 수행할 수 있다.
 3. 개발도구 및 테스팅기법 활용하기1. 컴파일러, IDE 등 개발에 필요한 도구를 이용할 수 있다.
2. 디버깅 도구를 이용하여 디버깅을 수행할 수 있다.
3. 사용하는 언어 및 개발 환경에 따라 단위 테스트를 위한 방법을 선정하고, 각 단위 간의 상호 작용을 고려한 테스트를 수행할 수 있다.
4. 단위 테스트를 위한 테스트 케이스를 작성할 수 있다.
5. 장애 대응1. 장애 접수 처리하기1. 임베디드SW 장애대응을 위하여 접수된 장애 내용을 유형에 따라 분류할 수 있다.
2. 임베디드SW 장애대응을 위하여 분류된 장애에 대해 장애등급을 지정할 수 있다.
3. 임베디드SW 장애대응을 위하여 처리절차에 따라 관련자에게 이관할 수 있다.
 2. 장애 대응 방안 수립하기1. 임베디드SW 장애 대응 방안 수립을 위하여 식별된 장애의 영향력, 발생가능성, 발생시점을 분석하여 우선순위를 정할 수 있다.
2. 임베디드SW 장애 대응 방안 수립을 위하여 장애의 원인을 분석할 수 있다.
3. 임베디드SW 장애 대응 방안 수립을 위하여 장애 복구에 소요되는 시간 및 자원을 정의 할 수 있다.
4. 임베디드SW 장애 대응 방안 수립을 위하여 장애를 복구하기 위한 세부 계획을 수립할 수 있다.
 3. 장애 복구하기1. 임베디드SW 장애복구를 위하여 장애 복구에 필요한 자원을 확보할 수 있다.
2. 임베디드SW 장애복구를 위하여 장애 원인을 제거할 수 있다.
3. 임베디드SW 장애복구를 위하여 장애 복구에 대한 작업내역을 기록할 수 있다.
4. 임베디드SW 장애복구 시 예외사항이 발생되었을 경우 비상조치를 실시할 수 있다.
5. 임베디드SW 장애복구 후 장애 처리 결과를 고객에게 전달할 수 있다.
 4. 장애 이력 관리하기1. 임베디드SW 장애 이력관리를 위하여 장애 조치 완료 보고서를 작성할 수 있다.
2. 임베디드SW 개선을 위하여 장애 처리 결과에 대한 이력을 관리할 수 있다.
3. 임베디드SW 개선을 위하여 장애 이력을 분석하여 개선사항을 도출할 수 있다.
 5. 고객 만족도 조사하기1. 임베디드SW 장애복구 완료 후 장애 처리결과에 대한 고객 만족도를 조사를 할 수 있다.
2. 임베디드SW 장애복구 완료 후 고객 만족도 조사결과를 분석할 수 있다.
3. 임베디드SW 장애복구에 대한 고객만족도 분석 결과를 활용하여 장애 대응 체계를 개선할 수 있다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.