강의/computer science

[ComputerScience] 프로그래밍 언어 개요(변수, 데이터타입, 범위, 연산자)

하기싫지만어떡해해야지 2024. 9. 6. 13:39

이 게시글은

서울대학교 데이터사이언스 대학원

조요한 교수님의

데이터사이언스를 응용을 위한 컴퓨팅

강의를 학습 목적으로 재구성하였습니다.


Variables(변수)

변수란 identifier를 symbolic한

어떤 것으로 만드는 것이다

 

쉽게 말하면,

프로그래밍을 하면서 저장한 어떤 데이터를

찾기 쉽게 이름을 붙여준 것이다

 

이게 무슨 말이냐하면

예전에 변수가 없었을 때에는

개발자가 특정 데이터를 사용하려고 할 때

해당 데이터가 담겨있는 메모리 위치를

하나하나 기억해서 작성하곤 했는데,

찾고자하는 그 데이터의 주소에

symbolic한 이름을 붙여줌으로써

그 이름만을 가지고 tracking을 가능하게

해줬다는 의미이다

 

이러한 변수의 등장으로

코드의 가독성이 높아졌으며

개발자가 편하게 프로그래밍을

할 수 있게 되었다

 

이러한 변수에는

알맞은 데이터 타입이 필요하다


Data Types(데이터 타입)

 

데이터타입은 결국 비트패턴과

연산자를 어떻게 해석할지

알려주는 것이다

 

즉, 들어있는 변수가 같아도

데이터 타입이 무엇인지에 따라서

어떻게 해석하는지가 달라진다

 

이게 무슨말이냐 하면,,

어떤 변수에 같은 비트인

0110이 똑같이 들어있어도

만약 그 변수의 타입이

정수형인 Integer라면

0110은 102를 나타내지만,

만약 이 비트가 ASCII를 나타낸다면

0110은 영어 문자 'f'를 나타내게 된다

 

연산자의 경우도,

int + int와

float + float와

string + string의

연산은

같은 + 연산이라고 하더라도

모두 다르다

 

파이썬

의 경우는

이러한 데이터 타입은

변수를 생성할 때

데이터 타입을 지정해주지 않아도

자동으로 할당된다

또한, 이렇게 자동으로 지정된

데이터 타입은 중간에

바꿀 수 도 있는데,

어떤 변수를

처음에는 Int였다가

나중에 string으로

바꿀 수도 있다는 것이다

 

이러한 하나의 고정된

데이터 타입을 갖지 않는 것을

Mutable하다고 말한다

 

C언어

의 경우는

개발자가 변수를 설정할 때

그 변수의 데이터 타입을

하나하나 지정해줘야하며,

파이썬처럼 어떤 변수의 데이터 타입을

중간에 변형할 수 없다

이를 Immutable하다고 한다


Scopes(범위)

변수의 scope는

해당 변수가 접근 가능한 부분을 뜻한다

 

만약 어떤 함수 안에 변수를 정의했다면

그 변수는 그 함수 안에서만

접근할 수 있다

 

그렇다면 그 변수의 scope는

그 함수가 되는 것이다

 

이러한 scope는

그 변수가 어디에 선언이 되어있고,

어디에서 사용이 가능한지에 따라

인터프리터 혹은 컴파일러가

자동으로 추론한다


Operations(연산자)

 

우리가 흔히 아는

프로그래밍 언어에서 쓰이는

+, -, * 등등

이러한 것들을 연산자라고 부른다

 

increment(++)와

decrement(--)는

c언어에만 있는 연산자이고

이게 변수의 앞에 쓰이는지

뒤에 쓰이는지에 따라 달라진다

 

x++이라고 사용한 경우,

++가 x보다 뒤에 있으므로

x에 아무런 연산을 하지 않고

그대로 사용한 뒤, ++로 1을 증가시켜준다

 

++x라고 사용한 경우는,

x보다 ++가 앞에 있으므로

x에 먼저 1을 더한 다음,

x를 이용한 작업을 해준다

 

그냥 보이는 순서대로

이해하면 편할 것 같다