리눅스 시스템 프로그래밍 - 이론과 실습
리눅스 시스템 프로그래밍 - 이론과 실습
수강정보
(25개의 수강평)
514명의 수강생
스킬태그 #Back-End, #Linux
33,000원
지식공유자 : ProgCoach4U
50회 수업 · 총 13시간 2분 수업
기간 : 평생 무제한 시청
수료증 : 발급 강의
수강 난이도 : 중급이상

이 강의는

본 강좌는 주제별 이론과 프로그래밍 실습을 병행하여 학습 효과를 극대화할 수 있도록 했습니다.

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

리눅스 시스템 프로그래밍(이하 LSP)은 리눅스가 제공하는 프로그래밍 인터페이스를 통해 리눅스 시스템을 제어/관리할 수 있는 어플리케이션을 작성하는 것을 말한다. LSP는 다른 개발 환경에 비해 low-level 인터페이스를 사용해야 하기 때문에 익숙하지 않은 사람에게는 불편하고, 무식하고, 불친절해 보일 수 있다. 그래서 어렵게 느껴질 수 있다.

하지만, LSP 만큼 리눅스와 친한 개발자를 만드는 과정은 없다.
LSP는 가장 단순한 방법으로 리눅스 커널과 interaction 하기 때문에 리눅스와 컴퓨터 시스템의 동작 과정에 대한 이해를 도울 수 있다. 또한 리눅스 디바이스 드라이버, 커널 프로그래밍 등으로 영역을 넓히기 위해서는 반드시 LSP를 익혀야 한다. 본 강좌는 주제별 이론과 프로그래밍 실습을 병행하여 학습 효과를 극대화할 수 있도록 만들었다. 수많은 API를 나열하고 소개하는 것에 그치지 않는다.

15년의 개발 경험에 비춰봤을 때 반드시 알아야 하고, 자주 사용되며, 혼동될만한 것들을 중점적으로 다뤄 핵심적인 내용을 수강생들에게 효과적으로 전달할 수 있도록 했다. 특히 주제별 실습을 빈 파일에서부터 실습을 시작하여 구현, 테스트, 디버깅의 모든 과정을 그대로 보여주는 라이브 프로그래밍으로 준비하여, 이런 일련의 개발 과정을 초심자들이 보고 따라하며 배울 수 있다.

학습 목표

  • 주제별 핵심 이론을 빠르게 습득하여 리눅스 프로그래밍 전반에 이해를 높인다.
  • 프로그래밍 실습을 통해 개념과 이론 뿐만 아니라 API 사용법과 동작 방식까지 습득하게 한다.

 도움이 되는 분들

  • 리눅스 개발자가 되고 싶은 분들
  • 빠르게 리눅스 개발에 적응하고 싶으신 분들
  • 리눅스를 책으로만 배웠지 무엇을 어떻게 해야할 지 모르겠는 분들
 

 강의 실습 환경

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

참고 사항

  • 기본적인 C 언어 문법에 대한 이해를 필요로 합니다.

연관된 강좌

리눅스 IPC 프로그래밍 - 이론과 실습 
리눅스 IPC 도구의 종류와 특징을 파악하고,
프로그래밍할 수 있는 능력을 키웁니다.

공개 일자

2019년 2월 21일 (마지막 업데이트 일자 : 2019년 2월 21일)

지식공유자 소개

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

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

 

4.7
25개의 수강평
default_profile.png
rycbar 123 7달 전
강의 선생님이 친절하시고 무엇보다 라이브 프로그래밍이 좋았습니다
ProgCoach4U

ProgCoach4U 7달 전
감사합니다~! 많은 도움이 되셨길 바래요~!! :D

default_profile.png
임지훈 10달 전
리눅스 man 페이지를 보고 개발 할 수 있는 능력이 함양되어 좋습니다. 약간의 아쉬운점 이라면 이론 설명 동영상이 10분 내외 였으면 좋겠습니다. 제공해주시는 교안이 좋기 때문에 설명이 조금 짧아도 괜찮을 것 같습니다.
ProgCoach4U

ProgCoach4U 10달 전
제 강좌를 되돌아볼 기회가 되었어요. 다음 강좌 준비할 때 참고하겠습니다~!! 상세한 리뷰 감사합니다~! :D

교육과정

