[Book] Programming Scala

Programming Scala (Paperback)

Programming Scala (Paperback) - 6점
Subramaniam, Venkat
Oreilly & Associates Inc

스칼라를 스터디하면서 교재로 사용했던 책이면서 처음으로 원서를 다 읽은 책입니다.(이점은 나름 뿌듯하군요. Scala에 대한 몇가지 원서들이 있는데 다 읽은 것은 아니지만 그중에서 좀 가벼운 책정도에 속하는 편으로 200여 페이지 정도 됩니다. 당연히 하나의 랭귀지를 200페이지 정도로 설명한다는 것은 무리가 있기 때문에 간단히 설명한 편입니다. 막상 교재로 스터디를 하다보니 설명이 친절하지 못하고 생략된 부분이 많아서 책이 안좋다는 얘기가 많았는데 적은 분량에 많은 내용을 다루다 보니 상당부분이 간결히 설명하고 넘어가고 있습니다.(사실 영어를 해석하면서 겨우겨우 보다보니 내용에 대한 질까지 판단하기에는 저로써는 약간 무리가 있었습니다.)

그래도 스칼라에 대한 주요한 주제들은 대부분 다루고 있다고 생각합니다. Scala의 Class와 기본적인 분법의 사용법등을 비롯하여 Scala에서 중요한 Type, 주요한 특징들인 Trait, Function Value,클로저, 패턴 매칭까지 다루고 있습니다. 비록 스칼라의 특징이기는 하지만 이정도 분량의 책에서 Actor를 이용한 동시성 프로그래밍과 Unit테스트까지 다룬 것은 약간 무리수가 아니었나 생각합니다. 10여페이지로 어차피 설명할 수 있는 부분도 아니고 차라리 제외할건 제외하고 핵심적인 부분에 페이지를 더 할애하는게 나았지 않았을까 생각합니다.

그래도 소스코드는 나쁘지 않은 편인것 같고 스칼라라는 랭귀지에 대해서 자세히 알기 위해서 선택할 책은 아닐지라도 흥미정도로 간단히 파악하기에는 충분할 것 같고 그 이상에 내용을 알고 싶으면 따로 공부를 더 하던지 추가적인 다른 서적을 참고해 보아야 할것 같습니다. 이 부분은 분량이 많지 않고 심오한 내용까지 들어가지 않았기 때문에 간단히 파악하기에 그나마 낫다는 것이지 타게팅자체를 스칼라 초심자라고 했다는 것은 아니고 스칼라의 아주 큰 맥락에서 요약본정도로 띄엄띄엄 중요부분만 설명한 책이라고 하는게 더 나을것 같습니다.(어쨌든 읽고 내용파악하느라 시간이 많이 소비되었었는데 다 읽고 나니 마음은 편하군요. ㅎ)

크리에이티브 커먼즈 라이센스
Creative Commons License
2010/08/31 03:40 2010/08/31 03:40

Leave a Reply

[로그인][오픈아이디란?]

Scala로 풀어 본 읽고 말하기 수열

몇일전에 포스팅 했던대로 Scala 스터디가 끝나고 다들 실습의 부족함을 느끼고 실습 트레이닝을 하고 있습니다. 간단한 퀴즈를 구현해 보는 방식인데 첫 문제는 읽고 말하기 수열 (혹은 개미수열)이었습니다. 읽고 말하기 수열은 베르나르 베르베르의 소설 개미에서 나온 수열로 소설의 이름을 따서 개미수열이라고도 불립니다. 링크에 자세한 설명이 있지만 간단히 설명하자면

1을 '1개의 1'로 읽어서 11로 표기하고 11은 '2개의 1'로 읽어서 21로 표기하고 21은 '1개의 2와 1개의 1로'로 읽어서 1211로 표기하는 식으로 무한히 늘어가게 됩니다.



사실 뭐 공개할 만큼 잘 짠 소스는 아니지만 위 코드가 제가 짠 소스입니다.  run은 반복횟수만큼 루프돌리는 함수이고 compute가 수열을 계산하는 함수입니다. String의 첫글자를 baseChar에 저장하고 같은 글자일때는 횟수를 올리고 다른 글자일때는 남을 문자열로 다시 compute를 재귀호출합니다. 중간에 return문이 있는 것은 스칼라 2.7.7에는 아직 break문이 추가되지 않았기 때문입니다.(2.8부터 break문이 추가되었지만 break을 쓴 것은 그다지 깔끔한 처리는 아니었던것 같습니다.

아직 스칼라는 Imperative/Functional Style를 둘다 사용할 수 있는 Hybrid 언어이지만 Functional 스타일을 권장하고 있고 나름 열심히 스칼라의 맛을 살려보려고 했지만 아직 익숙치 않고 개념도 부족하여 거의 Imperative Style로 작성한 느낌입니다. Imperative Style로 짠 덕에 소스는 그다지 복잡하지 않습니다. Functional Style로 한 것은 그나마 재귀호출 정도군요.



nephilim님이 작성하신 코드 는 너무 고급스러워서 오히려 저한테는 좀 어려웠고 Miracle이 작성한 소스가 저한테는 가장 인상적이고 깔끔한 느낌이었습니다. 아래소스가 Miracle이 작성한 개미수열입니다.(Miracle의 허락하에 올립니다. ㅎㅎㅎ)


같이 공부했는데 센스에서 차이가 나는군요... 그래도 이렇게 퀴즈를 풀어보는 게 상당히 재미있네요. 자신이 잘하는 언어로 한번씩 구현해 보시는 것도 재미있을 것 같습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/08/30 23:56 2010/08/30 23:56

Comments List

  1. "너무도 고급스럽..."지 않습니다. 멤버들에게 스칼라의 특징을 최대한 보여주기 위해 약간 고민은 했지요. 아웃사이더 님의 코드도 의미가 있다고 생각합니다. 다양한 접근법을 다 알아가면 되겠지요. :D 다만 제목의 "일고" => "읽고"... (앗, 이거슨 function literal !?)

    1. 사실 elegance하다고 할려다가... 한국말로....
      저도 빨리 상황에 맞는 기법을 적절히 쓰고 싶어요..ㅎㅎㅎ

  2. 오히려 동일한 내용을 자바로 한번 짜보면 어때?

    1. 코드리뷰하면서 언어별로 언어의 특성별로 하나씩 짜봐도 재밌겠다 생각은 했는데.... 시간이 좀 여의치 않네요 ㅎ

Leave a Reply

[로그인][오픈아이디란?]
  • Categories

    List (497)
    BlaBlaBla~ (89)
    JAVA (82)
    Scala (16)
    .NET (21)
    PHP (1)
    Database (21)
    Web Development (54)
    Publishing (25)
    Javascript (105)
    Ruby on Rails (11)
    RIA (10)
    Web 2.0 & Semantic (44)
    Ubuntu (4)
    Mobile (14)
  • Tag Cloud

  • Calendar

    «   2010/09   »
          1 2 3 4
    5 6 7 8 9 10 11
    12 13 14 15 16 17 18
    19 20 21 22 23 24 25
    26 27 28 29 30    
  • Archives

  • SAVE THE
    DEVELOPERS <!>
    Upgrade IE 6 Now!
  • Recent Posts

  • Recent Comments

  • Recent Trackbacks

  • Recent My Delicious

  • Site Stats

    • Total hits: 696258
    • Today: 198
    • Yesterday: 1149
  • 1356

    1031

    0

    -30 days

    today : 198

    Powered by  MyPagerank.Net