본문 바로가기
반응형

C++142

[C++ 네트워크 프로그래밍] Day 11: RESTful API 설계와 구현 RESTful API 소개REST(Representational State Transfer)는 웹 서비스 설계 아키텍처입니다. RESTful API는 REST 아키텍처 스타일을 따르는 API입니다. RESTful API는 클라이언트와 서버 간의 통신을 단순화하고 표준화하는 데 사용됩니다. HTTP를 기반으로 하며, URL을 통해 리소스를 식별하고, HTTP 메서드를 사용하여 리소스를 조작합니다.RESTful API의 주요 특징리소스 기반: 모든 것은 리소스로 취급되며, 각 리소스는 고유한 URL로 식별됩니다.HTTP 메서드 사용: RESTful API는 HTTP 메서드를 사용하여 리소스를 조작합니다.GET: 리소스 조회POST: 리소스 생성PUT: 리소스 전체 수정PATCH: 리소스 일부 수정DELETE.. 2024. 8. 1.
[C++ 마스터] Day 12: 클래스와 객체 지향 프로그래밍 (OOP) 기초 객체 지향 프로그래밍 (Object-Oriented Programming)객체 지향 프로그래밍(OOP)은 객체를 중심으로 프로그램을 구성하는 프로그래밍 패러다임입니다. C++는 OOP를 지원하며, 이를 통해 더 구조적이고 재사용 가능한 코드를 작성할 수 있습니다. OOP의 주요 개념에는 클래스, 객체, 상속, 다형성, 캡슐화, 추상화 등이 있습니다. 클래스 (Classes)클래스는 객체를 정의하는 데 사용되는 청사진 또는 틀입니다. 클래스는 데이터 멤버(변수)와 멤버 함수(메서드)를 포함합니다. 1. 클래스 선언과 정의클래스를 선언하고 정의하는 방법은 다음과 같습니다:class Car {public: // 접근 지정자 string brand; string model; int year; .. 2024. 8. 1.
[C++ 고급 프로그래밍과 응용 프로젝트 시리즈] Day 12: 디자인 패턴 심화 - 데코레이터 패턴 (Decorator Pattern) 데코레이터 패턴 (Decorator Pattern)데코레이터 패턴은 객체에 동적으로 새로운 기능을 추가할 수 있도록 하는 구조 패턴입니다. 이 패턴을 사용하면 서브클래싱 없이도 객체의 기능을 확장할 수 있습니다. 데코레이터 패턴은 기본 객체와 그 객체의 데코레이터를 동일한 인터페이스로 취급하여 기능을 확장합니다. 데코레이터 패턴의 특징동적 기능 확장: 객체의 기능을 동적으로 확장할 수 있습니다.개방-폐쇄 원칙: 기존 코드의 수정 없이 새로운 기능을 추가할 수 있습니다.유연한 설계: 상속 대신 합성을 사용하여 기능을 확장합니다.데코레이터 패턴의 구조Component (구성 요소): 기본 객체 인터페이스 또는 추상 클래스ConcreteComponent (구체적 구성 요소): 기본 객체의 구체적 구현Decor.. 2024. 8. 1.
[C++ 마스터] Day 9: 포인터와 참조자 포인터 (Pointers)포인터는 다른 변수의 메모리 주소를 저장하는 변수입니다. 포인터는 매우 강력한 도구로, 동적 메모리 할당, 배열, 함수 인자 등에서 유용하게 사용됩니다. 1. 포인터 선언과 초기화포인터를 선언할 때는 데이터 타입 뒤에 *를 붙입니다. 포인터는 다른 변수의 주소를 저장할 수 있습니다.int a = 10;int *p = &a; // 포인터 p는 변수 a의 주소를 저장 2. 주소 연산자와 간접 참조 연산자주소 연산자 (&): 변수의 메모리 주소를 반환합니다.간접 참조 연산자 (*): 포인터가 가리키는 변수의 값을 반환합니다.int a = 10;int *p = &a; // p는 a의 주소를 저장cout 3. 포인터 연산포인터는 산술 연산이 가능합니다. 포인터에 숫자를 더하거나 빼면,.. 2024. 8. 1.
[C++ 고급 프로그래밍과 응용 프로젝트 시리즈] Day 9: 디자인 패턴 심화 - 팩토리 패턴 (Factory Pattern) 팩토리 패턴 (Factory Pattern)팩토리 패턴은 객체 생성 로직을 별도의 팩토리 클래스로 분리하여, 객체 생성의 유연성과 확장성을 높이는 디자인 패턴입니다. 이는 객체 생성 방식을 캡슐화하여 클라이언트 코드가 객체 생성 방법에 의존하지 않도록 합니다. 팩토리 패턴의 종류단순 팩토리 패턴 (Simple Factory Pattern)팩토리 메서드 패턴 (Factory Method Pattern)추상 팩토리 패턴 (Abstract Factory Pattern)단순 팩토리 패턴 (Simple Factory Pattern)단순 팩토리 패턴은 객체 생성을 위한 메서드를 제공하는 클래스를 정의합니다. 이 클래스는 클라이언트 코드 대신 객체를 생성합니다. 단순 팩토리 패턴 예제#include #include .. 2024. 8. 1.
[C++ 성능 최적화 및 고급 테크닉] Day 9: 완벽한 전달 (Perfect Forwarding) 완벽한 전달의 중요성완벽한 전달(perfect forwarding)은 C++ 템플릿 프로그래밍에서 매개변수를 정확히 전달하는 기법입니다. 이를 통해 함수 템플릿에서 인자를 원래의 L-값 또는 R-값으로 전달할 수 있습니다. 이 기법은 주로 std::forward를 사용하여 구현됩니다. 템플릿 함수와 인자 전달템플릿 함수에서 인자를 전달할 때, 인자의 종류(L-값 또는 R-값)를 정확히 유지하는 것이 중요합니다. 잘못된 인자 전달은 불필요한 복사나 잘못된 동작을 초래할 수 있습니다. std::forward 사용법std::forward는 전달된 인자의 원래 특성을 유지하면서 전달합니다. 이를 통해 L-값 인자는 L-값으로, R-값 인자는 R-값으로 전달할 수 있습니다.#include #include void.. 2024. 8. 1.
[C++ 네트워크 프로그래밍] Day 9: HTTP 클라이언트 개발 (libcurl) libcurl 소개libcurl은 URL 문법을 사용하여 데이터를 전송하는 데 사용되는 무료이자 오픈 소스 라이브러리입니다. HTTP, HTTPS, FTP, FTPS, SCP, SFTP 등 다양한 프로토콜을 지원합니다. libcurl은 간단하고 강력한 API를 제공하여 네트워크 프로그래밍을 쉽게 할 수 있게 해줍니다. libcurl 설치Windowsvcpkg를 사용하여 설치:vcpkg install curlLinuxapt를 사용하여 설치 (Debian/Ubuntu):sudo apt-get install libcurl4-openssl-devyum을 사용하여 설치 (CentOS/RHEL):sudo yum install libcurl-develMacOSHomebrew를 사용하여 설치:brew install c.. 2024. 8. 1.
[C++ 마스터] Day 10: 동적 메모리 할당 (new, delete) 동적 메모리 할당 (Dynamic Memory Allocation)동적 메모리 할당은 프로그램 실행 중에 메모리를 할당하는 방식입니다. C++에서는 new와 delete 연산자를 사용하여 동적 메모리를 할당하고 해제할 수 있습니다. 1. new 연산자new 연산자는 동적으로 메모리를 할당하고, 포인터를 반환합니다.int *p = new int; // 정수형 변수에 대한 메모리 할당*p = 10;cout  2. delete 연산자delete 연산자는 동적으로 할당된 메모리를 해제합니다.delete p; // 메모리 해제p = nullptr; // 포인터를 null로 설정하여 안전하게 만듦 3. 배열의 동적 메모리 할당배열의 경우, new 연산자를 사용하여 메모리를 동적으로 할당할 수 있습니다.int .. 2024. 8. 1.
[C++ 고급 프로그래밍과 응용 프로젝트 시리즈] Day 10: 디자인 패턴 심화 - 전략 패턴 (Strategy Pattern) 전략 패턴 (Strategy Pattern)전략 패턴은 행위 패턴 중 하나로, 알고리즘을 각각의 클래스에 캡슐화하여, 클라이언트가 알고리즘을 독립적으로 변경할 수 있도록 합니다. 이를 통해 알고리즘의 변화가 클라이언트 코드에 영향을 미치지 않도록 합니다. 전략 패턴의 특징알고리즘 캡슐화: 알고리즘을 독립적인 클래스로 캡슐화하여 교체가 용이합니다.유연성 제공: 런타임에 알고리즘을 동적으로 변경할 수 있습니다.클래스 분리: 클라이언트 코드와 알고리즘 클래스를 분리하여 코드의 가독성과 유지보수성을 높입니다.전략 패턴의 구조Context: 전략을 사용하는 클래스Strategy: 알고리즘을 정의하는 인터페이스ConcreteStrategy: 구체적인 알고리즘을 구현하는 클래스전략 패턴 UML 다이어그램+------.. 2024. 8. 1.
반응형