본문 바로가기
반응형

.Net49

C#/.NET - 프로젝트 생성과 빌드하기 + 디버깅 처음 프로그램을 다루는 사람이라면, 어떻게 저 코드를 실행할 수 있을까 하고 고민이 될 수도 있다. 한번 해보면 크게 어려운 것이 아니므로 아래와 같이 따라 해 보도록 하자(C#외에 C++도 이와 같이 프로젝트를 생성하고 빌드하면 된다). 먼저 설치한 Microsoft Visual Studio를 실행하고 새 프로젝트 만들기(Ctrl+Shift+N키)를 누르자. 그럼 아래와 같이 생성할 수 있는 프로젝트가 나타난다. 보통 윈도우 GUI(그래픽 유저 인터페이스) 기반의 프로그램인 Windows Forms 응용프로그램과 CLI 기반의 콘솔 응용 프로그램을 많이 사용하는데, 여기서는 콘솔 기반 응용프로그램이 다수이므로, “콘솔 응용 프로그램”을 선택하고 아래 확인 버튼을 누르자(프로젝트 이름은 적당히 지정한다... 2022. 6. 11.
C#/.NET - HTTP Keep-alive 사용하기 Python 기준으로 Keep-alive를 사용하는 방법을 정리하였다. Python - HTTP Keep-alive 를 통한 성능 향상 (asecurity.dev) Python - HTTP Keep-alive 를 통한 성능 향상 HTTP Keep-Alive를 이용하면, TCP 세션을 연결하는 작업을 하지 않고 추가적인 데이터를 보낼 수 있기 때문에 많은 장점을 가지게 된다. Nginx에서도 Keep-alive를 활성화 할 경우 50%이상의 성능을 더 올릴 asecurity.dev 반대로 C#/.NET에서는 HttpClient를 통해 세션을 계속적으로 사용할 수 있다. using System; using System.Net; using System.Net.Http; using System.Threading.. 2022. 4. 14.
.NET - HTML 특정 문자열 추출, DocumentNode.SelectNodes 검색하기 HTML에서 원하는 값을 가져오고 싶을때, 보통 class로 지정된 CSS기준으로 가져올 수 있다. 만약 아래와 같이 Github의 특정 문자열을 가져오고 싶다면, 브라우저의 개발자 도구(F12키) 열어서, Elements 에서 해당하는 스타일을 검색한다. 그리고 아래 그림처럼 왼쪽 말풍선에 나온 내용 참고하여, CSS 구문을 포함해서 SelectNodes 값을 지정해주면 된다. 위 div아래와 같이 코드를 작성해서 가져올 수 있다. using HtmlAgilityPack; using System; using System.Net.Http; using System.Threading.Tasks; namespace console_html { class Program { static async Task Main.. 2022. 4. 5.
.Net - naver, daum, google,kakao SMTP 메일 설정 및 보내기 Implicit SSL 포함 메일은 사용자에게 알람부터, 사용자에게 정보 전달까지 다양하게 사용할 수 있는 의사 전달 도구로써, 프로그램으로 메일을 보내는 기능을 일반적인 메일 제공 업체인 Naver, Daum, Google을 통해 어떻게 가능한 지 알아보도록 하자. 각 메일 제공 업체별로 메일을 전달하기 전에 구성해야 하는 옵션이 있는데 구글부터 알아보겠다. 업체 주소 Port 특이사항 다음 smtp.daum.net 465 IMAP/POP 활성화 카카오 smtp.kakao.com 465 IMAP/POP 활성화 네이버 smtp.naver.com 587 IMAP/POP 활성화 구글 smtp.gmail.com 587 2차인증 해제, 낮은 수준 앱 구글 - 보안 수준이 낮은 앱의 액세스 활성화 구글은 2차인증과 보안 수준이 낮은 앱(메일.. 2022. 3. 25.
WxTCmd - Windows 10 Timeline Artifact Tool 한글 깨짐 해결 Windows 10에서 부터 새롭게 추가된 TImeline Arfifact에 대해 최근에 알게 되어 정리해 본다. Windows 10의 경우 윈도우 제어판의 activity history라는 메뉴가 있는데 기본적으로 사용자의 웹 브라우저 이용이나 앱사용 기록을 저장하도록 설정이 되어 있다. 위 설정을 통해 기존에 Prefatch나 브라우저 기록 캐쉬, 이벤트 로그들을 조사하여 분석해야 했던 사용자의 사용 기록을 보다 쉽게 분석을 진행할 수 있다. 보다 자세한 내용은 아래 글을 참고 하면 좋겠다. belkasoft.com/windows-10-timeline-analysis How To Analyze Windows 10 Timeline With Belkasoft Evidence Center Temporal .. 2021. 3. 4.
텍스트 - 콘솔 글씨 꾸미기 콘솔형태의 프로그램을 작성하다보면, 프로그램 로딩이나, 인트로를 고민하게 된다. 이때 글자 효과를 크게 주어 로고 형식으로 만들려고 하지만 그림을 콘솔에서 그리는 것을 수작업으로 한다면 만만하지 않은 작업일 것이다. 만약 글자를 이용해서 특징을 주고자 한다면, http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20 링크에서 쉽게 작업이 가능하다. 위 그림과 같이 글자를 쓴후 Font를 통해 효과를 지정하고 원하는 스타일을 복사하여 .NET 기준으로 Console.WriteLine을 이용하여 라인별로 표현해 주면 된다. Console.WriteLine(" ▄████████ ▄█ ▄█ ▄▄▄▄███▄▄▄▄ ███▄▄▄▄ ▄██.. 2021. 2. 10.
.NET - Audit.log Unix FileTime 계산하기 Linux에서 audit.log 나 일부 로그에서는 FileTime 으로 데이터를 표시하는데 사용되는 시간 표시를 위해 사용하는 FileTime은 윈도우와 다르게 계산된다. 이를 계산하기 위해서는 단순히 DateTime에서 제공하는 FromFileTime을 이용하게 되면 전혀 다른 시간으로 기록되어 진다. Linux의 FileTime을 표시하려면 Linux의 표준 FileTime은 1970년1월1일 0시0분0초를 기준으로 초단위 더하기 방식으로 계산되기 때문에 다음과 같이 TimeOffset을 만들고 초단위로 더해주면 된다. DateTimeOffset dto = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero); 위 기준시간을 기준으로 초단위 값을 더해주면.. 2021. 1. 18.
.Net - Easy to make log file Console App 콘솔 앱에서 로그파일을 만들수 있는 방법은 많다. 직접 로그 용도의 함수을 만들어서 파일에 쓰는 방식으로 할 수 있지만, 매번 반복적으로 개발을 해야 한다면, 라이브러리를 쓰는게 가장 효율적일 것이다. 여기에서는 .NET core 에서 많이 사용되는 Serilog라는 라이브러리를 이용하여 쉽게 Log File을 만들수 있는 방법을 소개하도록 하겠다. 먼저 Visual Studio를 실행하여 .Net core 용도의 콘솔 앱을 생성한다. 1. Serilog 추가 그리고 Serilog.Sinks.RollingFile을 추가하도록 하자. 현재는 Serilog.Sinks.File 로 포함되어 관리되고 있으므로, Serilog.Sinks.File 을 설치해도 무방하고, RollingFile 역시 동작에 문제가 없.. 2020. 12. 19.
.NET - Download file from HttpClient/WebClient Http를 이용해서 파일을 다운로드해야 하는 상황에서 2가지으로 정리하여 구성할수 있다. 하나는 API를 이용하여 다운로드하는 상황, 다른 하나는 URL을 기반으로 다운로드를 하는 상황일 것이다. 해당 상황에 맞는 코드를 정리해 본다. 1. API를 이용한 다운로드 아래 코드는 API의 filename인자로 전달하여 파일을 다운로드 하는 방안이다. FileInfo를 통해 저장할 파일의 전체 경로를 미리 구성해 놓고, 정상적인 응답이 있다면, Stream을 통해 파일을 생성하는 코드이다. using System; using System.IO; using System.Net.Http; namespace httpdownload { class Program { static async System.Threadin.. 2020. 12. 15.
반응형