프로세스 , 쓰레드 , 메모리 , 동기화 , 파일시스템 , 프로토콜 등 시스템 & 네트워크에 입문하게 되면 듣는 용어 들 입니다 .

언제 들어도 생소 하지요 . 먼저 공부한 선배들을 통해 이들을 공부 하려면 읽어야 할 책을 우리는 알고 있습니다 . 리차드 스티븐의 “Unix Environment program” 시스템 프로그램 계통에서는 최고의 책입니다 . 어떤 회사든 대학이든 책장에 꼽혀 있지요 .

하지만 단언 하건데 이 책을 자신의 것으로 만들고 응용하는 개발자는 별로 없습니다 .

이유는 너무 어렵기 때문 입니다 . 수십년간 의 노하우와 지식을 책 한권에 집대성 하다 보니 내공이 부족한 사람이 읽기에는 감당키 어렵기 때문입니다 .

또한 네트워크의 세계에서는 “TCP/IP Illustrated” 시리즈가 있습니다 . 모두 세권 인데요 한 권 조차 제대로 보기 어렵지요 . “Unix Network Programming” 이 책은 네트워크 프로그램의 정서 입니다 . CEO 라면 이 책 3 권을 마스터 하고 응용할 수 있는 개발자라면 아무 조건 없이 채용할 것입니다 .

하지만 혼자서 보기엔 여러 가지 장벽이 있습니다 . 우선 너무 어렵고 , 영어 이며 , 재미가 없다는 것이지요 .

이 과정은 이런 분들을 위해 존재 합니다 .

그래서 이 과정 에서는

•  기본에 충실한 네트워크 개론을 배웁니다.

•  TCP/IP의 내구 매커니즘과 이에 따른 자료구조를 분석 합니다.

•  네트워크 프로그램에서 사용되는 고급 테크닉을 배웁니다.

•  네트워크 프로그램의 핵심과 주의 사항들을 배웁니다 .

•  고성능 서버를 만들기 위한 10 여가지의 서버 모델링을 배웁니다 .

•  네크워크 커널 내부 구조를 분석 합니다.

•  네트워크 디바이스드라이버의 구동 원리를 커널 소스로 이해 합니다.


과정을 다 배우시고 나면 스티븐의 책들이 어렵지 않게 다가 오기를 기대 합니다 .
우리 모두 정상에서 만날 날기 고대하며 ….

전형방법

- 선수과정의 개인별 학습프로젝트 평가

- 선수과정의 학습에 준하는 기술면접 평가

프로젝트 유형

- 로드밸런싱 서버/켤함허용 시스템 개발

- 고성능 게임서버 개발

- 방화벽 및 침입탐지 시스템

- Protocol converter(IPv4->IPv6, h.23->SIP)

- 네트워크 모니터링/필터링 및 로깅 툴 개발

- 네트워크 보안 커널 개발




과 목 명주요 내용
1
Linux System 이해 및 구조분석   - 파일시스템,메모리구조,프로세스 생성/소멸,터미널인터페이스,보안레벨,
   로깅,error 처리
2TCP/IP 개론  - IP 라우팅, Fragmentation, checksum 구조, TCP 슬라이딩윈도우,
   seq넘버, ack 시스템
3기본 네트워크
프로그램 I
  - 서버/클라이언트 프로그램 기본구조, iterator servor, concurrent server
4기본 네트워크
프로그램 II
  - 비동기 서버구조,I/O multiplexing, broad casting, OOB
5
고급 네트워크
프로그램
  - 고성능 서버구조, 세션/채널/룸/유저 관리기법, Ring buffer 구조, 분기의 고급화
6
시스템 및 네트워크 보안   - 고전암호학, 암호학의 발전, DES/RSA 분석 및 구현,x.509표준의 인증서,GPG,
   Open SSL분석
7커널(Kernel)고급
자료구조
  - Generic linked list,Hash,Bitmap,Flexile array,Memory pooling, 패턴매칭,
   RB Tree,압축
8네트워크커널 내부
구조 분석
  - 레이어드 개발 기법 분석, IP의 패킷전달 과정 분석, TCP의 알고리즘 분석,
   Netfiter frame work 분석,커널 레벨의 패킷 capture 및 조작기법
9네트워크디바이스 드라이버 분석 및 개발   - 시스템 콜 구조, 모듈프로그램 네트워크 드라이버 분석,간단한 Driver 개발
10팀 별 프로젝트   IP transrator,네트워크 보안커널 개발, 고성능서버개발, 대역폭 관리시스템
   백신개발,protocal stack 개발, IDT(침입탐지시스템),원격제어,원격디버거 개발
   Network File System 개발, ETC

--> 다담 소프트웨어 커리큘럼에서 네트워크 엑스퍼트 과정이고

*********************************************************************************************

