아래와 같이 코드를 만들고, Solution Bulid를 하면, 빌드가 성공 되는 걸 볼 수 있다.

이제 잘 생성이 되었는지, 확인을 해보아야 한다. 솔루션 탐색기(단축기 Ctrl+;)을 열어, 아래와 같이 

파일 탐색기에서 폴더 열기를 클릭 한다. 그럼 파일 탐색기가 자동으로 해당 파일이 존재하는 디렉토리까지  열어준다. 

이후 아래와 같은 폴더가 열리는데, bin->Debug->net7.0으로 이동 시, 빌드한 Hello가 생성되어있다.

실행하기 위해선 Window키(컨트롤 키 옆)+ R키를 누르면 실행 창이 뜨는데, cmd를 누르고 엔터를 한다. 그다음 cmd 창에 cd를 입력 해주고,  이전에 Hello 경로를 복사 후에 붙여넣기를 하고, 엔터를 누르면 2번째 사진의 맨 아래와 같이 뜬다.

이후 dir로 통해, 디렉터리를 확인할 수 있고,list up할 수 있다.  Hello.exe로 VS에서 인자의 개수가 0이면, 해당 메세지를 출력하도록 구현 한 것이 출력 된다.

아래와 같이 Hello.exe 뒤에 인자를 넣으면 다르게 출력 된다.

< 소스 분석 > 

< using System; >

using : C# 키워드 중 하나. 어느 코드 요소에 'using'이라고 이름을 붙이면 컴파일러는 C#의 키워드가 사용됐음을 알아보고 실행 파일 대신 에러메세지를 내뱉을 것이다. 아무튼 using이라는 뜻을 뭔가를 사용하는 것 같은데,  그 뒤에 따라오는 System을 사용하겠다. 라는 것이다.

 

System : 이것은 C# 코드에 기본적으로 필요한 클래스를 담고 있는 네임스페이스이다. 따라서 using System은 System 네임스페이스 안에 있는 클래스를 사용하겠다고 컴파일러에게 알리는 역할을 한다. 만약 이 문장을 생략했더라면, 13행의

Console.WriteLine ...; 코드는 System.Console.WriteLine.;..;으로 글자 수가 늘어났을 것이다. 앞에서 System 네임스페이스를 사용하겠다고 선언한 덕에 코드의 양을 줄일 수 있게 되었다.

< using static System.Console; >

using static System.Console은 Console.WriteLine...을 WriteLine으로 줄여주는 것이다. 위의 코드에서 17행에 있는 WriteLine...;이 바로 이 문장의 덕을 본 사례이다. (13행도 줄일 수 있다.)

 

 using static은 어떤 데이터 형식(예: 클래스)의 정적 멤버를 데이터 형식의 이름을 명시하지 않고 참조하겠다고 선언하는 기능을 한다.

 

< namespace Hello { } >

네임스페이스는 성격이나 하는 일이 비슷한 클래스,구조체,인터페이스,대리자,열거 형식 등을 하나의 이름 아래 묶는 일을 한다. 예를 들어 System.IO 네임스페이스에는 파일 입출력을 다루는 각종 클래스, 구조체,대리자 형식 등이 있고, System.Printing 네임스페이스에는 출력에 관련한 일을 하는 클래스 등이 소속되어 있다. .NET  클래스 라이브러리에 1만 개가 훨씬 넘는 클래스가 있어도 프로그래머가 전혀 혼돈을 느끼지 않고 이 클래스를 사용할 수 있는 비결은 바로 이렇게 각 용도별/분야별로 정리되어 있는 네임스페이스에 있다. 

 

Reference : 이것이 C#이다(3판)

https://www.hanbit.co.kr/store/books/look.php?p_code=B4336689405 

 

이것이 C#이다(3판)

전문가로 레벨업! C# 프로그래밍 완전 정복

www.hanbit.co.kr

 

'C#' 카테고리의 다른 글

MS-SQL 및 SSMS 설치 방법  (0) 2023.06.04
C# 문법 정리 ②  (0) 2023.06.04
C# 문법 정리  (0) 2023.06.03
비주얼 스튜디오 설치 및 환경설정 (For Windows)  (0) 2023.06.02
C#의 등장의 역사  (0) 2023.06.02

아래의 웹 사이트에 접속하여.  Visual Studio Community 2022 version을 다운로드 한다.

https://visualstudio.microsoft.com/ko/

 

Visual Studio: 소프트웨어 개발자 및 Teams용 IDE 및 코드 편집기

