'삽질+돈되는짓/Squeak'에 해당되는 글 1건

  1. 2008.09.13 [SBE-Digest] 시작하며... (1)
posted by 아겔-_- 2008.09.13 23:10
어제 오늘 오랬만에 여유로운 시간에 "Squeak by Example"(http://squeakbyexample.org/)이란 자유롭게 배포하는 PDF 문서를 읽었습니다. (이하 SBE라고 하겠습니다.)

단편적으로 그건 이렇고, 저건 이렇지...라고만 알고있던 스몰톡, 스퀵에 대한 내용들이 체계적으로 정리된 경험이었습니다.

스몰톡, 스퀵은(이하, 그냥 스퀵이라고 하겠습니다.) '순수객체지향언어'라는 이름으로 오해 받고 있다고 생각합니다. 단순히 언어가 아니라고 생각합니다. 개발환경이고, 플랫폼이고, 문화라는 생각을 합니다. 텍스트 편집기로 코딩하고 저장하고, 컴파일등을 거쳐서 실행하고 다시 편집하고 하는 개발 사이클에 익숙해져 있는 개발자라면 어쩌면 "왜 내 코드를 이미지에 저장해?", "Foo 클래스의 정의는 그럼 어느 파일에 있는거지?"와 같은 의문에 사로잡혀서 스퀵은 이상하게만 느껴지고 불합리하게만 생각될거라 생각합니다. 그리고 그런것들은 전부 오해이고, 그런 '전통적인' 방법들에 대한 더 확실한 배려가 스퀵에는 있습니다. 그 답을 그저 "아! 난 정말 성격 급해서 모르겠어!"가 아니라 궁금해하고 그 길을 걷고 답을 얻기를 바랍니다.

원래의 문서는 아주 쉽게 쓴 스퀵에 관한 문서입니다. 그리고 그 쉽다는 의미는 어느정도의 초보적인 개발자라면 이해할만한 수준의 문서라고 생각합니다.

저는 개인적으로 SBE을 읽으면서 느꼈던 것들은 다음과 같습니다.

* 멋진 개발환경 : 정련된 도구들을 중심으로 다른 도구들이 완전하게 통합된 개발환경인것 같습니다. 어떤 클래스를 정의하고, 메서드를 작성하면서, 해당 메서드가 이용하는 메서드나 필드들을 실시간으로 만들어 나가고(없다면), 그렇게 작성한 클래스나 메서드에 대한 단위테스트를 작성하고 테스트를 실행하고 이를 디버거를 통해서 예외가 발생한 시점에 바로 수정한다거나, 4의 팩토리얼을 구하는 메서드가 뭔지 궁금할때 바로 알아내는 방법이라던지, 어떻게 외부 파일로 작업을 내보내고 그렇게 내보낸 다른 사람의 작업을 자신의 이미지에 포함한다던지, 시스템 전체적으로부터 메서드 하나하나까지 변경점을 추적할 수 있는 강력한 버젼관리기능, 보통 rename정도로만 생각하던, 혹은 {이클립스|넷빈즈}정도되는 리팩토링 기능이 최고라고 생각하던 저에게 충격적이던 리팩토링...

* 리팩토링, TDD, 대화식/점진적 개발방법이 녹아 있는 개발사이클 : 굳이 그렇게 하려고 하지 않아도 개발환경자체가 그렇게 유도하고 그 방법이 제일 편리한 환경인것 같습니다.

* 그렇다더라 싶던 문법적인 구성요소들에 대한 말끔한 정리 : 너무 단순해서 대부분 대충 대충 설명하고 넘어가서 오히려 '그건 어떤 어떤 것들이 있는거지?' 같은 의혹만 증폭시켰던 문법적인 요소들에 대한 설명이나 메시징, 블록 등에 대한 총망라 + 완전한 설명. -- 그래도 충분히 가뿐하던걸요. 대체 왜들 대충 넘어갔던걸까^^;;

* Morphic : 스퀵 특유의 쉽게 뭔가 작동하는 UI나 위젯을 뚝딱 뚝딱 만들어내는 느낌으로 잘 설명한것 같습니다. 그리고 실제로 스퀵에서 뭔가 해보면 단순히 딱딱한 클래스만 만들고 끝나는게 아니라 그걸 시각화하고, 사용자와 쉽게 소통하는 Morph로 만드는게 더 재밌을거 같은데 그런걸 실제로 할수있도록 설명하는 느낌입니다.

* Basic Classes, Collections, Streams : 실제로 Squeak을 코딩하면서 필요한 정말 기초적인 클래스들에 대한 설명으로 적어도 뭐가 있다는것을 느낄 수 있었습니다.

* Traits, Globals, PoolVars, MetaClass : 대략 설명하기 난감할 주제들도 과감하고 괴상한 디테일과 관계없이 그 핵심을 잘 설명했다고 생각합니다.

* FAQ와 딴 얘기들 : 믿거나 말거나 각 챕터별로 은근히 팁 수준의 짧은 얘기들이 조금씩 포함되어있는데 꽤 유용하고 스퀵의 멋진 모습을 잘 보여주는 팁들이 많았고, FAQ부분에서 정말 재밌고 유용한것들이 많았던것 같습니다.


아... 몸도 나른하고 재채기도 나오는 상황에서 중얼거린 느낌이네요.

하여튼 앞으로 시간이 허락할때마다, (가능하면)각 챕터 단위로 읽은 내용을 정리해서 올릴 생각입니다. 기본적으로 1~12 챕터들의 내용들이 하나의 포스팅일테니 12개 안팎의 포스팅 시리즈가 될거라고 생각합니다.

설명하는 기준은 Squeak 3.9에서 SBE 홈페이지에서 제공하는 SBE 이미지를 기반으로 설명하겠습니다.

아직도 기본적으로 한글출력이 지원이 안되는 상황입니다. http://squeak.kr에서 KoreanSqueak을 제공하지만 솔직히 그 방법등이 제대로 정리되지 않았다는 느낌이 강하고, 그래서 특정 버젼의 이미지에 종속적인것 같습니다. 거기에 한글버젼은 종종 다운을 경험하게 해주기도 하고 한글 입력은 아직인것 같습니다.

한글출력부분만이라도 작업이 이루어지고, 스퀵으로만으로도 한글 입력기를 구현해서 그럭저럭 완전한 한글 입력환경이 하루빨리 조성되기를 소망합니다. ^^

스퀵으로 뭐 어떤 SI 프로젝트가 있다거나 한것도 아니고 이력서에 적어낼만한 내용도 아니라고 생각하지만, 개발자로서 '와! 다행이야 이렇게 멋진 환경을 경험해볼수있어서'라는 생각으로라도 접근해볼만한 가치는 있다고 생각합니다. 그리고 재미있구요. ^^

그래도 몇몇 동호회나 스퀵/스몰톡에 관한 사이트들도 있는것 같은데 대부분 이렇게 하나씩 하나씩 차근차근 설명하는 내용이나 '그런게 있어요'라고 먼저 알려주는 내용의 글은 한글로 찾아보기 힘들었다고 생각합니다. 솔직히 몇몇 분들은 그런 내용들에 대해서 알고 계시지만 그 내용을 다른 분들에게 알려주시기 보다는 그저 그런것들에 대해 언급할 일이 있을때 그냥 그런게 있는데 몰랐냐?이상은 아니라는 느낌밖에 없었습니다. 보잘것 없고 쉬운 내용들이라 다른 사람들도 그저 알거라 생각할 수 있고 다루기 번잡스러운 내용이라고 생각합니다. 하지만 오히려 그래서 잘 알려지지 않은 느낌이라 이를 정리하고 문서화하고 싶었습니다. 그리고 마침 그런 느낌에 잘들어 맞는 SBE라는 좋은 문서를 찾았구요. 그래서 많이 부족할거고 염치도 없겠지만 이를 끄적여보려 합니다...

아참! 풍성한 한가위되세요~
신고

'삽질+돈되는짓 > Squeak' 카테고리의 다른 글

[SBE-Digest] 시작하며...  (1) 2008.09.13

티스토리 툴바