리눅스 IPC 프로그래밍 - 이론과 실습

리눅스 IPC 프로그래밍 - 이론과 실습

(2개의 수강평)

68명의 수강생
55,000원
지식공유자 · ProgCoach4U
29회 수업 · 총 11시간 27분 수업
평생 무제한 시청
수료증 발급 강좌
수강 난이도 '중급'

이런 걸 배울 수 있어요

  • Linux IPC 도구의 종류와 특징을 파악합니다.
  • IPC 도구를 이용해 프로그래밍 하는 방법을 배웁니다.
  • 소프트웨어 요구사항에 맞는 IPC 도구를 선택해 설계/구현할 수 있는 능력을 키웁니다.

어느 정도 규모의 리눅스 시스템 개발에서 IPC(Inter-Process Communication)는 필수적으로 사용됩니다. 하나의 프로세스에 시스템에 필요한 모든 기능을 담을 수는 없기 때문입니다. 여러 프로세스가 각자의 역할을 수행하고, 또 유기적으로 동작해야 마치 하나의 소프트웨어가 동작하는 듯한 아름다운 모습을 그려낼 수 있습니다. 이 때 프로세스들의 유기적인 동작을 위해 필요한 것이 바로 IPC 입니다.



IPC 도구는 프로세스간 데이터를 주고 받을 수 있도록 하는 도구들을 말합니다. 리눅스는 여러 가지 IPC 도구를 제공합니다. 크게 데이터 교환과 동기화 도구로 나눌 수 있고, 데이터 교환은 데이터 전송 방식과 메모리 공유 방식으로 구분할 수 있습니다.



이 강좌에서는 IPC 도구 별 특징과 사용법을 알아봅니다. 또 비슷한 도구들은 비교/분석을 통해 좀 더 자세히 들여다 봅니다. 그리고 라이브 프로그래밍을 통해 실제로 어떻게 프로그래밍 할 수 있는지 배울 수 있도록 했습니다. 이로써 "리눅스 IPC 도구의 종류와 특징을 파악하고, 프로그래밍 할 수 있는 능력"을 키울 수 있도록 강의를 구성했습니다.

이 강좌의 최종 목표는 프로그래밍(구현)에 있지 않습니다. IPC 도구를 이용한 프로그래밍에서 더 나아가 "소프트웨어 요구사항에 맞는 IPC 도구를 적절히 선택해 설계/구현 할 수 있는 능력을 키우는 것"이 이 강좌의 최종 목표 입니다.

강의 실습 환경

  • 강의 실습은 Windows 10 호스트에 VirtualBox를 이용한 가상머신을 생성하고, 가상머신에 Ubuntu-18.04를 설치해 구성했습니다. (반드시 똑같은 구성일 필요는 없으며, 리눅스를 사용하실 수 있는 환경이면 실습 가능합니다)
  • 가상머신 설치 및 동작에 정확한 최소 사양을 말씀드리기는 어렵지만, 아래 사양이면 가상머신을 이용한 실습 환경 구성이 가능할 것 같습니다. - 2GHz/Dual core 이상의 CPU - 4GB 이상의 시스템 메모리 - 20GB 이상의 디스크 용량
  • VirtualBox 설치, 가상머신 생성, 가상머신에 Ubuntu-18.04 설치 등은 "실습 환경 구성(가상머신)" 동영상을 참고하시길 바랍니다.

연관된 강좌

리눅스 시스템 프로그래밍 - 이론과 실습
프로그래밍 실습을 통해 개념과 이론 뿐만 아니라
API 사용법과 동작 방식까지 습득하게 한다.

수강 대상

  • 설계/구현 잘하고 싶은 주니어 리눅스 개발자
  • 본격적으로 리눅스 개발자의 길을 걷고 싶으신 분

선수 지식

  • 리눅스 시스템 프로그래밍에 대한 전반적인 이해
  • 기본적인 리눅스 환경 개발 방법 및 C 언어 문법

지식공유자 소개

ProgCoach4U

리눅스 환경에서 15년 동안 개발자로 일했고, 지금도 개발자로 일하고 있습니다 :)

강좌 외 문의사항은 progcoach4u@gmail.com으로 보내주세요 ;)

 

교육과정

모두 펼치기 29 강의 11시간 27분
섹션 0. Introduction
1 강의 11 : 00
섹션 1. 데이터 전송
11 강의 274 : 33
Pipe와 Named Pipe
16 : 32
- Live Programming(pipe)
11 : 27
- Live Programming(named pipe)
18 : 02
Message Queue(SysV)
37 : 01
- Live Programming(SysV Message Queue)
36 : 47
Message Queue(POSIX)
25 : 40
- Live Programming(POSIX Message Queue)
32 : 13
Socket
36 : 24
- Live Programming(Stream Socket - Part 1)
28 : 33
- Live Programming(Stream Socket - Part 2)
16 : 21
- Live Programming(Datagram Socket)
15 : 33
섹션 2. 공유 메모리
6 강의 148 : 36
Shared Memory(memory mapped)
30 : 13
- Live Programming(file mapping)
30 : 00
- Live Programming(anonymous mapping)
19 : 16
Shared Memory(SysV + POSIX)
25 : 34
- Live Programming(SysV Shared Memory)
26 : 30
- Live Programming(POSIX Shared Memory)
17 : 03
섹션 3. 동기화
8 강의 239 : 24
Semaphore(SysV + POSIX)
39 : 13
- Live Programming(SysV Semaphore)
40 : 59
- Live Programming(POSIX Named Semaphore)
30 : 32
- Live Programming(POSIX Unnamed Semaphore)
24 : 42
File Locks
40 : 09
- Live Programming(flock)
18 : 39
- Live Programming(fcntl)
33 : 06
- Live Programming(lockf)
12 : 04
섹션 4. Wrap-up
3 강의 13 : 37
IPC 선택 Guide
13 : 37
강의자료
소스코드

공개 일자

2019년 4월 29일 (마지막 업데이트 일자 : 2019년 4월 30일)

수강 후기

5.0
2개의 수강평
yami2254 12일 전
좋은 강의였습니다.
ProgCoach4U 프로필

ProgCoach4U 12일 전
많은 도움이 되셨기를 바래요~ 감사합니다!! :D

JiEun Park 1달 전
필요하던 강의!
ProgCoach4U 프로필

ProgCoach4U 1달 전
좋게 봐주셔서 감사합니다~~ :D