2019. 1. 25. 09:04
using System;

namespace A
{
    class B
    {
           static void Main()
           {
                   System.Console.WriteLine("hello, C# this is my First C# programing Code");
           }
    }
}
 
위의 코드를 본다면 어색한 분들도 계실것이고, 익숙하신분들도 계실것이고,
뭔 암호인지 하시는분들 제 각각 다른 생각이 드실겁니다.
위의 예제코드는 매우 간단하면서도 많은것을 담고 있기 때문에, 그냥 휭하니 넘기시면
차후에 C#의 기본에 ... 프로그래밍 자체의 기본기에 약점이 생길것입니다.
 
우선은 네임스페이스가 뭔지 한번 알아봐야 겠습니다.
(컴파일러에 대한 설명에 다음장에서 하겠습니다)
 
네임스페이스(namespace) 말그대로 이름공간입니다. 직역그대로이죠
학교 한 반에 김철수라는 학생이 2명이나 있다고 치면, 김철수는 2명이기때문에
출석을 부를때마다 항상 충돌과 학생들과 선생님들의 혼돈이 오기 마련입니다.
원초적으로 같은 이름을 가진 학생들은 차라리 다른반에 배치시켜서,
1반의 김철수 2반의 김철수라고 구분이 될것입니다. 물론....그런경우는 좀 냉혹하지요?
 
마찬가지로 프로그램상에서는 이런 현상, 변수, 메소드, 클래스 등을 구분해서 하나의
반에다가 넣어서 구분하는것입니다. 다른 용도의 변수, 메소드, 클래스라도 이름이
같으면 컴퓨터도 혼돈이 오기 마련입니다. 나아가 클래스를 기능별로 분류가 가능해지고
방대한 길이 코드에서 여러명의 개발자가 같은 프로젝트를 진행할때 우연찮게 같은 이름을 쓸수가 있습니다. 이렇게 혼돈도 방지하고, 클래스를 기능에 따라 분류하여 네임스페이스로 하나로
묶어두면 쳬게적으로 클래스를 좀더 효과적으로 쓸수있습니다.
 
예를 들어볼게요
 
class Chulsu { int a;}
class Chulsu { int b;}
두 클래스는 내용은 다르지만 이름이 똑같기 때문에 그냥 딱봐도 컴파일러(번역기)가 헷갈려합니다.
당연히 오류입니다. 철수가 2명일때 철수를 부르면 부른사람도 당황하고, 철수 2명도 누굴 부른거지
하고 짜증나겠지요?
자 이렇기 때문에 반을 나눠보죠
namespace A
{
    class Chulsu {int a;}
}
 
namespace B
{
    class Chulsu {int a;}
}
 
이렇게 하면 똑같은 클래스라고 할지라도 다른 이름공간(namespace)에 있기때문에
에러가 나지 않고, 구분이 가능합니다. A.Chulsu , B.Chulsu 이런식으로요
 
모든 명칭은 항상 특정한 네임스페이스 안에 정의 되어 있어야 하지만
위의 예제처럼 namespace 가 없으면 기본 네임스페이스로 인식되게 됩니다.
그리고 네임스페이스 안에 네임스페이스가 중복해서 정의 될수 있습니다.
 
namespace A
{
   namespace B
   {
        class C_Class
        {
            ............
         }
    }
}
이것은 또한 A.B.C_Class 라고 참조 할수 있습니다.
 
그리고 참조되는 네임스페이스 사용이 잦아지고, 네임스페이스길이가 길어지면 참으로
코딩하기가 귀찮아집니다.
그러므로 using을 쓸수가 있는데
using K = A.B;
라고 하면 K라는 별칭으로 이 네임스페이스에 속한 명칭을 바로 참조 가능합니다.
K.C_Class라고 하면 됩니다.


유용하게 봤다면 팁 감사합니다

'프로그래밍 > C#' 카테고리의 다른 글

C#-7. 객체지향과 클래스  (0) 2019.01.31
C#-6. 데이타 타입  (0) 2019.01.29
C#-4. 컴파일러와 dll파일  (0) 2019.01.25
C#-2. C#으로 첫 발자국  (0) 2019.01.24
C#-1. C#의 특징  (1) 2019.01.23
Posted by 토실토실천재
2019. 1. 24. 08:59
우선은 C#을 하기 위해서는 닷넷 프레임워크가 깔려있다면
어디서 작성을 해도 좋으나
풍부한 편의성과 개발자 편의를 위해서 Visaul  Studio 2005 버전이상에서
작성하는것이 좋습니다. 물론 2008이 현재까지는 제일 좋습니다.
해당 글을 작성된 일자가 꾀 오래되었네요..양해바랍니다.

