프로그래밍 150

[프로그래밍] Big O 표기법 (Big O Notation )

Big O 표기법 알고리즘을 배우기에 앞서 가장 먼저 알아둬야 할 개념입니다.Big O 표기법 예를 들어, 알고리즘 A와 B 중에 어떤 알고리즘이 더 나은가에 대해서 고민이 생겼다고 가정하자.A는 데이터가 적은 구간에서 속도에 강점을 보인다. B는 데이터가 많은 구간에서 속도에 강점을 보인다. 둘 중 어떤 알고리즘이 더 나은가에 대한 결정을 할 수 있을까? 정답은 상황에 따라 다르다. 입력 데이터가 적은 경우 A를 사용하는게 더 유리하고, 데이터가 많은 경우 B를 사용하는게 더 유리합니다. 이런것들을 비교할 수 있게 도와주는 하나의 기법을 바로 BIG-O 표기법이라 합니다. Big O 개념 https://www.youtube.com/watch?v=Chcl71vEkRg Big O Table

프로그래밍 2021.08.16

[프로그래밍] VisualStudio 종속성, 어셈블리 오류 해결

해당 게시물은 종속성 오류 해결에 대한 다양한 케이스 중 하나입니다. 종속성 오류 종속성 - 어셈블리에서 참조 오류가 발생하는 경우가 있습니다. 종속성 오류 발생 해결책 : csproj 확장자 파일 확인 해당 프로젝트 폴더에서 csproj확장자 파일을 TXT파일로 확인합니다. 부분에 dll을 있어야 종속성 오류가 해결됩니다. 프로젝트 폴더 바로가기 csproj 파일 TXT파일로 확인 그럼 "..\dlls"의 위치는 ? 정답은 솔루션 파일이 존재하는 폴더입니다. 가령 Solution.sln파일이 존재하는 폴더경로는 C:\Workspace\Project\TestRecipe이라면, 해당 폴더에 dlls라는 이름의 폴더를 생성해주고 해당 폴더에 종속성 오류가 발생하는 dll을 넣어줍니다. 솔루션을 재 실행 후,..

프로그래밍 2021.08.12

[C#] 프로그래밍으로 네트워크 연결 설정/ 연결 끊기

GetAllNetworkInterfaces메서드 현재 네트워크 인터페이스의 구성을 설명하는 개체를 반환합니다. 참조 : https://docs.microsoft.com/ko-kr/dotnet/api/system.net.networkinformation.networkinterface.getallnetworkinterfaces?view=net-5.0 // Get Adapter list NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); var i = 0; Console.WriteLine($"Select Disconnenct Adapter."); foreach (NetworkInterface adapter in adapters) ..

프로그래밍/C# 2021.07.15

VisualStudio 관리자 권한으로 빌드하기

1. 프로젝트 속성창에서 보안 관련 탭을 선택 합니다. 2. ClickOnce 보안 설정 사용을 체크 하여 주고 프로젝트에 app.manifest 파일이 생성 되었는지 확인합니다. 확인이 되었다면 ClickOnce 보안 설정 사용 체크를 해제 합니다. 3. 이제 관리자 권한으로 실행 되도록 app.manifest 를 수정합니다. 4. 에서 "asInvoker" 를 "requireAdministrator" 로 변경합니다. visual studio에서 디버그시 visual studio에서 관리자 권한을 획득한 상태가 아닌경우 획득을 위하여 visual studio가 재실행 됩니다.

프로그래밍 2021.07.15

[WPF] WPF 일주일 만에 배우기 - WPF 데이터 바인딩

4.1 데이터 바인딩 4.1.1 바인딩 xaml의 컨트롤의 속성에 CodeBehind에 있는 변수를 할당할 수 있다. Text 속성은 데이터 객체의 Speed속성 값에 실제로 연결, Speed속성이 TextBox 컨트롤의 Text속성에 초기 항당되면, Text속성의 모든 변경(예를 들어 일부 값은 사용자가 입력)이 데이터 객체의 Speed 속성에 할당될 것이다. Text 속성에 c객체의 Speed속성으로 초기화 아래 바인딩 예제에서 Slider 컨트롤의 값을 ProgressBar, TextBox에서 바인딩합니다. 바인딩 예제 4.1.2 추가속성 바인딩 표현식 내부에 여러 속성을 사용할 수 있다. UpdateSourceTrigger 입력 컨트롤 사용해 소스 속성이 업데이트되는 시기를 지정할 수 있다. ex..

프로그래밍 2021.06.27

[프로그래밍] Thread Pool

Thread Pool Thread를 미리 만들어 놓은 공간입니다. Thread Pool의 크기는 작업 실행을 위해 미리 생성한 스레드 수입니다. 위키에 의하면 "컴퓨터 프로그램에서 동시실행을 위한 소프트웨어 디자인패턴" 이라고 설명 돼 있습니다. 필요성 Thread가 생성될 때 운영체제(OS)가 요청을 받아들여 메모리공간을 확보해주고, 그 메모리를 스레드에게 할당해준다. Thread는 동일한 메모리영역에서 생성되고 관리되지만, 생성/수거에 드는 비용을 무시할 수 없다. 생성/수거 비용 절약을 위해 Thread를 미리 생성해두는 것 입니다. 동작 원리 프로그램(Application)에서 사용자의 요청(Task)를 작업큐(Queue)에 넣습니다. Thread Pool은 작업큐에 들어온 요청을 미리 생성해놓은..

프로그래밍 2021.06.06

[프로그래밍] 동기 처리, 비동기 처리, 병렬 처리

동기 처리, 비동기 처리, 병렬 처리 한개 프로세스 안에서 동시에 여러 개의 일을 하려면 다중 쓰레드(Thread)가 필요합니다. 동시에 여러 개의 일을 한다는 측면에서 비동기와 병렬처리는 맥락을 같이합니다. 동기 처리 : 책을 읽듯이 순차적으로 처리하는 것 입니다. User의 입력이 필요한 경우, User 입력을 받기 전까지는 다음 줄로 넘어가 실행할 수 없는 상태로 컴퓨터는 멈춰있을것이다. 비동기 처리 : 실행되는 타이밍을 다 맞추는 것이 아니라 User 입력을 받는 부분은 별도로 처리한다. 병렬처리 : 병렬 처리란 여러 개의 프로세서를 통해 하나의 프로그램을 처리하는 것을 말합니다. 처리 부하를 분담하여 처리 속도의 향상시킵니다. 참조 https://docs.microsoft.com/ko-kr/do..

프로그래밍 2021.04.18