기본 콘텐츠로 건너뛰기

[업무 기록] 오픈 소스 분석 #1

 오픈 소스를 분석 하다보니 그 동안 사용했던 기술 영역 밖의 내용들이 종종 보인다. 그것들을 필요할 때 다시 기억하기 위해 기록하고자 한다. 내가 모르는 내용은 끝이 없다는 것을 알게 해주는 환경에 감사하자. 


- boost libraray 

- pcap_open() / pcap_compile() / pcap_next_ex()

- Open MPI ( Message Passing Interface ) 

  --> 하나의 프로그램에서 여러 프로세스를 띄우고 각 프로세스에서 할당받은 메모리를 공유하지 못한다, 당연하지. 서로 다른 프로세스 간에 데이터를 공유하기 위해 메시지를 이용하여 이러한 구조를 지원하기 위한 라이브러리가 MPI라고 한다. 프로세스 통신 IPC를 이용하면 될텐데... 이 라이브러리는 왜 필요한가? 

  --> 병렬 프로그램의 의미를 다시 생각해본다. 링크참조

IPC를 이용하는 프로그램의 경우 각 프로세스 운영에 있어 독립적이며 데이터 공유를 위해 사용하는 것이고, MPI는 분산 시스템 환경에 노출시키는 하나의 프로그램에서 병렬 처리하기 위해 필요한 라이브러리이다. 

  --> 참고 문서 응용


- curl : 웹 개발에 매우 많이 사용되는 있는 오픈 소스로서 수 많은 프로토콜을 지원한다는 장점이 있다. 

  --> 위치백과 인용

[ cURL은 다양한 통신 프로토콜을 이용하여 데이터를 전송하기 위한 라이브러리와 명령 줄 도구를 제공하는 컴퓨터 소프트웨어 프로젝트이다. 이 cURL 프로젝트는 libcurl와 cURL이라는 2개의 제품을 만든다. 1997년에 처음 출시되었다. 이 이름은 "client URL"을 대표한다. ]

  --> 공식사이트

  --> 깃허브


댓글

이 블로그의 인기 게시물

[QT] 5.15.2 버전 다운로드와 설치하기

1. 버전 5.15.2를 설치하기 위해 QT 다운로드 사이트 에 접속하였으나 실행파일이 존재하지 않는다. 가장 최신의 실행파일은 ver5.14.2 이므로 일단 이것을 다운받아서 설치한다. ( 참고 사이트 - https://sloth-code.tistory.com/6#comment16833678 ) 다운 사이트  - https://bio.nic.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/5.14/5.14.2/  ------------- 버전이 맞지 않으니 재 설치한다. 2.  5.15.2 버전에는 실행파일 exe가 없고 zip과 tar.gz 파일만 존재한다. ( https://bio.nic.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/5.15/5.15.2/ ) OFFLINE_README.txt를 읽어보면 5.15 버전부터는 오픈 소스 오프라인 설치를 이용할 수 없다고 한다. 오프라인 설치를 원할 경우 다음 사이트 참조하라고 한다.  ( 원본:  The Qt Company offering changes, open source offline installers are not available any more since Qt 5.15. Read more about offering changes in the https://www.qt.io/blog/qt-offering-changes-2020 blog. If you need offline installers, please consider our new Qt for Small Business offering: https://www.qt.io/blog/available-now-qt-for-small-businesses ) - https://www.qt.io/blog/available-now-qt-for-small-businesses ...

C# dll 파일들을 지정 폴더에서 사용하기

C#으로 여러 프로세스를 생성할 때, 각각의 프로젝트에서 사용하는 dll을 공동으로 사용하게 된다. 이때 dll은 실행 파일과 같은 폴더내에 존재해야 실행할 수 있다. 같은 dll을 사용하고 관리하는 관점에서 복사하는 일은 효율성이 떨어지며 항상 버전에 신경을 써야 하는 불편함이 있다. 이와 같은 비효율성을 제거하고자 실행파일과 다른 폴더에 있는 dll에 접근하는 방법으로 다음과 같은 방법을 사용하고자 한다. 코드를 수정하지 않고 지정할 수 있는 방법이 가장 편리하고 단순하겠지만 이와 같은 방법은 서브 폴더를 이용하는 방법밖에는 없다. dll이 필요할 때 발생되는 이벤트 핸들러를 추가하고 이를 등록하여 지정된 폴더를 사용할 수 있도록 코드를 추가하여 해결한다. 참고 사이트:  http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=17&MAEULNo=8&no=169705&ref=169702 * dll 필요할 때 발생되는 이벤트 핸들러 추가 static   System.Reflection.Assembly RsveAssem( object   sender, ResolveEventArgs args) {      System.Reflection.Assembly thisAss = System.Reflection.Assembly.GetExecutingAssembly();      var name = args.Name.Substring(0, args.Name.IndexOf( ',' )) +  ".dll" ;             if ( name ==  "abc.dll"   )      {    ...

[MongoDB] C# 으로 작성한 응용 프로그램에서 몽고DB 접근할 때 발생하는 에러

1. System.IO.FileNotFoundException - 해당 기능을 수행할 때 작업 PC에서 발생하지 않는 메시지가 사용자 PC에서 발생하여 해결하기 위해 정리한다. - .Net Framework 4.6.1 에러 메시지 +-----------------------------------------------------------------------------------------------+ System.IO.FileNotFoundException: 파일이나 어셈블리 'System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 지정된 파일을 찾을 수 없습니다. 파일 이름: 'System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'    위치: MongoDB.Driver.Core.Connections.ClientDocumentHelper.CreateOSDocument()    위치: System.Lazy`1.CreateValue()    위치: System.Lazy`1.LazyInitValue()    위치: MongoDB.Driver.Core.Connections.ClientDocumentHelper.CreateClientDocument(String applicationName)    위치: MongoDB.Driver.Core.Connections.ConnectionInitializer..ctor(String applicationName, IReadOnl...