Visual Studio 개발 도구 및 서비스를 사용하면 모든 개발자가 모든 플랫폼 및 언어로 앱을 쉽게 개발할 수 있습니다. 무료로 어디서나 코드 편집기 또는 IDE를 사용하여 개발하세요.

visualstudio.microsoft.com

다운로드를 클릭한 후, 실행이 되었다면 아래와 같이 계속을 누른다.

계속을 누르고, 다운로드가 진행되는데 이후 아래와 같이 창이 뜬다. 해당 책에서는 .NET 데스크톱 개발을 선택한다. 이후 설치를 누른다.

 

아래와 같이 비주얼 스튜디오를 설치하기 시작한다.

설치가 끝나면 다음과 같이 비주얼 스튜디오 설치 정보가 나타난다. 이제 설치 프로그램을 종료하면된다.

자동으로 VS가 실행된다. 테마를 설정하고, 일반으로 설정 후 Visual Studio 시작을 누른다.

 

 

Reference : 이것이 C#이다(3판)

https://www.hanbit.co.kr/store/books/look.php?p_code=B4336689405 

 

이것이 C#이다(3판)

전문가로 레벨업! C# 프로그래밍 완전 정복

www.hanbit.co.kr

 

'C#' 카테고리의 다른 글

MS-SQL 및 SSMS 설치 방법  (0) 2023.06.04
C# 문법 정리 ②  (0) 2023.06.04
C# 문법 정리  (0) 2023.06.03
C#으로 프로그램 만들기  (0) 2023.06.02
C#의 등장의 역사  (0) 2023.06.02

Eniac - 출처 Wikipedia

이 광경은 1946년 최초의 컴퓨터 에니악(ENIAC)을 운용하던 모습이다. 한쪽 벽면을 가득 메운 상자들은 에니악이고, 전기 배선은 에니악이 계산할 때 사용하는 회로로 현대 컴퓨터로 치자면 '프로그램(Program)이었다. '프로그래밍(Progoramming)'이 프로그램을 제작하는 일을 뜻하므로 그 당시 연구원이 하던 에니악의 전기 배선 작업은 일종의 프로그래밍이었다고 할 수 있다.

 

에니악은 당시에는 뛰어난 계산 능력을 갖고 있었지만, 기계가 갖고 있던 문제 또한 컸다. 

뜨거운 진공관을 식히기 위해 거의 매일 반나절은 운영을 멈춰야 했으며, 프로그램을 변경하려면 6,000개나 되는 배선

교체해야 했다.

 

하지만 이런 고민들은 1951년, 존 폰 노이만(John von Neumann)의 혁신적인 설계 아이디어를 통해 해결되었다. 그의 개선안이 적용된 Eniac의 후속 모델인 EDVAC은 중앙처리장치,기억 장치,프로그램,데이터로 이루어진 구조로 재탄생하며 모든 현대 컴퓨터의 조상이 되었다.

 

< 프로그래밍 언어의 출현 >

그럼에도 불구하고, 1950년대까지는 컴퓨터 발전은 하드웨어 위주로 이루어지고,프로그래밍은 비트(Bit)를 조합하는 기계어 수준에 머물렀다. 이 상황에서 언어의 진전은 비트를 기록하는 방식에서 카드에 구멍을 뚫어 비트를 기록하는 방식으로 바뀌었다. 이것을 사람의 언어로 비유하면, '앞으로 가라'는 짧고 간결한 표현 대신, 매우 세세하게 동작을 설명하는 것과 같다.

"허리를 바로 세우고 왼팔을 앞으로 내저으며 오른팔을 뒤로 내저어라. 동시에 몸의 중심을 앞으로 옮기며 왼발을 받침으로 삼고 오른발을 앞으로 내밀어라. 그리고 별도의 지시가 있기 전까지 이 행동을 계속하라."

사람이면 이해하고 수행하는데 문제가 없겠지만, 컴퓨터는 명확한 지시 없이는 아무것도 할 수 없다. 이 문제를 해결하기 위해 등장한 것이 어셈블리어였다.

< 어셈블리어? >

어셈블리어는 복잡한 기계어 명령을 사람이 이해할 수 있는 기호나 단어로 대체했다. 기계어 명령어 '01001100 00001000 100000001100100000'를 어셈블리어에서는 'MOV'로 표현할 수 있다. 이렇게 변환된 명령어는 훨씬 간결하고 이해하기 쉽다.

