일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tls
- 코딩테스트
- Binding
- Microsoft
- nullable
- string
- convert
- WPF
- logging
- git
- mysql
- programmers
- IValueConverter
- .net
- ListView
- commit
- File
- chashtag
- windows
- Process
- Visual Studio
- algorithm
- csharp
- C#
- Github
- log
- coding-test
- windows10
- Coding
- dotNET
- Today
- Total
목록전체 글 (144)
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..
C#에는 Attribute라는 유용한 친구가 있습니다. 그중 CallerMemberName을 사용하면 이 함수를 호출한 대상에 대한 이름을 인자로 받게 됩니다. 사용법은 다음과 같습니다. // Program.cs static void Main(string[] args) { SomeFunction(); // output : Main } public static void SomeFunction([CallerMemberName] string callerName = null) { Console.WriteLine(callerName); } 한가지 주의할 점은 default value를 지정해 주어야 한다는 점입니다. CallerMemberName외에도 CallerFilePath, CallerLineNumber도 ..
[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..
안녕하세요. 오늘은 프로그래머스 코딩테스트 연습 문제인 "소수 만들기" 를 풀어 보았습니다. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12977 문제 풀이 방법 코드 실행시간을 줄이기 위해 소수를 구하는 IsPrime함수에서 num의 제곱근을 내림하여 나온 값까지만 for문을 돌게 하였습니다. 그 결과 평균 약 0.40ms 정도의 속도로 테스트를 통과하였습니다. 코드 using System; class Solution { public int solution(int[] nums) { int answer = 0; for (int i = 0; i < nums.Length - 2; i++) { for (int j = i + 1; j < nums.Len..
안녕하세요. 오늘은 파일을 업로드할 때 필요한 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..
결론부터 말씀드리겠습니다. 필자의 경우 Web.config에 다음 코드를 추가하여 해결하였습니다. Nancy 라이브러리를 이용하여 ASP 웹 페이지를 제작하다 보면 cshtml에서 외부 라이브러리를 찾지 못하는 오류가 발생하곤 합니다. @using Your.Namespace.etc [CS0234] Line: 0 Column: 0 - 'Your.Namespace.etc' 네임스페이스에 'SomeClass' 형식 또는 네임스페이스 이름이 없습니다. 어셈블리 참조가 있는지 확인하십시오. 하지만 프로젝트의 References에는 잘 추가가 되어 있다면 다음 Web.config를 수정하여야 합니다. ※ Razor 속성의 위치는 configuration 바로 아래에 있어야 합니다. ※ razor section을 추..