컴퓨터(Computer Science)/시스템 프로그래밍(System Programming)

시스템 프로그래밍을 배우는 이유

게임이 더 좋아 2020. 12. 8. 19:48
반응형
728x170

 

질문부터 해보겠다.

우선 시스템 프로그래밍을 왜 해야할까???

 

취직이 잘되니까?

ㅇㅋ

컴퓨터인의 소양이니까?

ㅇㅋ

코딩 좀 하니까?

ㅇㅋ

 

위의 말이 다 맞지만 진짜 시스템 프로그래밍을 배우는 이유는 

우리가 프로그램을 만드는 과정을 알면 그 이유 또한 알게된다.

 

시작해보자

 


 

아래의 그림이 바로 Build Process이다. 

우리가 무엇인가 만든다면 아래의 방식대로 짜게될 것이다.

 

** 여기서 초록색은 Development Tool을 말하고

** 하얀색은 사용자의 정의에 따라 있기도 없기도 하다.

 

이제 이유를 알겠나...?

 

"엥?? 모르겠는데?  내가 알고 있는 방법이랑 같은데??"

 

맞다.

우리는 이미 빌드 과정을 알고 있다.

하지만 우리는 그 활동을 시스템 위에서 하지 않는다. 우리가 하는 활동은 Application Programming이다.

즉, 우리는 시스템 위에서... Like 커널... 에서 와 같이 시스템 단계에서 프로그래밍을 하겠다는 것이다.

 

**사실 Application Programming과 포함관계다... 그래서 나누긴 싫지만 굳이 나누자면 그렇게 나눴다.

 

 

요약하자면 

시스템 단계에서 프로그래밍을 함 -> 왜냐하면 더 나은 퍼포먼스를 끌어내기 위함

-> 하드웨어와의 긴밀하게 연결된 프로그래밍으로 최적화 및 주어진 환경에서 최대 효율 이끌어냄

 

 

더 쉽게 비유를 하자면

레고에 비유해보겠다.

1. 우리는 을 쌓는 레고를 가지고 있다.

2. 하지만 어려워 하는 사람들을 위해 레고는 큼직 큼직한 덩어리로 이루어져있다.

3. 세부사항과 디테일에 신경쓰기 어렵다 

4. 멀리서 보면 성 같지만 가까이 보면 그냥 별로다(만족도 하락)

5. 레고를 큼직한 덩어리가 아닌 내가 조그만 블럭들로 큰 구성품을 만든다.

6. 멀리서 봐도 같고 가까이서 봐도 같다.

7. 만족도 상승 

 

-만족도 : 퍼포먼스(Performance)

-큰 블럭 조립 : Application Programmning

-작은 블럭으로 큰 블럭 조립: System Programming

-성 : 프로그램(Program)

 

**물론 Application Programming이 쉽다는 소리는 절대 아니다.

 

 

다음에는 시스템 프로그래밍에서 알아야할 기본 OS 지식들을 알아보자.

반응형
그리드형