728x90
반응형

C#/C# 교과서 34

[C# 교과서] B. 팁과 트릭

인텔리센스와 코드 조각 코드 편집기에서 제공하는 기능 중 인텔리센스는 자동으로 코드를 입력하게 도와주고 가이드해줌 비주얼 스튜디오에서 Ctrl + Space를 누르면 명령어 관련 가이드를 받아볼 수 있음 cla를 입혁한 후 Tab을 두 번 누르거나 class를 입력한 후 Tab을 두 번 누르면 자동으로 클래스 코드 작성 인텔리코드란? 인텔리센스 기능에서 가장 많이 사용하는 API는 별표로 표기되는데, 이를 인텔리코드라고 함 자리 표시자 주요 서식 D : 십진수 표시 X : 16진수 표시 C : 통화량 표시 E : 부동소수점(지수) 표시 F : 부동소수점(기본) 표시 G : 부동소수점(E, F와 비슷) 표시 N : 콤마 구분 표시 using System; class PlaceHolderEtc { stati..

C#/C# 교과서 2023.02.11

[C# 교과서] A. 디버거 사용하기

버그 프로그램에서 버그(bug)는 잘못 작성된 프로그램 문제를 의미 소스 코드를 잘못 작성해서 나타나는 컴파일 타임 버그는 비주얼 스튜디오의 컴파일러가 알아서 잡아줌 다만 런타임 버그는 프로그램을 실행할 때만 발생하는 버그이기에 잡기가 매우 어려움 C#의 주요 디버깅 기능 중단점 설정/해제 (F9) : 중단점(브레이크 포인트)은 프로그램의 특정 지점까지만 실행시키고자 할 때 사용. 즉, 중단점이 설정된 곳에서 프로그램 실행이 멈춤. 프로그램을 작성할 때 뜻밖의 에러를 만나면 에러가 발생할 만한 부분을 찾아서 중단점을 설정해 놓고, 중단점 이전에 작성된 변수에 마우스 커서를 올려 해당 변수에 값이 제대로 들어 있는지 확인 한 단계씩 코드 실행 (F11) : C#의 프로그램 코드를 한 줄씩 실행하면서 프로그..

C#/C# 교과서 2023.02.11

[C# 교과서] 62. 모던 C#

패턴 매칭 패턴과 값이 일치하는지 테스트해서 일치한다면 새로운 변수에 대입 코드 : if (shape is Rectangle r) 의미 : 만약 shape 변수 값이 Rectangle 클래스와 패턴이 맞는다면 Rectangle 형식의 r 변수에 저장 using System; namespace PatternMatchingIf { class Shape { } class Rectangle : Shape { public string Name { get; set; } = "사각형"; } class PatternMatchingIf { static void Main() => ShowShape(new Rectangle()); static void ShowShape(Shape shape) { // [1] if 구문을 사..

C#/C# 교과서 2023.02.11

[C# 교과서] 61. 함수와 함수형 프로그래밍 소개하기

함수형 프로그래밍 함수형 프로그래밍은 상태 값을 가지지 않는 함수들을 연속으로 호출해서 사용하는 개발 스타일 메서드 체이닝을 사용하는 LINQ의 확장 메서드들이 함수형 프로그래밍의 전형적인 예 문과 식 C#의 문법은 문(statement)과 식(expression)으로 표현 '문은 여러 줄로 표현하고, 식은 한 줄로 표현할 수 있다' 함수형 프로그래밍에서는 문 대신 식을 사용하면 좋음 문은 파생 작업(부작용)이 발생할 가능성이 높기에 식을 사용하여 결괏값을 바로 가져오는 형태를 권장함 // 문 static string GetResultWithStatement(int score) { string r; if (score >= 60) { r = "합격"; } else { r = "불합격"; } return r..

C#/C# 교과서 2023.02.11

[C# 교과서] 60. 네트워크 프로그래밍 맛보기

C#에서 다루는 데이터는 인메모리, 파일, XML과 JSON을 포함하여 여러 데이터를 인터넷 같은 네트워크를 통해서 주고 받을 수 있음 HttpClient 클래스로 웹 데이터 가져오기 닷넷에서 제공하는 Http 클래스를 사용하면 인터넷에 연결된 네트워크상의 데이터를 가져오거나 전송 가능 // HttpClientDemo 프로젝트에서 실행 using System; using System.Net.Http; using System.Threading.Tasks; class HttpClientDemo { static async Task Main() { //[1] HttpClient 개체 생성 HttpClient httpClient = new HttpClient(); //[2] GetAsync() 메서드 호출 Htt..

C#/C# 교과서 2023.02.11

[C# 교과서] 59. XML과 JSON 맛보기

XElement 클래스를 사용하여 XML 요소를 생성하거나 사용하기 XElement 클래스는 XML 요소를 생성하거나 담을 수 있는 그릇 using System; using System.Linq; using System.Xml.Linq; class XElementDemo { static void Main() { // XML 요소 생성 XElement category = new XElement("Menus", new XElement("Menu", "책"), new XElement("Menu", "강의"), new XElement("Menu", "컴퓨터") ); Console.WirteLine(category); // XML 요소 가공 XElement newCategory = new XElement("Men..

C#/C# 교과서 2023.02.11

[C# 교과서] 58. 스트림과 파일 입출력 맛보기

프로그램 코드에서 작성된 데이터는 목적에 따라 영구적으로 보관해야 할 때가 있음 이 때는 파일이나 데이터베이스에 저장 System.IO 네임스페이스 C#을 사용하여 파일에 대한 입력과 출력을 담당하는 네임스페이스는 System.IO File.Exists() : 지정된 경로에 파일이 있으면 true를 반환, 없으면 false 반환 new DirectoryInfo().Parent.FullName : 지정된 경로의 부모 폴더 값 반환 Path.GetDirectoryName() : 지정한 경로의 디렉토리 값 반환 Path.Combile() : 경로 2개를 합치거나 경로와 파일 이름을 묶어서 반환 Directory.Exists() : 지정된 디렉터리가 있는지 확인 Directory.CreateDirectory()..

C#/C# 교과서 2023.02.10

[C# 교과서] 57. 인메모리 데이터베이스 프로그래밍 맛보기

인메모리 데이터베이스 변수, 배열, 구조체, 클래스 등에 저장되는 데이터를 다루는 기술 프로그램을 실행하고 메모리에 저장된 데이터는 프로그램이 종료되면 자동으로 소멸 메모리에 임시로 저장된 데이터들은 파일 또는 데이터베이스에 저장하여 영구적으로 보관 가능 CRUD 작업하기 Create (입력) Read (출력) 또는 Retrieve (검색) Update (수정) Delete (삭제) 리포지토리 패턴 프로그래밍을 할 때 자주 사용하는 유형을 패턴이라고 함 데이터베이스 프로그래밍에서는 일반적으로 리포지토리 패턴이 가장 많이 사용 모델 클래스 (model class)는 데이터 구조를 나타냄 리포지토리 클래스(repository class)는 데이터에 대한 입력, 출력, 수정, 삭제 등을 담당하는 클래스를 의미..

C#/C# 교과서 2023.02.10

[C# 교과서] 56. 비동기 프로그래밍

C#에서는 async와 await 키워드를 사용하여 아주 쉽게 비동기 프로그램 구현 가능 동기 : 프로그램이 순서대로 실행됨을 의미. 프로그램은 기본적으로 동기로 실행 됨. 비동기 : 메서드 여러 개를 동시에 실행하거나 대기 시점을 변경하여 순서를 재정의할 수 있음 동기는 실행하는 동안 스레드가 차다되는 차단 코드를 나타냄. 비동기는 스레드가 차단되지 않는 비차단 코드를 나타냄. 동기 프로그래밍 비주얼 스튜디오의 디버거 기능을 사용하여 F10을 여러 번 누르면 코드가 호출한 순서대로 실행 동기 프로그램은 지금까지 우리가 사용한 메서드 호출 순서대로 실행되는 것 비동기 프로그래밍 쉽게 말해 한 번에 여러 작업을 수행할 수 있도록 도와주는 기능 파일, 데이터베이스, 네트워크 등에서 데이터를 가져올 때 시간이..

C#/C# 교과서 2023.02.09

[C# 교과서] 55. 스레드

닷넷에서 스레드는 작업자 한 명을 나타냄 다중 스레드 또는 다중 스레딩은 여러 작업자를 두고 동시에 여러 작업을 처리하는 것을 의미 스레드 C#의 메인 메서드 코드는 순차적으로 실행 됨 하지만 메인 메서드에 또 다른 메서드 단위로 프로그램을 작성하고, 이를 스레드 개체로 실행하면 메서드의 실행 순서를 윈도 운영 체제에 맡길 수 있음 그러면 순차적으로 실행되지 않고 반복적으로 여러 메서드를 나누어서 처리 가능 스레드는 이처럼 순차적으로 처리되지 않고, 여러 기능을 동시 다발적으로 실행할 때 사용하는 개념이며, 이를 닷넷에서는 Thread같은 클래스로 제공 프로세스 : 현재 실행 중인 프로그램 스레드 : 운영 체제가 프로세서 시간을 할당하는 기본 단위 스레드는 작업자 한 명 스레드를 현실 세계에 비유하면 '..

C#/C# 교과서 2023.02.08
728x90
반응형