NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    C, C++ C/C++기반 윈도우 계열 시스템 프로그래머가 되려면 얼마나 공부해야 할까?

    페이지 정보

    본문

    시스템 프로그래밍 공부를 시작하는 방법


    소개
    안녕하세요! 수험생 여러분, 놀란 개발자입니다. 오늘은 2022년 9월 3일, 5시 40분이 되었습니다. 최근에 시스템 프로그래밍을 공부하고 싶다는 분들이 계셔서, 이쪽으로 공부하는 방법에 대해 문의를 주셨습니다. 이번 블로그에서는 그 질문에 대한 답변을 드리려고 합니다.

     

    공부 순서
    시스템 프로그래밍을 공부하기 위한 기준을 알려드리겠습니다. 먼저, 윈도우 운영체제를 기준으로 설명하겠습니다. 공부 기간은 일년 정도로 잡으시면 좋습니다. 다음은 공부 순서입니다.

    1. C 언어
    2. 자료구조
    3. C++
    4. 윈도우 32 API 프로그래밍
    5. MFC (선택사항)
    6. 하이브리드 어플리케이션 개발
    7. 브라우저에서의 자바스크립트 기반 개발

     

    위 순서대로 공부하면 됩니다. 각 항목에 대해 좀 더 자세히 설명하겠습니다.

    SOz6pHZ.jpg

     

     

    1. C 언어
    시스템 프로그래밍을 시작하기 위해서는 먼저 C 언어를 공부해야 합니다. C 언어 공부 후에는 포인터에 대한 이해가 필요합니다. 포인터는 처음에는 어려울 수 있지만, 연습을 통해 익숙해질 수 있습니다. 또한, 함수 포인터와 함수 포인터 배열에 대해서도 이해해야 합니다.

     

    2. 자료구조
    자료구조는 C 언어에서 기본적으로 배워야 하는 부분입니다. 링크드 리스트와 이진 트리를 포함한 자료구조에 대한 이해를 바탕으로 프로그래밍을 할 수 있어야 합니다. 최소한 자료구조를 제대로 이해하고 구현할 수 있을 만큼 공부하시기 바랍니다.

     

    3. C++
    C++은 기본적인 문법만 알면 됩니다. 주요한 부분은 객체지향 프로그래밍을 위한 문법입니다. 이 부분은 단순히 문법을 안다고 해서 프로그래밍이 끝나는 것이 아니라, 개념적인 이해가 필요합니다.

     

    4. 윈도우 32 API 프로그래밍
    윈도우 운영체제에서는 윈도우 32 API를 사용하여 프로그래밍을 할 수 있습니다. GUI 프로그래밍은 필요하지 않으므로, 해당 부분은 배우지 않아도 됩니다. 대신, MFC를 사용하실 때는 하이브리드 어플리케이션 개발 방법을 배우셔야 합니다.

     

    5. 하이브리드 어플리케이션 개발
    MFC보다는 하이브리드 어플리케이션 개발 방법을 사용하는 것이 더 좋습니다. 외부에서 보면 MFC 기반의 어플리케이션으로 보이지만, 실제로는 JavaScript 기반으로 개발됩니다. 이 방법을 사용하면 브라우저 화면에서 자바스크립트 기반의 이벤트를 네이티브 코드에서 처리할 수 있습니다.

     

    6. 파일 입출력 및 네트워크
    시스템 프로그래밍을 더욱 깊이 공부하고 싶다면, 파일 입출력과 네트워크에 대한 개념을 알아야 합니다. 파일 입출력은 I/OCP와 관련이 있습니다. 또한, 멀티 쓰레딩 프로그래밍을 할 때는 동기화에 대한 이해도 필요합니다.

     

    7. 프로젝트 수행
    마지막으로, 시스템 프로그래밍을 마무리하기 위해 프로젝트를 수행해야 합니다. 프로젝트의 주제는 자유롭게 선택하시면 좋습니다. 프로젝트를 수행하면서 파일 입출력, 쓰레드 제어, IPC 등을 활용해보세요. 이를 통해 실제로 시스템 프로그래밍에 대한 역량을 발휘할 수 있습니다.

    ZVD7dDk.jpg

     

     

    기타 사항
    시스템 프로그래밍 공부를 하면서 몇 가지 추가적인 내용을 알려드리겠습니다. 다음은 해당 내용입니다.

    • 포인터와 함수 포인터는 반드시 이해하고 사용할 수 있어야 합니다.
    • 자료구조 공부는 싱글 링크드 리스트부터 시작해서 이진 트리까지 해주셔야 합니다.
    • C++는 기본적인 문법만 배우시면 됩니다. 중요한 것은 가상 함수와 템플릿입니다.
    • 파일 입출력은 중요한 개념이므로, 이를 제대로 이해하고 사용할 수 있어야 합니다. 특히 IOCP 개념과 오버랩 디바이스 I/O 등에 대해서도 알아보세요.
    • 시스템 프로그래밍을 더욱 깊이 공부하고 싶다면, 네트워크와 IPC 등에 대한 지식도 필요합니다. 이를 통해 보다 실용적인 프로그래밍을 할 수 있습니다.

     

    이상으로 시스템 프로그래밍 공부를 시작하는 방법에 대해 알아보았습니다. 궁금한 점이나 질문이 있다면 언제든지 댓글로 남겨주세요. 여러분들의 공부에 도움이 되길 바랍니다. 감사합니다!

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.