프로그래밍/겁나 쉽게 쓴 C, C++ 설명서

[기술] C와 C++ 역사, 특징, 장단점, 차이점

tonystark100 2024. 3. 2. 18:00

목차

    반응형

     

    C와 C++ 역사

    반응형

    C와 C++은 서로 밀접한 관계를 가진 프로그래밍 언어입니다. C는 1972년에 미국의 벨 연구소에서 데니스 리치와 켄 톰슨이 개발한 절차 지향적 언어입니다. C는 UNIX 운영체제의 개발에 사용되었으며, 그 후에 다양한 하드웨어와 운영체제에서 널리 사용되었습니다. C는 문법이 간결하고, 효율성이 좋으며, 저수준의 프로그래밍이 가능한 언어로 평가받았습니다.

    C++은 1979년에 덴마크의 컴퓨터 과학자 비야네 스트롭스트룹이 C의 확장판으로 개발한 객체 지향적 언어입니다. C++은 C의 대부분의 특징을 포함하면서도, 클래스, 상속, 다형성, 연산자 오버로딩, 템플릿 등과 같은 새로운 특징을 추가하였습니다. C++은 C보다 더 복잡하고 강력한 언어로, 대규모의 소프트웨어 개발에 적합한 언어로 간주되었습니다.

    C와 C++은 각각 ISO/IEC 표준화 그룹에 의해 표준화되었으며, 여러 버전의 표준이 발표되었습니다. C의 최신 표준은 2018년에 발표된 C18이며, C++의 최신 표준은 2020년에 발표된 C++20입니다. C와 C++은 현재도 세계에서 가장 많이 사용되는 프로그래밍 언어 중 하나입니다.

    C와 C++은 프로그래밍의 역사와 발전에 큰 영향을 미친 언어입니다. C와 C++은 다른 언어의 기반이 되기도 하였습니다. 예를 들어 자바, 파이썬, C#, 루비, PHP 등의 언어는 C나 C++의 영향을 받았습니다. C와 C++은 여전히 많은 분야에서 활용되고 있으며, 앞으로도 계속 변화하고 발전할 것입니다.

    C와 C++ 특징

    1. C는 절차 지향 언어이고, C++은 객체 지향 언어입니다. 절차 지향 언어란 프로그램을 순차적으로 실행하는 언어로, 함수를 중심으로 프로그램을 구성합니다. 객체 지향 언어란 프로그램을 실세계를 객체로 표현하는 언어로, 클래스를 중심으로 프로그램을 구성합니다. 객체 지향 언어는 코드의 재사용성과 유지보수성을 높이고, 복잡한 문제를 쉽게 해결할 수 있습니다. C++은 C의 절차 지향적 특징을 유지하면서도, 객체 지향적 특징을 추가한 언어입니다.

    2. C와 C++은 효율성이 좋은 언어입니다. C와 C++은 컴파일러에 의해 기계어로 번역되는 언어입니다. 컴파일러란 프로그래밍 언어를 컴퓨터가 이해할 수 있는 언어로 변환해 주는 프로그램입니다. 컴파일러에 의해 번역된 프로그램은 실행 속도가 빠르고, 메모리 사용량이 적습니다. C와 C++은 저수준의 프로그래밍이 가능한 언어로, 하드웨어를 직접 제어할 수 있습니다. 저수준의 프로그래밍이란 컴퓨터의 기본적인 구성 요소에 접근하는 프로그래밍입니다. 저수준의 프로그래밍은 성능을 최적화할 수 있습니다.

    3. C와 C++은 다양한 라이브러리를 제공합니다. 라이브러리미리 작성된 코드의 모음으로, 개발자가 필요한 기능을 쉽게 사용할 수 있게 해 줍니다. C와 C++은 기본적인 자료구조, 수학, 문자열, 파일 입출력, 네트워크, 그래픽 등 다양한 분야의 라이브러리를 제공합니다. 또한 외부에서 개발된 수많은 오픈 소스 라이브러리도 존재합니다. C와 C++은 다른 언어와의 호환성도 좋습니다. C와 C++로 작성된 라이브러리는 다른 언어에서도 쉽게 사용할 수 있습니다.
     
     

     

    로또로 화성 - Google Play 앱

    간편한 로또 번호 생성 및 QR 결과 확인 어플입니다.

    play.google.com

     

    C와 C++ 장단점

    장점
    1. C와 C++은 어떤 환경에서도 실행할 수 있습니다. C와 C++은 대부분의 하드웨어와 운영체제에서 지원되는 언어입니다. C와 C++로 개발된 프로그램은 CPU나 운영체제의 종류에 관계없이 실행할 수 있습니다. 이것은 C와 C++ 이 이식성이 좋다는 것을 의미합니다. 이식성이 좋다는 말은 다른 환경으로 쉽게 옮길 수 있다는 뜻입니다.

    2. C와 C++은 효율성이 좋은 언어입니다. C와 C++은 실행 속도가 빠르고, 메모리 사용량이 적습니다. C와 C++은 저수준의 프로그래밍이 가능한 언어로, 하드웨어를 직접 제어할 수 있습니다. C와 C++은 성능이 중요한 분야에서 사용되는 언어입니다.

    3. C와 C++은 다양한 기능을 제공합니다. C와 C++은 풍부하고 다양한 라이브러리를 제공합니다. C와 C++은 다른 언어와의 호환성도 좋습니다. C와 C++은 다른 언어의 장점을 쉽게 가져올 수 있습니다. C와 C++은 절차 지향과 객체 지향을 모두 지원하는 언어입니다. C와 C++은 다양한 문제를 해결할 수 있는 언어입니다.
     
    단점
    1. C와 C++은 어려운 언어입니다. C와 C++은 문법이 복잡하고, 오류가 쉽게 발생하는 언어입니다. C와 C++은 메모리 관리를 직접 해야 하는 언어입니다. 메모리 관리란 프로그램이 사용하는 메모리를 할당하고 해제하는 작업입니다. 메모리 관리를 잘못하면 메모리 누수나 포인터 오류와 같은 심각한 문제가 발생할 수 있습니다. C와 C++은 객체 지향의 개념을 완벽하게 구현하지 못하는 언어입니다. C++은 C의 확장판으로 만들어진 언어이기 때문에, C와의 호환성을 위해 객체 지향의 일부 기능을 제한하거나 미흡하게 구현하였습니다. 예를 들어, C++은 다중 상속, 추상 클래스, 가상 함수, 예외 처리 등의 기능을 제공하지만, 이들은 C와 호환되지 않거나 성능 저하를 야기할 수 있습니다.

    2. C와 C++은 안전성이 낮은 언어입니다. C와 C++은 메모리 관리를 개발자가 직접 해야 하는 언어입니다. 이것은 개발자가 실수를 하거나 악의적인 공격을 받을 경우, 프로그램이 쉽게 손상될 수 있습니다. 예를 들어, C와 C++은 배열의 범위를 검사하지 않으므로, 배열의 범위를 넘어서는 접근이 가능합니다. 이것은 버퍼 오버플로우라고 하는 취약점을 만들 수 있습니다. 버퍼 오버플로우란 프로그램이 할당된 메모리보다 더 많은 데이터를 쓰는 것으로, 다른 메모리 영역을 덮어쓰거나 실행할 수 있습니다. 이것은 프로그램의 오작동이나 해킹의 위험을 증가시킵니다.

    3. C와 C++은 유지보수가 어려운 언어입니다. C와 C++은 코드의 가독성이 낮고, 구조가 복잡한 언어입니다. C와 C++은 저수준의 프로그래밍이 가능한 언어이기 때문에, 개발자가 하드웨어에 의존적인 코드를 작성할 수 있습니다. 이것은 코드의 이식성을 떨어뜨리고, 다른 환경에서의 수정이 어렵게 만듭니다. C와 C++은 객체 지향의 개념을 완벽하게 구현하지 못하는 언어이기 때문에, 코드의 재사용성과 확장성이 떨어집니다. 이것은 코드의 중복이나 결합도가 높아지고, 응집도가 낮아지는 문제를 야기합니다. 이것은 코드의 품질을 저하시키고, 유지보수 비용을 증가시킵니다.
     

    C와 C++ 차이점

    1. C와 C++의 개념적 차이
    C와 C++의 가장 큰 차이점은 개념적인 차이입니다. C는 절차 지향 언어이고, C++은 객체 지향 언어입니다. 절차 지향 언어란 프로그램을 순차적으로 실행하는 언어로, 함수를 중심으로 프로그램을 구성합니다. 객체 지향 언어란 프로그램을 실세계의 객체로 표현하는 언어로, 클래스를 중심으로 프로그램을 구성합니다. 객체 지향 언어는 코드의 재사용성과 유지보수성을 높이고, 복잡한 문제를 쉽게 해결할 수 있습니다. C++은 C의 절차 지향적 특징을 유지하면서도, 객체 지향적 특징을 추가한 언어입니다.

    2. C와 C++의 기능적 차이
    C와 C++의 또 다른 차이점은 기능적인 차이입니다. C++은 C의 대부분의 특징을 포함하면서도, 새로운 특징을 추가하였습니다. 예를 들어, C++은 클래스, 상속, 다형성, 연산자 오버로딩, 템플릿, 예외 처리, STL 등과 같은 특징을 제공합니다. 이러한 특징들은 C++을 C보다 더 복잡하고 강력한 언어로 만들었습니다. C++은 C보다 더 많은 기능을 제공하므로, 더 다양한 문제를 해결할 수 있습니다.

    3. C와 C++의 사용 분야의 차이
    C와 C++의 마지막 차이점은 사용 분야의 차이입니다. C와 C++은 각각 다른 분야에서 사용되고 있습니다. C는 저수준의 프로그래밍이 가능한 언어로, 하드웨어를 직접 제어할 수 있습니다. 때문에 C는 임베디드 시스템, 운영체제, 컴파일러, 드라이버 등의 분야에서 사용되고 있습니다. C는 성능이 중요한 분야에서 사용되는 언어입니다. C++은 객체 지향의 개념을 적용한 언어로, 대규모의 소프트웨어 개발에 적합한 언어입니다. 때문에 C++은 게임, 그래픽, GUI, 네트워크, 데이터베이스 등의 분야에서 사용되고 있습니다. C++은 복잡도가 높은 분야에서 사용되는 언어입니다.

    다음글 C 프로그래밍의 시작

    ** 이 글이 좋았다면 좋아요와 구독을 눌러주세요. **

    반응형

    '프로그래밍 > 겁나 쉽게 쓴 C, C++ 설명서' 카테고리의 다른 글

    변수란?  (0) 2024.04.29
    C 프로그래밍의 시작  (0) 2024.04.29
    주석이란?  (0) 2024.04.29
    C++ 클래스  (0) 2024.04.12
    C++ 기초 공사  (0) 2024.04.10