그러나 컴퓨터는 'MOV'를 이해할 수 없다. 컴퓨터는 오직 0과 1만 이해할 수 있기 때문에, 어셈블리어로 작성된 코드는 컴파일 과정을 거쳐 기계어로 변환되어야 한다. 이 과정에서는 컴파일러라는 소프트웨어가 사용되는데, 이 컴파일러는 소스 코드를 기계어로 변역해서 실행 파일을 만들어내는 역할을 한다.

< 컴파일러 vs 인터프리터 > 

컴파일러는 소스 코드를 기계어로 변환하여 실행 파일을 생성하는 반면, 인터프리터는 소스 코드를 실시간으로 해석하여 실행한다. 그래서 컴파일러는 소스 코드를 실행파일로 변환하는 과정이 필요하지만, 인터프리터는 이 과정 없이 바로 코드를 실행할 수 있다.

 

이러한 차이 때문에, 컴파일러 방식에서는 오류 수정이 상대적으로 번거롭지만, 인터프리터 방식에는 바로 실행 가능하므로 개발 속도가 빠르다. 이런 특징 때문에 최근에는 PHP,Python,Ruby등 인터프리터 방식의 언어가 많이 사용되고 있다.

< 포트란의 탄생 >

1948년, 컴퓨터는 기술적으로 그 발명에 비견할 만한 도약을 하게 된다. 트랜지스터가 등장하며 진공관의 종말을 고했고 곧이어 수천, 수만 개의 트랜지스터를 하나의 칩에 집적한 마이크로 칩이 발명되면서 컴퓨터는 급속도로 발전해 나갔다.

성능은 빠른 속도로 향상됐으며 가격은 빠른 속도로 하락했다. 컴퓨터의 보급 속도가 빨라진 것은 말할 것도 없다.

컴퓨터 시장이 확대되면서 많은 돈이 컴퓨터 산업계에 유입됐고, 이 돈은 다시 더 향상된 컴퓨터를 개발하기 위한 연구에 투입됐다.

 

컴퓨터가 널리 보급되면서 사람들은 더 많은 업무를 컴퓨터로 해결하고 싶어졌다.

그런데 문제가 생겼다. 사람들에게 필요한 프로그램은 빠르게 늘어가는데, 아무리 똑똑한 프로그래머라 해도 기호와 다름없는 어셈블리어로는 그 프로그램들은 빠르게 만들 수 없었던 것이다.

 

[5+1 식을 계산하는 어셈블리 코드 예제]

Data
var1 DWORD 1
var2 DWORD 5
.code
mov eax, var1
add eax, var2

프로그래밍 언어가 이렇게 어렵게 생겼으니, 프로그래밍 전문 과학자나 아주 똑똑한 사람들의 전유물인 것은 당연한 일이었다. 하지만 John Backus가 이 상황을 상당 부분 바꿔놓았다. 그는 IBM에 입사하자마자 당시 한창 개발 진행 중이던 일종의 어셈블리어 번역기인 스피드 코딩 프로젝트에 참여했다. 그리고 1957년, 스피드 코딩 프로젝트 경험을 기반으로 사람의 언어에 가까운 최초의 프로그래밍 언어, 포트란(Fortran)과 컴파일러를 개발했다. 포트란은 연구소와 과학 기술자를 중심으로 엄청난 인기를 얻어나갔다. 그 인기 요인은 무엇이었을까?

[5+1 식을 계산하는 포트란 코드 예제]

a = 5 + 1

앞의 어셈블리 코드와 비교하면, 더 단순해질 수 없을 정도로 단순해졌다. 기계어와는 비교 할 수 없을 정도로 훌륭하다.

프로그래밍 코드답게 생긴 것은 앞에서 선보인 어셈블리어쪽이지만, 이해하기에는 포트란 쪽이 훨씬 낫다.

포트란은 수학 시간에 배운 덧셈과 등가 기호만으로도 덧셈 연산이 가능하다. 이러한 포트란의 성공은 다른 컴퓨터 과학자들을 자극했고, 이후 이들에 의해 1천여 가지가 넘는 프로그래밍 언어들이 탄생하고 또 사라져 갔다.

< 매우 쉽게 프로그래밍할 수 있게 한 베이직 >

