7번째 스터디
·
💻 Programming Language/C#
C# 을 사용하는 이유!!! 소프트웨어 신뢰성 테스팅을 하기위해 소프트웨어 신뢰성 테스팅에 있어 타 언어들도 사용할 수 있지만 C#에 비해 사용하기 어렵거나 복잡함 Window 기반 애플리케이션을 제작할때 C++, C#, Java 등을 사용하는데 신뢰성시험 면에서 C#을 사용하는게 이점이 있다. 무엇보다도 윈도우 애플리케이션 개발언어로는 최신! 추가적으로 생산성이 좋다는 측면도 있다. UI를 예쁘게 해주는 툴도 있기 때문 동기화에 있어 다른 메소드에도 lock 추가! Output 매개변수가 있는 스레드 객체 생성해보기 Output 병렬처리 vs 분산처리 병렬처리 하나의 작업(work)를 나눠서 처리한다. Divide & Merge 각각의 스레드가 처리하는 로직이 같은경우에 사용 현재 시스템에서는 거의 사..
6번째 스터디
·
💻 Programming Language/C#
과제 [구현내용] 입력 Thread 는 작업 순서와 작업 내용을 처리 Thread로 전달하고 처리 Thread는 작업 순서를 기준으로 작업 내용을 정리하여 출력 조건 입력 Thread 2개 Thread 미리 정의된 파일 을 읽어서 처리 Thread로 전달 파일을 다 읽으면 Thread 종료 처리 Thread 1개 Thread 입력 Thread와 공통적으로 사용할 List 생성 처음 작업이 입력될 때 까지 처리 작업을 진행하지 않음(처음 작업 번호 0) 마지막 작업이 입력되면 Thread 종료 (9번 작업이 입력되면 종료) 구현 코드 using System; using System.IO; using System.Collections.Generic; using System.Threading.Tasks; na..
5번째 스터디
·
💻 Programming Language/C#
이벤트 데이터란?!!? public delegate void EventHandler(object sender, EventArgs e); Public delegate void EventHandler(object sender, TEventArgs e); public delegate void EventHandler(object sender, EventArgs e); 이벤트 데이터가 없는 이벤트를 처리할 메서드를 나타냄 Public delegate void EventHandler(object sender, TEventArgs e); 이벤트가 데이터를 제공할 때 이벤트를 처리할 메서드를 나타냄 이벤트 데이터를 설명하기 위해 두번째 인자로 있는 e 에 대해서 알아보면 1 번 메소드의 경우 두번째 e 객체는 이벤트의..
4번째 스터디 이후 정리
·
💻 Programming Language/C#
catch 순서 뒤죽박죽해서 확인 class Program { class A { public int field; public static int getField(A obj) { return obj.field; } } static void Main(string[] args) { try { // DivideByZeroException int a = 10; int b = 0; Console.WriteLine(a / b); // NullReferenceException A obj = null; Console.WriteLine(A.getField(obj)); // IndexOutOfRangeException int[] arr = { 1, 2, 3 }; for (int i = 0; i < 4; i++) { Cons..
3번째 스터디 이후 정리
·
💻 Programming Language/C#
형변환과 관련하여 ... as 연산자는 참조형에만 사용이 가능하고 기본 값형식에는 사용이 불가능하다. 기본 값 형식에는 int, byte, char, long ... 기본 값 형식에 nullable => ? 키워드는 선언문에 들어가는 키워드이기에 사용가능 int => value 타입 INTEGER => reference 타입 string 은 기본 참조형이라고 문서에 나오는데 왜 안될까?? string은 참조 형식이지만 string는 참조가 아니라 string 개체의 값을 비교하도록 정의된다 String 과 string 의 차이는 없다. 다만 string이 System.String 클래스를 상속받아 구성되었다. 보통 string 을 사용할 것을 권장하긴한다. string a = "hello"; string..
Binary Search (이진탐색)
·
📚 Computer Science/Algorithms
정렬된 리스트의 범위를 반씩 나누어 탐색을 진행하는 방법 정렬된 리스트에서만 사용가능 속도가 빠름 상황 속도 최적 O(1) 보통 O(logn) 최악 O(logn) 동작 배열의 중간값 설정 중간값과 검색값 비교 검색값과 같은 경우 - 탐색완료 검색값이 중간값보다 큰 경우 - low를 중간값+1 로 조정 검색값이 중간값보다 작은 경우 - high를 중간값-1 로 조정 low가 high보다 작거나 같은경우까지 반복(값을 찾은 경우가 아니라면) 이진탐색 구현 def binarySearch(data, num): low = 0 high = len(data) - 1 while(low data[mid]: low = mid + 1 else : high = mid - 1 return False 이진탐색 사용 예시 코드 n..
스터디) 두번째 스터디 피드백 및 질문 정리내용
·
💻 Programming Language/C#
sealed 키워드를 메소드에 사용! 부모클래스에서 오작동을 하게끔 하는 자원을 자식클래스에서 건드리면 안되는 경우 메소드에 sealed 한정자를 사용해서 제한할 수 있다. class Parent { public int num; public int count; public Parent(int num) { this.num = num; this.count = 0; Console.WriteLine("Parent 생성자"); } public virtual void addCount() { } public void showInfo() { Console.WriteLine("Num : {0}, Count : {1}", this.num, this.count); } } class Counter : Parent { publ..