개요
코딩 테스트에서는 코틀린을 선택할 때 가장 대표적으로 아래 두가지 형태로 정답을 작성하도록 합니다.
- Solution Class 안에 solution function이 있는 형태
class Solution {
fun solution(string: String): String {
return string
}
}
- solution function만 있는 형태
fun solution(string: String): String {
return string
}
이런 두 경우 Intellij에서 코딩 테스트를 풀기위한 환경을 어떻게 세팅하는지 살펴봅시다.
기초 지식
- 먼저 코틀린 내부에서는 하나의 파일 안에 여러개의 클래스(class)와 함수(fun)가 최상위 계층에 작성될 수 있다는 것을 알아야 합니다. 이것이 어떻게 동작하는지는 이 글에서는 다루지 않겠습니다.
- fun main() 은 수행 가능한 블록입니다. fun main을 선언할 시 아래 그림1에서 볼 수 있듯이 왼쪽에 재생 버튼이 표시됩니다. 재생 버튼을 누른 후 Run 작업을 하면, fun main 블록 안의 코드가 돌아갑니다.
*Java에서의 main function과 같은 블록입니다.
코드 예시
fun main() {
val solutionTest = SolutionTest()
solutionTest.solution()
}
class SolutionTest {
fun solution() {
printCar()
printABC()
printBanana()
}
}
fun printCar() {
println("car")
}
fun printBanana() {
println("banana")
}
fun printABC() {
println("abc")
}
이 두가지 기초 지식을 바탕으로, Intellij는 작성한 코드를 돌리기 위한 방법을 제공합니다. 그 중 가장 많이 사용되는 두가지에 대해 살펴봅시다. 하나는 Class를 이용하여 코드를 돌리는 방식이고 다른 하나는 Scratch 파일을 이용하여 코드를 돌리는 방식입니다.
Class
class를 활용하는 방법은 파일 내에 class를 생성한 후 해당 파일 내부에서 기초 지식에 언급된 main function을 만들어 돌리는 것입니다. main function은 class내부에서 코드를 돌릴 수 있게 도와줍니다. 예시는 다음과 같습니다.
코드
Solution.kt 안에 작성
fun main() {
val solutionClass = Solution()
val answer = solutionClass.solution("hello algorithm")
println(answer)
}
class Solution {
fun solution(string: String): String {
return string
}
}
Run Code
1. 위의 코드를 다음과 같이 작성하여 붙여넣기 한 후 아래 빨간색 네모 상자안의 재생버튼 클릭
2. Run SolutionKt를 수행하면 다음과 같이 console에 출력됩니다.
Scratch
Scratch란 코드를 실행하기 위한 작업 수행 공간입니다. Scratch에서는 최상단에 돌리려는 코드의 내용을 작성하면 됩니다. Class와는 다르게 그 자체가 실행 파일이기 때문에 main function으로 감쌀 필요가 없습니다. 단, Scratch는 디버깅을 제공하지 않아 코드에 오류가 생길 경우 찾기 어렵습니다.
코드
val solutionClass = Solution()
val answer = solutionClass.solution("hello algorithm")
println(answer)
class Solution {
fun solution(string: String): String {
return string
}
}
Scratch 파일 생성
1. Scratch 파일을 생성하기 위해서는 폴더에 대고 오른쪽 마우스 클릭 후 New버튼을 누른 후 Scratch File을 누릅니다.
2. kotlin을 찾아 Kotlin을 누릅니다. *키보드로 입력하면 찾아집니다.
3. 다음과 같이 생성됩니다.
코드 작성 및 실행
코드를 작성하고 실행하는 방법은 간단합니다. 코드를 작성한 후 왼쪽 위의 재생 버튼을 누르면 코드가 실행되어 오른쪽에 결과값이 출력됩니다.
특징
- 스크래치 파일에는 클래스 fun 모두 들어갈 수 있으며 Class와 다르게 fun main을 작성할 필요 없이 가장 바깥에 있는 코드를 돌려줍니다.
- main으로 감싸진 함수를 바깥에서 main()함수를 호출함으로써 수행해주는 방식도 가능합니다. 하지만, scratch는 그 자체로 실행 파일이기 때문에 Class와 다르게 main 옆에 재생 버튼이 표시되지는 않습니다.
지금까지 Intellij 상에서 Kotlin 코드를 돌리는 두가지 방법에 대해 살펴보았습니다. 프레임웍을 다룬다면 더욱 깊은 내용이 있지만, 코딩 테스트를 풀기위해서는 위 두가지 방식에 대한 이해만으로 충분합니다.