참고로 Koan이란 공안(公案)의 일본식 발음을 영어로 표기한 것이다.
불교에서 온 영어로 뛰어난 선(禪) 수행자의 깨달음이나 인연 또는 언행이다.
한국어로는 공안보다는 간화선(看話禪)이라는 용어를 찾아보면 이해하는데 도움이 된다.
Kotlin (v1.4.21): kotlinlang.org/
Play Kotlin Language > Koans: play.kotlinlang.org/koans/overview
Educational Products 2020.3 > Learner Start Guide (2020-12-11)
EduTools 1.6M, 4.4.6, 4.4-2020.3-517, 2020-12-25
설치 후에는 Welcome 화면에 My Courses 라는 기능이 추가된다.
Start New Course 버튼을 누르면 여러 코스를 선택할 수 있다. Community Courses를 선택한다.
로그인을 하면 여러 장치간 단계를 동기화를 할 수 있다고 한다.
Log in 버튼을 누르면 stepik.org/ 을 통해 회원가입 및 인증 완료를 할 수 이싿.
인증완료는 로컬서버를 통해 콜백을 주는 것으로 추측된다.
해당 포트를 확인해보면 idea라는 프로세스가 포트를 LISTEN 하고 있는 것을 확인할 수 있다.
sudo lsof -i -n -P | grep 63342
인텔리제이상에는 로그인하라는 메시지가 사라지는데 어떤 것으로 되었는지 보이지는 않는다.
Kotlin Koans의 첫 과제는 함수완성이다.
문제를 해결하는데 도움이되는 function syntax 등의 링크를 살펴 볼 수 있다.
일단 답은 맞았지만 리팩토링이 더 가능하다.
expression body라는 것으로 바꿀 수 있기 때문이다.
Peek Solution... 을 통해 모범답안을 볼 수 있다.
Level 1을 마치면 아래와 같은 동영상이 나온다.
43개의 task 중 22개를 했다.
Collection Aggregate Operations에 대해 하는 과정이 막혔다.
예상은 했지만 flatMap을 사용하는 것이 모범답안으로 나와 있었다.
일단은 getProductWithMaxPrice 라는 extension function을 도입해서 map으로 구현하도록 했는데 flatMap이 더 유연한 것 같다.
또한 callable reference를 사용하라고 하는데 lambda를 사용할 경우 서로 다른 it이 서로 모호해질 수 있는데 이런 경우에 유용하다.
24/43 완료 (55.8%)
32/43 완료 (74.4%)