2주간 스칼라공부를 많이 했다. 스칼라는 무슨말을 하는지 뭔가 머리론 알겠는데 막상 사용하려면 손이 안떨어지는 느낌이다.
아직도 객체가 불변하다는것과 파라미터로 함수를 넘긴다는게 내겐 너무 낯설다.
사람의 머리는 재귀에 가깝다고 한다 하지만 나는 너무 for loop에 익숙해져 있어서 그런지 재귀적인 사고가 잘 되지 않는 것 같다.
그래도 최대한 var 나 for loop를 사용하지 않으려 노력하고 있다💦
스칼라 문법에 빨리 익숙해지기 위해 스칼라로 프로젝트 오일러를 몇 문제 풀어보기도 하고, Scala Exercises 를 풀거나 번역을 했는데,
가장 좋은 방법은 단언 Code Wars 문제를 푸는 것 이었다.
2주간 했던 학습 및 개발
Functional Programming in Scala 코세라 강의
스칼라 언어를 만든 마틴 오더스키 교수님이 만든 강좌로 수강을 시작했다.
지인과 같이 이 강의로 스칼라 스터디를 하고있는데 내용이 차근차근 하며 어렵지 않아서 잘 듣고 있다.
OOP언어만 알던 나에게 스칼라는 너무 신선해서 강의는 그야말로 놀라움의 연속이다. 덕분에 강의를 듣는 내내 지루할 틈이 없다ㅎㅎ
Code Wars 스칼라 풀이
처음엔 백준문제를 풀려고 했지만 어떠한 이유에서인지 백준은 스칼라를 지원하지 않았다. 그래서 대안으로 Code Wars를 선택했다.
Code Wars는 지원하는 언어도 다양하고 난이도가 나뉘어있어 수준에 맞는(?) 문제를 풀 수 있다.
또한 테스트 케이스를 작성해주며 문제 제출 시 오류가 난 테스트를 상세히 알려준다.
제출한 코드가 통과되면 타인이 작성한 코드 및 가장 많은 추천을 받은 릿코드를 볼 수 있다.
언어별로 있는 난이도는 기초, 랭크 업, 반복 연습, 랜덤 등인데 기초 난이도는 스칼라 문법 연습으로 괜찮았다!.
스칼라 문법 연습은 앞으로 계속 Code Wars로 해야겠다.
프로젝트 오일러 스칼라 풀이
자바로 공개되어있는 프로젝트 오일러 문제를 스칼라로 포팅하는 식으로 몇 문제 진행했었는데, 스칼라 연습이 안되는 것 같아 금방 접었다.
그리고 공개된 소스를 스칼라로 포팅하는건 왠지 지루했다.
Scala Exercises 번역
Scala Exercises 번역을 벌써 다섯개나 했다! 앞으로 4개정도 남은 것 같다.
번역을 하면서 Scala Exercises 설명은 굉장히 대충이라는 느낌을 받았다. 대략 내가 대충 말하면 너가 잘 알아들어~ 라는 느낌이었다.
FP를 좀 아는 사람이 보기 좋은 사이트이며 스칼라 입문용으로 보기엔 별로인 것 같다. 그야말로 Exercises란 이름에 낚였다.
덕분에 추가설명을 다느라 애먹고 있다. 물론 번역엔 추가설명을 붙였기 때문에 이젠 초보자도 나름 볼 수 있는 자료가 되었다 😁 😁
번역하며 가장 어려웠던 점은 전문 용어를 한글로 번역하는게 너무 어렵다는 것 이다.
예를들어 Option value
를 보자면, 이걸 옵션 값 으로 해야할지 선택적 값 으로 해야할지 옵션벨류로 해야 할지를 선택해야 한다.
조금 과장하자면 이런 문제가 거의 매 줄 매 단략마다 일어났다.
앞으로 4개정도 남았다. 슬프게도 봐주는 사람이 지금은 없지만.. 언젠가 스칼라 뉴비에게 도움이 되는 자료가 된다면 좋겠다..
다음주 목표
총평
내가 목표한 학습량엔 못미쳐 좀 아쉬웠다.
특히, 인터넷에서 얻는 정보로는 어느정도 한계가 있어 책을 봤어야 했는데 책을 조금밖에 못봐서 아쉬웠다.
다음 2주간도 지난주와 마찬가지로 스칼라 공부를 할 예정이다. 책, 강의, CodeWars 풀이에 중점을 두고 시간날때 간간히 번역을 해야겠다.
언젠가 스칼라에 좀 익숙해지고 좀 알 것 같아지면 매주마다 하는 라스칼라 스터디에도 참여해보고싶다.