컴퓨터 공학
컴퓨터 공학(Computer Engineering)은 컴퓨터와 컴퓨터로 제어되는 장치를 구성하는 하드웨어와 소프트웨어를 설계하고 구현하며, 두 요소가 하나의 시스템으로 올바르게 동작하도록 통합하는 공학 분야이다. 컴퓨터 과학의 계산 이론과 소프트웨어 기술, 전기공학과 전자공학의 회로 및...
| 영문명 | Computer Engineering |
| 분류 | 공학, 컴퓨팅 |
| 기반 학문 | 컴퓨터 과학, 전기공학, 전자공학 |
| 주요 대상 | 컴퓨터 하드웨어, 소프트웨어, 펌웨어, 컴퓨터 제어 장치 |
| 핵심 영역 | 디지털 논리, 컴퓨터 구조, 임베디드 시스템, 컴퓨터 네트워크, 하드웨어·소프트웨어 공동 설계 |
| 관련 산업 | 반도체, 컴퓨터 시스템, 통신, 자동차 전자장치, 산업 자동화, 사물인터넷 |
컴퓨터 공학(Computer Engineering)은 컴퓨터와 컴퓨터로 제어되는 장치를 구성하는 하드웨어와 소프트웨어를 설계하고 구현하며, 두 요소가 하나의 시스템으로 올바르게 동작하도록 통합하는 공학 분야이다. 컴퓨터 과학의 계산 이론과 소프트웨어 기술, 전기공학과 전자공학의 회로 및 신호 기술을 바탕으로 프로세서, 메모리, 디지털 회로, 임베디드 시스템, 컴퓨터 네트워크와 각종 지능형 장치를 다룬다.
컴퓨터 공학은 개별 전자 부품이나 프로그램만을 독립적으로 연구하기보다, 명령어를 실행하는 프로세서와 데이터를 저장하는 메모리, 외부 장치와 통신하는 인터페이스, 이를 제어하는 펌웨어와 운영체제까지 연결된 전체 계산 시스템을 주요 대상으로 삼는다. 따라서 같은 기능이라도 전용 하드웨어로 구현할지, 프로세서에서 실행되는 소프트웨어로 구현할지, 또는 두 방식을 결합할지를 결정하는 하드웨어·소프트웨어 공동 설계가 중요한 영역을 이룬다.
컴퓨터 공학자가 설계하는 시스템의 규모는 단일 논리 게이트와 집적회로에서 마이크로컨트롤러, 시스템 온 칩, 개인용 컴퓨터, 서버, 슈퍼컴퓨터와 대규모 분산 장치에 이르기까지 다양하다. 자동차의 제어 장치, 산업용 로봇, 통신 장비, 의료기기, 가전제품과 사물인터넷 장치처럼 다른 기계 내부에 포함되어 특정 기능을 수행하는 컴퓨터도 주요 연구·개발 대상이다.
현대의 컴퓨터 공학은 성능만을 높이는 데 그치지 않고 전력 소비, 생산 비용, 물리적 크기, 실시간 응답성, 신뢰성, 안전성과 보안을 함께 고려한다. 특히 반도체 집적도가 높아지고 계산 시스템이 일상적인 장치와 사회 기반 시설에 널리 포함되면서, 컴퓨터 구조와 회로 설계뿐 아니라 병렬 처리, 인공지능 가속기, 사이버 물리 시스템, 하드웨어 보안과 에너지 효율적인 계산 기술의 중요성이 커지고 있다.
ACM과 IEEE Computer Society의 컴퓨터 공학 교육 지침은 이 분야를 현대 계산 시스템과 컴퓨터 제어 장치의 하드웨어 및 소프트웨어 구성 요소를 설계·구축·구현·유지하는 학문으로 정의한다. 또한 컴퓨터 공학을 컴퓨터 과학과 전기공학에 밀접하게 연결되어 있으면서도, 고유한 지식 체계와 설계 문제를 가진 별도의 공학 분야로 다룬다.
역사
전기식 계산 장치의 등장
진공관 컴퓨터
트랜지스터와 반도체
집적회로와 마이크로프로세서
개인용 컴퓨터와 마이크로컴퓨터
임베디드 시스템의 확산
시스템 온 칩과 현대 컴퓨터 공학
기초 이론
수학과 이산수학
전기회로
전자회로
신호와 시스템
확률과 통계
정보 이론
디지털 논리
수 체계와 데이터 표현
불 대수
논리 게이트
조합 논리 회로
순차 논리 회로
레지스터와 카운터
유한 상태 기계
디지털 회로의 타이밍
전자회로와 반도체
다이오드와 트랜지스터
MOSFET
CMOS
집적회로
아날로그 회로와 디지털 회로
반도체 제조
전력과 신호 무결성
컴퓨터 구조
명령어 집합 구조
중앙 처리 장치
데이터 경로와 제어 장치
파이프라이닝
캐시와 메모리 계층
가상 메모리
입출력 구조
인터럽트와 예외
병렬 컴퓨터 구조
이기종 컴퓨팅
프로세서와 가속기
범용 프로세서
마이크로컨트롤러
디지털 신호 처리 장치
그래픽 처리 장치
인공지능 가속기
주문형 집적회로
재구성 가능 하드웨어
시스템 온 칩
메모리와 저장장치
레지스터
캐시 메모리
주기억장치
비휘발성 메모리
보조 기억장치
메모리 컨트롤러
오류 검출과 정정
저장장치 인터페이스
하드웨어 설계와 구현
회로도 기반 설계
하드웨어 기술 언어
레지스터 전송 수준
논리 합성
배치와 배선
FPGA 설계
ASIC 설계
인쇄 회로 기판
시제품 제작과 양산
소프트웨어와 펌웨어
저수준 프로그래밍
어셈블리어
시스템 프로그래밍
펌웨어
부트로더
장치 드라이버
운영체제와 하드웨어 추상화
크로스 컴파일과 도구 체인
하드웨어·소프트웨어 공동 설계
시스템 요구사항 분석
하드웨어와 소프트웨어의 기능 분할
인터페이스 설계
성능과 비용의 절충
전력과 자원 최적화
공동 시뮬레이션
공동 검증
시스템 통합
임베디드 시스템
임베디드 프로세서
센서와 액추에이터
주변장치와 버스
저전력 설계
실시간 운영체제
베어메탈 시스템
산업용 제어 시스템
사물인터넷 장치
실시간 시스템
실시간 요구사항
결정성
작업과 우선순위
실시간 스케줄링
인터럽트 지연
마감시간 분석
안전 중요 시스템
장애 허용
컴퓨터 네트워크와 통신
데이터 통신
네트워크 인터페이스
유선 통신
무선 통신
통신 프로토콜의 하드웨어 구현
네트워크 프로세서
소프트웨어 정의 네트워크
시간 민감형 네트워크
로봇공학과 제어
피드백 제어
센서 융합
모터 제어
실시간 인식과 판단
자율 시스템
산업용 로봇
이동 로봇
인간과 로봇의 상호작용
신호 처리와 멀티미디어
디지털 신호 처리
필터링
음성 처리
영상 처리
데이터 압축
멀티미디어 가속기
센서 데이터 처리
병렬·분산 시스템
멀티코어 프로세서
공유 메모리
분산 메모리
병렬 프로그래밍
클러스터와 데이터 센터
엣지 컴퓨팅
고성능 컴퓨팅
보안과 신뢰성
하드웨어 보안
보안 부팅
신뢰 실행 환경
암호 연산 가속
부채널 공격
하드웨어 취약점
오류 검출과 복구
신뢰성 공학
설계 검증과 시험
기능 검증
시뮬레이션
형식 검증
정적 분석
하드웨어 시험
디버깅과 계측
성능 분석
적합성 시험
설계 목표와 절충
성능
전력 소비
에너지 효율
비용
물리적 크기
발열과 냉각
신뢰성과 수명
개발 기간
개발 도구
전자 설계 자동화
회로 시뮬레이터
논리 분석기
오실로스코프
디버거와 프로그래머
FPGA 개발 도구
반도체 설계 도구
하드웨어 에뮬레이터
활용 분야
개인용 컴퓨터와 서버
모바일 장치
자동차 전자 시스템
항공우주와 국방
산업 자동화
통신 장비
의료기기
가전제품
게임기와 멀티미디어 장치
인공지능 시스템
사물인터넷과 스마트 장치
다른 분야와의 관계
컴퓨터 과학
전기공학
전자공학
소프트웨어 공학
정보통신공학
제어공학
로봇공학
반도체 공학
기계공학과 메카트로닉스
교육과 직무
컴퓨터 공학 교육
하드웨어 엔지니어
임베디드 시스템 엔지니어
펌웨어 엔지니어
컴퓨터 구조 연구자
반도체 설계 엔지니어
시스템 엔지니어
검증 엔지니어
장점과 한계
관련 문서