IT정보공유/C#85 네이버 센스 SMS API 헤더 생성에 필요한 HmacSHA256과 UTC Timestamp 네이버에서는 기업을 대상으로 클라우드 서비스를 하고 있습니다. 클라우드 서비스 중에서도 Simple & Easy Notification Service 라고 해서 간단하고 쉬운 알림 서비스를 지원하고 있는데요. 쉽게 설명하면, 모바일 PUSH 서비스나 SMS, MMS, LMS 등과 같은 문자메세지 기반 서비스를 제공하고 있습니다. 그중에서 SMS 문자메세지나 MMS 같은 멀티미디어 문자메세지 기능을 제공하는 서비스가 SENS (센스)입니다. Simple & Easy Notification Service - Naver SENSE API SENSE는 메세지서버 구축 없이 메세지 알람 기능을 구현할 수 있는 서비스에요. 네이버가 다 알아서 해주니까요. 개발자는 문자메세지 발송과 관련된 API만 사용하면 됩니다... IT정보공유/C# 2020. 12. 1. c# 정규표현식으로 알아보는 문자열에서 한글만 추출하기 지난시간에는 문자열에서 한글만 제거 하는 방법을 알아보았습니다. 아무래도 FTP서비스나 기타 한글문화권이 아닌 프로그램을 사용하다 보면 한글을 사용하면 안되는 경우가 있을 수 있기 때문이였는데요. [IT정보공유/C#] - c# 정규표현식으로 알아보는 문자열에서 한글만 제거하기 c# 정규표현식으로 알아보는 문자열에서 한글만 제거하기 파일명이나 문자열 등에서 한글만 제거하는 방법에 대해서 알아보도록 하겠습니다. 한글만 제거하는 건 사실 크게 어렵지는 않습니다. 바로 정규표현식 Regex Class 덕분인데요. Regex 클래스가 없 bigenergy.tistory.com 오늘은 한글만 제거 하는 것이 아닌 약간의 응용으로 한글만 추출해서 가져오는 방법을 알아보도록 하겠습니다. Regex Class를 이용한 .. IT정보공유/C# 2020. 11. 30. c# 이미지파일을 Base64 문자열로 가져오는 방법 네이버 API 중 SMS, MMS 등의 문자메세지를 전송할 수 있는 네이버 SENSE API를 사용중입니다. 단문 메세지를 전송하는 SMS (80바이트 정도의 글자만 전송) 그리고 장문의 문자를 보내거나 파일을 첨부할 수 있는 MMS 문자메세지 기능을 테스트 하고 있는데요. 그중에서도 MMS를 이용한 JPG 파일같은 이미지 파일을 문자메세지에 포함시켜서 보내는 기능을 시험하고 있습니다. 네이버 센스 API 문서를 보면, 이미지파일을 첨부할 경우 이미지 파일을 Base64로 인코딩된 문자열로 바꾸어 API 호출시 JSON 파라미터로 전달해야 합니다. 네이버 센스(Naver Sense SMS API v2) SMS API - API 참조서 기본 정보 API URL https://sens.apigw.ntruss.. IT정보공유/C# 2020. 11. 27. c# 정규표현식으로 알아보는 문자열에서 한글만 제거하기 파일명이나 문자열 등에서 한글만 제거하는 방법에 대해서 알아보도록 하겠습니다. 한글만 제거하는 건 사실 크게 어렵지는 않습니다. 바로 정규표현식 Regex Class 덕분인데요. Regex 클래스가 없었다면 한글만 제거하는 것은 쉽지 않은 것이 사실입니다. Regex (Regular Expression : 정규표현식) 으로 영어, 숫자만 추출 문자열에서 한글만 제거하는 방법은 정규표현식을 이용해서 영어와 숫자만 추출하는 방법으로 할 수 있습니다. 샘플 소스도 아주 간단하니 참고하시기 바랍니다. // 함수만 참고하세요. // using System.Text.RegularExpressions; class MySamples { private string RemoveKorean(string filename) {.. IT정보공유/C# 2020. 11. 25. C# 응용프로그램 프로세스 한개만 띄우기 (중복실행방지 및 동일 프로세스 강제 종료) 프로그램이 이미 떠 있는데 중복으로 실행되는 걸 막을 필요가 있을 경우 사용하는 방법입니다. 예를 들어 ABCD.exe 라는 프로그램이 여러개 실행되는 것을 막는거죠. 프로세스가 살아 있는지 체크 하려면 Program.cs 에 코딩해야 합니다. 프로그램 시작 진입점인 Main() 함수에서는 IsExistProcess(false) 함수를 통해서 동일한 프로세스가 떠 있는지 검사해서 없으면 그냥 프로그램을 실행시키고, 동일한 프로세스가 있는 경우에는 다이얼로그 팝업을 발생시켜 프로세스를 종료할지, 아니면 그냥 중복으로 실행할지를 물어봅니다. // //Program.CS // static void Main() { Application.EnableVisualStyles(); Application.SetCompa.. IT정보공유/C# 2020. 11. 18. c# 비동기 처리를 위한 BackgroundWorker, Task Class 사용법 c#에서는 Thread를 사용할 수 있는 방법이 여러가지가 있습니다. 정석은 누가 뭐래도 Thread를 사용하면 되지만, 간단하게 사용할 때는 BackgroundWorker 또는 Task를 사용할 수도 있습니다. Thread 클래스 사용방법은 인터넷에 너무나 많이도 설명되어 있고 BackgroundWorker나 Task는 존재자체를 모르시는분들도 계시기 때문에 한번쯤 사용해 보시면 도움이 되지 않을까 생각됩니다. 일반적으로 Thread, BackgroundWorker, Task 등은 비동기 작업을 위해 사용됩니다. 즉 한 프로세스 내에서, 어떠한 결과를 처리하는데 시간이 오래걸리는 부분이 있어서 UI가 응답없음 상태로 빠지는 경우가 생길수 있는데, 처리부분만 비동기로 처리하게 되면 UI는 응답없음 상태에.. IT정보공유/C# 2020. 11. 11. c# yyyyMMddHHmmss 문자열을 datetime 형식으로 변환 날짜를 문자열로 표현하면 2020-11-09 17:18:23 형태로 표현을 하게 됩니다. 하지만 프로그래밍을 하다 보면 20201109171823 등으로 "-", ":" 등의 특수기호를 빼고 숫자만 저장하기도 하죠? 이렇게 숫자로만 저장된 날짜문자열을 DateTime 클래스로 변환하려면 복잡하게 문자열을 자르고 하이픈을 붙이고, 콜론을 붙이고 등등 번거롭습니다. 하지만 C#에서는 기본적으로 이렇게 쭉 이어진 문자열도 바로 날짜로 변환할수 있도록 함수를 제공해 주고 있습니다. //Example string value = "20201109171823"; DateTime currdate = DateTime.ParseExact(value, "yyyyMMddHHmmss", CultureInfo.InvariantC.. IT정보공유/C# 2020. 11. 9. C# TableDependency Exceptions Propery [컬럼명] cannot be set with db value 0.0000000000000000 MSSQL 데이터베이스의 데이터 변경을 감지하기 위해 사용중인 TableDependency. Propery [컬럼명] cannot be set with db value 0.0000000000000000 위 제목과 같은 오류메세지가 발생. 확인해보니 데이터베이스의 컬럼과 C# 클래스에 정의된 필드의 데이터 타입이 일치 하지 않아 발생하는 에러였다. DB Column은 double이고, 클래스에 정의된 타입은 int. 그러다 보니 아래와 같이 오류가 발생하면서 예외상황이 발생됨. TableDependency.SqlClient.Base.Exceptions.NoMatchBetweenModelAndTableColumns: Propery [컬럼명] cannot be set with db value 0.0000000.. IT정보공유/C# 2020. 10. 13. c# 매월 1일, 매달 말일 구하는 방법 일자별 통계 리포트를 작성할때 조회 기간 기준을 매월 1일 부터 매달 말일로 설정하기도 합니다. 이때 필요한 월의 첫날과 월의 마지막 날을 구하는 방법에 대해서 알아보도록 하겠습니다. 현재 날짜를 기준으로 계산하는 방법입니다. 이번달의 첫번째 날, 즉 1일을 DateTime 형식으로 만드는 법 DateTime MonthFirstDay = DateTime.Now.AddDays(1 - DateTime.Now.Day); 설명을 곁들이자면 1일에서 금일 날짜르 뺍니다. 금일은 9월 15일로 가정하도록 하겠습니다. 1일 - 15일 을 하면 -14일이 나오겠죠? 그럼 9월 15일 - 14일을 했으므로 1일이 나오게 됩니다. 이해되시죠? 월의 마지막 날, 말일을 날짜형식으로 만드는 방법입니다. DateTime Mon.. IT정보공유/C# 2020. 9. 15. c# DataTable DataRow 복사 - 이 행은 이미 다른 테이블에 속해 있습니다. 저는 개발할때 DataTable을 많이 사용합니다. 그러다 보니 DataTable과 DataRow를 자주 이용하게 되는데 DataTable과 DataTable에서 레코드 하나를 복사하거나 데이터테이블에 속해있는 로우의 순서를 바꾸려고 할때 다음과 같은 에러를 만날 수 있습니다. System.ArgumentException: '이 행은 이미 다른 테이블에 속해 있습니다.' 예를 들어 로우의 순서를 바꾸기 위해서 기존 데이터테이블인 _dtList를 복사 해서 DataRow를 다시 추가 하려고 할때 에러메세지가 발생합니다. DataRow[] drlist = _dtList.Copy().Select("1=1", "SortNo asc"); _dtList.Clear(); for(int i=0;i IT정보공유/C# 2020. 5. 27. C# TextBox 전화번호 하이픈 자동완성 (전화번호 포맷 자동입력) 오늘은 Textbox에 전화번호를 입력할 때 자동으로 하이픈(-)을 삽입해 주는 샘플 코드입니다. 핵심은 전화번호 자릿수를 계산해서 "-" 문자를 넣어주는 것이고 이를 위해서 TextBox의 KeyPress 이벤트 핸들러와 KeyUp 이벤트 핸들러에서 처리를 해줍니다. private void tePhone_KeyPress(object sender, KeyPressEventArgs e) { if (Char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToIntel32(Keys.Back)) // || (e.KeyChar == '-') { } else { e.Handled = true; } } KeyPress 이벤트핸들러에서는 숫자키와 백스페이스 키만 입력할 수 있도록 제한을 .. IT정보공유/C# 2020. 5. 8. C# WebClient API 호출시 Basic Authorization 인증 방법 간단하게 HTTP header에 아이디와 비밀번호를 설정하여 Basic Authorization 인증 받는 방법을 알아 보도록 하겠습니다. 웹서버에서 별도의 인증이 필요없는 경우에는 아래처럼 http header에 authorization 을 설정하지 않아도 됩니다만 보안을 위해 인증을 사용하는 경우도 있으니, 참고해 두시면 도움이 될겁니다. WebClient webClient = new WebClient(); webClient.Headers[HttpRequestHeader.ContentType] = "application/json"; string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes("id:password")); webClient... IT정보공유/C# 2020. 5. 7. 이전 1 2 3 4 5 ··· 8 다음 💲 추천 글 반응형