본문 바로가기
반응형

C#21

.NET - EXE에 모든 Dll, 리소스 포함하여 빌드하기 C# 프로그램을 개발한다면, 누구나 느끼는 Nuget에서 받은 DLL과 리소스들을 합쳐서 깔끔하게 배포하고 싶은 욕구가 있을 것이다. 아래에는 저자가 기존부터 경험했던 리소스를 EXE에 포함하여 배포하는 방법 3가지를 공유해보도록 하겠다. 1. 리소스에서 파일 생성하기 예전에는 DLL과, 리소스 파일들을 포함하기 위해서는 리소스 파일을 만들어서 실행 하는 시점에 해당 파일이 있는지 확인하고, 로드하는 방식을 사용하였다. 아래는 저자가 특정 파일을 리소스에 포함했다가 프로그램 실행시점에 해당 파일이 있는지 확인하여 리소스에서 파일 쓰는 방식이다. 이 방식은 Update.exe와 같은 추가 기능을 EXE 파일에 넣었다가 필요시 리소스에서 꺼내어 사용할 수 있는 방식으로도 활용이 가능하다, 다만 특정 백신에서.. 2024. 2. 24.
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.
Windows/Linux Command line run Exit code Command Line 프로그램을 제작하다보면, 실행 결과가 정상적으로 처리되었는지 확인하여 처리해야 하는 경우가 있다. 이때 유용한 Exit Status에 대해서 배워보도록 하겠다. 윈도우와 리눅스는 모두 콘솔에서 실행을 완료후 종료 코드를 내보내도록 구성되어 있다. 그리고 실행 종료 코드를 특정 변수에 저장한다. Windows의 경우 echo %errorlevel%, 리눅스의 경우 echo $? 에 마지막 실행 코드를 보관 한다. Exit Status가 0인 경우 정상적으로 실행이 완료된 상태를 의미한다. 만약 0 이외의 코드가 있다면 프로그램 실행중 오류가 발생했다는 의미이다. 프로그램 실행 유무 확인 그럼 간단이 윈도우에서 Exit Status를 확인해 보겠다. hostname 명령이 실행되었는지.. 2021. 4. 1.
반응형