본문 바로가기
개인 개발 공부/C ++

What is C, C#, C++ ?

by minjoothi 2024. 9. 17.

 

이걸 왜 배워?

 

안뇽하세요. MINJOOTHI 입니다.

오늘은 게임 개발의 근본이자  개발의 근본인 C에 대해 알아볼게요 !

 

 

저는 무언가를 배우려고 할 때 '이것을 왜 배우는지'에 대해

정말 많이 고민하긴 해요.

납득이 되고 필요하다 느껴야지

더 흥미도 생기고 공부도 잘되고 그러더라고요.

 

 

그래서 처음 대학교를 입학하고C언어를 배울때,

알아듣지도 못하겠는 이 외계어를도대체 왜 배우는지, 

교수님은 왜 허구한날 빈노트에 코드를 써보라 하는지 이해가 되지 않았었죠.

 

C를 배우기 전에 , 컴퓨터가 왜 생겼는지 부터 알아보겠습니다.

 

 

 

컴퓨터는 왜 생긴거야?

1. 복잡한 계산의 자동화 필요성:

 

인류는 오랜 세월 동안 천문학, 군사 계획, 상업 등 다양한 분야에서 복잡한 계산을 해야 했는데요

이러한 계산을 더 빠르고 정확하게 수행하기 위해 계산 기계가 필요했습니다.

 

 

2. 인간의 한계를 극복:

 

특히, 전쟁 중에는 빠른 암호 해독과 무기 궤도 계산 같은 작업이 필수적이었는데

우린 모두 피타고라스, 파스칼이 아니잖아요?

일반인들이 일일히 계산하기에는 시간이 너무 오래 걸렸습니다.

 

 

주판과 파스칼린

 

사실 아주 오래전부터 인류는 컴퓨터를 만들기 위해 발전을 거듭하고 있었는데요.

동양에서는 주판, 서양에서는 파스칼린이 그 예입니다.

 

주판은 많이들 아실 수도 있지만

파스칼린은 처음 들어보시는 분들도 꽤 있으실텐데요,

 

 파스칼린1642년 프랑스 수학자 블레즈 파스칼이 만든 최초의 기계식 계산기입니다.

이 기계는 톱니바퀴를 이용해 덧셈과 뺄셈을 수행할 수 있었습니다.

 

 

주판과, 파스칼린을 시작으로 인류의 과학기술은 점점 더 발전하며 

더 효과적인 자동화장치를 만들기 위해 노력했고요,

그렇게 우리의 컴퓨터가 탄생하게 되었습니다.

컴퓨터 언어는 왜 생긴거야?

그래, 컴퓨터 만들어진 것까진 알겠는데

그럼 컴퓨터 언어는 도대체 왜 배우는 것일까요? 

 

이 이유는 심플하게  컴퓨터가 '계산기'이기 때문이라고 생각하면 쉽습니다.

컴퓨터는 말그대로 숫자만을 인식하는 '계산기'이기 때문에

이진수인 0과 1만 알아듣는 것이지요,

 

프랑스에서는 불어를, 한국에서는 한국어를,

중국에서는 중국어를 일본에서는 일본어를 사용하는 것처럼

컴퓨터와 소통하기 위해서도 '컴퓨터 언어' 가 필요합니다.

 

 

Computer architecture

왜 C는 대중적인 컴퓨터 언어가 되었는가?

그럼 컴퓨터가 왜 생겼는지도, 컴퓨터 언어를 왜 사용하게 되었는지도

알게되었는데 왜 이진수 (0과 1) 이 아닌 C언어를 사용하게 된 것일까요?

 

C언어를 배우기 전에 컴퓨터 언어는 어셈블리어와 B 언어였는데,

어셈블리어는 저수준 언어로 각 기계에 맞춰 프로그래밍해야 했기 때문에,

다른 하드웨어에서 재사용하기 어려웠고, 유지보수가 복잡했습니다.

 

B 언어는 기존에 사용되던 어셈블리어보다 나은 점이 있었지만,

성능이 제한적이었고 시스템 개발에 필요한 기능이 부족했습니다.

 

그렇게 더 높은 성능과 더 나은 이식성,

 효율적인 시스템 소프트웨어 개발을 위한

새로운 언어가 필요하게 되었습니다.

 

그 때 등장한게 바로 우리의 c 언어 입니다.

 

 

그 후 C 언어는 주로 유닉스 운영 체제를 개발하기 위해 만들어졌으며,

그 과정에서 시스템 프로그래밍에 적합한 고성능, 이식성, 메모리 제어 기능을 갖춘 언어로 설계되었습니다.

 

 

C, C++, C# 의 차이는 무엇인가?

자 그럼 이제 마지막으로 C는 왜 언제부터 C, C++, C# 으로 나누어졌으며

왜 나누어지게 된 것일까요?


그 차이는 아래 형님의 유튜브 영상을 보시면 쉽게 이해하실 수 있습니다.

 

 

즉 결론적으로, 

  출시 시기 개발 목적  
C 1972년 시스템 프로그래밍 언어로,
주로 운영 체제나 저수준 하드웨어 제어를 위해 설계
운영 체제 개발, 임베디드 시스템,컴파일러
C++ 1985년 C 언어의 성능을 유지하면서
객체지향 프로그래밍(OOP)을 지원.
게임 개발, 그래픽 엔진, 고성능 소프트웨어, 시스템 소프트웨어 등.
C# 2000년  .NET 플랫폼을 위한 언어로, 보다 높은 수준의
응용 프로그램을 쉽고 빠르게 개발할 수 있도록 설계.
윈도우 애플리케이션, 웹 서비스, 게임 개발(Unity 엔진 사용), 클라우드 서비스 등.

 

이렇게 정리해 볼 수 있습니다.

 

결론

요즘은 대학생은 물론 고등학생들도 필수적으로 코딩을 배우는 시대가 왔는데요,

언어 공부를 많이 하는것도 좋지만 이 언어가 언제 어떻게 등장하였고,왜 사용해야 하는지,

이런것들을 알게되면조금 더 코딩 공부를 재미있고 쉽게 하실 수 있으리라 믿습니다.

 

또한 저처럼 게임개발이나 메타버스 개발에 관심이 많은 친구들이라면

또한 자동차나 반도체 등 하드웨어와 밀접한 코딩을 하는 친구들이라면

 

C언어가 어떤 것인지에 대해 아는 것은 필수라고 생각됩니다.

 

 

그럼 안농

 

 

'개인 개발 공부 > C ++' 카테고리의 다른 글

1-5 반복문과 다중반복문  (0) 2024.11.09
조건문  (0) 2024.11.09
연산자  (0) 2024.11.09
1-2. 변수와 자료형 그리고 입출력 함수  (0) 2024.11.09
GPT를 통해 알아본 유니티와 언리얼, C#과 C++  (0) 2024.11.08