유니티의 기반 언어 C#, 그리고 C++
요즘 게임 업계에서 많이 사용되며
게임 회사 취직을 원하시는 분들이 많이들 배우시는 유니티!
게임 프로그래머는 유니티의 기반 언어
C#과 C++에 대한 이해도와 활용도를 갖추는 게 좋겠죠~?
그래서 오늘은 유니티의 기반 언어 C#과 C++에 대한
기초적인 지식을 공유드리려고 합니다!
C#은 뭐고 C++는 뭐에요?
● C++
C++ 언어는 기존의 C 언어에 몇 가지 강력한 기능이 추가된 언어이기 때문에,
C 언어의 발전된 형태라고도 볼 수 있습니다.
C++ 언어는 이해도가 없으면 접근하기 쉽지 않아요.
능숙하지 못한 프로그래머가 사용한다면 버그가 많이 생길 우려가 있습니다.
하지만 C++를 꾸준히 공부하여 숙련도를 높인다면, 정말 큰 효율을 낼 수 있는 언어라고 생각해요.
C++의 장점
C++은 언어의 최대 장점이라고 할 수 있는 것은 '강력하면서 유연하다'입니다.
이런 장점 덕분에 대부분의 컴퓨터들이 지원하는 컴퓨터 언어가 될 수 있었습니다.
C++은 절차지향, 객체지향, 일반화 프로그래밍 등 프로그래밍 언어에서 제공할 수 있는 대다수의 패러다임을 지원하는 언어입니다.
내용이 매우 방대하고 어려운 것이 특징이라 전문적인 교육을 받아 공부하는 추세입니다.
그리고 C++은 시스템 프로그래밍 언어이기 때문에 zero-cost abstraction, 즉 "네가 쓰지 않는 것에 대해서는 성능 하락을 주지 않는다"라는 것을 언어의 설계 철학으로 하고 있습니다.
또한, 런타임 성능을 쥐어짜내기 위해 인라이닝, 컴파일 타임 프로그래밍 관련 수많은 기능을 도입한 언어이기 때문에 같이 비교되는 시스템 프로그래밍 언어들인 c, Rust에 비해 '프로그래머의 기량이 뒷받침된다면' 더 빠르게 동작하는 코드를 짤 수 있어요.
C++ 언어는 한 마디로 많이 사용되며, 사용하기 좋다. 단! 잘~ 사용해야 좋은 언어다.
C++은 게임엔진 / 그래픽스 엔진 / 실시간 시스템 / 서버 백엔드 등 많이 사용되고 있어요.
● C#
C#도 마찬가지로 마이크로소프트에서 개발된 객체 지향 프로그래밍 언어로써
C++와 비슷한 면들을 많이 가지고 있는 언어입니다.
C#은 2000년도에 마이크로소프트가 NET의 주력 언어인 C#을 발표하죠.
그 당시 JAVA의 편리한 기능과 장점들로 인해 JAVA는 폭풍적인 인기를 끌었는데,
마이크로소프도 바라만 보고 있을 수는 없었기에, C++과 JAVA와 비주얼 베이직(VB)의 장점을 합쳐 C#이라는 언어를 만들었습니다.
C#의 프로그래밍을 쉽고 빠르게 할 수 있게 만들었던 것은 수 많은 라이브러리였습니다.
이 엄청난 수자의 라이브러리가 있기 때문에 개발자가 힘들게 메소드를 찾을 필요 없이 많은 것들을 쉽고 빠르게 프로그래밍 할 수 있었죠.
C#의 장점
1. 뛰어난 생산
수 많은 라이버르리와 IDE가 프로그래머가 손 쉽게 코딩을 할 수 있게 도와줘요.
2. 프로그래밍 입문자에게는 생산성이 뛰어난 점이 프로그래밍을 재밌게 만들어 줄 거에요.
쉬운 생산성을 통해, 여러 프로그램을 만들어보며 프로그래밍의 재미를 알기 쉽습니다.
3. 엄격한 문법
사소한 실수부터 뭐든지 컴파일 예러를 띄웁니다.
이런 엄격함 덕분에 암묵적 에러를 방지할 수 있어요.
4. 완벽한 프로그래밍
C#에서 전역 변수나 전역 함수는 상상도 할 수 없는 일이며,
모든 변수와 함수를 클래스에 넣어야 합니다.
5. 메모리 관리자
할당된 메모리를 해제하지 않아도 되며, 사용된 객체는 알아서 제거됩니다.
메모리 누수를 걱정할 필요가 없다는 것이 장점이죠.
하지만 C#은 속도가 조금 느리다는 단점이 있습니다.
C나 C++과 달리 .NET FRAMEWORK(가상머신)을 통해 실행이 되기 때문입니다.
결론적으로 C#은 속도 면에서는 조금 뒤떨어질 수 있어도, 생산성은 끝내주는 언어입니다.
그럼 둘 중에 어떤 언어를 배워야 할까요?
이 부분에 대해 정답은 없지만, 저희 KGA은 두 언어 모두 다 어느 정도 이해도를 갖추는 것을 추천합니다.
왜냐하면 게임을 만들면서 두 가지 언어의 특장점이 다르기 때문에 두 가지를 익혀 놓고 상황에 맞게 사용하는 것이 가장 좋다고 생각해요.
C++은 숙련도가 많이 필요하지만, 섬세하게 게임을 만들 수 있습니다.
반면 C#은 섬세하게 만들진 못 하더라도 빠르고 효율적으로 만들 수 있습니다.
KGA에서는 숙련도가 많이 필요한 C++은 비전공자들이
전문 교육 기관이 아니라면 배우는 기회가 부족하기에 C++도 교육을 진행하고 있습니다.
언어 공부를 진지하게 고민하고 계시다면 지금 문의해보세요!
유니티의 기반 언어 C#, 그리고 C++
요즘 게임 업계에서 많이 사용되며
게임 회사 취직을 원하시는 분들이 많이들 배우시는 유니티!
게임 프로그래머는 유니티의 기반 언어
C#과 C++에 대한 이해도와 활용도를 갖추는 게 좋겠죠~?
그래서 오늘은 유니티의 기반 언어 C#과 C++에 대한
기초적인 지식을 공유드리려고 합니다!
C#은 뭐고 C++는 뭐에요?
● C++
C++ 언어는 기존의 C 언어에 몇 가지 강력한 기능이 추가된 언어이기 때문에,
C 언어의 발전된 형태라고도 볼 수 있습니다.
C++ 언어는 이해도가 없으면 접근하기 쉽지 않아요.
능숙하지 못한 프로그래머가 사용한다면 버그가 많이 생길 우려가 있습니다.
하지만 C++를 꾸준히 공부하여 숙련도를 높인다면, 정말 큰 효율을 낼 수 있는 언어라고 생각해요.
C++의 장점
C++은 언어의 최대 장점이라고 할 수 있는 것은 '강력하면서 유연하다'입니다.
이런 장점 덕분에 대부분의 컴퓨터들이 지원하는 컴퓨터 언어가 될 수 있었습니다.
C++은 절차지향, 객체지향, 일반화 프로그래밍 등 프로그래밍 언어에서 제공할 수 있는 대다수의 패러다임을 지원하는 언어입니다.
내용이 매우 방대하고 어려운 것이 특징이라 전문적인 교육을 받아 공부하는 추세입니다.
그리고 C++은 시스템 프로그래밍 언어이기 때문에 zero-cost abstraction, 즉 "네가 쓰지 않는 것에 대해서는 성능 하락을 주지 않는다"라는 것을 언어의 설계 철학으로 하고 있습니다.
또한, 런타임 성능을 쥐어짜내기 위해 인라이닝, 컴파일 타임 프로그래밍 관련 수많은 기능을 도입한 언어이기 때문에 같이 비교되는 시스템 프로그래밍 언어들인 c, Rust에 비해 '프로그래머의 기량이 뒷받침된다면' 더 빠르게 동작하는 코드를 짤 수 있어요.
C++ 언어는 한 마디로 많이 사용되며, 사용하기 좋다. 단! 잘~ 사용해야 좋은 언어다.
C++은 게임엔진 / 그래픽스 엔진 / 실시간 시스템 / 서버 백엔드 등 많이 사용되고 있어요.
● C#
C#도 마찬가지로 마이크로소프트에서 개발된 객체 지향 프로그래밍 언어로써
C++와 비슷한 면들을 많이 가지고 있는 언어입니다.
C#은 2000년도에 마이크로소프트가 NET의 주력 언어인 C#을 발표하죠.
그 당시 JAVA의 편리한 기능과 장점들로 인해 JAVA는 폭풍적인 인기를 끌었는데,
마이크로소프도 바라만 보고 있을 수는 없었기에, C++과 JAVA와 비주얼 베이직(VB)의 장점을 합쳐 C#이라는 언어를 만들었습니다.
C#의 프로그래밍을 쉽고 빠르게 할 수 있게 만들었던 것은 수 많은 라이브러리였습니다.
이 엄청난 수자의 라이브러리가 있기 때문에 개발자가 힘들게 메소드를 찾을 필요 없이 많은 것들을 쉽고 빠르게 프로그래밍 할 수 있었죠.
C#의 장점
1. 뛰어난 생산
수 많은 라이버르리와 IDE가 프로그래머가 손 쉽게 코딩을 할 수 있게 도와줘요.
2. 프로그래밍 입문자에게는 생산성이 뛰어난 점이 프로그래밍을 재밌게 만들어 줄 거에요.
쉬운 생산성을 통해, 여러 프로그램을 만들어보며 프로그래밍의 재미를 알기 쉽습니다.
3. 엄격한 문법
사소한 실수부터 뭐든지 컴파일 예러를 띄웁니다.
이런 엄격함 덕분에 암묵적 에러를 방지할 수 있어요.
4. 완벽한 프로그래밍
C#에서 전역 변수나 전역 함수는 상상도 할 수 없는 일이며,
모든 변수와 함수를 클래스에 넣어야 합니다.
5. 메모리 관리자
할당된 메모리를 해제하지 않아도 되며, 사용된 객체는 알아서 제거됩니다.
메모리 누수를 걱정할 필요가 없다는 것이 장점이죠.
하지만 C#은 속도가 조금 느리다는 단점이 있습니다.
C나 C++과 달리 .NET FRAMEWORK(가상머신)을 통해 실행이 되기 때문입니다.
결론적으로 C#은 속도 면에서는 조금 뒤떨어질 수 있어도, 생산성은 끝내주는 언어입니다.
그럼 둘 중에 어떤 언어를 배워야 할까요?
이 부분에 대해 정답은 없지만, 저희 KGA은 두 언어 모두 다 어느 정도 이해도를 갖추는 것을 추천합니다.
왜냐하면 게임을 만들면서 두 가지 언어의 특장점이 다르기 때문에 두 가지를 익혀 놓고 상황에 맞게 사용하는 것이 가장 좋다고 생각해요.
C++은 숙련도가 많이 필요하지만, 섬세하게 게임을 만들 수 있습니다.
반면 C#은 섬세하게 만들진 못 하더라도 빠르고 효율적으로 만들 수 있습니다.
KGA에서는 숙련도가 많이 필요한 C++은 비전공자들이
전문 교육 기관이 아니라면 배우는 기회가 부족하기에 C++도 교육을 진행하고 있습니다.
언어 공부를 진지하게 고민하고 계시다면 지금 문의해보세요!