![image.png]
(
What Will I Learn?
- Scala가 무엇인지 알아볼 것입니다!
- 간단한 Scala 문법에 대해 배울 것입니다.
- Scastie사이트를 통해 간단한 Scala 코드를 실행해볼 것입니다.
Requirements
- 인터넷에 접속할 수 있는 디바이스
- 그리고 Scala로 여행을 떠날 기대감!
Difficulty
- Basic / Intermediate(이라곤 적었지만 사실 조금 어려운듯하기도?)
Scala로 여행을 떠나자 1:intro
저는 앞으로 이 시리즈에서 Scala라는 언어에 대해 다룰 예정입니다. 제가 이 시리즈를 쓰게 된 이유는 저 또한 Scala라는 언어를 통해서 함수형 프로그래밍을 익히고 다른 분들과 같이 공부를 하려고 튜토리얼을 쓰게 되었습니다. 혹 이 시리즈를 읽으시는 분들중에 Java에 익숙하신 분들이라면 Scala라는 언어에 더욱 빨리 익숙해지실 것이라 확신하고, Java에 익숙하지 않으시지만 함수형 프로그래밍과 객체지향 프로그래밍에 관심이 있으셨던 분들이라면 환영합니다!
그리고, 프로그래밍이라는 내용을 전혀 듣도보도못한 분들도 계실거라고 생각합니다. 그런분들을 위해 저는 별도의 설치없이 간단히 회원가입만 하면 Scala로 무언가를 만들 수 있는 Scastie라는 사이트를 통해 Scala의 정말 기초적인 특징부터 나중에는 다른 프로그램을 이용해서(라이브러리를 사용해서) 새로운 멋진 프로그램을 만드는 것까지 다룰 예정입니다.
여행이란 비행기가 연착 되기도 하고 가끔 숙소를 찾아갈때 헤맬 때도 있지만 같이 갈 친구가 있다면 그 또한 하나의 추억으로 남게 됩니다. 제가 미천하긴 하지만 Scala여행의 동반자가 되어드리도록 노력해보겠습니다~
왜 Scala 인가?(Why Scala?)
- The RedMonk Programming Language Rankings: June 2017
http://redmonk.com/sogrady/2017/06/08/language-rankings-6-17/
개발자 커뮤니티(Stack overflow, github)등에서 종합하여 프로그래밍 언어 랭킹을 나타낸 곳에서 12위를 기록한 언어입니다. - 기존에 Java에서 쓰던 Java Runtime Environment(JRE)에서 실행가능한 언어여서 Java이용자들은 별도의 프로그램을 깔지 않아도 사용할 수 있습니다.
- 병렬 프로그래밍이 중요해지면서 변수를 변경하는 것이 아닌 변수를 고정시키고 함수의 동작으로만 프로그램을 구현할 수 있도록(immutability라는 특징인데 이것이 매우 중요한 Scala의 특징입니다!) 만들 수 있는 함수형 프로그래밍이 중요해지고 있는데, Scala는 함수형 언어입니다.
- 쉽게 말하면, 좋은 건 다 섞은 언어라고 보시면 됩니다~
Scala 환경 설정하기 (Set-up Scala environment)
저처럼 별도의 IDE나 에디터를 사용할 수 없는 분들(나는 뭔지 모르겠다! 쉽게 시작하고 싶다, 귀찮다 등등등) 을 위해 Scastie라는 사이트를 사용할 것입니다.
다만 개인 취향을 고려하여 IDE,Texteditor 사용법을 링크로 추가합니다.(영어입니다.)
IDE(Intellij) :
http://docs.scala-lang.org/getting-started-intellij-track/getting-started-with-scala-in-intellij.htmltexteditor(Atom ...etc) :
http://docs.scala-lang.org/getting-started-sbt-track/getting-started-with-scala-and-sbt-on-the-command-line.html쉽게 쉽게 하자 :
https://scastie.scala-lang.org <- Scastie
Scastie 사이트에 접속합니다.
Login버튼을 누릅니다.
엥, 사이트 로고가 바뀌었습니다.(피싱 사이트인가??? 하시는 분들이 있을 수도 있으실텐데요 ㅋㅋㅋ)
Github라는 사이트 (페이스북처럼 로그인 하는 것입니다.)에 회원가입을 안하시는 분들은 회원 가입을 하시고 다시 로그인을 하시면 됩니다.
위 이미지 처럼 오른쪽 상단에 자신의 아이디가 나오면 설정을 끝내셨습니다!
(정말 간단하지 않나요? ㅋㅋㅋㅋㅋ)
println() 함수
println함수는 화면에 Expressions, Val, 글자 들을 출력할 수 있는 기본 제공되는 함수입니다.
사용법은 아래와 같습니다.
println(1) // 1
println(1 + 1) // 1+1 = 2
println("Steemian") // Steemian!
println("Hello," + " Utopian") // Hello, Utopian
Run을 눌러서 위와 같은 화면이 나오면 성공하셨습니다~
축하드립니다!
Expressions
Scala에서는 다음과 같은 계산식을 사용할 수 있습니다.
1 + 1
2 - 1
4 / 2
4 * 2
5 % 2
Values
Value는 중요합니다. Scala의 immutability(불변성?) 특징 때문에 어떠한 값이 한번 써지고 나면 더이상 변경되지 않는 특징을 가지고 있습니다.
val 이라는 키워드를 사용해 지정합니다.
다음과 같이 처음 설정한 이후에 다시 값을 지정하면 오류가 발생하게 됩니다.
val x = 1 + 1
x = 2 + 1 // Error
println(x)
아래처럼 단 한번만 값을 지정해야 된다는것! 명심하세요!
val x = 1 + 1
val y = 3
println(x) // 2
println(y) // 3
또한 한가지 더 알아두셔야 될 것은 위와 같이 Type이 알아서 설정되기도 하지만 필요에 따라 아래와 같이 타입을 지정할 수도 있습니다.
val x: Int = 1 + 1
println(x) // 2
Variables
위에서 Val은 변경이 불가능 했지만 경우에 따라 값을 여러번 변경해야될 필요가 있는 경우에 사용합니다!, 하지만 함수형 프로그래밍에서 값 모두를 var을 사용해서 프로그래밍하게 된다면 바람직하지 않은 프로그래밍이라고 볼 수 있기 때문에 꼭 사용해야 하는 것인지 심사숙고 하셔야 됩니다.
var 라는 키워드를 사용해서 지정합니다.
var x = 4 - 2
x = 3
println(x * x) // 9
또한 위에서 value에서 타입을 지정했던 것 처럼 타입을 지정해줄 수 있습니다.
var x: Int = 1 + 1
println(x) // 2
처음에 값을 빈채로 하고 싶다면
var leastFavoriteDonut: String = _
leastFavoriteDonut = "Plain Donut"
Scala에서 지원되는 타입들
val age: Int = 22
val ageInSecond: Long = 693792000L
val mySteemPower: Short = 8
val priceOfMyAsset: Double = 20.84
val SteempriceInUSD: Float = 3.84f
val myDream: String = "Gamer with food"
val SteemByte: Byte = 0xa
val SteemFirstLetter: Char = 'S'
val nothing: Unit = ()
다음 시간에는
Class,Method 등을 배워보겠습니다.
참고문헌(기타 자료가 필요하신 분들도 참조하시면 좋습니다.)
Posted on Utopian.io - Rewarding Open Source Contributors