본문 바로가기
Flutter/Dart의 정석

[Dart의 정석] Ch2.2. 데이터(data), 값(value), 타입(types)

by Couldi 2022. 5. 11.
반응형

22. 05. 11.

- Could -

이 글은 다트를 공부하고자 하는 모든 사람들을 위한 글이 아니다. 다트라는 언어의 전문가가 되기를 위한 사람들을 위한 글이기 때문에, 프로그래밍을 처음 공부하는 사람들이 보기에는 부적절할 수 있다. 프로그래밍의 초심자라면 본 블로그에 'Dart 입문'을 살펴보거나, 다른 컨텐츠를 찾아 공부하는 편이 더 나을 것이다.
가능한 이해하기 쉽고 일목요연하게 정리하고자 하지만, 다소 설명이 난해하거나 이해하기 어려울 수 있다. 그런 경우 댓글을 통해 궁금한 사항을 남겨두면 필자가 언젠가 보고 좀 더 상세한 설명을 덧붙일 수 있으니 많은 댓글을 바란다.
추가적으로 이 글은 Flutter(플러터)에 대해 다루지 않는다. Dart에 대한 내용만을 다룰 예정이다.

https://couldi.tistory.com/14

 

[Dart] 3. 데이터, 값, 타입

21. 10. 6. - Could - 이 글은 프로그래밍 입문을 Flutter 때문에 Dart로 시작하는 사람들을 위한 글입니다. 프로그래밍 언어가 가지고 있는 기본 컨셉 자체를 Dart라는 언어를 통해 설명하고, 많은 분들이

couldi.tistory.com

간만에 글을 작성하다보니 결국 위 링크글의 재탕이 되었다. 나 스스로도 이 부분을 알아야 상세한 설명이 가능하다는 생각에는 변함없는 모양이다. 이런 기초적인 내용을 설명 안하고 작성했던 초고도 있지만, 결국은 다시 설명해보기로 한다. 이 글 다음으로는 변수, 선언, 초기화&할당을 다루고, 이후 String의 자세한 내용, Operators(연산자) 순으로 작성할 예정이다.

1. 데이터(Data)

각 학문마다 데이터라는 단어를 받아들이는 의미는 조금씩 다르지만, 적어도 프로그래밍에서 다루는 데이터는 컴퓨터가 정보를 처리하는 기본단위이다. 컴퓨터에서 다뤄지는 모든 것들이 데이터라고 봐도 좋다. 이미지, 영상, 텍스트, 색상 등 모든 것이 데이터이다. 프로그래밍은 이 데이터들을 어떻게 처리하여 어떻게 보여주고 어떻게 활용할지에 대한 내용을 다루는 거라 보면 된다. 이 데이터들을 다루기 위해, 컴퓨터에게 명령을 내려야하고, 이때 사용되는 것이 프로그래밍 언어이다. 프로그래밍 언어 별로 특징과 활용처가 다르지만, 우리는 일단 Dart라는 녀석에만 집중하도록 하자.

(Dart가 데이터를 분류하고 처리하는 방식은 일반적인 프로그래밍 언어와 크게 다르지 않다. C와 Java와 매우 유사하며, 한번 익혀두면 어떤 프로그래밍 언어에도 대부분 적용되는 내용이다.)

 

데이터에 대해 알아야할 가장 기본적인 사실은 '데이터는 타입(type)과 값(value)을 가진다.'는 것이다.

 

타입(type)은 '자료형'이라고 많이 번역된다. 가능하면 두 단어 모두 기억했으면 하고, 여기서는 편의상 '타입'이라고 서술한다. 항상 이 타입을 설명할 때 드는 예시가 포켓몬이다. 불타입, 물타입, 풀타입 등으로 분류되는 포켓몬 처럼, 데이터도 여러 타입을 가진다. 

 

값(value)는 데이터가 가지는 값을 의미한다. 데이터의 실체가 되는 부분이다.

 


2. 데이터 타입(Type)

https://dart.dev/guides/language/language-tour#built-in-types

 

A tour of the Dart language

A tour of all the major Dart language features.

dart.dev

위 링크는 Dart가 가지는 Built-in 타입들이다. Built-in이라는 용어 그대로 Dart라는 언어가 기본적으로 제공하는 타입이다.

여기 있는 타입의 대부분을 알아야하지만, 한번에 모두 알 필요는 없다. Numbers, Strings, Booleans 는 그 중 설명이 제일 쉬우니 지금 알아보고, Lists, Sets, Maps는 나중에 알아보자. (Runes와 Symbols는 다루지 않을 예정이다. 일상적인 프로그래밍시 다룰 일이 거진 없다.) null의 경우는 매우 특별하다. 이 null을 Dart가 어떻게 다루는지 추후 null-safety라는 개념을 통해 알아볼텐데, 그 전까지는 매우 조심해야되는 타입이라고만 알아두자.

 

Numbers(int, double) - 숫자형

숫자를 의미한다. 숫자형에는 int와 double 두가지 타입이 있고, int는 정수형, double은 실수형을 의미한다. 숫자형 안에 타입을 int와 double 말고도 세부적인 타입으로 나누는 언어도 있고, 그냥 Number로 뭉뚱그려 관리하는 언어도 있다.  Dart는 숫자형 데이터를 int형과 double형으로 나누어 다룬다.

# int
10
2

# double
1.23
5.77
8.10
2.0

Strings(string) - 문자형

Strings는 엄밀히 말하면 문자열형이다. 하지만 그냥 뭉뚱그려 문자형이라고 하겠다. 세부적으로 나누고 싶다면 C를 배우는 걸 추천한다.

# String
'문자열은 이렇게 표시한다'
"쌍따옴표를 사용해도 된다."​

Booleans(bool) - 진리형

참, 거짓을 나타내는 자료형이다.

# bool
true
false

3. 데이터 값(Value)

앞서 설명한데로 데이터의 실체가 되는 부분이다.


4. 예제

다음 데이터들의 형(type)과 값(value)을 분류해보자.

 

'Harry'
'101'
10
3.14
true
10 < 7

 

코드블록 기능이 좋아 색깔로 힌트를 주고 있다. 답은 아래와 같다.

 

'Harry' // 자료형(type) - 문자열(String), 값(Value) - Harry
'101'  // 자료형(type) - 문자열(String), 값(Value) - 101
10  // 자료형(type) - 숫자형(int), 값(Value) - 10
3.14 // 자료형(type) - 숫자형(double), 값(Value) - 3.14
true // 자료형(type) - 진리형(bool), 값(Value) - true
10 < 7 // 해설 참조

 

마지막 10 < 7 의 경우는 아직 다루지 않은 연산자에 대한 내용을 알아야 한다. 하지만 상식적으로 10이 7보다 작은 수는 아니지 않는가? 그래서 코드라인 전체로 보면 해당 라인의 자료형은 bool 타입, 값은 false이다. 각 숫자 단위로 보자면 숫자들이므로 숫자형 중에 정수형인 int 타입이고, 값은 각각 10과 7 이라 할수있다. < 는 비교연산자로 추후 다룰 예정이다.

반응형

댓글