프로그래밍 관련/C#
C# 강좌 9편. 배열(Array) [최근 수정 2017.11.26]
C# 강좌 9편. 배열(Array) [최근 수정 2017.11.26]
2018.01.121. 배열(Array)배열이란, 동일한 타입의 변수를 모아놓은 데이터 집합이라고 말할 수 있습니다. 예를 들어서, 우리가 각 반 학생들의 한 달 독서량을 변수에 담는다고 가정하면 아래와 같이 변수를 선언해야 합니다. ... int reading_1 = 4; int reading_2 = 9; int reading_3 = 1; int reading_4 = 0; int reading_5 = 21; int reading_6 = 12; ...보기만 해도 비효율적이고, 만약 반에 학생이 30명 정도가 있다면 비슷한 성격의 변수를 똑같이 30번 선언해야 하며, 전체 학생의 독서량을 사용자에게 제공하려고 변수에 접근하여 값을 얻어올 때도 상당히 불편합니다. 여기서, 배열을 사용하면 이 두 문제를 한 번에 잡을 수 있으..
C# 강좌 8편. 메소드(Method) [최근 수정 2017.11.10]
C# 강좌 8편. 메소드(Method) [최근 수정 2017.11.10]
2018.01.121. 메소드(Method)이번 강좌에서는 메소드가 무엇인지, 메소드가 어떠한 기능을 하는지, 또 어떻게 쓰이는지 알아보도록 하겠습니다. C#에서의 메소드(Method)는, C언어와 C++의 함수(Function)와 비슷한 기능을 합니다. 메소드를 간단히 나타내자면, 이어지는 코드들을 묶어놓은 코드 블록입니다. 예를 들어서, 아래는 제곱 후 결과물을 출력하는 기능을 가진 메소드입니다. ... static void square(int a) { Console.WriteLine("{0}*{1}={2}", a, a, a*a); } ...위 코드는, square라는 녀석에게 값을 넘겨주고, 임시로 a라는 변수에 값을 기억시킵니다. 그리고 이 a 변수를 가지고 제곱하여 출력하는 코드입니다. 대충 메소드를 어떻게 정의..
C# 강좌 7편. 무한 루프, 제어문(continue, break, goto) [최근 수정 2017.11.06]
C# 강좌 7편. 무한 루프, 제어문(continue, break, goto) [최근 수정 2017.11.06]
2018.01.121. 무한 루프(infinite loop) 전 강좌에서 말했었듯이, 무한 루프란 종료문을 만나지 못하고 끝없이 동작하는 것을 의미합니다. 개발자의 예상치 못한 실수로 중간에 무한 루프가 발생하면, 반복문 내의 코드가 계속해서 실행되므로 자칫하면 비정상적으로 프로그램이 종료될 수 있습니다. 그런데, 이 무한 루프가 단점만 있는 것이 아니라 장점도 존재합니다. 예를 들어, 사용자에게 계속 입력받으며 루프를 돌다가, 특정 문자가 입력되면 루프를 종료하는 것처럼 계속 반복되다가 특정한 조건을 만족하면 빠져나오게 할 수도 있습니다. 아래는 무한 루프의 예입니다... while (true) { // 항상 참이므로 무한 루프에 빠진다. // 실행될 코드 } ..위의 예를 보시면, 조건식에 참(true)이 오므로, 항..
C# 강좌 6편. 반복문(while, do, for, foreach) [최근 수정 2017.11.10]
C# 강좌 6편. 반복문(while, do, for, foreach) [최근 수정 2017.11.10]
2018.01.121. while(참일때 동안 반복~) 오늘은 반복문에 대해서 알아보도록 할 텐데, 여기서 반복문이란 말 그대로 반복에서 쓰이는, 특정 조건을 만족할 때 까지 계속 반복하여 실행하는 문장입니다. 우선은 while문부터 알아보도록 하겠습니다. 아래는 while문의 기본 형태입니다. while (조건식) { // 반복 실행될 코드 }위와 같은 형태에서 조건식은 if문과 마찬가지로 true 또는 false가 반환되어야 합니다. while문의 특징은 조건식이 참일 때 동안 계속해서 반복하여 코드를 실행합니다. 만약에 반복하다 조건식이 거짓이 되면 루프를 빠져나옵니다. (여기서 루프란 프로그램의 실행 흐름이 고리처럼 이어지는 부분을 말합니다. 즉, 반복되는 부분을 말함) 그러나 계속 조건식이 참이라면 루프를 빠져나..
C# 강좌 5편. 조건문(if, else, switch) [최근 수정 2017.11.10]
C# 강좌 5편. 조건문(if, else, switch) [최근 수정 2017.11.10]
2018.01.121. if~else문 (만약에~, 그렇지 않으면~) 오늘은 조건문에 대해서 알아보도록 하겠습니다. 여기서 조건이란 사전적 의미 그대로 '어떤 일을 이루게 하거나 이루지 못하게 하기 위하여 갖추어야 할 상태나 요소'라는 뜻을 지니고 있습니다. 프로그래밍에서 프로그램 흐름을 조건에 따라 실행시키는 게 바로 우리가 배울 '조건문'입니다. 우선 if문 부터 배워보도록 하겠습니다. 아래는 if문의 기본 구성입니다. if (조건식) { // 조건이 참일 경우 실행될 문장 }이 예제의 조건식에서 true 또는 false를 반환하는 논리 연산자나 관계 연산자가 자주 등장합니다. 조건식에 올 수 있는 건 true 또는 false의 값을 가지는 bool 형식이어야 합니다. 예를 들어, 아래의 조건을 한번 살펴봅시다. if..
C# 강좌 4편. 연산자(Operators) [최근 수정 2017.10.29]
C# 강좌 4편. 연산자(Operators) [최근 수정 2017.10.29]
2018.01.121. 연산자(Operators)C#에선 산술 연산자, 증감 연산자, 조건 연산자, 관계 연산자, 논리 연산자 등 여러 가지의 연산자를 제공합니다. 오늘은 아래 표에 정리된 연산자들에 대해서 배워보도록 하겠습니다.분류 연산자 예 수식 연산자 +, -, *, /, % a = b + c; 증감 연산자 ++, -- a++; 할당 연산자 =, +=, -=, *=, /=, %= a += b + c; 논리 연산자 &&, ||, ! a && b 관계 연산자 , ==, !=, >=, b 비트 연산자 &, |, ^ a ^ b 시프트 연산자 >>, 2 2. 수식 연산자(+, -, *, /, %)수식 연산자에는 덧셈, 뺄셈, 곱셈, 나눗셈, 그리고 나눗셈을 한 뒤의 나머지를 구하는 연산자들이 있습니다. 아래는 그 연산자들을 ..
C# 강좌 3편. 변수, 데이터 형식, 상수 [최근 수정 2017.10.29]
C# 강좌 3편. 변수, 데이터 형식, 상수 [최근 수정 2017.10.29]
2018.01.121. 변수(Variable) 변수(variable)란 무엇일까요? 이미 익히 들어보신 분도 계실 거라 생각합니다. 변수는 쉽게 말하면 값을 담아 두는 상자와 같습니다. 변수는 하나의 데이터 값을 가질 수 있으며, 한번 정해진 값은 고정되어 있는 게 아니라 계속해서 변할 수 있습니다. 마치 수학의 변수와 비슷하죠! 변수는 값을 담아 두는 상자와 같다 또한, 이 변수라는 녀석은 담기는 음식에 따라 그릇이 달라지듯 담기는 데이터에 따라 변수의 자료형(data type)이 결정됩니다. 예를 들어, 문자는 문자를 담을 수 있는 char 자료형이, 정수는 정수를 담을 수 있는 int라는 자료형 등과 같이 말이죠. 그럼 우리는 어떻게 해서 이러한 변수를 만들 수 있을까요? 아래와 같이 자료형과 변수명을 가지고 변수를..
C# 강좌 2편. Hello, world! [최근 수정 2017.11.27]
C# 강좌 2편. Hello, world! [최근 수정 2017.11.27]
2018.01.121. 프로젝트 만들기 자, 이제 프로젝트를 한번 만들어봅시다. 우선 Microsoft Visual Studio를 실행시킨 후에, 파일(F) -> 새로 만들기(N) -> 프로젝트(P)...를 누르거나 Ctrl+Shift+N을 눌러 '새 프로젝트' 창을 엽니다. .여기서 '콘솔 앱(.NET Framework)'를 선택하고 확인을 누릅시다. 우리가 콘솔 앱 프로젝트에서 배우는 내용들은 Windows Forms이나 WPF의 기초가 되므로 여기서 확실하게 배우고 넘어가야 합니다. 아래의 확인 버튼을 눌러 프로젝트를 만들어 봅시다. 그러면 아래와 같이 코드 창이 보이고, 솔루션 탐색기에서 우리가 만든 프로젝트를 확인할 수 있을 것입니다. 그럼, 이제부터 C#의 기본적인 코드를 보면서 언어에 대한 감을 잡도록 합시다..
C# 강좌 1편. 시작
C# 강좌 1편. 시작
2018.01.121. 시작 C#란, C++의 연산력(computing power)과 Visual Basic의 편의성(convenience)을 결합하기 위한 목적으로 마이크로소프트사에서 개발한 객체지향 프로그래밍 언어입니다. C++가 기반이며, 자바랑 비슷한 특징을 지니고 있습니다. C#은 넷 프레임워크(.NET Framework)에 최적화 되었으며, 생산성이 높습니다. 현재 최신 버전은 .NET Framework 4.7.1 입니다. ● 참고: 텀즈(terms), 지식 백과 여기서 객체지향 프로그래밍 언어란, 상속(inheritance), 동적 바인딩(dynamic binding), 자료 추상화(data abstraction), 다형 개념(polymorphism) 같은 특성을 가지고 있으며 객체(object)를 하나의 단..
C# 고급 2편. 링크(LINQ)
C# 고급 2편. 링크(LINQ)
2013.07.15링크(LINQ) LINQ라고 들어보셨나요? 여기서 LINQ는 Language-Integrated Query의 약자로, 이는 통합된 질의 언어를 말합니다. 여기서 질의의 사전적 정의는 "의심나거나 모르는 점을 물음"이며, 이 정의 그대로 질의는 무엇에 대해 물어본다는 것입니다. 좀 더 자세히 말한다면, LINQ를 통해 컬렉션 형태를 띄는 모든 데이터에 질의를 할 수 있으며, 이 강력한 기능을 통해 복잡한 구문을 좀 더 간단하게 필터링하거나 정렬할 수 있다는 등의 특징을 지니고 있습니다. 어디 한번, LINQ가 어떤 강력한 기능을 지니고 있는지 천천히 살펴보도록 합시다. List intList = new List(); int[] numbers = { 1, 3, 4, 6, 5, 9, 8, 12, 15, 18,..
C# 고급 1편. 레지스트리(Registry)
C# 고급 1편. 레지스트리(Registry)
2012.11.151. 레지스트리(Registry) 이번 강좌에서 다루게 될 내용은, C#에서 제공하는 레지스트리 클래스를 이용한 레지스트리 읽기, 레지스트리 쓰기, 레지스트리 관리에 대해 간단히 알아보려고 합니다. 우선 레지스트리 클래스를 이용하려면 Microsoft.Win32 네임 스페이스를 사용하여야 합니다. using Microsoft.Win32; 그리고 아래 멤버들은, 오늘 우리가 배우게될 RegistryKey 클래스의 멤버들입니다. 멤버 메서드 설명 CreateSubKey 새 하위 키를 만들거나 기존 하위 키를 엽니다. OpenSubKey 지정된 하위 키를 검색합니다. DeleteSubKey 지정된 하위 키를 삭제합니다. DeleteSubKeyTree 하위 키와 자식 하위 키를 재귀적으로 삭제합니다. GetSu..
C# 강좌 22편. 파일 입출력(File Input/Output)
C# 강좌 22편. 파일 입출력(File Input/Output)
2012.10.201. 파일 입출력(File Input/Output) 이번에는 파일(File)을 다루는 클래스와 메소드들을 살펴보려고 합니다. 이 파일의 사전적 의미로는 '하나의 단위로서 처리되는 서로 관련 있는 레코드의 집합'라는 의미를 가지고 있습니다. System.IO 네임스페이스를 살펴보면 파일을 읽고 쓸 수 있는 클래스가 있는데, 오늘 배우게 될 클래스를 아래에 정리해두었습니다. 클래스 설명 File 파일에 대한 생성, 복사, 삭제, 이동 및 열기를 위한 정적 메소드를 제공 FileInfo 파일에 대한 생성, 복사, 삭제, 이동 및 열기를 위한 속성 및 인스턴스 메소드를 제공 FileStream 파일에 대한 스트림을 제공하여 동기 및 비동기 읽기/쓰기 작업을 모두 지원 StreamReader 문자열에서 읽어오는 ..