분류 전체보기
-
C++17 구조화된 바인딩(structured bindings)프로그래밍 언어/C++ 2024. 7. 23. 15:38
변수 선언 시에 배열, 튜플, 구조체 등 복합 데이터 구조의 요소를 개별 변수에 쉽게 할당할 수 있도록 합니다.이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. 구조화된 바인딩의 사용 예: 배열#include #include int main() { std::array arr = {1, 2, 3}; auto [x, y, z] = arr; std::cout 튜플#include #include std::tuple getTuple() { return {1, 3.14, "Hello"};}int main() { auto [a, b, c] = getTuple(); std::cout 구조체#include #include struct Person { std::str..
-
생성자 이니셜라이저(initializer list)프로그래밍 언어/C++ 2024. 7. 23. 15:34
클래스의 멤버 변수를 초기화하는 특별한 구문생성자 이니셜라이저는 생성자의 본문이 실행되기 전에 멤버 변수를 초기화하는 데 사용이를 통해 멤버 변수를 생성과 동시에 초기화 #include #include class Person {private: std::string name; int age;public: // 생성자 이니셜라이저를 사용한 생성자 Person(const std::string& n, int a) : name(n), age(a) {} void display() const { std::cout 위 예제에서 Person 클래스의 생성자는 이니셜라이저 리스트를 사용하여 name과 age 멤버 변수를 초기화 성능 향상: 멤버 변수를 생성자 본문에서 할당하는 것보..
-
std::signal프로그래밍 언어/C++ 2024. 7. 16. 09:55
std::signal 함수는 C++ 표준 라이브러리에서 제공하는 함수로, 특정 신호(signal)가 발생했을 때 호출될 신호 처리기(signal handler)를 설정하는 데 사용됩니다. 이 함수는 C 라이브러리의 signal 함수와 동일한 기능 #include void ( *signal (int sig, void(*func)(int)) )(int); 매개변수sig: 설정할 신호의 종류를 나타내는 정수 값입니다. 표준 신호로는 SIGINT, SIGTERM, SIGKILL, SIGSEGV 등이 있습니다.handler: 신호가 발생했을 때 호출될 함수의 포인터입니다. 이 함수는 정수형 매개변수를 하나 가지며, 해당 매개변수는 발생한 신호를 나타냅니다.반환값이전에 설정된 신호 처리기의 포인터를 반환합니다. 만..
-
원하는 로그 기록 남기기Linux/ubuntu 2024. 4. 23. 14:18
파일에 실행되는 표준출력의 방향을 바꾸어 원하는 파일에 로그를 담을 수 있다 nohup ${실행파일} >> ${로그 파일} & 리눅스에서 표준입력, 표준출력, 표준에러는 아래 숫자와 맵핑되어 있다 0 : 표준입력 1 : 표준출력 2 : 표준에러 이것을 이용하여 아래와 같이 응용할 수 있다 filename 출력 방향을 바꾼다. >>filename 출력에 덧붙인다. 2>filename 오류의 방향을 바꾼다. 2>>filename 오류의 방향을 바꾸고 덧붙인다. &>filename 출력과 오류를 리다이렉션 한다. >&filename 오류와 출력을 리다이렉션 한다. 1>&2 출력을 오류로 내보낸다. 2>&1 오류를 출력으로 내보낸다. >| 출력을 리다이렉션 할 때 NOCLOBBER 설정을 무시한다 filenam..
-
Consul mesh 예제 따라해보기마이크로서비스 2024. 4. 17. 18:55
consul 예제를 따라 해봄 >> https://developer.hashicorp.com/consul/tutorials/developer-mesh/service-mesh-with-envoy-proxy Secure service communication with Consul service mesh and Envoy | Consul | HashiCorp Developer Gain hands-on experience with Consul service mesh and Envoy as a sidecar proxy. developer.hashicorp.com 사전 준비 1. consul 설치 >> https://bongbong-89.tistory.com/43 consul agent 설치 및 부팅 1. 설치 서..
-
consul agent 설치 및 부팅마이크로서비스 2024. 4. 17. 18:31
1. 설치 서비스 레지스트리의 하나인 consul을 설치 가장 쉬운 방법은 바이너리를 다운받는 것 consul repo에서 원하는 버전을 다운로드 받으면 됨 >> https://releases.hashicorp.com/consul/ ## ${x.y.z} > https://developer.hashicorp.com/consul/tutorials/certification-associate-tutorials/get-started-agent Run the Consul agent | Consul | HashiCorp Developer Run a Consul agent in development mode, and learn about the server and client modes that you would us..
-
envoy-proxy 쉽게 설치마이크로서비스 2024. 4. 17. 18:21
엔보이 바이너리를 로컬 컴퓨터에 쉽게 설치하는 방법 1. 설치할 envoy 버전을 설정 export ENVOY_VERSION_STRING=x.y.z 2. func-e 설치 wget -L https://func-e.io/install.sh chmod +x install.sh ./install.sh mv /bin/func /usr/local/func-e 3. 설정된 envoy 버전으로 바이너리 설치 func-e use $ENVOY_VERSION_STRING sudo cp ~/.func-e/versions/$ENVOY_VERSION_STRING/bin/envoy /usr/local/bin/ ## 설치확인 envoy --version
-
마이크로 서비스 아키텍처마이크로서비스 2024. 4. 15. 18:40
마이크로서비스 - 확장성 - x축 확장 : 다중 인스턴스 라우팅 - z축 확장 : 사용자 속성별 라우팅 - y축 확장 : 서비스를 x축/z축 확장 가능 - 모듈성 - 마이크로서비스는 모듈성의 단위로 사용자 - 서비스마다 DB 따로 사용자 - 마이크로서비스와 SOA - 둘 다 여러 서비스로 시스템을 구성하는 아키텍처 - 그러나, 사용하는 기술 스택이 다르다 - SOA : SOAP, WS와 같은 비지니스 + 메시지 처리가 포함된 ESB 중심의 스마트 파이프 - MSA : 가벼운 오픈소스 REST, gRPC - MSA 장단점 - 장점 - 어플리케이션을 지속적으로 전달 및 배포 가능 - 서비스를 독립적으로 배포 및 확장 가능 - 결함 격리가 잘됨 - 서비스들은 독립된 프로세스로 실행된다? - 새로운 기술을 실험..