일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- windows10
- C#
- nullable
- logging
- csharp
- IValueConverter
- log
- coding-test
- programmers
- commit
- string
- Binding
- Github
- algorithm
- mysql
- Coding
- git
- dotNET
- File
- windows
- Process
- chashtag
- convert
- tls
- .net
- WPF
- ListView
- Microsoft
- Visual Studio
- 코딩테스트
- Today
- Total
목록chashtag (118)
CHashtag
폴더 내부의 모든 파일의 크기를 구하는 함수입니다. 단위는 byte입니다. public long GetDirectorySize(string path) { long size = 0; DirectoryInfo dirInfo = new DirectoryInfo(path); foreach (FileInfo fi in dirInfo.GetFiles("*", SearchOption.AllDirectories)) { size += fi.Length; } return size; }
안녕하세요. 오늘은 프로그래머스 코딩테스트 연습 문제인 "모의고사" 를 풀어 보았습니다. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42840 문제 풀이 방법 불필요한 변수 사용을 줄이기 위해 % (나머지) 연산자를 이용하여 변수 하나로 수포자 3명의 값을 비교하도록 하였습니다. 또한 Linq를 이용하여 최고 점수를 받은 사람들을 return하도록 구현하였습니다. 그 결과 평균 약 4.5ms 정도의 속도로 테스트를 통과하였습니다. 코드 using System.Collections.Generic; using System.Linq; public class Solution { public int[] solution(int[] answers) { int..
// App.xaml.cs // 프로그램 시작, 종료 지점에 해당 코드를 삽입하여도 무방합니다. const string MUTEX_NAME = "SOME_UNIQUE_MUTEX_NAME"; Mutex mutex = null; App() { bool isNew; try { mutex = new Mutex(false, MUTEX_NAME, out isNew); if (!isNew) { Application.Current.Shutdown(); mutex = null; return; } } catch (Exception ex) { Application.Current.Shutdown(); } } /// /// 프로그램이 종료되기 전에 Mutex를 해제해주어야 한다. /// /// /// private void A..
[DllImport("user32.dll")] static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo); C#에는 키보드 입력을 할 수 있는 함수들이 존재합니다. 오늘 소개할 keybd_event라는 함수는 user32.dll 에 내장된 함수로, low level의 키보드 인풋을 제공합니다. keybd_event에는 4가지 Arguments는 다음과 같습니다. // 가상 키 코드입니다. // https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes byte bVk // 키의 하드웨어 스캔 키입니다. // https://stackov..
안녕하세요. 오늘은 파일을 업로드할 때 필요한 content-type을 파일의 확장자 별로 구하는 방법에 대해 알아보도록 하겠습니다. 다행히도 Windows에서는 해당 값에 대한 Mime-Type을 레지스트리 편집기에 정의해 두었습니다. 레지스트리 편집기에 들어가보면 여러 확장자에 대한 Content Type값이 들어있는 것을 확인하실 수 있습니다. (컴퓨터\HKEY_CLASSES_ROOT의 하위에는 .xxx와 같은 형식의 폴더가 많이 존재합니다.) 따라서 오늘은 이 값을 이용하여 확장자에 대한 mime-type(content-type)을 구해보도록 하겠습니다. 방법은 아주 간단합니다. 아래는 해당 값을 읽어오는 코드입니다. public string GetMimeType(string fileName) {..
안녕하세요. 오늘은 유명한 Git Client인 Fork 툴에서 커밋 해시로 검색하는 방법에 대해 알아보도록 하겠습니다. 이해를 돕기 위해 제가 예전에 번역 작업을 했던 github.com/NickeManarin/ScreenToGif 프로젝트의 커밋 기록을 해쉬로 검색해보도록 하겠습니다. (해쉬 : 0a731da3a1731410e35e52e7b130edf515b1e222) Ctrl + P ctrl + p는 사실 Quick Launch Window입니다. 주된 기능은 다른 Repository로 이동하는 것이지만 추가적으로 현재 Repository에서 해쉬로 검색을 하게 되면, 해당 커밋을 보거나(Reveal), 해당 커밋으로 Checkout 할 수 있습니다. 커밋 목록 클릭(focus) 한 뒤 ctrl +..
제품을 릴리스하여 출시할 때 exe와 동일한 경로에 수많은 .dll 파일들이 위치해 있는 경우가 많습니다. 이럴 경우 매우 복잡하고 지저분해보일 수 있기 때문에 오늘은 이 .dll 파일들을 폴더로 분리해보려 합니다. 테스트 구성은 다음과 같습니다. 빌드를 하면 다음과 같이 지저분한 dll들이 보입니다. 이제 이 dll들을 폴더를 나누어 관리해보려 합니다. (참고로 pdb 파일들은 지워도 됩니다.) app.config에 다음과 같은 코드를 추가해주면 됩니다. 여기서 주의할 점은 privatePath는 exe하위 폴더여야 합니다. 여러 폴더를 지정하고 싶다면 ; 으로 나눠주면 됩니다. (공백이 생겨선 안됩니다.) 사실 app.config를 변경하고 빌드하지 않고 SomeAmazingWPFProgram.exe..
기본적으로 .net framework 4.0에서는 tls 1.2가 지원되지 않아 https요청을 보내면 "기본 연결이 닫혔습니다 보내기에서 예기치 않은 오류가 발생했습니다." 라는 에러가 발생합니다. 이때 .net framework 버전을 4.5.2로 올려도 되지만 버전을 올릴 수 없을 경우 해결방법을 알려드리도록 하겠습니다. 아래의 함수를 선언한 뒤 프로그램이 시작 시 한번 호출해주면 해결됩니다. public void SetTls() { bool platformSupportsTls12 = false; foreach (SecurityProtocolType protocol in Enum.GetValues(typeof(SecurityProtocolType))) { if (protocol.GetHashCode..
안녕하세요. 오늘은 C# 프로젝트를 빌드하면, 함께 나오는 pdb파일에 대해 알아볼까 합니다. PDB파일이란? .pdb파일은 Program DataBase의 약자입니다. C#프로젝트를 빌드하면, exe 혹은 dll파일과 함께 pdb파일도 함께 나오는 것을 종종 확인하셨을 것입니다. pdb파일은 프로그램을 디버깅할 때 필요한 파일입니다. pdb파일 속에는 디버깅에 필요한 정보들이 포함되어 있습니다. 이 말을 뒤집으면 프로그램을 배포할 때에는 pdb파일이 있어선 안 되겠죠. 그래서 혹시 배포 패키지에 pdb파일이 섞여 들어가는 것을 막기 위해 빌드 옵션을 설정할 수가 있습니다. 그럼 지금부터 pdb파일을 나오게 하는 법, 안 나오게 하는법에 대해 알아보도록 하겠습니다. PDB파일 안나오게 하는 법 1. 프로..
안녕하세요. 오늘은 C#개발을 할 때에 지켜야 할 규칙에 대해 알려드리려 합니다. 오늘 알려드릴 내용은 "권장사항" 입니다. 아래 코딩 규칙이 회사, 팀에서 사용하고 코딩 규칙과 다르다면 따르지 않는것을 추천합니다. 코딩 규칙이 존재하는 이유는 여러 사람이 일관성있는 코드를 작성할 수 있게 돕고, 그로인해 코드 가독성을 높이기 위함임을 꼭 기억하기시 바랍니다. 일관성 있는 코드 작성 -> 가독성 올라감 -> 코드 리딩 및 이해가 빠름 -> 개발시간 단축 및 리팩토링 용이 (아래 몇몇 규칙중에서는 성능을 높여주는 규칙도 포함되어 있습니다.) 오늘 게시글은 마이크로소프트 공식 문서를 참고하여 예제를 추가한 것입니다. 관련해 더 자세하고 정확한 내용은 원문을 참고해주시기 바랍니다. (docs.microsoft..