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

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

(5개의 수강평)

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

이 강의는

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

이런 걸 배울 수 있어요

  • 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 언어 문법

지식공유자 소개

리눅스 환경에서 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월 30일 (마지막 업데이트 일자 : 2019년 4월 30일)

수강 후기

4.8
5개의 수강평
default_profile.png
염정원 2달 전
ipc의 개념이 잡히는 훌륭한 강의였네요...
ProgCoach4U

ProgCoach4U 2달 전
IPC의 개념을 잡으셨다니.. 정말 제가 바라던 바에요! 완강하시느라 고생 많으셨어요. 수고하셨습니다. 피드백 감사합니다~!! :D

default_profile.png
JJ 2달 전
초보 입장에서는 적절한 내용 수준과 호흡으로 진행되었기에 좋았습니다만, 몇 몇 예제는 이전의 '시스템 프로그래밍' 예제와 겹쳐서 두 강좌를 연이어 들은 저로서는 다소 아쉬움이 남습니다.
ProgCoach4U

ProgCoach4U 2달 전
시스템 프로그래밍과 IPC 프로그래밍이 서로 뗄래야 뗄 수 없는 관계이기에 다소 겹치는 내용이 있었던 것 같습니다. 강의를 만들면서 빠지는 내용이 없도록 노력했는데, 그러면서 겹치는 내용이 더 생겼던 것 같습니다. 다음 강좌 준비할 때 참고하도록 하겠습니다. 차분하고 상세한 리뷰 감사합니다~ :D

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스