본문 바로가기
Flutter/Dart 입문

[Dart] 1. 소개 그리고 공부준비

by Couldi 2021. 10. 3.
반응형

21. 10. 3.

- Could -

 

이 글은 프로그래밍 입문을 Flutter 때문에 Dart로 시작하는 사람들을 위한 글입니다.
프로그래밍 언어가 가지고 있는 기본 컨셉 자체를 Dart라는 언어를 통해 설명하고,
많은 분들이 Flutter를 위해 학습한다고 생각해, 추후 Flutter 학습에 도움이 되는 방향으로 작성되었습니다.

 

1. 프로그래밍이란?
2. 프로그래밍 언어
    - 저급언어와 고급언어
    - 언어의 문법
3. Dart는?
    - Dart와 Flutter의 관계
    - Dart doc
4. 개발환경 셋팅

 

1. 프로그래밍이란?

옥스포드 사전에 따르면 다음과 같다.

컴퓨터의 프로그램을 작성하는 일

 

일반적으로 프로그래밍이나 코딩이나 큰 구분 없이 사용되는 편이며, 프로그래밍을 코딩이라는 단어보다 좀 더 넓은 의미를 포함한다고들 생각하기에, 개발자들 중에는 '프로그래머(Programmer)'와 '코더(Coder)'를 구분지어 사용하는 사람들도 많다. (개발자들은 보통 전자는 개발자라는 직업의 영어표현으로, 후자는 개발자를 낮춰부르는 의미로 이해한다.)

 

어쨌든 프로그래밍은 컴퓨터 프로그램을 작성하는 일이다. 그렇다면 어떻게 프로그램을 작성하는가?

 

2. 프로그래밍 언어

프로그램을 작성하기 위해서는 프로그래밍 언어를 익혀야한다. 프로그래밍 언어는 프로그래밍을 하기 위한 언어로, 컴퓨터와 소통하기 위해 필요한 언어이다. 종류도 많고 쓰임새도 조금씩 다르다. C언어, C++, C#, JAVA, Python, JavaScript, Dart, Golang 등등 다양한 언어들이 있다.

이 언어들이 가지는 특징에 따라 구분하기도 하지만, 프로그래밍 입문자들에게 그런 구분은 중요치 않다.

중요한건 이 언어들이 비슷한 구조를 가지고 작동하고 있다는 사실이고, 한가지 언어를 익히면, 다른 언어를 익히는데 큰 어려움이 없다는 점이다.

 

최근에는 정규교육과정으로 Python도 들어오고, 취미로 코딩공부를 하는 사람들, 개발자 구인전쟁 등 다양한 IT 이슈들이 사회적으로 주목을 받으면서 프로그래밍 언어 이름을 적어도 한두번씩은 들어봤을 것이다. 게다가 프로그램을 만들기도, 배우기도 점점 쉬워지고 있다.

프로그래밍이 쉬워진다고?

이 이야기를 위해서는 잠깐 저급언어와 고급언어에 개념에 대해 집고 넘어가야 한다.

 

저급언어와 고급언어

먼저, 저급언어와 고급언어는 상대적인 개념이다. 컴퓨터가 이해하기 쉬운 언어는 저급언어, 사람이 이해하기 쉬운 언어는 고급언어라고 한다. 프로그래밍 언어들은 컴퓨터와 사람 사이 소통을 가능하게 해주는 '언어'이다. 사람들이 프로그래밍을 하기 쉬워졌다는 이야기는 사람들이 이해하기 쉬운 언어들이 발전했기 때문이고, 조금만 프로그래밍을 공부한다면 초보자들도 이게 무슨 코드인지 이해할 수 있을 정도로 사람의 언어에 가까워졌다.

 

그 원인으로는 좀 더 편하게 개발을 하고 싶다는 사람들의 욕구와 그 욕구의 실현을 뒷받침해주는 컴퓨팅 파워의 성장이 있었고, 이 두가지 원인은 앞으로도 프로그래밍을 더 쉽고 간편하게 만들어 나갈 것이라고 감히 예측한다.

 

언어의 문법

프로그래밍 언어는 결국 컴퓨터와 인간, 개발을 하는 인간과 인간간의 소통을 위한 언어이기 때문에 문법을 지켜 작성하는 것이 매우 중요하다. 프로그래밍 언어들은 기본적으로 같은 문법틀을 공유하지만, 언어의 종류에 따라 특정 문법들이 엄격하거나 느슨하게 적용되는 차이가 있다. 그렇기에 다양한 프로그래밍언어를 공부하다 보면, 엄격한 규칙에 숨막힐 때도, 규칙을 안지키고 대충 작성했는데 작동되서 놀라는 경우도 생긴다.

프로그래밍을 입문하는 입장에서 생각해야 되는건, 어떤 프로그래밍 언어를 잡고 공부하든, 문법자체에 큰 차이는 없다는 것이다.

 

3. Dart는?

그렇다면 Dart는 어떤 프로그래밍 언어일까? 그게 궁금하다면 아래 사이트를 참고해보기 바란다.

https://dart.dev/

 

Dart programming language

Dart is a client-optimized language for fast apps on any platform

dart.dev

