CODING/강의노트-부스트코스-코틀린

[부스트코스]📱코틀린 1-3 안녕 세상아!

codingTrip 2021. 1. 14. 18:24

안녕하세요? codingTrip입니다.

오늘은 "코틀린 프로그래밍 1/2(함수편)"

1단원 코틀린의 기본을 익혀요!

1장. 코틀린이란 무엇일까?

1-3 안녕 세상아!

시작하겠습니다.

 

🔧 설정하기

먼저 우리가 사용하기 편하도록 환경을 설정해보겠습니다.

File-Settings를 들어갑니다.

font를 검색하고 Apperarance탭에서 테마를 Intellij로 선택합니다.

(Dracula로 선택하셔도 무방합니다.)

General탭에서 Change font size with Ctrl+Mouse Wheel을 선택합니다.

이를 선택하면 Ctrl버튼을 누른 상태로 마우스 휠을 올리고, 내리면 글자 크기가 변합니다.

Font탭에서 FontD2Coding으로 지정합니다.
D2Coding은 네이버에서 만든 코딩용 파일입니다.

저는 미리 다운을 받아서 위처럼 리스트에 보이는데요.

만약 다운 받지 않으신 분들을 아래의 링크를 통해 다운받으시고, 글꼴을 설치하시면 됩니다.

https://d2.naver.com/news/6492529

github.com/naver/d2codingfont/releases

 

Releases · naver/d2codingfont

D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on GitHub.

github.com

첫 번째 사이트는 부스트코스에서 링크로 제공된 사이트이고요.

두 번째 사이트는 첫 번째 사이트에서 링크를 타고 들어간 깃허브 사이트입니다.

쭉 내려가시다보면 D2Coding-Ver...가 보이는데요.

저는 최신버전인 1.3.2를 선택해서 다운받겠습니다.

 

zip파일을 다운로드했으니 압축을 풀어줘야겠죠?

평소에 쓰시는 알집, 반디집 등의 프로그램으로 압축을 풀어주세요.

압축을 풀어주시면 이렇게 폴더가 나오고요.

저는 모든 폴더의 ttf 파일들을 열어서 

위에 형광펜으로 표시한 설치버튼을 클릭했습니다.

혹시 바로 설치된 글꼴이 리스트에 보이지 않는 경우에는 

Intellij 프로그램을 다시 껐다 켜주세요.

 

Size에서 적당한 크기를 지정합니다.

마지막에 다 설정하고나서 오른쪽 아래에 있는 OK버튼을 꼭! 눌러주세요.

012

ctrl+마우스 휠을 올렸다 내렸다 하면 폰트 크기가 변동되는 것을 확인 하실 수 있습니다.

 

💻 코딩하기

▷ Hello Kotlin 실행하기

우리 지난 시간에 HelloKotlin!을 출력했었죠?

fun main() {
    println("HelloKotlin!")
}

 

이 코드를 실행하기 위해서는 run을 해야합니다.
최초에는 Alt+Shift+F10으로 실행해야하고,

그 다음부터는 Shift+F10으로 실행합니다.


오른쪽 상단에 있는 초록색 play버튼으로도 실행가능합니다. 


Alt+4(Mac OS는 Cmd + 4) 를 누르면 Run창이 보입니다.

오른쪽에 있는 ⚙설정아이콘을 눌러서 이 창의 위치를 변경할 수 있습니다.
왼쪽 위,아래, 오른쪽 위,아래, 밑 등 설정가능합니다.

 

 Hello Kotlin 분석하기

이 사진을 보시면 콘솔창에 HelloKotlin!이라고 출력된 것을 볼 수 있습니다.
기본적으로 코틀린은 JVM에서 동작하는 것이기 떄문에

중간코드가 자바 형태의 중간코드로 바뀝니다.
자바는 클래스 내에 main으로 해서 출력하는데요.
여기에서는 클래스가 없고 함수 하나만 존재합니다.
fun은 function을 정의하는 것입니다.

 

Tools->Kotlin->Show Kotlin Bytecode을 선택합니다.

현재 이 코틀린 코드가 JVM상에서 동작하기 위해 어떻게 중간코드가 있는지 알 수 있습니다.
형광펜으로 표시된 Decompile 버튼을 클릭하면


우리가 만든 파일이 실제로는 이런 형태의 Java 파일로 사용되서 보여주는 것을 볼 수 있습니다.
자바 코드는 클래스가 반드시 필요합니다.
클래스로 파일을 정의하고, 하나의 멤버 메소드 존재합니다.
자바를 모르시면 무리하여 읽지 않으셔도 됩니다.
HelloKotlin! String으로 정의되고 표준 출력 콘솔로 출력합니다. 

 

fun main() {
    println("HelloKotlin!")
}

 

코틀린은 자바코드에 비해 코드가 훨씬 간결하죠?
물론 코틀린은 다양한 플랫폼 상에서 동작하기 때문에
우리가 배우는 문법상의 내용은 플랫폼과는 상관 없이 작성 가능합니다.
JVM, JS에 따라서 실행될 환경이 바뀌기 때문에

