1주차 C# 개발 공부

2021. 12. 20. 02:20개발일지/일요일마다 C#

 

안녕하세요. 반갑습니다.

저는 2021년 11월 부터 본격적으로 개발자 취업을 위해
열코(열심히 코딩) 중인
간무징어 입니다.

 

간무징어의 뜻... 궁금해 하실 것 같아요.

 

사실은 제 별명인데요,

간디와 무말랭이, 오징어를 합한 말입니다.

예전에 제가 마르고 성격 자체도 나름
순둥순둥해서
친구들이 지어주었답니다.

예전에는 놀리는 것 같아서 싫었는데
이제는 그러한 관심도 필요한 나이가 되었는지

자꾸 어린 시절로 돌아가고 싶고 그러네요.

 

어쨌든 제가 이렇게 글을 쓰게 된 이유는
개발 공부를 본격적으로 시작하면서

개발일지를 작성해야겠다고 마음을 먹었기 때문입니다.

 

비전공자이고 아직 많이 서툴기 때문에

개발에 대해 많은 내용을 알고 계신 분들에겐

필요 없는 정보일수도 있겠네요.

 

저는 철저히 개발에 대해 아무것도 모른다는 상황에서

제가 겪는 상황을 적어볼테니

현업 개발자 분께서 혹시 보신다면
언제나 댓글에 피드백을 해주시면 되고,

저와 같은 dog foot 분들이 보신다면

저런 사람도 있는데 나는 더 열심히 해야겠다는

생각을 가지신다면

제 글을 읽는 아유에 대한 설명이 조금을 될 것 같습니다.

 

그럼 시작해볼까요?

 

일요일 13시 ~ 19시
6시간 4개월 동안 공부를 진행합니다.
장소는 신촌역에 있는 SBS아카데미게임학원입니다.


강사 님은 18년차 프로그래머이시고

게임 개발이 취미라고 하십니다.

 

  1. 프로그래밍 이론
  2. C# 이론
  3. Unity 이론

이렇게 3가지를 학원에서 배울 예정입니다.

C#과 unity로 게임을 만들 수 있다니...

정말이지 기대가 됩니다.

 

C#의 경우 한 달간 배울 예정입니다.

 

  • C# 기초지식
  • C#과 다른 언어 차이점
  • C# 활용하기

C# 이렇게 크게 3가지로 나눠 배울 예정입니다.

 

오늘 수업은 프로그래밍 전반적인 이론(상식)에 대해 배운다.

프로그래밍이란 프로그램을 만드는 행위를 말한다.
프로그램을 만드는 행위를 배우기 이전에 상식으로 알고 있으면
도움이 되는 내용을 적어봤다.

상식 1.

컴퓨터는 크게 하드웨어와 소프트웨어로 나눈다고 보면 된다.

손으로 만질 수 있는 것이 하드웨어,
그렇지 못한 것이 소프트웨어라고 생각하면 되겠다.
예를 들면, 하드웨어의 종류에는 CPU, 모니터 등이 있고,
소프트웨어의 종류에는 한글과 컴퓨터, 파워포인트 등이 있다.

상식 2.

컴퓨터의 부품은 CPU, 메모리, 메인보드 등이 있다.
예를 들면, 우리가 컴퓨터를 살 때
CPU는 i9, i7 등과 같이 나와있는 것을 볼 수 있다.
보통 CPU는 두뇌라고 보면 된다. 계산을 담당한다.
메모리는 말 그대로 기업을 담당한다.
메인보드는 우리 몸으로 보면 몸통에 해당한다.

상식 3.

프로그램은 제작과 설치가 가능해야하고
실행-기능-종료의 기능이 확실히 있어야 한다.

상식 4.

프로그램, 프로세스, 쓰레드 차이를 알아야 한다.
작업관리자를 실행해보자.
프로세스 탭이 있는 것을 볼 수 있다.
프로세스 탭에는 여러 프로그램들의 내부를 파악할 수 있도록 되어있다.
우리가 메이플스토리 게임을 실행한다는 것은
메이플스토리 프로그램을 돌린다는 것이다.
그 프로그램의 경우 여러 개의 프로세스로 이루어져 있다.
채팅을 담당하는 프로세스, 메인 프로세스, 상점 프로세스 등이 있을 것이다.
각각의 프로세스 내부에는 여러 쓰레드가 있다.
그래픽, 물리, 연산 쓰레드 등이 그것이다.

