c, c++ 가 인기가 있는 이유는 아직 많은 디바이스의 하드웨어 리소스가 부족하거나,
빠른 속도의 데이터 처리가 필요한 곳이 많기 때문이지.
자바, 파이썬, 노드js, 고도 그렇고, 언어뒤에 숨겨진 기능이 (가비지 컬렉션 같은 메모리 메니지먼트 나 등등)
프로그래머가 해야할 일을 (? 솔직히 이게 프로그래머의 일인지도 모르겠지만)
언어자체가 대신해주게 되는 경우는, 그만큼의 리소스를 언어를 돌리는데 할당해야 해서 효율적이지가 않은거야.
하지만 c , c++ 는 모든 동작의 처리를, 심지어 메모리 데이터 접근해서 맘대로 바꾸는거 마저도
프로그래머의 의지에 따라 할수가 있으니,
그만큼 효율적인 코드를 만들수 있는거지. 프로그래머의 역량에 따라 더 엉망이 될수도 있지만....
간단하게 예를 들어보면, 파이썬 당고를 서버로 사용한다고 하면
성능좋은 pc, 운영체제 올리고 그위에 파이썬 인터프리터가 있고 그 위에서 당고 서버가 돌아가겠지.
서버는 당고 프레임웍도, 파이썬 인터프리터의 기능기능도 다 사용하면서 돌게 될꺼고,
만약에 사용자가 하루에 100명일때는 괜찮지만 100000000으로 늘어난다면 하나의 서버로 감당하기 힘들꺼야
서버를 늘리는거도 비용이자나? (, 물론 코드를 최적화 하는거도 돈이긴 하지만 ~)
근데 파이썬 당고를 사용하면 코드를 최적화 하는데 한계가 있지 (프레임웍을 어쩌진 못하니까)
하지만 이때 만약에 c++ 를 사용했다고 하면,
코드를 최적화 하기가 좀더 용의하다는거야 (메모리 관리도 효율적으로해서 가비지컬렉션에 들어가는비용을 줄일수 있다는..)
물론 프로그래머의 역량에 따라 차라리 당고같은 프레임웍을 쓰는게 효율적이기도 하겠지.
이게 임베디드디바이스의 경우는 더 명확해 지지.
결론은?
1.하드웨어 자원도 널널하고 프로그램도 속도나 효율에 민감하지 않은 경우: 상황에 맞게 프레임웍이 잘 되어 있는 언어를 상황에 맞게 선택하고,
2.하드웨어 자원이 부족하고, 빠른 속도와 효율이 필요한 경우: C, C++ 를 고려해 봐야 한다!!
'소프트웨어 엔지니어 > 일반' 카테고리의 다른 글
| [소프트웨어 엔지니어] git ? 버전관리 (0) | 2024.08.16 |
|---|---|
| Rest API, Open API? (0) | 2024.08.15 |
| 프로그램 디렉토리 구조? (1) | 2024.08.09 |
| ASCII , UTF-8, UNICODE 란? (0) | 2024.08.07 |
| JSON, XML 이란? 언제 왜 쓰는건가! 무결성? (0) | 2024.08.05 |