프로그래밍 관련
C# 강좌 10편. 클래스(Class) [최근 수정 2017.11.26]
C# 강좌 10편. 클래스(Class) [최근 수정 2017.11.26]
2018.01.121. 객체(Object) 이번 강좌에서는 강력한 기능을 제공하는 클래스에 대해서 배우기 전에, 객체 지향 프로그래밍(Object Oriented Programming, OOP)에 대해 알고 넘어가야 하기에 객체 지향 프로그래밍이 도대체 무엇인지에 대해서 설명을 해드리도록 하겠습니다. 우리가 알고있듯 C#은 객체 지향 언어입니다. C#에서의 객체(Object)는 핵심 중에 핵심이라 말할 수 있죠. 오로지 객체만을 다루는 책이 있을정도로 객체를 완벽히 이해하기에는 많은 어려움이 있습니다. 우리 주위에서 객체는 쉽게 찾아볼 수 있습니다. 눈에 보이는 모든 것이 객체가 될 수 있습니다. 지금 앞에 보이는 모니터, 마우스, 키보드, 프린터, 달력, 가방, 자동차 등과 같이 개념상으로 존재하는 것은 모두가 객체가 ..
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)를 하나의 단..
자바스크립트 강좌 1편. 시작
자바스크립트 강좌 1편. 시작
2016.05.091. 자바스크립트 소개 1995년, 넷스케이프 사의 브랜든 아이히(Brendan Eich)가 라이브 스크립트(live script) 언어를 개발하기 시작합니다. 그 후 썬 마이크로시스템즈 사와 제휴를 맺으며 그 당시 유명했던 자바의 이름을 본따 '자바스크립트'로 변경되어 다시 개발이 시작됩니다. 그러자 마이크로소프트 사에서 이에 대항하기 위해 VB 스크립트를 발표하고 그 후에 자바스크립트와 비슷한 J스크립트를 발표하게 됩니다. (익스플로러 3.0에 Jscript 탑재) 그러자 넷스케이프 사에서 1996년, 표준화를 위해 자바스크립트의 기술 규격을 ECMA 국제회의에 제출하고 1997년에 ECMA 스크립트의 첫번째 버전인 ECMA-262가 발표됩니다. 자바스크립트와 J스크립트 등 ECMA 스크립트와의 호환..
가독성에 관해 1편. 코드는 이해하기 쉬워야 한다.
가독성에 관해 1편. 코드는 이해하기 쉬워야 한다.
2014.02.26[가독성에 관해서] [이 글은 저자인 더스틴 보즈웰, 트레버 파우커가 작성한 '읽기 좋은 코드가 좋은 코드다'를 토대로 쓰여졌습니다.] 코드를 작성할 때 가장 중요한 지침을 제공하는 원리! 코드는 이해하기 쉬워야 한다 혹시 자신이 작성한 소스 코드를 1~2달 뒤에 보게되니 이게 어떠한 역할을 하는 코드 부분인지 몰랐던 경험이 있으신가요? 코드 구조가 복잡해지게 되면서 다른 사람뿐만 아니라 자기 자신도 못알아보게 되는 상황이 있었던 분들이 있을 것이라 생각합니다. 코드 구조가 복잡하고 코드가 함축되어 있거나, 쓸데없는 코드가 많아지다 보면 '가독성'이 떨어지게 됩니다. 여기서 가독성이란 얼마나 쉽게 읽을 수 있는지 나타내는 정도이며, 이 강좌는 가독성을 중심으로 하여 내용을 다룰 예정입니다. 먼저 코드를 ..