본문 바로가기

Programming/일반

(11)
Maximum Sub Array 1. 전체 탐색 (Brute Force) 모든 경우의 수를 탐색하는 방법으로 시간 복잡도가 O(N ^ 2) 2. 카데인 알고리즘 (Kadane's Algorithm) 다이나믹 프로그래밍 방식을 적용한 알고리즘으로 시간복잡도는 O(N)
Rust 2020년 StackOverflow에서 65,000명을 대상으로 진행한 설문조사에서 내년에 사용하고 싶은 언어 1등(86.1%) 2021년 기준 6년 연속 StackOverflow에서 프로그래머들이 가장 사랑하는 언어 1. Rust 란? "안전하고 병렬적이며 실용적인" 언어 이며 순수 함수형 프로그래밍, 액터 기반 병렬 프로그래밍, 명령형 프로그래밍, 객체 지향 프로그래밍 스타일이며 2012년 1월 첫 알파 버전인 0.1 발표 2. Rust 특징 - 컴파일 언어 **1 - 다중 패러다임 언어 **2 - LLVM (Low Level Virtual Machine) **3 **1 : https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%8C%8C%EC%9D%BC_%EC%96%B8%EC%..
[Network] iperf - 통신 속도 및 처리량 확인 1. iperf 란? - 오픈 소스 속도 테스트 및 네트워크 성능 측정 도구 - 통신 구간의 데이터 처리량의 최대치(throughput)를 측정하는 툴 - throughput이 중요한 이유는 제공할 서비스가 가능한지를 판단할 수 있는 기준이기 때문 2. iperf 테스트는 어떤 데이터를 제공? - 사용자가 iperf에서 원하는 주요 정보는 처리량이지만 패킷 손실, 지터 및 트래픽 분포에 대한 정보도 확인 가능 3. iperf vs iperf3 - iperf는 linux 시스템용으로만 제작 - iperf3는 window, mac, android, linux를 포함한 다양한 플랫폼에서 사용 가능 - iperf3가 지원되지 않는 플랫폼에서는 커퓨니티에서 제공하는 바니너리를 찾아 활용 가능 4. 주요 옵션 - ..
에라토스테네스의 체 정의 정 범위안에서 소수를 찾는 방법이다. 알고리즘 1. 특정 범위 안의 수 중 가장 작은 소수의 배수를 모두 제외시킨다. 2. 특정 범위 안의 수 중 그다음으로 작은 소수의 배수를 모두 제외 시킨다. 3. 2번의 과정을 반복적을 진행하고 나면 특정 범위 안의 소수가 남는다. 특징 특정 범위가 480이라고 가정하면 22^2 > 480 이므로 22보다 작은 수의 배수들만 지원도 충분하다. 참고 자료 1 : ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4 에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가..
배열 크기 확인 최근에 배열 크기에 관한 issue가 있어서 정리한다. 프로그램을 실행시키면 운영체제는 프로그램을 위해 메모리공간을 할당한다. 메모리공간은 아래 그림과 같이 Data, Heap, Stack으로 나뉘며 각 영역에는 목적에 맞는 변수들이 위치하게 된다. Data, Stack영역에는 sizeof()함수를 이용하여 크기를 쉽게 확인할 수 있다. sizeof 함수의 원형은 아래와 같다. 하지만 Heap영역에서는 동적으로 크기가 결정되므로 sizeof()함수로 크기를 확인 할 수 없다. windows에서는 _msize() 함수를 이용한다. 함수 원형은 아래와 같다. Linux에서는 malloc_usable_size()함수를 이용한다. 함수 원형은 아래와 같다. 아래 그림은 확인용 예제이다. Example Resul..
Log[2] - Macro Log를 기록할 때 유용하게 사용할 수 있는 Macro를 소개하고자 한다. 아래 macro들은 assert.h에 정의 되어 있다. 1. __func__ : 해당 메크로가 선언된 위치의 함수명을 가져온다. const char * 형 변수 임에 주의하기 바란다. 2. __FILE__ : 해당 메크로가 선언된 위치의 파일의 경로를 가져온다. 3. __LINE__ : 해당 메크로가 선언된 위치의 라인수를 가져온다. 4. __DATE__ : 해당 메크로가 선언된 파일의 컴파일 된 날짜를 가져온다. 5. __TIME__ : 해당 메크로가 선언된 파일의 컴파일 된 시간을 가져온다. 6. __FUNCTION__ : __func__ 와 동일한 기능을 제공한다.
Log[1] - assert() Log관련하여 관심이 있어 조금씩 정리해보려고 한다. assert 매크로는 assert.h 파일에 정의되어 있으며 조건 만족 유무에 따라 프로그램 중지 및 실행을 제공한다. Debug 모드에서만 동작되므로 필히 assert안에서 프로그램의 상태를 변화시키면 안된다. 사용 방법은 간단하다. 결과를 보면 문제가 발생한 조건, 컴파일된 파일명, 해당 파일의 라인 수까지 확인할 수 있다.
Vision Library 문득 영상처리관련 회사들을 조사하다 보았던 우대사항에 존재하던 라이브러리가 떠올라 정리하게 되었다. 총 4가지를 정리해보았으며 4가지 이외에도 존재하는 것으로 알고 있다. 1. OpenCV (open computer vision library) - 이름에서도 보이듯 Open Source 이며 대중적으로 사용이 가능한 library 이다. - 단, Open Source 이지만 extra, contrib module의 경우 일부 사용이 제한된 것도 존재한다. - C++, Python, Java등 다양한 언어와 Window, Linux, Androi, iOS등 다양한 플랫폼을 지원한다. - 지속적으로 업데이트가 진행되고 있으며 다양한 알고리즘을 지원한다. - 최근에는 Machine Learning 관련된 업데..