현재는 마이크로소프트사에 가면 Visual Studio Community 버전이 있으므로 
무료로 사용할 수 있습니다^^

그리고 시중의 C#책...본인도 그리 많이 본것은 아니지만, 대부분 C/C++과 비교설명한것이 
대부분이더군요. 순수하게 C#을 가지고만 접근한책이 많이 부족합니다. 그래서 처음 하신분들은
짜증이 날지도 모르지만, 어쩔수없습니다. 본인은 C/C++을 공부해본적이 있기때문에,
그리고 본인도 부족하지만 C를 가르친 경험도 있어서, C가 더 편합니다.
C#자체가 C/C++에 모태를 두고 있기 때문에 개발자들과 역자들은 어쩔수없이 비교설명하고, 대부분 C/C++을 했다고 가정을 하기  때문에 짜증이 나더라도 이해해야 할것 같네요. 좀더 고차원적으로
언급하자면, 프로그래밍 언어의 기능은 다 비슷비슷 하다는 생각도 하게 될것입니다.

1. C# 타입 시스템
  - 1. 자동메모리 관리 기능 
        (이에 따라 개발자는 메모리에 대한 접근과, 걱정을 하지 않으셔도 됩니다)
  - 2. 통합 시스템이다 보니 모든것이 객체로 존재 합니다. 어떤 데이타라도 객체로 취급합니다.
  - 3. 프로퍼티, 메서드, 이벤트는 기본으로 제공
  - 4. C#은 어튜리뷰트를 지원하고, 컴포넌트에 대한 정보를 정의 할수 있습니다.

좀 어려운 말을 적었네요. 사실 지금은 그러려니 하면서 넘어가셔도 크게 상관은 없습니다.
그렇다고 무시하고 넘어가란말은 아닙니다. 프로그램을 작성하실때는 메모리에 아주 민감해져야
합니다. 아키텍쳐(닷넷내부실행과정)의 중요성을 지나친다면.........
프로그래머가 아닌 그냥 따라치는 사람이 되어 버립니다.
여기서 미처 언급하지 못한 내용을 여러가지 책을 통해서 습득하셔야 합니다.

2. C#의 첫 발자국 "hello C#" 작성해보기
  - hello.cs
   1. 비쥬얼스튜디오 2008을 켠다. 좀 무거워서 로딩하는데 시간이 걸립니다.
       참고) 로딩 : 느린메모리에서 상대적으로 빠른메모리로 로드하는것을 로딩이라고 합니다.
                - 하드디스크에서 메모리로의 로딩 
                - 메모리에서 캐쉬메모리(cpu)로의 로딩
   2. 메뉴를 보시면 파일 클릭 ->

 
 
 
거기에서 프로젝트 를 켜시면 C#을 선택하셔서
      콘솔응용프로그램을 클릭합니다. 그리고 프로젝트 이름을 쓰시고 확인!

   3. 그럼 기본 코드가 자동으로 나옵니다. 우린 그냥 그 안에 있는것을 다 지우고 해봅니다.
 
 
  - hello.cs

using System;

namespace A
{
    class B
    {
           static void Main()
           {
                   System.Console.WriteLine("hello, C# this is my First C# programing Code");
           }
    }
}

 
자 이렇게 누르시고 Ctrl + F5 키를 누르세요(컴파일 + 실행)
 
 
드디어, 처음으로 C#.NET 응용 프로그램을 작성해보신겁니다.     
좀 감을 잡으셨다면 System.Console.WriteLine.... 안에 글을 적으면 화면에 똑같이
찍히는걸 볼수있습니다.
처음하신분들은 많이 실망하셨을수도 있습니다. 까만 화면에 흰글자....이거 왠지 
윈도우환경에 익숙한지라 허접해 보일수 있겠지만 모든 프로그램의 학습의 기본은 콘솔환경입니다.
콘솔환경 ... 까만 화면에 흰글자...즉, 그래픽이 없는 문자명령체계 라고 ...

