.NET FRAMEWORK 123

#014_닷넷(.NET)_.Net Framework 기본 - foreach & switch

안녕하세요 삽잡이입니다. 이번시간에는 forech문과 switch문에 대해서 알아보려고합니다. foreach 문은 '배열의 크기를 확인할 필요 없이 배열 내의 모든 항목을 반복해서 처리하는 기능'을 제공합니다. 즉, 모든 원소를 돌리려고 사용하는 반복문이라는 것입니다. foreach문이나 굳이 그렇게 어렵게 차이가 나지 않습니다...arr에 들어있는 내용들을 모두다 하나씩 가져오라는 뜻입니다...뭐... each는 '각각', '모두'라는 뜻이기 때문이지요... foreach문을 사용할 때에는 '처음부터 끝'까지 돌립니다.하지만, 인덱스 접근을 하기 위해서는 변수를 따로 만들어줘야하는 불편함이 있습니다.따라서 인덱스 접근을 위해서는 기존 for문이 더 편할 수 있습니다. switch 문은 기존 switch..

#013_닷넷(.NET)_.Net Framework 기본 - var & LINQ

안녕하세요 삽잡이입니다. 이번 시간에는 var와 LINQ라는 C# 기능에 대해서 알아보고자합니다. var는 임시적으로 타입 변환을 변환해주는 기능을 가지고 있습니다.즉, '범용적인 변수의 형식'을 var라고 할 수 있다 이겁니다. 그렇다면 var라는 형식이 있는 것인가요?사실은 컴파일러에의해 '오른쪽 타입을 보고 왼쪽 타입을 결정'하는 것입니다. 만약, 왼쪽 타입을 알지 못할 때가 있습니다.그렇다면 결국 오른쪽 타입을 알 수 없다는 것이지요...이때 var를 통해 컴파일러가 알아서 만들어주는 것입니다. 그렇다고 var가 편하다고 계속 쓰면 안됩니다.우선적으로 명확성이 떨어지고, var는 '지역변수'로만 사용이 가능하기 때문입니다. C#에는 미니 언어인 LINQ를 사용할 수 있습니다.이 미니 언어인 'LI..

#012_닷넷(.NET)_.Net Framework 기본 - 문자열(2) & 가비지 컬렉터

안녕하세요 삽잡이입니다.이번 시간에는 문자열에 대해서 조금 더 알아보는 시간을 가져보려고합니다. 문자열에서 주의해야할 점은 바로 불변성입니다. 문자열에 기본적인 연산자는 사실 중복정의 되있습니다.즉, 대괄호 중복 정의가 이미 되있다는 것입니다. 하지만,C#에서는 읽기만 가능하고 쓰기는 불가능합니다. 원본 문자열은 바뀌지 않습니다. 절대로 말입니다...문자열을 변환하는 함수를 통해 변환이 가능하긴 합니다... 그런데 변환을 한다고 원본이 변환이 되는 것이 아닙니다.변환이 된 복사본이 생성될 뿐이지요...만약 원본을 바꾸고 싶다면 변환한 복사본을 다시 넣는 방법이 있습니다. 닷넷은 메모리 영역을 딱! 두 가지로 봅니다.바로 Stack과 Heap입니다. 참조자는 모두 stack 영역에 만들어집니다.그리고 이 ..

#011_닷넷(.NET)_.Net Framework 기본 -Getter, Setter

안녕하세요 삽잡이입니다. 이번시간에는 Getter와 Setter에 대해서 알아보려고합니다. 우선, C#언어로 구현한 예제 프로그램 하나를 구경하시고 오겠습니다... Length는 '속성'이라고 부릅니다.이건 객체지향에서 말하는 문법과 다른 문법입니다...여기서 '속성'은 특수한 메서드입니다. 객체지향에서 속성이란 개념은 지난시간에 알아봤었지요... args.Length는 바로 Getter와 Setter와 연관이 있습니다. 객체 지향에서는 객체가 당연하게 있습니다.그런데 이 객체의 상태를 '읽고', '쓰는' 인터페이스가 필요할 것입니다.그 인터페이스의 애칭이 읽는 인터페이스의 경우 'Getter'쓰는 인터페이스의 경우 'Setter'라고 부르는 것입니다. 즉, 상태를 읽을 수 있게 하는 놈을 Getter,..

#010_닷넷(.NET)_.Net Framework 기본 - 객체지향 및 C# 용어 정리

안녕하세요 삽잡이입니다. 이번 시간에는 객체 지향과 C#에서 부르는 속성 및 기능에 대한 용어를 살펴보고자합니다. 객체 지향은 '속성'과 '기능'으로 나뉘어집니다.이 속성은 다른 말로는 '특성'이라고도 부르지요...property, attribute로 부터 번역되어 온 뜻입니다. 기능은 function으로 부터 왔지요... 메소드도 method로부터 왔습니다...다 똑같은 말입니다... 객체 지향에서는 말이지요... 속성, 특성을 C++에서는 멤버, 데이터가 되고클래스로부터는 변수가 되고 기능, 메소드를 멤버 함수라고 부르지요... 메소드라는 단어 자체가 '기능을 하는 방법'을 의미합니다.즉, 뭔가 해결하는 방법을 의미하는 것입니다.이 기능들을 명령들이라고 부릅니다... 또한 객체지향에서는 속성, 특성을..