생각보다 사이트가 담고 있는 방대한 양에 놀랄지도 모른다. 이 사이트는 Dart를 이용해 프로그래밍을 하다가 Dart의 문법이나 사용법이 궁금해질때 들어가서 찾아보는 용으로 사용하면 된다.

즐겨찾기에 등록해두시고, 필요할때마다 열어서 찾아보는 걸 추천한다.

 

위키를 찾아보면 Dart는 구글이 개발한 웹 프로그래밍 언어로 2011년에 공개되었고, JavaScript를 대체하겠다는 목표를 가지고 만들어졌다고 한다. 하지만 웹 프로그래밍에서 JavaScript는 대체불가라 할 정도로 공고하고, Dart는 배울 필요가 없는 언어로 여겨졌었다.

하지만 최근 Flutter의 인기에 힘입어 Dart라는 언어가 재조명 받기 시작했는데, Dart를 알아야 Flutter를 이용할 수 있기 때문이다.

 

Dart와 Flutter의 관계

Dart는 프로그래밍 언어이고, Flutter는 프레임워크이다. 이것과 비슷한 관계로 Python과 Django, Ruby와 Rails, JavaScript와 Express, Java와 Spring, Kotlin과 Android, Swift와 IOS 등등 뭐 그런것들이 있다.

프로그래밍 언어는 뭔지 대충 알겠는데, 프레임워크는 또 뭔가? 프레임워크는 사람들이 개발을 더 쉽게 할 수 있도록 만들어진 도구모음 같은 것이며, 프레임워크에서 제시하는 대로 코드를 작성하면 원하는 서비스를 만들어 나갈 수 있게 도와준다. 기존 프레임워크들은 웹이면 웹, 모바일이면 모바일로 나누어져 웹개발을 하기 위해서는 웹프레임워크를 이용해야하고, 앱개발을 위해서는 앱개발 프레임워크를 이용해야 했다. 각각 원하는 서비스의 형태에 따라 배워야될 언어와 프레임워크가 달라졌다.

하지만 크로스플랫폼(Cross Platform)으로 구분되기도 하는 Flutter는 하나의 코드 작성으로, Web, Android, IOS, desktop 모든 어플리케이션을 빌드 할 수 있다는 장점을 가지고 있다.

Dart를 배우면 Flutter를 사용할수 있고, Flutter를 배우면 모든 것이 가능해진다고 하니 매력적이지 않은가?

https://flutter.dev/

 

Beautiful native apps in record time

Flutter SDK is Google's UI toolkit for crafting beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.

flutter.dev

Flutter도 Dart와 마찬가지로 공식 홈페이지가 있고, 개발을 위해서는 뺀질나게 들어가야하는 사이트 중 하나다. 즐겨찾기에 이 역시 등록해두고, 공부할때 틈틈이 찾아보며 알아보자.

 

Flutter에 대한 자세한 내용은 Flutter에 관한 내용을 작성할 때 다루겠다. 

 

Dart doc

https://dart.dev/guides

 

Dart documentation

Learn to use the Dart language and libraries.

dart.dev

아까도 설명했듯, Dart의 모든 것은 이런 documentation안에 다 들어있다. 이런걸 doc이라고 부르며, Dart 공식문서라고도 부른다. 이런 공식문서를 살펴보는 것은 좋은 습관이나 양이 많고, 영어이고, 영어이기때문에 많이들 보기 꺼려하는 것도 사실이다. 하지만 요즘 구글번역기의 성능은 뛰어난 편이기에 이를 활용해서라도 필요할때마다 찾아보기를 권한다.

프로그래밍 입문을 위해 다룰 Dart의 기본 문법 내용들도 위 문서 중 일부만을 추려서, 입문자의 눈높이에 맞춰 설명하려 노력한 것이기 때문에, 설명의 미진한 부분이나 공부해도 풀리지 않는 의문은 저 공식문서를 통해 해결해보는 노력을 해보자.

(추후, Flutter를 공부할때도 마찬가지다. Flutter doc을 수시로 뒤져보면서 의문을 해결해야한다.)

 

4. 개발환경 셋팅

Dart를 공부하기 위해 별도로 개발환경을 셋팅하는건 바보같은 짓이다.

 

'언어'만을 배울때는 굳이 자신의 컴퓨터에 이것저것 설치할 필요가 없다. 본격적으로 개발을 시작할때 개발환경을 셋팅하도록 하고, Dart를 통해 프로그래밍의 기본적인 내용을 공부할때는 DartPad라는 것을 이용하자.

 

https://dartpad.dev/

 

DartPad

 

dartpad.dev

DartPad는 Dart를 체험해볼수 있는 놀이터라고 생각하면 된다. 실제 개발을 하는건 무리지만 (설령 가능하더라도 그런 바보같은 짓은 안하는게 정신건강에 이롭다.), 간단한 코드 테스트나 공부 목적으로는 최적이다.

 

 

반응형

'Flutter > Dart 입문' 카테고리의 다른 글

[Dart] 6. collection : Lists, Sets, Maps  (0) 2021.10.12
[Dart] 5. 조건문  (0) 2021.10.08
[Dart] 4. 변수와 연산  (0) 2021.10.07
[Dart] 3. 데이터, 값, 타입  (0) 2021.10.06
[Dart] 2. 화면에 글자 출력하기  (0) 2021.10.05

댓글