1964년, 베이직(BASIC, Beginner's All - Purpose Symbolic Instruction code)언어가 미국 다트머스 대학의 존 케머니와 토마스 커츠 교수에 의해 탄생했다. 이들은 컴퓨터 프로그래밍이 더 이상 과학자나 엔지니어의 전유물로 남지 않기를 바랬다. 그래서 누구라도 배워 사용할 수 있는 언어를 고안했는데, 이것이 바로 베이직이다. 베이직 언어는 너무 사용하기 쉬웠기에 수많은 컴퓨터광을 프로그래밍의 세계로 끌여들였다.

 

레이크사이드 스쿨에 다니던 초등학생  빌 게이츠와 폴 앨런도 프로그래밍에 이끌린 컴퓨터광 중 한명이었다. 당시 컴퓨터는 엄청나게 비싼 기계였지만 레이드사이드 스쿨은 재정적으로 풍부한 사립학교 였고, 어머니회의 후원으로 컴퓨터와 터미널을 보유할 수 있었다. 빌 게이츠와 그의 친구들은 하루 종일 베이직 프로그래밍에 빠져들었다. 빌 게이츠는 학교를 졸업하고 하버드에 진학 했지만, 얼마 가지 않아 학업을 중단하고 폴 앨런과 함께 1975년 마이크로소프트를 창업했다. 그렇게 탄생한 마이크로소프트의 첫 번째 제품이 바로 베이직 인터프리터(BASIC Interpreter)이다.

 

마이크로소프트의 베이직은 IBM이 개발한 PC에 이식됐고, 많은 프로그래머의 손에 의해 PC에서 사용되는 수많은 응용 프로그래밍을 탄생 시켰다. 또한 1990년대 들어 마이크로소프트가 윈도우를 출시 했을때 비주얼 베이직(Visual Basic)으로 새롭게 거듭나면서 윈도우 응용 프로그램을 보급하는 일등 공신이 됐으며, ASP(Active Server Pages)라는 웹 응용 프로그래밍 언어로 사용되면서 인터넷 시대의 발전을 촉진한 스타로 자림매김했다. 현재 마이크로소프트 베이직 언어의 최신 버전은 비주얼 베이직 2019이며, 탄생한 지 50여 년이 지났음에도 여전히 많은 프로그래머에게 사랑받고 있다. 하지만 아쉽게도 2020년 3월에 마이크로소프트는 비주얼 베이직의 언어적 진화는 지원하지 않을 것이라고 공식 발표했다.

< 유닉스의, 유닉스에 의한, 유닉스를 위한 C >

1964년, MIT 공대와 AT&T 벨 연구소, 그리고 GE는 멀틱스(Multics)라는 운영체제 개발을 시작했다. 멀틱스는 GE의 메인 프레임 컴퓨터를 위한 운영체제로서 획기적인 성능과 기능을 목표로 했다.

우수한 연구진과 막대한 비용을 투입했음에도, 멀틱스는 결국 실패하고 말았다. 비록 프로젝트는 실패했지만, 이 프로젝트에 참여했던 벨 연구소의 데니스 리치와 켄 톰슨은 운영체제 개발이라는 소중한 경험을 안고 회사로 돌아왔다.

 

벨 연구소로 돌아온 켄 톰슨은 어느 날 연구소의 한쪽 구석에서 놀고 있는 미니 컴퓨터 PDP-7을 발견했다. 어마어마했던 멀틱스 프로젝트에 질린 켄 톰슨은 PDP-7을 가지고 작지만 쓸모 있는 프로그램을 만들어 보고 싶어 어셈블리어로 < 우주 여행 > 이라는 게임을 작성했다. PDP-7에서 프로그램을 하나 완성하자 켄 톰슨은 다시 한번 운영체제 개발에 도전해보고자 데니스 리치와 함께 유닉스를 만들기로 한다.; 그렇게 PDP-7에서 유닉스의 첫 버전이 만들어졌다.

 

이후 리치와 톰슨은 PDP-11 버전을 만들면서 새로운 언어도 만들기로 결심했다. 어셈블리어는 코드 생산성이 너무 낮았고, 당시 사용하던 B 언어(켄 톰슨의 개발)는 PDP-11의 새로운 기능을 활용하는 데 역 부족이었기 때문이다. 그래서 데니스 리치는 B 언어의 특징을 물려받은 새로운 프로그래밍 언어를 개발했고, B언어를 계승한다 하여 'C 언어'라 이름 붙였다.

 

C언어를 개발한 뒤 리치와 톰슨은 유닉스를 통째로 C 언어로 재작성 했다. CPU마다 명령어가 달라지는 어셈블리어로는 다양한 컴퓨터에 유닉스와 응용 프로그램들을 이식하는 것이 매우 어려웠기 때문이다. AT&T 벨 연구소는 소스 코드를 비롯한 유닉스의 모든 것을 공개하며 미국 내 대학과 기업에 공급했다. 유닉스는 미니 컴퓨터에 쓸 만한 운영체제를 찾던 사람들에게 큰 환영을 받았으며, C 언어로 만들어졌기 때문에 다른 컴퓨터로의 이식이 용이했다. 각 대학과 기업은 소유하고 있던 미니 컴퓨터에 유닉스를 이식하여 사용했으며, 이 과정에서 .C언어도 자연스럽게 함께 보급됐다. 그리고 유닉스가 주류 운영체제로 자리잡으면서 C 언어도 '유닉스의 언어'에서 '프로그래머의 언어'로 자리잡게 됐다.

< C+1 == C++ >

C++('씨 플러스 플러스'라고 읽는다.)는 AT&T 벨 연구소(C와 출신이 같다.)의 바야네 스트롭스트룹(Bjarne Stroustrup) 교수가 객체지향 프로그래밍(Object Oriented Programming)이 가능하도록 C를 개선 시킨 프로그래밍 언어 이다.

 

'C++'에서 ++는 자기 자신을 1만큼 증가시킨다는 뜻으로, C언어 에서 사용되는 연산자이다. 즉, C++는 C를 향상시킨 프로그래밍 언어라는 의미를 가지고 있다.

 

C언어는 B언어의 다음 알파벳을 사용했는데, C++.는 왜 D가 아니고 C++일까? 그것은 C++언어가 C 언어를 거의 계승하고 필요한 만큼만 향상시켰기 때문이다. 1979년에 만들어진 C++는 기존 C언어 코드를 대부분 그대로 사용할 수 있으며, 객체 지향 프로그래밍을 지원해 프로그래머가 거대하고 복잡한 소프트웨어를 이전보다 쉽게 만들 수 있도록 했다. 이러한 매력 때문에 C++는 많은 프로그래머,마이크로소프트 오피스를 비롯한 많은 상용 소프트웨어가 바로 이 언어로 작성 됐다.

< 더 나은 세상을 위한 C# >

++ 밑에 ++를 더 붙이면 #이 된다. C#이라는 이름은 C++를 계승한다는 의미로 붙여진 것이다.

하지만 C#과 C나 C++와는 여러 면에서 차이가 있다. 우선 C와 C++가 AT&T 벨 연구소에서 탄생한 반면, C#은 마이크로소프트의 앤더스 헤일스버그가 만들었다. C 언어로 작성된 소스 코드는 C++ 컴파일러가 컴파일할 수 있지만, C나 C++로 작성된 소스 코드는 C#에서 컴파일되지 않는다., 이름은 비슷하지만 실제로는 완전히 다른 언어라는 것이다.

1990년대 말, 마이크로소프트는 .NET('닷넷'이라고 읽는다.')비전을 발표했다. 이 비전을 요약하자면 앞으로의 인터넷 서비스는 모든 종류의 기기에서 사용할 수 있어야 하며, 마이크로소프트의 .NET은 이를 위한 플랫폼이라는 것이었다. 하지만 마이크로소프트가 .NET을 위해 준비한 것 중 대부분은 사람들의 별다른 관심을 끌지 못했다. 엄청난 투자를 생각하면 사업적인 면에서는 실패했다고 평해도 틀린 말은 아닐것이다.

 

하지만 .NET은 프로그래머들에게 소중한 선물을 안겨줬는데. 바로 .NET 클래스 라이브러리와 C#프로그래밍 언어이다. .NET 클래스 라이브러리는 콘솔, 데스크톱, 웹, 모바일 등에서 동작하는 애플리케이션을 손쉽게 개발할 수 있는 API를 제공한다. C# 프로그래밍 언어는 .NET에 최적화된 언어로서 프로그머의 생산성을 보다 높은 수준으로 끌어올렸다.

 

 

Source : 이것이 C#이다(3판)

https://www.hanbit.co.kr/store/books/look.php?p_code=B4336689405 

 

이것이 C#이다(3판)

전문가로 레벨업! C# 프로그래밍 완전 정복

www.hanbit.co.kr

 

 

'C#' 카테고리의 다른 글

MS-SQL 및 SSMS 설치 방법  (0) 2023.06.04
C# 문법 정리 ②  (0) 2023.06.04
C# 문법 정리  (0) 2023.06.03
C#으로 프로그램 만들기  (0) 2023.06.02
비주얼 스튜디오 설치 및 환경설정 (For Windows)  (0) 2023.06.02

+ Recent posts