하지만 기본 구현학습에 있어서 콘솔환경만큼 좋은곳은 없습니다.
여기에서 잘 하셔야 나중에 현란한 윈도우창도 만들고, 눈으로도 멋진 프로그램을 만들수있으니까요
우린 디자인보다는 우선은 기능을 배워야 합니다.그것도 잘....
 이것저것 찍어보시고 많이 가지고 노시길 바랍니다.

참고로 자동으로 코드가 완성되는 기능이 있는데, 이것에 익숙해지시면 안됩니다.
부디...키보드로 직접 코딩하십시오.

코드에 대한 설명과 컴파일러에 사용은  다음장에 하겠습니다.


내용이 도움이 되었다면 xrp tip 한번^^



'프로그래밍 > C#' 카테고리의 다른 글

C#-7. 객체지향과 클래스  (0) 2019.01.31
C#-6. 데이타 타입  (0) 2019.01.29
C#-4. 컴파일러와 dll파일  (0) 2019.01.25
C#-3. 네임스페이스  (0) 2019.01.25
C#-1. C#의 특징  (1) 2019.01.23
Posted by 토실토실천재
2019. 1. 23. 16:04


C#은 닷넷개발프로그램의 대표적인 언어입니다.
기존 과거에 다른 언어의 단점을 과감히 털어벌이고, 새로운 흐름을 위한 객체지향개념의 언어입니다.

과거에도 여러가지의 언어도 혼합프로그래밍이 가능했으나, 실질적으로 
번거로움이 상당히 많았습니다.
C, 파스칼, 어셈블리의 언어의 오브젝트파일(컴파일된 파일)을 링크시켜서
하나의 실행파일을 만드는것 가능했어요.

하지만 닷넷은 이러한 혼합프로그램이 매우 수월해졌으며, 현재까지 이런 혼합프로그램이 가능한
즉, 닷넷을 지원하는 언어가 60개 정도 된다. 매우 크게 발전했다는 생각이 들기도 하면서,
닷넷의 힘이 느껴지기도 합니다.

1. C#의 특징
   1. 기반언어 : C++, 자바 ==> 고차원적으로 업그레이드
     - 특징
        1. 완벽한 객체지향언어
        2. 편리한 개발자가 사용 편리한 인터페이스 환경
        3. 메모리에 대한 사용자 부담이 없다.(자동 가비지 콜렉션기능)
        4. 타입이 엄격 및 문법이 엄격하다.
        5. 많은 문법의 확장
        6. 닷넷플랫폼의 대표적인 언어로써의 닷넷의 모든 장점을 갖고 있음. 등등등

  2. 프로그램을 한번이라도 해보신분이라면
       1. 특히, C/java를 해보신분들은 어색하지 않는 코드문법입니다.
           즉, java또한 C++을 참고했고, C++은 C의 확장이기 때문에 변수선언방식이나
           함수/메소드 등 특정기능 사용이 비슷합니다.

  3. 처음 프로그램 하신분이라면
       1. 우선적으로 코드기법을 배우는것은 위험합니다.
          - 닷넷의 등장배경, 닷넷의 기능, 닷넷이 추구하는 것등 그리고 프로그램 실행 구조
            를 먼저 파악하는것이 중요합니다. 무엇보다도, 하드웨어에 대한 기초지식이 있다면
            더더욱 좋을거 같네요.

       2. 역시나 책을 좀 많이 보셨으면 합니다. 코드를 친다고 해서 어쩌어찌 되긴 합니다만
          이론을 알고 코딩을 하는것이 훨씬 좋습니다.  처음 부터 결과를 위해서 코드를 작성
          하는것은 훈련하지 않는 달리기 선수가 10초대를 가기를 바라는것과 같습니다.
   


유용하게 보셨다면 xrp로 팁 한번 부탁드립니다.

'프로그래밍 > C#' 카테고리의 다른 글

C#-7. 객체지향과 클래스  (0) 2019.01.31
C#-6. 데이타 타입  (0) 2019.01.29
C#-4. 컴파일러와 dll파일  (0) 2019.01.25
C#-3. 네임스페이스  (0) 2019.01.25
C#-2. C#으로 첫 발자국  (0) 2019.01.24
Posted by 토실토실천재