#009_닷넷(.NET)_.Net Framework 기본 - 배열

안녕하세요 삽잡이입니다. 이번 시간에는 배열에 대해서 알아보도록 하겠습니다. 배열은 int[], string[], Point[], Test[] 등등 만들 수 있습니다.그리고 'int[] iarr = new int[5];' 이런식으로 구현을 하지요...여기서 iarr은 '참조자', '참조 변수'라고 부릅니다.다른 곳에서는 일반적으로 객체라고 부르지만 정확하게는'new int[5]'가 객체입니다. C#이나 닷넷의 배열은int[]와 같은 형태를 클래스로 부릅니다.즉, int[]는 int형 array 클래스를 말하는 것입니다. iarr은 클래스의 객체라고 부르지만, 정확히는 클래스 객체의 참조 변수입니다.즉, 참조라고 부르는 것입니다. 간단하게 포인터와 같다고 생각하면 됩니다.사실 진짜로 내부에 구현이 되있습니..

#008_닷넷(.NET)_.Net Framework 기본 - 문자열과 내장 타입간 변환

안녕하세요 삽잡이입니다. 이번시간에는 간략하게 문자열과 데이터 타입간에 변환하는 과정에 대해서 알아보려고합니다. C#의 모든 데이터는 객체입니다. 위의 예제코드를 살펴보자면,10은 단지 값으로 표현되는 int형 객체임을 나타내는 것입니다.그리고 이 것은 우리가 인식하지 않고 사용해도 됩니다.왜냐하면, 기존에 우리가 사용하던 방식과 완벽하게 동일한 사용법을 제공해주기 때문입니다. 아무튼... C#에서는 모든 기본 데이터를 객체로 나타냄을 기억하시길 바랍니다. 문자를 정수로는 변환할 수 있으나,정수를 문자로 변환을 할 수 는 없습니다... C#에서는 문자나 정수나 모두 전혀 다른 형식입니다.단지 이 형식들을 서로간에 변환을 해주는 것일 뿐입니다.기존의 C/C++은 정수나 문자나 같이 취급을 했는데C#에서는 ..

#007_닷넷(.NET)_.Net Framework 기본 -static & Main & 설비 영역 & APP 영역

안녕하세요 삽잡이입니다. 이번 시간에는 정적, static에 대해서그리고 각 영역에 따른 올바른 코드 구현의 필요성(?) 알아보려고합니다. 자... 여러분은 정적 메서드와 인스턴스 메서드를 구분하실 수 있으십니까?인스턴스 메서드는 객체가 있어야 호출이 가능합니다.당연한 소리입니다... 객체 것이기 때문이지요... 정적 메서드는 '객체 없이 호출하는' , '객체 없이 클래스에서 호출하는' 의 뜻을 가지고 있습니다.정적 메서드는 객체와 상관이 없습니다. 클래스의 메서드이기 때문입니다.다시 말하자면, 객체 없이도 호출이 가능한 클래스의 메소드가 바로 정적 메서드라는 것입니다.따라서 static을 통해 구분해줘야합니다. 그런데 말입니다... Main 함수는 정적 메소드입니다.왜냐하면 Main 함수는 객체 없이도..

#006_닷넷(.NET)_.Net Framework 기본 - namespace & 타입 & 가시성

안녕하세요 삽잡이입니다. 이번 시간에는 객체지향에 있어서 namespace, type 등 기초적인 부분들 대해서 알아보는 시간을 가져보려고합니다. 객체지향 언어들에서는모든 클래스 안에 형식이 들어가있고, 이 안에는 메소드들이 들어가있습니다.이 메서드를 만들 때에는 반드시 주의해야할 사항이 있습니다. 메서드를 namespace 밖에다가 만들면 안됩니다.이 namespace 밖에는 메서드 뿐만 아니라 어떠한 형식도 올 수 없습니다.모든 형식은 namespace 안에 들어가 있어야합니다.모든 메소드는 형식 내에 있어야합니다.형식 밖에 메서드를 만들게 되면 이는 전역 메서드가 되는데닷넷이나 Java는 존재하지 않습니다.따라서 최소한 형식 안에 메서드를 만들어야되는 사실을 기억하시길 바랍니다. 제가 하고 싶은 말..

#005_닷넷(.NET)_.Net Framework 기본 - 문자열 (1)

안녕하세요 삽잡이입니다. 이번 시간에는 가볍게 문자열에 대해서 알아보려고합니다.물론, 그 외에 기초적인 부분들도 상황에 맞게 알아보겠습니다. 시작하겠습니다.. 푸하하 C#에서는 Namespace 다음 .(점)으로 구분하고, 타입을 쓰고 또 .(점)으로 구분하고 접근하여 사용합니다. 예를 들어 간단한 정적 출력 메소드를 확인해보도록 하겠습니다. WriteLine 메소드는 문자열을 출력하는 메소드입니다.이와 반대로 ReadLine 메소드가 있지요...기존 C/C++ 에서 알아온 함수들과 별 차이가 없습니다. Console이라는 타입에서는 모두 '문자열'을 사용합니다.사실 C/C++도 마찬가지였습니다.원래, 입력을 받으면 문자열로 우선 받고 %d, %f등에 의해서 변환을 한 것이었습니다.참고로 C#에서는 Ja..