안녕하세요, 어서 오세요
이번 강의에서는 변수 개념과 데이터
타입에 대해서 이야기해 볼 건데요
네 좋아요 프로그램은 프로그램의 지시 사항과
프로그램이 실행되는 동안 작동하는 데이터를
저장해야 합니다
그래서 기억의 개념을 다시 설명해 드릴게요
네 이전 강의에서 다뤘던 내용이지만 지금은
메모리가 왜 중요하고 무엇인가를 요약하는 중입니다 메모리는 변수와 직접적으로
관련이 있기 때문이죠
네 메모리의 개념을 이해해야 합니다 메모리와 하드 드라이브의
차이점을 이해해야 하죠
하지만 기억력은 프로그램이 사용하죠
네 프로그램은 CPU에 지침을 보내야 할 때 메모리를 사용합니다
데이터를 저장할 때도 메모리를 사용하고요 프로그램은
이 두 가지를 다 합니다 유용해지기 위해서요
이건 램이에요 임의 엑세스 메모리죠
데이터와 램을 저장하고 변수와 데이터를 선택하죠
하드 드라이브도 사용하고요
네 램에 데이터를 저장하는 것과 하드 드라이브에
저장하는 것의 차이점은 램에 저장하면 컴퓨터가 꺼지거나 프로그램이 종료될
때 데이터는 사라져요
일관성 없는 데이터를 저장하려면 하드드라이브에
저장해야죠
네 프로그램이 하드 드라이브의 데이터를 사용하긴 하지만 보통 외부 데이터에만 사용해요 영구적인
데이터 어딘가에서 검색되는 데이터 프로그램 내 모든 변수와
데이터는 메모리에 저장됩니다
기억을 떠올려 보면 상자 순서를 정렬해
놓은 것 같아요
도움이 될 만한 곳을 찾아보려고 했어요
네 포인터에 관해 얘기할 때 좀
더 자세히 살펴볼게요 메모리가 어떻게 저장되는지
이해하고 시각화해야 하니까요
네 하지만 메모리는 외부 하드웨어 유형이고 머더보드에 넣을 수 있는 작은
메모리 스틱입니다
ITV나 개념적으로 보면 그냥 상자의
연속이죠
네 네 꽉 찬 사각형은 1이 되고 다 찼을
때는 0이 되죠
이진수를 저장하죠
0이나 1은 참 또는 거짓 값이죠
각각의 상자는 비트라고 해요
메모리의 조각은 바이트인 그룹딘토 8개 세트예요
비트나 바이트라는 용어는 들어보셨을 거예요
메모리에 밀접할 때 그건 중요합니다 데이터의
크기를 결정하니까요
각 바이트에 주소를 나타내는 aa 넘버가 새겨져 있어요
하드웨어에 데이터가 저장돼 있다면 접근
방법을 알아야 해요
네 그리고 여러분이 사는 거리 주소와 마찬가지로 어떤 레이블을 통해
그 메모리에 접근하는 방법을 알아야 해요
모든 메모리 비트와 데이터에 주소가 있어요
메모리에서 8바이트의 상징적 주소예요 그리고 이 바이트를 독특하게
언급하죠
그렇게 데이터에 액세스할 수 있고 그렇게
시각화할 수 있어요
네 메모리는 8개의 비트로 구성되어 있습니다 바이트라고
하죠 각각의 바이트는 고유한 주소를 가지고 있습니다 프로그램은
식별자를 통해서 데이터에 접근할 수 있습니다 또한 16진수
주소도 사용할 수 있죠
네 프로그램에 대한 메모리가 있을 때 프로그램과 마더보드에
있는 메모리를 사용하면 프로그램의 효율성이 높아져요 메모리가
더 많고 메모리가 더 빠르다면 버스도 빠르니 메모리에
더 빨리 접근할 수 있죠
16기가 RAM이요 16기가 RAM이요 그런 용어를 들어보셨을 거예요 램의 양이 많을수록
프로그램은 더 많은 메모리를 저장하고 더 빨리 접근할 수 있습니다
기억하세요, 프로그램은 Memory를 사용합니다, 더 빠르니까요
하드드라이브에 뭔가 저장해야 하니
접근 시간이 오래 걸리죠
우린 CPU로부터 초당 10억 개의 지시를
실행하고 있어요
액세스해야 할 데이터가 아주 많죠
이게 다 무슨 상관이죠?
변수 개념과 직접적으로 관련 있어요
따라서 프로그램은 데이터를 조작할 수 있어야만 힘을 갖게 되죠
컴퓨터에 지시를 보내는데 데이터를
조작해야 해요
네 그래서 사용할 수 있는 데이터 타입과
변수 생성 및 이름 짓는 법을 이해하려면 메모리의 개념을
이해해야 해요
네 프로그램을 작성할 때 그게 강력해지려면 변수의 개념을
이해해야 해요
생성 방법, 이름, 안달소 이런 데이터 형식 아이디어죠
상수는 변하지 않는 데이터의 유형이죠
항상 똑같아요
프로그램이 지속되는 동안에도 자신의 가치를 유지하죠
프로그램이 isrning하는 한 데이터는 항상 같아요
변수는 정반대예요
변할 수 있는 데이터 타입이죠 그래서 변수라고 불러요
프로그램이 계속되면서 값이 변할 수 있어요
그 변수에 대한 다른 값이요
변수와 상수는 메모리에 주소와 함께 저장돼 있고요
맞아요 하지만 그 메모리에 접근해서 헥사데시멀
주소를 다 외우는 건 정말 힘들 거예요
그래서 의미 있는 이름을 가진 생성 가능한 걸 만들기가 훨씬 쉬워요
그래서 변수 이름을 지정할 수 있어요 주소로 가는 메모리
위치를 나타내는 거죠
그렇게 하면 접근도 쉽고 데이터 수정도 쉬워지죠
예를 들어 10과 20의 값을 스토어하고 싶다고 해보죠
그리고 나중에 이 두 값을 사용하길 원하죠
thisdata로 할 일은 먼저 의미 있는
이름을 가진 두 개의 변수를 생성하는 거죠
네 아마도 10과 20이 뭘 나타내느냐에 따라
다르겠지만 나이를 나타낼 수도 있어요
age 1equal 10, age 2 = 20이라고 하면 돼요
항상 의미 있는 이름을 사용하고 싶어하죠
그 값을 저장할 수 있어요
네 이름을 가진 변수를 생성하고 그 변수에 데이터를
할당하죠 10과 20이요
어떻게 하는지 보여드릴게요
프로그램 후반부에 그 변수 이름에 접근해 데이터를
읽을 수 있어요
조정 프로그램도 수정할 수 있어요 상수가
아니라면요
네 변수 이름과 관련해서는 C# 프로그래밍 언어에도 이름에
대한 규칙이 있어요
c에서는 모든 변수 이름이 알파벳이나 밑줄로 시작해야죠
네 그리고 어떤 문자든 조합할
수 있어요 대문자나 소문자 밑줄이나 숫자 0부터 9까지도요
네 그래서 예를 들어 Jason이라는
변수를 만들 수 있어요 myFlag i요 J5x7 밑줄 데이터 밑줄 또 다른 변수
네 네 이것들은 모두 글자나 밑줄로 시작하는 변수예요 그 뒤에 있는
건 대문자나 밑줄, 숫자라면 아무
문제 없죠
여기 Ininvalid 변수 이름의 예가 있어요
이런 이름으로는 변수를 만들 수 없어요 컴파일러가
오류를 낼 수도 있습니다
네 temp $ value라고 하면 컴파일러가 오류를 낼 겁니다
$ 기호는 유효한 문자가 아니니까요
달러 기호를 쓸 수 없어요
스페이스 플래그는 스페이스가 있어서 유안에게 에러를 줄 거예요
3자선은 오류예요 숫자로 변수를 시작하는데 C에선
그럴 수 없죠
컴파일러가 규칙을 확인하니까 틀리면
알려줄 거예요
int도 사실 오류예요
알파벳과 숫자 기호로 시작해서 괜찮아 보여요
문제는 그게 키워드라는 거예요
네 모든 프로그래밍 언어에는 특별한 의미가 있는 단어가
있어서 이름으로는 쓸 수 없어요
int는 c 프로그래밍 언어를 위한 특정 데이터 타입입니다 그래서 변수 이름으로
사용할 수 없어요
이건 좋지 않은 가변성 이름의 예죠
네 아까 말씀드렸죠 변수 이름을 생성할 때는 의미가
있는지 확인해야 해요
네 네 주석은 이미 얘기했고 자체 문서화와 코드를 이해하기 위한
주석의 중요성에 대해서도 얘기했죠 의미 있는 이름이나 의미 있는
이름이나 똑같아
코드에 의미 있는 이름이 있다면 프로그램의
기능을 향상시킬 수 있어요 따라 하기가 훨씬 쉽고 디버그와 문서
프로세스에도 도움이 되죠 의미 있는 이름을 쓰세요
우리가 살펴볼 모든 예제에 걸쳐 그렇게 할 거예요
네 변수 이름을 정하고 변수를 갖게 되면 그 변수와 관련된 데이터는
어떻게 되죠?
그걸 데이터 형식이라고 하죠
프로그램에서 데이터 유형은 숫자, 글자, 단어일 수 있어요
네 네 10과 20을 값으로 할 수 있는 방법과 글자와 숫자,
문자열 혹은 문자로 할 수 있는 방법에 대해 말씀 드렸습니다
그렇죠 그래서 데이터 유형에 따라 특정 작업을 할 수 있도록 식별할 방법이 필요해요
메모리 데이터의 크기와 저장 방식에 영향을
줄 뿐이죠
데이터 타입은 데이터의 정형을 나타냅니다 프로그램을 이용해
처리할 수 있는 데이터죠
데이터 유형 예제 데이터 유형 예제 숫자, 글자, 단어를 언급했는데요
프로그래밍 언어에서는 특정 키워드로 나타납니다
데이터 타입을 나타내는 키워드 INC의 예는 int,
부동 소수점, 더블이죠
다음 강의에서는 특정 데이터 타입과 그 의미에
대해 이야기할 거고요
하지만 데이터 타입은 중요합니다. 왜냐하면 생성할 때 변수의 데이터를 지정해야
하기 때문이죠.
데이터 타입은 운영체제, 아키텍처, 그리고 프로그램에 따라 바이트 사이즈,
데이터 타입과 일치하게 될 것입니다. 프로그램마다요.
크기와 메모리에 어떻게 저장되는지에
따라 달라지죠
네 그래서 프로그램은 8 바이트를 할당해야 하는지 4 바이트를 할당해야 하는지 6바이트?
저장되는 데이터에 따라 다르고 프로그램이 저장 방법을 아는
방법은 데이터 타입을 지정하는 것입니다
원시 데이터 타입이라는 용어도 들어보셨을
텐데요
이 유형들은 객체가 아니고 모든 종류의 데이터를 저장하죠
c에서는 원시적인 데이터 타입만 있습니다 개체가 없기 때문이죠
모든 게 C#에서의 양립적 데이터 타입이죠
우리 프로그램에서 변수를 실제로 사용하고 싶다면
먼저 선언해야 해요
네 변수 선언은 변수의 유형을 명시하고 변수 이름을 지정하는
거예요
이름에 따라 데이터 형식팔로우된 걸 사용하죠
컴파일러에게 프로그램이 어떻게 특정 변수를 사용할 것인지 알려줍니다
그리고 메모리에 데이터가 얼마나 저장되어야 하는지 알려줍니다
8 바이트든 상관없어요 4바이트 등이죠
예를 들어, int라는 c의 예약주문 키워드가 있죠
정수 유형의 adata 유형을 선언하는 데 사용되죠
네 그걸 여러분 프로그램에서 만들고 싶다면 먼저
데이터 형식을 식별해야 합니다 키워드를요 int죠
그럼 변수 이름도 있어야 해요 식별자로도
언급되는 거요
네 그리고 마지막엔 세미콜론이 있어야 해요 기억하세요
c에서 모든 세미콜론은 모든 문을 끝내거든요
실제 구문은 형식 명시 또는 데이터 형식 명시
후에 변수 이름과 세미콜론을 쓰죠
쉼표를 이용해 한 줄에 하나 이상의 변수를 선언할 수도
있고 다른 줄에 변수를 선언할 수도 있어요
상황에 따라 다르지만 쉼표로 구분된 변수에 대한 구문이 있어요
c는 모든 프로그래밍 변수가 선언되기 전에 지정되도록 요구하죠
사용되는 거라 declarationis는 기본적으로 여러분의
프로그램에 이게 내가 가진 거라고 말하는 거죠
어떻게 쓰는지는 안 나와요
제 프로그램에 있는 게 이거라는 거죠
int라는 변수가 있어요
10진수를 저장하는 변수 같은 게
있어요
여기 예제가 있어요
네 네 데이터 유형이 있죠 int예요 그런 다음 변수
이름 여긴 그냥 x죠 그런 다음 세미콜론이 있어요
네 또 다른 예가 있어요 한 줄에 여러 변수를
만들고 싶다면 쉼표로 구분할 수 있어요
이 예제에선 x y, z라는 3변수 타입 int가 있죠
이게 바로 디클레어링 변수예요
네 변수에 데이터를 할당하지 않았잖아요
이것이 존재하는 변수입니다 프로그램에서 일어나는 일은 메모리에
3개의 변수를 생성합니다 그러나 아직 값이
없습니다
네 동일 연산자를 이용해 값의 변수를 할당할 수 있습니다 연산자에 대해
얘기할 때 좀 더 자세히 알아보도록 하죠
네 하지만 아주 간단하니 이해하셔야 해요 값에
변수를 할당하는 거죠 그냥 등호를 쓰고 형식의
실제 문자 상수를 써요
이 경우엔 x는 정수아 십진분류로 돼 있어서 112를 할당했죠 그런 다음
세미콜론이 있어요
그게 값을 배정하는 거죠
아발루 할당과 밀접한 관련이 있는 변수를 초기화하고 있어요
변수를 입체적으로 초기화해 그 변수에 대한 초기
값을 갖는 거죠
네 변수를 초기화하는 게 중요해요 데이터도 없고 관련된
값도 없다면 프로그램에 문제가 생길
수 있거든요
초기화에 참여하고 싶을 거예요
초기화는 선언의 일부가 될 수 있지만 그럴
필요는 없죠
네 기본적으로 여러분이 변수를 선언했을 때 일어나는
일은 이건 내 변수 이름이에요 이건 내 변수 형식이죠 등호 연산자를
바로 쓸 수 있습니다 그런 다음 변수의 값을 입력하고
세미콜론을 입력합니다
예를 들어 인덱스는 21이죠
네 네 이 경우에는 type int라는 변수를
선언하고 21이라는 값을 부여합니다 첫 번째 값을 초기화합니다
이것이 초기화입니다
예퀄 32의 또 다른 예는 Z=14죠
네 같은 선에서 할 수 있어요 컴파일러가 동일한 형식의 z =
94를 초기화하는 것은 괜찮습니다 그러나 이 경우에는 두 변수를 모두 초기화하는
것이 아닙니다
Z만 초기화할 거예요
X가 초기화 안 됐어요
Z는 94가 되고 x는 값을 갖지 않죠
그게 중요해요
코드 전체에 걸쳐 초기화된 변수를
세분화할 거예요
네 그럼 코드 블록에서 간단한 프로젝트를 불러오죠 이 변수들을
어떻게 선언하는지 보여드리겠습니다 이런
예제들처럼요
여기 코드 블록이 있어요
이전 예제 프로그램에서 많이 보셨을 거예요
맨 위에 1줄부터 6줄까지 여러 줄로
댓글이 달렸어요
include directiveon 라인 8이 있어요 표준 라이브러리를
사용하겠다고 하는 거죠
10번 라인에는 프로그램 진입점인
메인 루틴이 있어요
우리 프로그램은 아무것도 안 해요
네 네 프로그램을 흥미롭게 하려면 변수를
생성하고 사용해야 할 텐데요
여러 가지 방법이 있어요
네 현재로선 모든 데이터 유형을 알지 못해 다양한
유형의 데이터를 만들 순 없죠
네 int 예제를 봤었죠 다시 한 번 강조하자면 여러분이 해야 할 일은 데이터
형식을 지정하는 것뿐입니다
네 그렇죠 int를 입력하면 인텔리전스를 입력하면 인텔리전스가
통합된 개발 환경에서 int로 정의할 수 있는 모든
것들을 보여줍니다
I를 완성하죠
네 f를 입력하면 다른 게 완료된 걸 볼 수 있어요
흐름도 데이터 타입 중 하나죠
하지만 변수를 선언하려면 데이터 타입이 유효한 이름이죠
명심해요, 유효한 이름은 알파벳이나
밑줄로 시작해요 숫자로는 시작을 못 해요
여기에 int Jason이라고 적고요.
그런 다음 세미콜론토로 선언을 끝내요
이렇게 변수를 선언하죠
네 이제 해당 변수를 초기화하려면 선언에서
해야 하듯이요 등호 연산자를 써서 올바른 데이터 유형을
명시하세요
int는 10진수죠 소이는 숫자를 말해야 해요
네 단어를 지정하지 않아서 단어를 못 넣겠어요 제가 숫자를 명시하면
컴파일러가 되죠
데이터 유형에 근거해 is스피시화하고
세미콜론을 입력하면 돼요
세미콜론과 문장을 기억하세요
같은 라인에서 초기화와 declringa 변수를 선언하죠
나중에 변경 가능한 가치도 할당할 수 있어요
그냥 선언할 수 있죠 그리고 초기화할 수 있어요
5와 같다고 하고 다른 줄에서 덮어쓰기 할게요
Jason = 8이라고 할 수 있어요.
값을 바꿀 수 있는 변수를 바꾸고 싶어요
여기서 데이터 사용 연산자를 할당하고 있는데요
14번째 줄에 데이터 타입이 없는 게 보이시죠
변수에 접근하려면 수정할
이름을 지정해야 해요
오퍼레이터 얘길 할 때 이 동일한 운영에
대해 좀 더 얘기하죠
이게 변수의 기본이에요
메모리에 저장된 프로그램의 데이터를 나타냅니다. 명명 규칙을
이용해서 변수를 통해 접근하고 데이터 타입과 할당된 값으로 프로그램에서
초기화하고 선언하죠.
고마워요