본문 바로가기

ZAION23

[이것이 C#이다]Ch.19 스레드와 태스크 - 1 ## 목차 1) 프로세스와 스레드 1. 스레드 시작하기 2. 스레드 임의로 종료하기 3. 스레드의 일생과 상태 변화 4. 인터럽트 : 스레드를 임의로 종료하는 다른 방법 5. 스레드 간 동기화 #1 프로세스와 스레드 회사 프로그램의 소스 코드를 분석하는 중 스레드에 대한 개념이 빈약하여 소스 코드를 분석하는데 어려움을 느꼈습니다. 그래서 궁금증을 해소하기 위해 스레드에 대해서 먼저 개념을 익혀보겠습니다. 프로세스는 실행 파일이 실행되어 메모리에 적재된 인스턴스입니다. 가령 word.exe가 실행 파일이라면, 이 실행 파일에 담겨 있는 데이터와 코드가 메모리에 적재되어 동작하는 것이 프로세스입니다. 프로세스는 반드시 하나 이상의 스레드로 구성되는데, 스레드는 운영체제가 CPU 시간을 할당하는 기본 단위입니.. 2024. 2. 1.
[이것이 C#이다]Ch.06 메소드로 코드 간추리기 - 1 ## 목차 1) 메소드란? 2) return에 대하여 3) 매개변수에 대하여 4) 참조에 의한 매개변수 전달 5) 메소드의 결과를 참조로 반환하기 6) 출력 전용 매개변수 #1 메소드란? 메소드는 일련의코드를 하나의 이름 아래 묶은 것입니다. 이렇게 묶은 코드는 메소드의 이름을 불러주는 것만으로 실행할 수 있습니다. 이것을 일컬어 '메소드를 호출한다' 고 합니다. class 클래스_이름 { // 한정자 : 메소드의 속성을 수삭하는 한정자를 둘 수 있습니다. // 매개변수_목록 : 메소드에 입력하는 매개변수의 목록입니다. 한정자 반환_형식 메소드_이름(매개변수_목록) { // 실행하려는 코드 1 // 실행하려는 코드 2 // .. // 실행하려는 코드 n // 메소드 결과의 데이터 형식은 메소드의 반환 형.. 2024. 1. 31.
[이것이 C#이다]Ch.05 코드의 흐름 제어하기 - 2 ## 목차 3) 점프문 4) 패턴 매칭 #3 점프문 점프문은 흐름을 끊고 프로그램의 실행 위치를 원하는 곳으로 단숨에 도약시킬 수 있습니다. C#에서 제공하는 점프문에는 다음과 같이 다섯 가지가 있습니다. break continue goto return throw 1. break break문은 현재 실행 중인 반복문이나 switch 문의 실행을 중단하고자 할 때 사용합니다. 반복문이나 switch 문의 중단시키려는 지점에 입력해두면 됩니다. int i = 0;// i를 초기화하는 코드가 실행되고 while (i >= 0)// 루프가 실행되다가 { if (i == 10) breal;// i가 10이 되면 while 문에서 탈출합니다. Console.WriteLine(i++); } Console.WriteL.. 2024. 1. 31.
[이것이 C#이다]Ch.05 코드의 흐름 제어하기 - 1 ## 목차 1) 분기문 2) 반복문 #1 분기문 분기문은 프로그램의 흐름을 조건에 따라 여러 갈래로 나누는 흐름 제어 구문입니다. C#에서는 한 번에 단 하나의 조건만 평가할 수 있는 if문과 한 번에 여러 개의 조건을 평가할 수 있는 switch문을 제공합니다. 1. if, else, else if if문에서 사용하는 조건식은 true 또는 false의 값을 가지는 bool 형식이어야 합니다. 이 조건식이 참인 경우에만 if 문 뒤에 따라오는 코드가 실행됩니다. 거짓이면 아무 일도 일어나지 않습니다. if (조건식) 참인_경우에_실행할_코드; if문에서 조건식이참인 경우에 실해할 코드가 여러 줄인 경우 다음과 같이 중괄호 { 와 } 를 사용해서 코드 블록을 만들어 붙이면 됩니다. if (조건식) { /.. 2024. 1. 30.
[아키텍처] 2-tier/3-tier 개념 타파하기 ## 목차 1) 2-tier 2) 3-tier 3) 2-tier와 3-tier의 비교와 필요성 #1 2-tier 먼저 아키텍처 계층에 대해서 말씀드리겠습니다. 계층(Tier : 컴포넌트들의 물리적인 분리)을 나눈다는 것은 층(Layer : 컴포넌트들의 논리적인 분리)을 세부적으로 나누어 최종적으로 사용자에세 보이기까지 몇단계를 둘것인가를 설정하는 것입니다. 최근 대부분의 웹개발은 3계층으로 구성되어 있습니다. 정말 간단한 웹개발이라면 2계층도 고려하지만 기본적으로 3계층으로 구성하는 것을 추천합니다. 2-tier 아키텍처는 client - server 아키텍처의 가장 기본적인 형태입니다. 클라이언트 사이드에 프레젠테이션/비즈니스 로직을 작성하고, 서버 사이드에는 데이터 관리/데이터베이스가 위치합니다. 즉.. 2024. 1. 30.
[이것이 C#이다]Ch.04 데이터를 가공하는 연산자 ## 목차 8) null 조건부 연산자 9) 비트 연산자 10) 할당 연산자 11) null 병합 연산자 12) 연산자의 우선순위 #8 null 조건부 연산자 null 조건부 연산자 ?.는C# 6.0에 도입되었습니다. ?. 가 하는 일은 객체의 멤버에 접근하기 전에 해당 객체가 null인지 검사하여 그결과가 참이면 그결과로 null을 반환하고, 그렇지 않은 경우에는 . 뒤에 지정된 멤버를 반환합니다. == 연산자를 이용한 코드 ?. 연산자를 이용한 코드 class Doo { public int member; } Foo foo = null; int? bar; if (foo == null) bar = null; else bar = foo.member; class Foo { public int memeber;.. 2024. 1. 29.