반응형 C++6 [기타] 프로그래밍 언어의 역사와 변천사 프로그래밍 언어의 역사와 변천사 프로그래밍 언어의 역사와 변천사는 컴퓨터 과학과 소프트웨어 개발의 진보에 따라 다양한 언어들이 등장하고 발전해왔습니다. 아래는 주요 프로그래밍 언어의 역사와 변천사를 시대별로 요약한 것입니다: 1. 1950년대 - 1960년대: 기계어와 어셈블리어: 컴퓨터와 직접 상호작용하기 위해 사용되는 저수준 언어입니다. 포트란(Fortran): 최초의 고급 프로그래밍 언어로, 과학 및 공학 분야에서 수치 계산을 위해 사용되었습니다. 알골(Algol): 알고리즘 설계를 위한 고급 언어로, 프로그래밍 언어의 기반을 제공했습니다. 2. 1970년대: C 언어: 데니스 리치와 켄 톰슨에 의해 개발된 C 언어는 이식성과 효율성을 갖춘 언어로, 유닉스 운영체제의 개발과 함께 널리 사용되었습니다.. 2023. 7. 19. [C++] 포인터 pointer 란? 포인터 pointer 란? C++에서 포인터(pointer)는 메모리 주소를 저장하는 변수입니다. 포인터는 다른 변수 또는 데이터 구조에 대한 참조를 저장하고 사용하는 데 사용됩니다. 포인터를 사용하여 메모리 주소를 직접 조작할 수 있으므로 동적 메모리 할당과 같은 작업에 매우 유용합니다. 포인터를 선언하려면 변수 이름 앞에 '*' 연산자를 사용하여 선언해야 합니다. 예를 들어, "int" 타입을 가리키는 포인터를 선언하려면 다음과 같이 작성할 수 있습니다: int* ptr; 포인터 변수를 초기화하려면 메모리 주소를 할당해야 합니다. 이는 주소 연산자 '&'를 사용하여 변수의 주소를 얻은 다음, 포인터에 할당하는 방식으로 수행할 수 있습니다. "value"라는 int 변수를 가리키는 포인터를 초기화하는 .. 2023. 7. 6. [C++] Thread 란? + 예제 Thread 란? C++의 스레드(Thread)는 동시에 실행될 수 있는 독립적인 실행 흐름을 나타내는 개념입니다. 각각의 스레드는 별도의 스택을 가지며, 코드의 일부분을 동시에 실행할 수 있습니다. 멀티스레딩을 사용하면 병렬성을 활용하여 프로그램의 성능을 향상시킬 수 있습니다. C++11부터는 헤더를 통해 스레드 관련 기능을 제공하고 있습니다. std::thread 클래스: 스레드를 생성하고 관리하는 클래스입니다. std::thread 객체를 생성할 때 실행할 함수나 람다 표현식을 전달하여 스레드를 시작할 수 있습니다. #include #include void threadFunction() { std::cout 2023. 6. 30. [C++] IOCP 설명 / 예제 IOCP 란? IOCP(입출력 완료 포트, Input/Output Completion Port)는 Windows 운영 체제에서 비동기 입출력 작업을 처리하기 위한 메커니즘입니다. IOCP는 I/O 작업에 대한 효율성과 확장성을 제공하여 다중 클라이언트와 서버 애플리케이션에서 높은 성능을 달성할 수 있습니다. IOCP는 주요 구성 요소 I/O 완료 포트(IO Completion Port): I/O 작업의 완료를 추적하고 관리하는 객체입니다. 커널에서는 I/O 작업이 완료되면 IOCP에 알립니다. 소켓: 네트워크 통신에 사용되는 소켓 객체입니다. 클라이언트와 서버 간의 데이터 통신을 담당합니다. 오버랩 구조체(Overlap Structure): 비동기 I/O 작업의 정보를 포함하는 구조체입니다. 오버랩 구조.. 2023. 6. 30. [C++] STL 이란? + 예시 STL 이란? C++의 STL(Standard Template Library)은 C++ 표준 라이브러리의 중요한 구성 요소로, 일반적인 데이터 구조와 알고리즘을 제공하여 프로그래머들이 간편하게 사용할 수 있도록 돕습니다. STL은 컨테이너, 알고리즘, 반복자, 함수 객체 등의 구성 요소로 이루어져 있습니다. 이들을 조합하여 다양한 작업을 수행할 수 있습니다. STL의 주요 구성 요소 컨테이너(Container) vector: 동적 배열을 제공합니다. 크기를 동적으로 조정할 수 있습니다. list: 이중 연결 리스트를 제공합니다. 삽입 및 삭제에 효율적입니다. deque: 양쪽 끝에서 삽입 및 삭제가 가능한 큐를 제공합니다. stack: 후입선출(LIFO) 방식의 스택을 제공합니다. queue: 선입선출(.. 2023. 6. 30. [기타] JAVA vs C++ TCP 통신 차이 공부 하는 와중에 궁금해서 정리해본다. Java와 C++ 모두 TCP 통신 채팅을 구현하는 데 사용될 수 있는 프로그래밍 언어다. Java의 장점: Java는 객체 지향 언어이므로 코드를 모듈화하고 유지 보수하기 쉽다. Java는 플랫폼 독립적이므로 서로 다른 운영 체제에서 동일한 코드를 실행할 수 있다. Java는 메모리 관리를 자동으로 처리하므로 개발자가 수동으로 할당 및 해제를 할 필요가 없다. Java는 스레드를 사용하여 동시성을 처리하기 쉽다. C++의 장점: C++은 하드웨어 제어 및 시스템 프로그래밍에 적합한 저수준 언어다. C++는 높은 성능을 제공하므로 대규모 데이터를 처리하는 데 적합하다. C++은 메모리 관리를 개발자가 직접 처리할 수 있다. C++는 다중 상속 및 연산자 오버로딩과 .. 2023. 5. 12. 이전 1 다음 반응형