본문 바로가기

분류 전체보기16

Reactive Programming 소개 1. Reactive Programming이란? 데이터의 흐름, 변화전파에 대한 선언적 프로그래밍 패러다임을 말합니다. oop는 모든 데이터를 object로 취급하여 객체들의 상호작용을 기반으로 프로그래밍하는 방법이라고 한다면 rp는 모든 것을 비동기적인 데이터 스트림으로 간주하고 처리하는 프로그래밍 방법이라고 할 수 있습니다. 쉽게 말하면 변수든 속성이든, 캐시, 데이터 구조, 이벤트 등등 모든 것을 스트림(Stream)으로 보고, 모든 데이터의 흐름을 시간 순서에 의해 전달되는 스트림으로 처리합니다. 각각의 스트림은 새로 만들어질 수도 있고, 여러 개의 스트림이 합쳐(merge) 질 수도, 필터링이 되거나 스트림이 다른 스트림의 input이 될 수도 있습니다. 이런 과정들은 map, scan 같은 고.. 2021. 12. 3.
[openCV] C++ openCV cv::imread 이미지 읽어오기 저는 오픈소스 라이브러리를 사용해본게 openCV가 처음이었습니다. 해당 api문서를 찾아볼줄도 몰랐고 예제코드만 검색하는 수준이었는데, 어느새 포스팅을 하고 있습니다.. 짧은 지식이지만 openCV를 처음 시작하는 사람들과 함께 공유하고 싶어서, 또 제 개인공부와 복습을 위해 시작하겠습니다. openCV는 영상처리를 위한 라이브러리이며, 무료입니다. 최적화된 알고리즘으로 개개인이 짜는 알고리즘보다 웬만하면 처리속도가 빨라서 많이 쓰입니다. 오늘은 openCV를 사용하며 알아야할 가장 기본적인 이미지 로드를 알아보겠습니다. 제일 정확한 정보를 얻고 싶으신 분은 docs.opencv.org/4.4.0/ 에서 공부하셔도 됩니다. visual studio에서 openCV 개발환경 구축하기 기본적으로 openC.. 2020. 10. 11.
[C++] 함수재정의 오버로딩(overloading) 오버로딩이란 함수를 중복으로 정의한다는 뜻입니다. 오버로딩된 함수의 구분은 매개변수를 기준으로 합니다. 함수의 이름이 같지만 매개변수가 고유하다면 컴파일러가 중복된 함수를 구별할 수 있다는 뜻입니다. 이렇게 이름은 같지만 다른 기능을 하는 오버로딩은 오버라이딩 처럼 C++ 객체지향 특징중 하나인 다형성의 토대가 되는 기술인것 같습니다. 오버로딩은 크게 1. 함수 오버로딩 2. 생성자 오버로딩 3. 연산자 오버로딩 로 나뉠 수 있습니다. 사실 생성자나 연산자나 모두 함수의 범위안에 들긴하지만 엄연히 용어를 구분해서 쓰기 때문에 나눠보았습니다. 1. 함수 오버로딩(Function Overloading) 더보기 #include using namespace std; int Sum(int a, int b); do.. 2020. 10. 9.
[C++] 복사 생성자(copy constructor) 복사 생성자는 말 그대로 원본 객체가 복사될 때 호출됩니다. case 1. 객체가 매개변수의 인자로 넘어갈 때 case 2. 객체간의 대입연산이 이뤄질 때 case 3. 객체를 반환할 때 3가지 모두 객체의 복사가 일어납니다. 그럴때 복사생성자가 호출이 됩니다. 1,2,3번에 관한 예제코드입니다. 더보기 //.h .cpp class CPerson { public: CPerson();//기본 생성자 CPerson(const std::string& name, const int& age);//생성자 오버로딩 CPerson(const CPerson& person);//복사 생성자 void Show(); ~CPerson();//소멸자 private: std::string name; int* age = nullpt.. 2020. 7. 26.