1. 프로젝트 만들기
자, 이제 프로젝트를 한번 만들어봅시다. 우선 Microsoft Visual Studio를 실행시킨 후에, 파일(F) -> 새로 만들기(N) -> 프로젝트(P)...를 누르거나 Ctrl+Shift+N을 눌러 '새 프로젝트' 창을 엽니다.
.
여기서 '콘솔 앱(.NET Framework)'를 선택하고 확인을 누릅시다. 우리가 콘솔 앱 프로젝트에서 배우는 내용들은 Windows Forms이나 WPF의 기초가 되므로 여기서 확실하게 배우고 넘어가야 합니다. 아래의 확인 버튼을 눌러 프로젝트를 만들어 봅시다.
그러면 아래와 같이 코드 창이 보이고, 솔루션 탐색기에서 우리가 만든 프로젝트를 확인할 수 있을 것입니다. 그럼, 이제부터 C#의 기본적인 코드를 보면서 언어에 대한 감을 잡도록 합시다.
2. 기본구조 파악
모든 준비가 끝나셨으면 아래와 같이 작성하여 프로그램을 만들어봅시다.
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("Hello, world!"); } } }
컴파일(Compile)은 무엇인가요?
컴파일은 사람이 이해할 수 있는 소스 파일을 컴퓨터가 이해할 수 있는 기계어 파일로 만드는 과정을 말합니다.
.NET 컴파일 과정
위와 같은 과정을 자세히 살펴보자면, 각각의 언어마다 별개의 컴파일러가 존재합니다. 우리가 C#로 작성된 소스 코드를 컴파일하면, C# 컴파일러에 의해 exe나 dll 파일과 같은 출력 파일이 만들어집니다. 이렇게 만들어진 파일을 어셈블리(Assembly)라고 부릅니다. 그리고 이 어셈블리 안에는 CIL(Common Intermediate Language)와 메타데이터(Metadata), 매니페스트(Manifest) 정보가 포함되어 있습니다.
여기서 CIL란 컴퓨터가 해석 가능한 원시 코드(Native Code)가 되기 전 중간 단계의 언어입니다. 우리가 작성한 소스 코드는 바로 CIL로 변환되는 것입니다. 여기에서 컴파일 과정은 끝이 납니다. 이후는, JIT(Just-In-Time) 컴파일러에 의해 컴퓨터가 이해할 수 있는 원시 코드로 다시 컴파일되어 우리가 만든 프로그램이 실행되게 됩니다.
디버깅(Debugging)은 무엇인가요?
프로그램 내에 있는 기존의 논리적인 오류나 잠재적인 오류를 가리켜 버그(bug)라 하며, 이러한 오류를 수정해나가는 과정을 디버깅이라 말합니다. 우리가 프로그램을 만드는 과정에서 '반드시'라고 해도 될 정도로 많은 결함들이 생겨납니다. 프로그램이 실행 중에 비정상적으로 종료되거나, 우리가 생각한 결과와는 다른 잘못된 결과 값을 출력할 때 디버깅을 통해 근본적인 원인을 찾아낼 수 있습니다.
... Console.WriteLine("Hello, world!"); ...
... Console.Write("Hello, world!"); ...
결과:
using System;
'프로그래밍 관련 > C#' 카테고리의 다른 글
C# 강좌 4편. 연산자(Operators) [최근 수정 2017.10.29] (30) | 2018.01.12 |
---|---|
C# 강좌 3편. 변수, 데이터 형식, 상수 [최근 수정 2017.10.29] (50) | 2018.01.12 |
C# 강좌 2편. Hello, world! [최근 수정 2017.11.27] (37) | 2018.01.12 |
C# 강좌 1편. 시작 (25) | 2018.01.12 |
C# 고급 2편. 링크(LINQ) (13) | 2013.07.15 |
C# 고급 1편. 레지스트리(Registry) (18) | 2012.11.15 |
초반부가 지루하지 않고 아주 간단 명료하게 진행되어 너무 너무 좋네요.
오랜만에 새로운 언어를 배웁니다 감사합니다
감사합니다 많은 도움이 되었습니다
눈에 쏙~ 들어오는 명강의 감사합니다. ^^&
고맙습니다 c#책을 살려고하는데 사기전까지 이걸보면서 공부해야겠어요 감사합니다~!
unity3d 에 바로 접목할수 없나요? 그 마이크로 프로그램으로 작성해야 하는건가요?
unity3d 안에 c# 불러와서 작성했더니 아무 반응이 없어서요;ㅣ;
좋은자료 너무 감사드립니다.
좋은 자료 감사합니다!!!!
string[] args라는 값은 main 메소드를 선언할때 저기에 값이 들어가는거로 알고있는데 string[] args 가 무슨의미인가요
좋은 강의 감사합니다!
기초 부터 차근차근 정말 감사합니다.
Hello,World!
Goodbye,World!
이렇게 두문장이 띄워진 상태로 쓰고싶으면 어떻해 해야되나요?
감사합니다. 이해가 쉽네여~
안녕하세요. c#강좌가 너무 좋아서, 쉽게 찾아보려고 개인 비공개 블로그에 퍼가겠습니다^^ 출처도 밝히겠습니다!
질문이 다소 난해하실 수 있는데.
지금 올려주신 24개? 강의를 체득하면 어느정도 수준의 프로그램을 만들 수 있나요??
간만에 접속했는데 다시 돌아오셨군요 ㅎㅎ
언제나 좋은강의 감사드립니다
자주자주 학습하러 오겠습니다
잘읽고 많이배우고 가요 감사합니다
이렇게 자세히, 친절히 강의를 작성하여주셔서 감사합니다.
책을 몇주째 보고 있는데 이해가 안되었는데 설명하여 주신내용 보니 이해가 더 잘되네요.
동영상 자료를 찾아보고 있는데 혹시 추천하실만한 동영상 자료가 있을까요?
아니면 책 추천도 좋습니다.
방황만 하고 있는 느낌이라 누군가 가이드를 해주면 더욱 잘 될거 같아서 문의 드립니다.
좋은 강의 감사합니다.
좋은 강의 감사합니다!!
C# 입문자용 기초책이라고 샀는데 첫장 예제 설명부터 이해하지 못하게 난해한 해설을 서술해놔가지고 분노가 치밀어오르던 중에 이 강의 보곤 쉽게 이해가 가네요! 즐겨찾기 해두겠습니다!