이를 통해서 볼 때 멀티 프로세싱을 하는 이유는 하나의 프로세스가 죽어도
프로그램 실행에 영향을 덜 주기 위해서인 것을 알 수 있다.
또한 멀티 쓰레드를 하는 이유는 하나의 프로세스 안에서
동시에 여러 작업을 하기 위해서인 것을 알 수 있다.

상식 5.

메모리는 CPU 속도가 하드디스크보다 매우 빠르기 때문에
CPU 처리속도를 하드디스크가 따라가지 못한다.
하드디스크는 원래 데이터 보관 역할을 담당하기 떄문이다.

프로그램 자체에는 메모리의 개념이 없다.
단 프로세스들은 각자의 고유 메모리 공간을 가진다.
OS는 자동으로 그 공간을 지정해준다.
각자의 메모리 공간을 가지기 때문에
서로의 데이터를 공유하는 것은 어려울 것이다.

상식 6.

프로그래밍 언어는 기계와 인간 사이 대화 언어라고 볼 수 있다.
기계는 2진수를 사용한다.
매우 다양한 언어가 있고 OS에 따라 사용하는 주 언어도 다르다.

이러한 이유로 인해 운영체제와 사람 사이의 언어 통역을 위해
가상머신이 등장했다.
가상머신에는 JVM, .Net FrameWork 등이 있다.
가상머신을 위한 언어를 중간언어(IL)이라고 한다.

C#은 중간언어를 가지고 있는 프로그래밍 언어이다.
OS에 직접 명령을 하지 않고 가상머신을 거쳐서
명령을 전달하게 된다.
(IL2CPP를 사용하여 운영체제별로 빌드하여 명령을 주기도 한다.)

상식 7.

언어의 경우 Low-Level 언어와 High-Level 언어로 나눌 수 있고
Low-Level 에 가까울수록 기계어에 가깝다.
Ex) 어셈블리어

상식 8.

프로그래밍 언어가 파일이 되는 과정을 빌드라고 한다.
High-Level 언어에서 Low-Level 언어로 변경해는 과정을 컴파일이라고 한다.
Low-Level 언어를 각각의 OS에 맞게 실행 가능한 파일로 만드는 것을 링크라고 한다.
그래서 빌드는 컴파일과 링크를 합친 것을 말한다.

상식 9.

Visual studio code 등과 같은 IDE(통합 개발 환경)을 사용하여
C# 언어로 개발이 가능하다.
Visual studio code의 구조는
솔루션(.sln), 프로젝트(.csproj), program(.cs) 로 나눈다.

상식 10.

C#은 MS가 JAVA를 보고 만들었다고도 한다.
사용자와 플랫폼 사이에 가상머신을 두고 작동한다.
하나의 코드 대응으로 멀티플랫폼 사용이 가능하다.

상식 11.

C# 구조는 다음과 같다.
namespace(주소지)-class(객체)-variable(변수 또는 데이터)-method(메소드 또는 함수)
namespace는 다른 외부에서 만들어진 기능들을 가져올 때
객체끼리의 이름 중복을 방지해준다. 생략이 가능하며
생략하는 경우 global namespace 안에 들어간다.
이를 using으로 불러오지 않아도된다.

using 이란 다른 namespace를 사용한다는 것을 말한다.
소스 파일 가장 위에 위치해야 한다.
 
한편 class 는 행동과 데이터를 가지고 있는 요소이다.
new 키워드로 생성한다.

class People
{
변수, 메소드
}​

People NAME = new
people()


변수는 데이터 값이다. 그래서 변수형을 선언하는 작업이 필요하다.

int NUM 2
float fNUM 2.3f
double dNUM ....​

상식 12.

C#은 대소문자를 구분한다.
{ }로 영역을 구분한다.
;로 문장을 구분한다.

상식 13.

8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB


상식으로 살펴본 프로그래밍 기초부분
어떠셨나요?

 

 

그럼 오늘의 C# 공부는 여기까지 입니다.

다음주에 다시 만나요~ BYE

'개발일지 > 일요일마다 C#' 카테고리의 다른 글

3주차 C# 개발 공부  (0) 2022.01.09
2주차 C# 개발 공부  (0) 2022.01.09