모두 펼치기 50 강의 13시간 2분
섹션 1. 파일 다루기(basic)
7 강의 71 : 00
파일 열기/닫기
10 : 00
파일 열기/닫기 - 라이브 프로그래밍
13 : 00
파일 포지션
03 : 00
파일 포지션 - 라이브 프로그래밍
15 : 00
파일 읽고 쓰기
16 : 00
파일 읽고 쓰기 - 라이브 프로그래밍
14 : 00
파일 다루기(basic) : 강의자료
섹션 2. 파일 다루기(low-level)
9 강의 111 : 00
저수준 파일 열기/닫기, 스트림 포지션
18 : 00
저수준 파일 열기/닫기, 스트림 포지션 - 라이브 프로그래밍
18 : 00
저수준 파일 문자/문자열 읽고 쓰기
08 : 00
저수준 파일 문자/문자열 읽고 쓰기 - 라이브 프로그래밍
26 : 00
하드링크와 소프트링크
08 : 00
하드링크와 소프트링크 - 라이브 프로그래밍
16 : 00
파일 속성
07 : 00
파일 속성 - 라이브 프로그래밍
10 : 00
파일 다루기(low-level) : 강의자료
섹션 3. 파일 다루기(advanced)
15 강의 270 : 00
Directory 다루기
09 : 00
Directory 다루기 - 라이브 프로그래밍
13 : 00
Memory map
17 : 00
memory map - 라이브 프로그래밍
17 : 00
파일을 이용한 동기화
15 : 00
파일을 이용한 동기화 - 라이브 프로그래밍
26 : 00
파일 속성 제어
09 : 00
파일 속성 제어 - 라이브 프로그래밍
19 : 00
파일 이벤트
22 : 00
파일 이벤트 - 라이브 프로그래밍
24 : 00
I/O Multiplexing(select)
24 : 00
I/O Multiplexing(select) - 라이브 프로그래밍
25 : 00
I/O Multiplexing(epoll)
28 : 00
I/O Multiplexing(epoll) - 라이브 프로그래밍
22 : 00
파일 다루기(advanced) : 강의자료
섹션 4. 프로세스와 쓰레드
9 강의 166 : 00
프로세스 개념, 프로세스 생성
21 : 00
프로세스 개념, 프로세스 생성 - 라이브 프로그래밍
11 : 00
프로그램 실행과 종료처리
30 : 00
프로그램 실행과 종료처리 - 라이브 프로그래밍
18 : 00
프로세서 친화
21 : 00
프로세서 친화 - 라이브 프로그래밍
15 : 00
쓰레드 개념, 쓰레드 생성/종료/조인/동기화
23 : 00
쓰레드 개념, 쓰레드 생성/종료/조인/동기화 - 라이브 프로그래밍
27 : 00
프로세스와 쓰레드 : 강의자료
섹션 5. 시그널, 시간
7 강의 134 : 00
기본 시그널 처리
32 : 00
기본 시그널 처리 - 라이브 프로그래밍
16 : 00
고급 시그널 처리
18 : 00
고급 시그널 처리 - 라이브 프로그래밍
22 : 00
시간과 타이머
22 : 00
시간과 타이머 - 라이브 프로그래밍
24 : 00
시그널, 시간 : 강의자료
섹션 6. 실습에서 사용한 소스코드들
1 강의
강의자료 - 소스코드

수강 문의

  • chungstupid 프로필 chungstupid
    2020-09-24 67923

    안녕하세요 강의를 따라가는데 C언어에 대한 지식이 얼마나 필요한지 알고싶습니다.

    ProgCoach4U
    ProgCoach4U
    ProgCoach4U
    2020-09-24 72222

    안녕하세요. 질문자님. 리눅스 시스템 프로그래밍 자체를 C언어로 진행하다보니 C언어가 선수과목에 해당합니다. 다음 내용을 알고 계셔야 수강이 가능하실 것 같습니다. - if, for, while 등의 기본 문법 - 구조체 - 포인터 이 정도 알고 계시면 수강하시는데 큰 어려움은 없으실 것 같습니다. 만약 위의 내용을 알듯 말듯 한 상태이시라면.. 수강하시면서 같이 스터디 하시면 좋을 것 같습니다. 더 궁금한 점 있으시면 추가 질문 남겨주세요. 감사합니다~ :)

  • 펜잡이 개발자 프로필 펜잡이 개발자
    2020-09-18 65739

    백엔드 개발자 채용공고에 흔히 볼 수 있는 "리눅스 개발에 대한 이해, 리눅스 서버 운영/배포 경험" 이라는 글이 많은데 이 강의가 도움이 되는 강의일까요?? 참고로 신입이에요,,! 리눅스 프로그래밍 말고 일반 리눅스? 관련된 강의들을 봐야할지요,,,

    ProgCoach4U
    ProgCoach4U
    ProgCoach4U
    2020-09-19 71541

    안녕하세요. 임경원님. 리눅스 개발이라고 하면 좀 광범위한 말 입니다. C/C++을 이용한 리눅스 시스템 프로그래밍도 포함될 수 있구요, 자바나 파이썬, Go lang을 이용할 수도 있구요. 리눅스 환경에서 동작하는 소프트웨어를 모두 아우르는 굉장히 광범위한 말이네요. 따라서 경우에 따라 리눅스 시스템 프로그래밍 강좌가 도움이 되실 수도 있고, 그렇지 않을 수도 있습니다. 채용 포지션에서 어떤 업무를 하느냐에 따라 달린 문제인 것 같습니다. 리눅스 서버 운영/배포는 개발과는 조금 거리가 있습니다. 요즘 devops로 개발과 운영이 같이 어우러지기는 하지만 개발과 운영은 아무래도 거리가 있습니다. 운영에 해당하는 영역은 제가 잘 알지는 못하지만, 쿠버네티스나 도커에 대한 강의를 들어보시면 좋으실 것 같습니다. 답변이 됐을지 모르겠네요. 더 궁금한 내용 있으시면 추가 문의 부탁드립니다. 감사합니다.

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