즐겁게 개발을...

개발보다 게임이 더 많이 올라오는 것 같은...

전체 글 273

[2022.09] Dapper 클래스 고도화

안녕하세요. 오늘은 기존에 올렸던 블로그의 클래스를 고도화해서 다시 올려봅니다. [2021.03] SqLite + Dapper(ORM) 사용방법 환경: Visual Studio 2017, C#, 닷넷 4.6.1 검색능력이 떨어진 건지 제대로 된 게시물이 없는 건지 국/내외 게시물을 다 뒤져도 안나와서 짜집기 + 자작으로 작성해보았다. Node.js에서 Squelize로 작년까지 endev.tistory.com 고도화 주제는 다음과 같습니다. 1. 인터페이스를 통해 클래스를 사용하는 위치에서 외부 참조를 사용하지 않게 한다. 2. 불특정 객체를 반환할 수 있도록 한다. 외부참조 사용하지 않게하기 IDBConnection은 범용적으로 모든 DB에서 인터페이스로 사용할 수 있습니다. 다만 DB별로 Connec..

개발/C# 2022.09.22

[2022.09] 비프 음을 Stop시킬 때까지 내게 하기

보통 오류 발생할 때 비프음을 넣을 때까지 많은데 이번 팁은 지속적으로 어떤 행위를 하고 있는 중에 지속적으로 비프음을 발생시킬 때까지 있습니다. 이때 사용하는 팁을 공유합니다. 제가 원하는 것은 삐~~~~~~~~~~~~~~~~~~~~~~~~~익인데, 삐삐삐삐삐삐삐삐삐삐삐삐삐삐삐삐 형태로 나옵니다. Duration을 길게 잡으면 되는데 이럴 경우 Beep함수에서 빠져나올 수가 없네요. 기본 제공되는 Beep클래스를 직접 구현한다면 가능할 것도 같습니다. 이것은 좀더 찾아보고 추가하겠습니다. 쓰레드 방식으로 구현한 다음 클래스를 추가합니다. public class BeepSound { private int _ToneHz; private int _gapMiliseconds; private bool _stop..

개발/C# 2022.09.21

[2022.09] 맥 어드레스를 이용한 라이선스 기법

단순한 맥어드레스를 이용한 라이선스를 프로그램에 적용시켜봅시다. 우선 클래스 투척합니다. public class LicGenerator { // base64 + Sha256 Hash public string CalculateHash(string rawData) { // Create a SHA256 using (SHA256 sha256Hash = SHA256.Create()) { // ComputeHash - returns byte array byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(rawData)); // Convert byte array to a string StringBuilder builder = new StringBuilder()..

개발/C# 2022.09.20

[2022.09] Webhook API를 이용한 로깅기법

안녕하세요. 웹훅 API를 지원하는 도구 중 채널기반 메시징 도구인 메타모스트(Mattermost)를 이용해 C# 프로그램에서 발생하는 로그를 특정 채널로 수신할 수 있는 방법을 소개하겠습니다. 프로그램을 배포해서 어딘가에 구축하면 구축정보가 개발자에게 제대로 전달이 잘 안되는 경우가 있습니다. 제가 직접 배포 부터 구축까지 관리를 하는 상황이라면 체계를 만들어서 시키겠는데 그런 상황이 아니면 꽤나 답답하게 환경정보 없이 버그를 수정해야 하는 난감한 상황이 발생합니다. Mattermost로 소개하고 있지만 대신 로그 수신도구를 통해 통계나 대시보드로 활용할 수도 있고 별도 API서버를 통해 체계적으로 관리할 수도 있을 것 같네요. Gitlab과 Mattermost 연동하면서 갑자기 C#로그를 띄어보면 어..

개발/C# 2022.09.08

[2022.08] DevExpress Grid Autofilter에 값 설정

안녕하세요. 구글링 해보면 많은 방법들이 나오는데 22.x에서는 과거 방법과 달라서 포스팅 해봅니다. public void SetFilter() { // 필드이름으로 GridColumn을 가져옵니다. GridColumn Col = GetColumn(Gridview1, "Test"); // 해당 필드에 Filter를 세팅합니다. 과거에는 SetRowCellValue()를 이용해서 넣었는데 // AutoFilterRowHandle 구하는 함수가 사라졌네요. Gridview1.SetAutoFilterValue(Col, "TestFilter"); } // GridColumn을 반환하는 함수 public static GridColumn GetColumn(GridView gv, string FiledName) { ..

[2022.08] Devexpress ComboboxEdit 폰트 설정

안녕하세요. 이번에는 ComboxEdit에 폰트 설정하는 방법을 알아봅시다. 설정해야 할 폰트는 3군데를 지정해야 합니다. 표시할 것, 목록, 목록 내 포커스 된 항목이죠. 함수로 만들었으니 적당한 곳에 넣어서 사용하시면 됩니다. using DevExpress.XtraEditors; using System.Drawing; //-------- ~ ---------- public static void SetFont(ComboBoxEdit cbo, Font font) { cbo.Properties.Appearance.Font = font; cbo.Properties.AppearanceDropDown.Font = font; cbo.Properties.AppearanceFocused.Font = font; } /..

[2022.08] C# Dapper 불특정 테이블을 조회할 때

안녕하세요. 오랜만에 개발 관련 글을 적어봅니다. 오늘은 불특정 테이블을 조회할 때 C# 대표 ORM 라이브러리인 Dapper를 이용해 알려드리고자 합니다. (더 좋은 방법이 있다면 알려주세요) 특정 테이블이라면 Model클래스를 생성해서 타입지정해주면 알아서 IEnumerable으로 가져올 수 있습니다. 그런데 불특정 테이블이라면 클래스를 생성할 수 없으니 미리 그리드를 세팅할 수도 없고, 클래스도 생성할 수 없습니다. 코드와 주석을 함께 넣었습니다. Datatable dt = new Datatable(); SqlMapper.GridReader reader = Conn.QueryMultiple("SELECT * from table"); var readDatas = reader.Read(); // Dap..

개발/C# 2022.08.12

2014.09.23 캐나다 토론토 세미나

2014년 기존에 다니던 회사에서 대학원 친구가 추천을 해 대보그룹의 대보정보통신 실무면접에 합격하고 임원면접을 기다리던 중이었다. 이전에 다니던 회사 영업대표가 전화를 와서 두번에 걸쳐 중외정보기술 S/W팀장이 와서 스카웃 제의를 했다. 대보정보통신에서 임원면접 일정이 너무 딜레이 되던 참이기도 했다. 나중에 알고보니 사장이 외국장기 출장으로 일정이 무기한 연기됐던 것이었다. 그렇다면 사정을 좀 이야기 했다면 중외가 아닌 대보로 가지 않았을까 하는 생각이 든다. 중외에 가서 짧게 이력을 같게 된 계기가 되기도 했고 고생길이 훤했기 때문. 각설하고 스카웃 제의를 했던 S/W팀장보다 전력기획 부장님이 나를 좋게 봐서 입사하기도 전에 캐나다 토론토 세미나 출장이 결정됐다는 이야기를 들었다. 입사하자마자 캐나..

2012.09.24 미국 하와이 여행

2012년 9월 하와이로의 개인여행이다. 이전에 시애틀 경험이 있었기 때문에 부담되지는 않았다. 첫날은 하와이 호놀루루 공항에 도착하자마자 국내선을 타고 다시 마우이 섬으로 떠났다. 호놀루루도 마찬가지지만 마우이 섬은 아예 교통편이 존재하지 않아 렌트를 했다. 남자들의 로망 오픈카.. 어디를 가나 이 차들이 많다. 다 렌트이다. 꼭 국제면허가 아닌 국내면허증을 들고 가야 렌트가 가능하다. 어떤 사람 국내면허증을 가지고 가지 않아 렌트를 못하는 불상사를 보기도 했다. 선상에서 밥한번 먹으면서 찍은 샷을 마지막으로 귀국

[2022.07] 데브피아 망했나요?

헉.. 글을 옮기다가 하우투뱅크는 옛날에 사라졌던 기억은 났는데, 데브피아는 웬일??? 글 옮기다가 데브피아에 링크걸린 것들이 모두 없는 페이지로 뜨는게 아닌가? 그래서 직접 접속했더니..... 이런 메시지가.. 일시적으로 서비스에 문제가 있는 건가 해서 검색해 보니, 클리앙에 다음과 같은 글이 있다. https://www.clien.net/service/board/cm_app/15169218 데브피아 망했나 보네요. ㅠㅠ : 클리앙 간만에 링크따라 가다가 들어가 보니 사이트 안열려서 검색해보니 이미 한달넘게 이러고 있고, 이미 회사망했다는 글도 보이네요. 다른데는 몰라도 여기 MFC 쪽은 고인물들이 답글 QNA 잘달아 줘... www.clien.net 이 글이 작년(2020년) 7월에 작성된 글인데, ..