내부에 어떤 API를 호출하는지는 아래의 방법으로 알 수 있습니다.
코틀린 코드에서 println에 커서를 두고 Ctrl+B를 하면 Console 라이브러리로 들어갑니다.
이 라이브러리를 보면 System.out.println를 호출하고 있습니다.

System.out.println에서 println에 커서를 두고 Ctrl+B를 다시 누르면 Java 코드를 볼 수 있습니다.
현재 우리는 JVM을 선택해서 자바가 보이고, 이 플랫폼과는 무관한 코틀린이라는 언어를 사용하고 있습니다.

자, 그러면
println 이렇게 여러가지 추가적인 API를 쓸 수 있겠죠?
우리는 여러 개의 API를 쓸 수 있고
Shift+F10을 눌러서 빠르게 확인 가능합니다.

maina 알아보
다음은 인자가 있는 maina를 살펴보겠습니다.

fun main(args: Array<String>) {
    
}


args:Array<String>
maina는 Array 즉, 배열 형식, String형입니다. 자세한 것을 차차 배우게 될 것입니다.

System.out.println 프린트문으로 args를 호출합니다.
배열이기 때문에 args[0]로 접근할 수 있습니다. 두 번째 인자는 args[1]입니다.

참고로 컴퓨터는 보통 1부터 시작하는 것이 아니라 0부터 시작합니다.

그러나, 만약 인자가 없는 상태에서 그냥 실행하면 Exception이 나옵니다.
인자가 정의되어 있지 않다OutOfBoundsException이 나오게 됩니다.

그렇다면 어떻게 인자를 정의할 수 있을까요?

Edit Configurations은 실행에 대한 설정입니다. 이 곳에서 인자를 정의할 수 있습니다.

Program arguments에 인자를 넣습니다.
저는 arg1 arg2 3 codingTrip을 입력했습니다. 띄어쓰기로 구분하시면 됩니다.

그러면 인자가 정의 되었기 때문에 다시 실행하면
우리가 정의했던 1, 2번째인 arg1 arg2가 나왔습니다.

Ctrl+D: 줄 복사 단축키(줄간 복사)로 3, 4번째도 만듭니다.

 

"args[0] = ${args[0]}"
문자열 내에 변수를 표현하기 위해 ${식}과 같이 표현합니다.

실행을 다시 해보면 args[0]=arg1이 출력되는 것을 볼 수 있습니다.

 

💼 참고자료를 보며 정리하기

참고자료

1-3 안녕 세상아.pdf
0.33MB

main()은 최상위 함수로 실행 진입점이다.
- 자바와 같은 객체 지향 언어는 프로그램을 실행하기 위해 클래스와 그 안에 main() 필요
- 코틀린은 클래스 없이 main()함수 하나로 실행 가능

main을 타이핑하고 tab키를 누르면 자동으로 코드가 입력된답니다.
main은 인자가 없는 형태입니다.

최초에 실행할 때는 Alt+Shift+F10으로 실행해야하고,

그 다음부터는 Shift+F10으로 실행하는 것도 잊지 마세요.


코틀린 코드는 자바의 중간코드로 만들어져서 실행된다. 
클래스 이름은 예를 들어 HelloKt로 뒤에 Kt가 붙여져서 만들어집니다.
메인 메소드도 만들어집니다.


maina인 경우 
args: Array<String> 정의된 타입이 지정됩니다. 
대괄호[]를 사용해서 1,2,3...번째 인자를 가져올 수 있습니다. 
외부에서 미리 인자를 넣어줘야 합니다. 

 

 

오늘도 잘 따라오셨나요?

선생님께서 자바로는 어떻게 코드가 나오는지 설명해주시니까

코틀린은 정말 간단하구나라는 좋은 점을 느낄 수 있었어요.

물론 저는 자바를 조금 배웠지만

그래도 강의에서 짚어주시니

코틀린 코드의 간결함이 더욱 눈에 확 띄었달까요.

프린트문으로 출력만 하려해도 코틀린에 비해 자바는

그렇게 많은 코딩이 필요하답니다. ㅠㅠ

 

직접 동영상에서 어떻게 자바코드를 확인하는지 보여주시기도 했지만

자료화면을 통해서 다시 정리해주시니까 

더 머리에 쏙쏙 들어왔어요.

 

아쉬운 점은...

동영상 댓글에 어떤 분이 쓴 글 내용이기도 하지만... 저도 내심 느꼈던 거라...

동영상에 자막을 넣어주시면 좋겠어요.

청각장애인 학생들을 위해서도 있지만

저의 경우에도 선생님께서 해주시는 설명이

한 번 들었을 때는 생소해서

여러 번 듣게 되는 경우가 있거든요.

설명해주시는 용어도 처음 들었을 때는 어렵기도 하고요.

자막과 함께 공부하면 더 효과적일 것 같아요.

 

그럼 다음 시간에 만나요 ㅎㅅㅎ