728x90
반응형

C# 69

[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

[C# 교과서] 53. 테스트 프로젝트와 단위 테스트

자동 테스트 에러를 쉽게 찾고 수정 가능 직접 하나씩 테스트하는 것보다 아주 빠르게 많은 수의 테스트를 진행 작성한 코드 검증 MSTest MSTest : 마이크로소프트 공식 단위 테스트 프로젝트 NUnit : JUnit 영향을 받은 오픈 소스 단위 테스트 프로젝트 xUnit : 닷넷 전용 오픈 소스 단위 테스트 프로젝트 Assert 클래스의 주요 API Assert.IsTrue() : 매개변수 값이 true이면 테스트 통과 Assert.IsNull() : 매개변수 값이 null이면 테스트 통과 Assert.AreEqual() : 매개변수 값 2개가 같으면 테스트 통과 Assert.AreNotEqual() : 매개변수 값 2개가 다르면 테스트 통과

C#/C# 교과서 2023.02.08

[C# 교과서] 52. 클래스 라이브러리와 닷넷 스탠다드

클래스 라이브러리 프로젝트 윈도 환경에서 콘솔 앱 프로그램으로 컴파일 된 결과물은 일반적으로 *.exe 파일 하지만 클래스 라이브러리 프로젝트를 사용하면 컴파일된 결과물이 *.dll 파일 DLL 파일을 동적 링크 라이브러리(dynamic link library)라고 함 단독으로 실행하지 않고 다른 프로그램에서 참조해 사용할 수 있는 구조 어셈블리 DLL 파일은 어셈블리로 표현 어셈블리는 프로그래밍 학습용 자동차 세계에서는 교체 가능한 부품들을 의미 완성된 조각 하나의 기능이 모두 어셈블리 C#에서 컴파일된 소스 코드의 결과를 닷넷 어셈블리(.Net Assembly)라고 함

C#/C# 교과서 2023.02.08

[C#] 백준 알고리즘 4344번, 평균은 넘겠지

while using System; namespace codingstudy { class Program { static void Main() { int c = int.Parse(Console.ReadLine()); // 테스트 케이스 int[] scores; double avg; int cnt; while (c --> 0) { // 첫번째 요소를 제외한 나머지 문자열들을 배열로 추출 scores = Array.ConvertAll(Console.ReadLine().Split()[1..],int.Parse); // Average() 메서드로 배열의 평균 구하기 avg = scores.Average(); // Count() 메서드로 배열의 건수 구하기 // 람다식으로 scores배열에서 개별 점수가 평균보다 ..

C#/C# (백준) 2023.02.07

[C# 교과서] 50~51. 동적형식, 튜플

동적형식 dynamic 키워드 C#에서는 dynamic 키워드를 사용하는 동적 형식을 제공 컴파일 타임에 형식이 지정되는 프로그램은 편함. 바로 int, string 형으로 변수를 선언한 후 해당 값을 사용하면 됨 런타임 형식이 지정되는 프로그램이 필요할 수 있음. 이때는 dynamiic 키워드를 사용하여 변수를 선언 dynamic 키워드는 데이터 형식 자리에 오지만, dynamic은 데이터 형식이 아님 var 키워드와 비슷하나 컴파일할 때 데이터 형식을 결정하는 var와 달리, dynamic 키워드는 런타임할 때 데이터 형식을 결정 모든 데이터 형식을 선언하는 자리에는 dynamic 키워드를 사용 가능 동적 형식은 다른 동적 언어와 통신에 유용 유일한 단점은 비주얼 스튜디오 인텔리센스의 도움을 받을 수..

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