본문 바로가기

전체 글722

728x90
반응형
[C#] HttpClient로 이미지를 받아서 저장하기 HttpClient로 이미지를 받아서 저장하는 코드를 기록용으로 남겨둔다. 예제의 소스는 이해를 돕기 위해 주제와 관련된 기능 외에는 사용하지 않았다. using System.Net.Http; namespace Program { class Program { static async System.Threading.Tasks.Task Main(string[] args) { HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync("https://www.google.com/logos/doodles/2021/new-years-day-2021-6753651837108820-law.gif"); byte[] res.. 2021. 1. 1.
[C#] 셀레니움에서 Timeout 또는 OutOfMemory가 발생하는 문제 C#에서 셀레니움을 활용하여 크롬 웹브라우저를 제어하고 있으면 몇시간 후에 크롬 웹브라우저로부터 응답이 없다고 Timeout 오류가 발생하거나 OutOfMemory에러가 발생하여 제어불능에 빠지는 상황이 발생한다. OpenQA.Selenium.WebDriverException: The HTTP request to the remote WebDriver server for URL http://localhost:65320/session/2c1547c846178882ccf6af559244ec4e/url timed out after 60 seconds. ---> System.Net.WebException: The operation has timed out. at System.Net.HttpWebRequest.Ge.. 2020. 12. 28.
[자바스크립트] img 태그의 데이터를 base64로 인코딩 하자 HTML의 img 태그의 src에 파일 경로가 아닌 데이터를 직접 넣어도 브라우저가 인식하는 시대가 왔다. 데이터를 넣을 때는 base64로 파일 데이터를 인코딩해서 넣으면 되고 다음과 같이 표현이 가능하다. BASE64로 인코딩된 img 태그 예시 위의 img 태그를 넣으면 아래와 같은 그림이 표현된다. 자바스크립트에서 기존의 이미지 파일을 base64로 인코딩하는 방법은 2가지가 있다. 하나는 HTML5 CANVAS를 이용하여 변환하는 것이고 또 다른 하나는 자바스크립트의 File API인 FileReader를 이용하여 변환하는 방법이 있다. HTML5 CANVAS를 이용하는 방법 CANVAS를 생성하고 이 CANVAS의 가로와 세로의 크기를 설정하고 그릴 것을 2D로 지정한다음 BASE64로 변호나.. 2020. 12. 27.
[C#] 셀레니움(Selenium)으로 크롬(Chrome)을 제어하자 #에서 브라우저를 제어하여 특정 정보를 읽어와야하는 경우가 있다 이 경우 셀레니움(Selenium)을 통해 브라우저를 제어할 수 있는 방법이 있다. 이번 포스트에서는 셀레니움으로 크롬(Chrome) 브라우저를 제어하는 예제를 소개하려고 한다. 매번 C# 관련 포스트에서 그러하듯이 우리의 친구 NuGet 패키지 관리자를 실행하여 셀레니움 관련 라이브러리를 설치하도록 하겠다. Visual Studio 2019 상단의 '도구'-'NuGet 패키지 관리자'-'솔루션용 NuGet 패키지 관리...'를 클릭하여 NuGet 패키지 관리자를 실행한다. Selenium을 입력하여 Selenium.WebDriver를 선택한 후 설치한다. 설치를 진행하기 위하여 변경될 내용을 미리 보여주는데 확인하고 '확인'을 누른다. 셀.. 2020. 12. 25.
[C#] 구글 블로거 API로 글 등록하는 법 한국을 소개하는 영어 블로그를 운영하려고 하는데 글을 편하게 쓰기 위하여 구글 블로거 API로 글을 등록하는 예제 프로그램을 작성해보았다. 글 등록 예제 소스코드 using System; using System.IO; using Google.Apis.Blogger.v3.Data; using Google.Apis.Blogger.v3; using Google.Apis.Auth.OAuth2; using Google.Apis.Util.Store; using Google.Apis.Services; using System.Threading; using System.Threading.Tasks; namespace InsertPost { class InsertPost { static void Main(string[] .. 2020. 12. 23.
[C#] 구글 블로거 API 라이브러리를 설치하는 법 구글 블로거 API 기능을 C#에서 활용하여 개발하기 위해서는 구글 블로거 API 라이브러리를 설치하는 것이 편리하다. 구글 블로거 API 라이브러리는 Visual Studio 2019에서 NuGet 패키지 관리잘로 쉽게 설치가 가능하다. NuGet 홈페이지로 가면 현재(2020-12-23) 기준으로 1.49.0.2172가 안정적인 버전으로 출시되어 있는 것을 확인할 수 있었다. NuGet 패키지 관리자는 '도구'-'NuGet 패키지 관리자'-'솔루션용 NuGet 패키지 관리...'을 눌러서 실행할 수 있다. '찾아보기'에서 google.apis.blogger.v3를 입력하여 검색하고 클릭하면 우측에 설치 버튼이 나타난다. 설치를 원하는 프로젝트를 클릭하여 설치 버튼을 누른다. 설치를 누르면 위와 같이 .. 2020. 12. 23.
비트코인 광부(채굴)를 위한 HDMI 더미를 샀다. 비트코인을 채굴하는 광부 분들이 많이 사시는 HDMI 더미를 내가 살 날이 올 거라고는 생각하지 못 했는데 결국 그런 날이 왔다. 나는 채굴용으로 사용할 계획은 없지만 최근에 모니터 없이 개인 서버를 운용하려고 하니 팀뷰어에서 3D 연산이 되지 않는 문제가 발생했었다. 원격으로 서버를 제어할 건데 3D 연산이 왜 필요하냐고 싶다만서도 사실 3D 연산만 안 되는게 아니라 3D 연산이 안 되니 윈도우 화면 자체가 다 검은색으로 표현되고 중간 중간에 그래픽 연산이 필요한 것이 있으면 화면이 나오지 않는 문제가 있었다. 편리하게 쓰려고 윈도우 기반 서버를 사용하고 있는데 기본 제공되는 RDP(Remote Desktop Protocol)를 쓰려고 하니 보안 관련 이슈가 있고 최근에 해킹을 당한 적도 있어서 보안적.. 2020. 12. 23.
논문 작성할 때 유용한 그래프 생성 툴 그누플롯(GNUPLOT) 처음 논문을 작성할 때가 기억이 난다. 그래프를 그려야 하는데 엑셀로 그래프를 그리면 뭔가 허접해보였고 저명한 저널에서 볼 수 있던 논문의 그래프처럼 다양하게 그려지지도 않았다. 원하는 그래프 형식을 개념적으로 정의한 후 이것 저것 시도하였으나 마땅한 방법을 찾지 못 하고 있을 때 선배에게 물어봤는데 그누플롯(GNUPLOT)을 쓰면 그런 문제가 해결된다고 설명을 들었던 기억이 난다. 그누플롯은 무료 2D, 3D 그래프 생성 툴이며 현재 5.4.1까지 출시되어 있다. 그누플롯은 홈페이지(www.gnuplot.info/)에서 무료로 다운로드 받을 수 있다. 사용법을 다루고 있는 pdf 자료와 사진형식으로 공개되어 있는 데모가 있어서 사용법을 금방 익힐 수 있다. 그누플롯을 실행하면 위와 같은 화면이 나타나는.. 2020. 12. 20.
VMWARE에 Windows 10 32비트를 설치해서 용량을 확인해보았다. 지인이 자기 컴퓨터에 VMWARE로 윈도우(Windows) 10 32비트(x86)를 설치를 몇개까지 할 수 있냐고 묻길래 한 번 테스트해보았다. 최대한 사용하는 설치에 사용되는 용량을 줄이고 가용 공간을 최대한 확보하는 것이 목표인 것 같았지만 이번에 나는 순정상태에서 얼마나 용량을 차지하는 지를 확인해보았다. 윈도우 10 이미지는 2020년 2월 8일에 마이크로소프트 홈페이지에서 다운받은 것을 사용하였다. 스토리지 공간으로 15.4GB를 할당하였으며 7.48GB를 사용하여 설치가 되었다. 순정 상태에서 Office 같은 불필요한 같이 설치되는 것을 삭제하면 좀 더 용량을 확보할 수 있을 것으로 보인다. CPU는 1개 코어만 할당해도 가동에는 문제가 없었으며 메모리의 경우 600MB를 항시 점유하고 있는.. 2020. 12. 14.
갑자기 VIEW 노출이 된다. 갑자기 이 블로그 방문자 수가 늘었길래 뭔가 싶어서 확인했는데 네이버 VIEW 노출이 되고 있는 것을 발견하였다. 언제부터인가 네이버는 VIEW 탭에서 네이버 서비스가 아니면 노출을 빼버렸는데 최근에 정책이 다시 바뀐 것인지 VIEW 탭에 티스토리 블로그 노출이 되고 있는 것을 확인할 수 있었다. 물론 동일 키워드를 제목과 본문에 쓰고 있는 네이버 블로그 보다는 노출이 뒤로 밀리겠지만 노출이 되는 것만으로도 장족의 발전이라고 생각이 든다. 2020. 12. 14.
[C#] 구글 API 인증 라이브러리를 설치하는 법 구글 OAuth 2.0 인증을 활용하여 구글 서비스를 이용한 프로그램을 개발하기 위해서는 구글 API 인증 라이브러리를 설치하는 것이 수월하다. 구글 API 인증 라이브러리는 Visual Studio 2019에서 NuGet 패키지 관리자로 쉽게 설치가 가능하다. NuGet 홈페이지로 가면 현재(2020-12-12) 기준으로 1.49.0이 안정적인 버전으로 출시되어 있는 것을 확인할 수 있었다. NuGet 패키지 관리자는 '도구' - 'NuGet 패키지 관리자' - '솔루션용 NuGet 패키지 관리...' 를 눌러서 실행할 수 있다. '찾아보기'에서 google.apis.auth를 입력하여 클릭하면 우측에 설치 버튼이 활성화 된다. 설치를 원하는 프로젝트를 클릭하여 설치 버튼을 누른다. 설치를 누르면 변경.. 2020. 12. 12.
[C#] 구글 블로거 API - 블로그 정보를 읽어오자 한국을 소개하는 영어 블로그를 운영해보려고 하는데 몇 가지 프로그램을 개발하는 것이 편해보여서 구글(Google) 블로거(Blogger) API(Application Programming Interface)를 사용하는 방법을 소개하고자 한다. 사용하는 기능 유형별 예제를 본 블로그에서 정리할 예정이고 소스코드가 어느 정도 모이면 Github에 공개할 예정이다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace BlogInformation { class BlogInformation { static void Main(strin.. 2020. 12. 9.
이클립스로 NS-3 개발하기(1/3) - 이클립스 설치 통합개발환경(Integrated Development Environment, IDE)로 개발하는 것은 생산성을 대폭 향상 시켜준다. 통합개발환경은 버튼 한번으로 빌드와 실행이 가능하고 자동완성 기능 등 다양한 생산성 향상을 위한 도구가 통합되어 있기에 이 시대를 살아가는 개발자들은 다 통합개발환경을 활용하여 개발하고 있다고 볼 수 있다. 마찬가지로 NS-3도 여러 통합개발환경을 통해 개발이 가능하다. 이번 글에서는 개인과 기관 모두 사용료가 무료인 이클립스(Eclipse)를 활용한 NS-3 개발환경 구축을 소개한다. 개발환경 Ubuntu 18.04 OpenJDK 8 Eclipse 2018-09 R 이클립스는 JVM(Java Virtual Machine, 자바가상머신)에서 실행가능하므로 우분투(Ubuntu.. 2020. 12. 7.
이더넷(w5500)과 PoE가 내장되어 있는 아두이노 DFR0342 보안으로 인해 무선 통신을 사용할 수 없는 곳이 꽤 많다. 그래서 IoT(Interent of Thing) 장비가 유선 통신 기반으로 작동하는 것을 요구하는 기관과 업체가 상당히 많은데 그런 제품의 프로토타입을 빠르게 개발하는 방법 중 하나가 아두이노(Arduino)를 활용하는 것이다. 최근 추세는 모든 단말에 IP(Internet Protocol)를 올려서 통신하는 것이 유행이며 이를 통해 센서가 서버로 데이터를 송신하는 것이 대세이다. IP를 지원하는 가장 쉬운 방법은 이더넷(Ethernet) 모듈을 아두이노에 연결하여 사용하는 것이다. 또한 간편한 설치 및 배포를 하기 위해서는 최대한 설치를 위한 공사량을 줄이는 것인데 이더넷 선과 전력 선 두 가지를 사용하는 것 보다는 이더넷 선에 파워까지 연결하.. 2020. 12. 6.
자바 프로그래밍이란? 개발사 자바(Java)는 썬 마이크론시스템즈(Sun Microsystems)에서 1995년에 개발된 객체 지향 프로그래밍 언어이다. 제임스 고슬링(James Arthur Gosling)이 고안하였으며 현재 강력한 프로그래밍 언어 중 하나이다. 2010년에 썬 마이크론시스템즈가 오라클에 인수되어 오라클 홈페이지에서 자바 프로그래밍에 필요한 프로그램인 JDK(Java Development Kit, 자바 개발 도구)를 다운받을 수 있다. JDK 종류 JDK는 크게 OracleJDK와 OpenJDK로 구분 가능한데 라이센스 정책이 OpenJDK는 무료이며 OracleJDK의 경우 유료화가 진행되고 있으므로 사용하고자 하는 목적에 따라 구분하여 사용하는 것이 필요하다. 개인이 학습 목적으로 사용하는 것에는 둘 다.. 2020. 12. 5.
NS-3에 LoRaWAN 모듈을 설치하고 실행해보자 LoRaWAN은 LoRa Alliance에서 2015년에 1.0을 공개하여 현재까지 활발히 활용되고 있는 저전력 광역 통신망(Low-Power Wide-Area Network, LPWAN) 기술 중 하나이다 [1]. 최근에 나는 LoRaWAN 기반의 IoT(Internet of Things) 응용을 개발하기 전에 통신 실험을 할 필요가 있어서 이 모듈을 활용해서 실험에 활용하려고 한다. 이 NS-3 모듈은 이탈리아 파도바 대학교의 SIGNET 연구실의 학생 중 한 명이 석사학위 논문을 작성하기 위해 개발하였으며 현재는 Github에 공개되어 있다 [2]. 구동환경 CPU : i7-4790K 운영체제 : 우분투 18.04 x64(윈도우 10 x64 기반 VMWARE 가상환경) Github에 공개되어 있는 .. 2020. 11. 29.
NS-3를 우분투에 설치하고 실행하자 최근에 실험해보고자 하는 주제가 생겨서 하는 김에 신 버전 NS-3를 설치하다가 설치 방법을 정리하게 되었다. 네트워크 프로토콜 시뮬레이터로 강력한 툴인 NS-3는 우분투(Ubuntu)에서 설치 및 실행이 가능하다. 이번 설치에는 VMWARE로 가상머신을 하나 생성하여 우분투 18.04를 설치한 다음 거기에다가 신 버전 NS-3를 설치했다. 구동환경 CPU : i7-4790K 운영체제 : 우분투 18.04 x64(윈도우 10 x64 기반 VMWARE 가상환경) 의존성 패키지 설치 NS-3를 설치하기 전에 설치해야하는 것들이 있다. 다음 명령어를 터미널에 입력하여 설치한다. sudo apt install gcc sudo apt install g++ NS-3 다운로드 NS-3 공식 홈페이지(www.nsnam.. 2020. 11. 27.
4. 멀티위 컨트롤러에 멀티위를 업로드하자 본 글은 2015년 12월 3일 7시 26분에 썼던 글이며 블로그 자료 이전으로 날짜만 갱신된 글입니다.  멀티위 컨트롤러와 PC간에 시리얼통신이 잘 되는 지 확인을 했다면 이제 멀티위 컨트롤러에 멀티위를 업로드해야한다. 먼저 멀티위 프로젝트 사이트에 가서 멀티위를 다운 받는다. 멀티위 다운로드 : https://code.google.com/p/multiwii/ 구글 프로젝트에 있는 멀티위 사이트에 가서 2.4버전을 클릭해서 다운받는다. 다운 받은 압축파일을 압축해제하면 루트에 아래와 같이 있다.멀티위 소스가 있는 Multiwii 폴더와 멀티위의 상태를 모니터링하고 각종 설정을 할 수 있는 프로그램이 있는 MultiwiiConf 폴더가 있다. 멀티위 소스를 아두이노 IDE에서 열어서 수정이 필요한 부분을.. 2020. 11. 22.
3. 멀티위 컨트롤러와 PC를 연결해서 통신이 가능한 지 확인하자 본 글은 2015년 12월 2일 17시 50분에 썼던 글이며 블로그 자료 이전으로 날짜만 갱신된 글입니다. 'CRIUS MWC MultiWii SE v2.5 멀티위 비행 제어보드 멀티콥터용 컨트롤러 ATMEGA 328P'에 멀티위 소스를 올리기 전에 멀티위 컨트롤러와 PC와 통신이 잘 되는지 확인해야한다. ※ 멀티위(www.multiwii.com)는 멀티로터 RC를 제어하기 위한 범용소프트웨어이다. 다시 말해 여러개의 날개가 달린 RC들을 제어할 수 있는 소프트웨어라는 말로 날개가 세 개인 트라이콥터부터 여덟개인 옥토콥터까지 다양하게 지원한다. 즉, 코딩하나 없이 쿼드콥터에 오픈소스 소트프웨어를 올리면 날릴 수 있다는 것이다. 멀티콥터에 대해 자세한 것은 펠콘샵을 참조(http://www.falconsh.. 2020. 11. 22.
NS-3.32 업데이트 정보 네트워크 시뮬레이터 NS-3의 3.32 버전이 출시되었습니다. Wi-Fi 관련 기능이 보충되었고 여러 혼잡 제어 기능과 각종 버그들이 수정되었습니다. 변화된 점 Wi-Fi 802.11ax가 6 GHz 대역을 지원합니다. Wi-Fi 모델에서 RIFS(Reduced Interframe Space) 기능이 삭제되었습니다. NS-3의 Emulation에 Netmap과 DPDK(Data Plane Development Kit) 기능이 추가되었습니다. TCP에서 동적 페이싱이 추가되었습니다. TcpLinuxReno 혼잡 제어가 추가되었습니다. RFC 8033에 있는 PIE queue disc model이 추가되었습니다. FqCoDel 및 CoDel queue disc에 L4S 모드가 추가되었습니다. STL Pair.. 2020. 11. 9.