임베디드 란 무엇입니까?
전기 회로로만 되어 있던 아날로그를 지나 4bit/8bit cpu 가 내장된 수많은 가정제품 (이는 펌웨어라 합니다.) 이 등장 했고, 현재는 게임기 , 네비게이터 , 핸드폰, IPTV등 수없이 많은 전자기기 등에 적용 되는 시스템이라 할 수 있습니다.

모든 전자기기에 운영체제를 삽입하여 인공지능, 네트워크, 센서를 통한 패턴인식 등 기존의 펌웨어로는 상상도 할 수 없는 많은 기능을 가능하게 합니다. IPv6의 도입으로 무한대의 IP주소 할당이 가능해지고 Giga bit 급의 무선 네트워크가 상용화 되면 우리가 알고 있는 모든 상품에 운영체제가 적용될 날이 멀지 않았습니다.

아무리 기술이 발전해서 이런 멋진 세상이 된다 할지라도 누군가는 하드웨어를 만들어야 하고 프로그램을 개발해서 하드웨어를 제어 해야 할 것입니다.

하지만 현재 자신있게
“나는 임베디드 개발자 입니다.” 라고 말할 수 있는 사람은 별로 없을 것입니다.
그 이유는 임베디드 개발자라고 말 할 수 있으려면 깊은 하드웨어 지식과 운영체제의 내부원리 , 디바이스 드라이버, 네트워크, GUI까지 개발자로 할 수 있는 전분야를 섭렵 해야 하기 때문입니다.

너무 방대하고 어려운 부분이라 감히 엄두가 나지 않지만 모든 기술의 근간을 이루는 기본기술을 잘 이해하는 사람이라면 노력과 시간이 그를 임베디드 개발자로 만들어 줄것입니다.

본 과정은 이런 근본적인 기술을 중요시 하는 분들을 위해 존재 합니다.

그래서 이 과정 에서는

1. 이산수학 및 디지털 회로이론.
2. 8bit CPU의 내부구조와 동작원리( 8051, AVR )
3. 리눅스 커널을 이용하여 OS 내부원리를 충실히 이해합니다.
( 프로세스, 메모리, 동기화, 파일시스템 등 )
4. 32bit CPU의 내부구조와 동작원리( i386, ARM )
5. ROM,RAM,BUS,PORT 등 하드웨어 이해
6. RTOS의 종류 및 포팅기법.
7. 부트 스트랩 로더 분석 및 구현
8. 임베디드 GUI( QT/GDK/GTK/Micro window )




과목명과목설명
1이산 수학 및 디자털 회로 이론이산대수, 기본게이트, 플립플롭, RAM/ROM.
28bit 프로세서 ( 8051, AVR )어셈블리, cpu내부구조, 인터럽트 , 카운터/타이머, I/O포트.
332bit CPU( Intel CPU )i386 내부구조, Real/보호 모드, 유저/커널모드, 멀티태스킹, 메모리 관리( 세그멘데이션, 페이징).
4경량 운영체제Micro C / OS-II리얼타임 시스템의 개념, 커널구조, 태스크 관리 , 시간관리, 동기화, 메모리 관리, 프로세스간 통신.
5커널 고급 자료구조Generic linked list, Hash, Bitmap, Flexible array, Memory pooling, 패턴매칭, RB Tree, 압축.
6최신 운영체제 분석linux kernel 내부구조 분석( 2.4/ 2.6 ) .
7디바이스 드라이버커널 모듈 프로그램, 디바이스 드라이버 등록, 구조체, 문자,블록,네트워크 디바이스 드라이버.
8임베디드 시스템 개발 환경cross complie 환경설정, 부트로더 제작, bin utility .
9ARM Architecture의 이해ARM 어셈블리 언어, CPU 구성, ARM 명령어 세트, 프로세서 코어, Thumb 명령어 세트.
10임베디드 리눅스 포팅PXA 270 칩 구조, 커널 패치, 커널 make 구조, 커널 complile, flash 구조(MTD).
12WinCE 환경 개발 PDA 포팅, EVC 개발 환경, 디버깅, 파일 시스템, WDM.
13임베디드 UI QT , GTK.
14팀 별 프로젝트
- 특화된 RTOS 개발, GPS연동 텔레메틱스
- RFID를 이용한 전자태그 관련 프로젝트
- 산업용 로봇 개발
- 산업용 기계 컨트롤 박스
- 무선 네트워크 관련 프로젝트
- PDA / Smart Phone / 차세대 핸드폰
- 게임기, IPTV, 멀티미디어 기기


이건 다담에서 임베디드 전문가 과정이거덩?


난 라우터, 기지국, 핸드폰, 스위치, 아님 통신 프로토콜 쪽 막 건드리는게 목표인데
임베를 듣는게 나중을 위해 좋을까? 아님 걍 네트웍을 듣는게 좋을까?


괜찮으니까 형의 생각을 솔직히 이야기 해줘