Skip to main content

Posts

[리뷰] 러스트 핵심 노트

C 와 C++ 의 성능을 보이면서 동시성 문제를 좀 더 쉽게 처리할 수 있는 언어에 대한 소개가 종종 이루어 지곤 하는데 최근까지 이러한 분야에서 가장 두드러진 활약을 보이는 언어를 꼽으라면 단연 Go 와 러스트 를 꼽을 수 있을 것입니다.  [러스트 핵심 노트] 는 예제를 통해 제목 그대로 러스트의 핵심 부분을 설명하면서 러스트란 언어란 이런 언어다 라고 소개하고 있습니다. [러스트 핵심 노트] 는 언어 입문서에 가깝기 때문에 러스트 언어를 세세하게 설명하지는 않습니다. 그러나 러스트가 가지고 있는 특징들을 잘 설명하고 있어 새로운 언어가 나와서 흥미를 느끼시는 분들이 가볍게 읽을 수 있는 책이라 생각 됩니다. 다만 중간 중간 오타가 눈에 띄기 때문에 (원서도 같은 오류가 있었습니다.)  추가적으로 검색을 해 보거나 한빛 미디어 사이트에서 오탈자를 반드시 확인할것을 추천 드립니다. (http://www.hanbit.co.kr/realtime/books/book_view.html?p_code=E2088508957) 책 분량은 많은 편은 아니지만 내용은 절대 가볍지는 않습니다. 앞에서 이야기 했듯이 러스트를 빠르게 살펴본 다음 토이프로젝트를 하고자 하시는 분께는 좋은 시작점이 될 것입니다.
Recent posts

[리뷰] 스위프트 프로그래밍

스위프트 3 가 발표된 이후로 국내에도 스위프트 3 내용을 다루는 책들이 하나둘씩 출간되고 있습니다. 그리고 지금부터 이야기할 <스위프트 프로그래밍> 역시 그중 한 권입니다. 이 책은 기존에 있던 책들과는 달리 iPhone이나 Mac App 개발에 필요한 내용을 다루지는 않습니다. 개인적으로는 이러한 점 때문에 스위프트란 언어 자체에 좀 더 집중할 수 있었습니다. 책은 크게 다섯 개의 파트로 구성되어 있으며 각 파트별 목차는 다음과 같습니다. Part Ⅰ 스위프트 기초 1. 스위프트 2. 스위프트 처음 시작하기 3. 데이터 타입 기본 4. 데이터 타입 고급 5. 연산자 6. 흐름 제어 7. 함수 8. 옵셔널 Part Ⅱ 객체지향 프로그래밍과 스위프트 9. 구조체와 클래스 10. 프로퍼티와 메서드 11. 인스턴스 생성 및 소멸 12. 접근제어 Part Ⅲ 함수형 프로그래밍과 스위프트 13. 클로저 14. 옵셔널 체이닝과 빠른종료 15. 맵, 필터, 리듀스 16. 모나드 Part Ⅳ 확장 17. 서브스크립트 18. 상속 19. 타입캐스팅 20. 프로토콜 21. 익스텐션 22. 제네릭 23. 프로토콜 지향 프로그래밍 Part Ⅴ 스위프트 고급 24. 타입 중첩 25. 패턴 26. where 절 27. ARC 28. 오류처리 Part1, 2  까지는 스위프트 언어에 대한 기본적이고 전반적인 내용을 설명합니다. 스위프트를 처음 배우는 독자뿐만 아니라 스위프트를 조금 공부해 본 독자에게도 유용한 내용이 많았습니다. 특히, 스위프트 언어를 사용하는 데 있어 지켰으면 하는 규칙을 반복적으로 설명함으로써 자연스럽게 그러한 규칙이 손에 익히도록 한 점이 좋았습니다. 다만 중간중간 난이도가 갑자기 높아지는 부분이 있어 초심자에게는 책 앞부분에서 조금 힘들 수도 있겠다는 생각이 들었습니다. Part3  는 아마도 이 책에서 가장 ...

[Googe I/O 2014] 국산 재료로 Cardboard 만들기!

올해 Google I/O 에서 가장 흥미있었던 내용중 하나가 바로 Cardboard 였다고 한다. 사실 난 Android L Preview 와 Material Design 에 때문에 상대적으로 이녀석을 홀대하고 있었는데, 회사 선임님께서 요놈이 얼마나 대단한 녀석인이 알려주신 덕분에 관심을 갖게 되었다. 더군다나 제작 방법은 물론 Libraray 까지 제공하다니... 그래서 바로 만들기로 결정. 우선 아래 사이트를 참고하자. 1. Reference SIte - Cardboard 제작 - Cardboard API 사이트를 들어가면 친절하게 구매할 수 있는 사이트까지 링크되어 있으나...전부 아마존. 참고로 이 글을 쓰고 있는 지금까지 아마존에서 주문한 렌즈를 받지 못했다.(한 2주 된듯.) 그래서! 결국 국내에서 파는 제품들로 꾸려보기로 했다. 순수 국내산으로~ 이미 nurinamu 님 께서 블로깅을 하셨지만... 여튼. 필수 재료는 아래를 참고하자. 2. 국내에서 구입한 재료 목록 1)  렌즈 - 양면 볼록 렌즈 : 유리 / 직경 : 30mm / 초점거리 : 46mm (한알당 3,300원) 2)  자석 - 네오디움 원형사라 자석 : 지름 : 20mm / 두께 4T (1,460원) - 페라이트 자석 : 지름 : 20mm / 두께 5.0mm (2,000원) 3)  골판지 - 택배 박스 사용 (0원) NFC 는 집에서 저장할 방법도 없으니 Pass. 고무줄이나 밴드는 취향에 맞게... 사실 도면도 공개되어 있고, 재료만 구하면 만드는건 쉽다. 굳이 설명을 하자면... 자르고... 자르면 ... 골격완성! 그리고... 오랜 기다림 끝에 결국 받지못한 아마존 렌즈를 뒤로하고, 국내 사이트에서 주문한 렌즈를 끼워주면... (국내산 렌즈는 오전에 주문하고 다음날 점심에 바로 겟.) 이렇게 완성! 개인적으로 신기했던 것중 하나...

[Tip] Homebrew 로 설치한 Python 환경에서 GAE Flask 설치하기

2014.07.10 -- Issue -- ~/.pydistutils.cfg 파일을 생성하고 나서 pip install 을 할 경우, permission denied 오류가 발생하는 경우가 있다. 이때는 prefix= 를 삭제하면 정상적으로 설치할 수 있다. 또는, 설치시 아래와 같은 명령어로 설치한다. pip install --user --install-option="--prefix=" <package-name> -------------------------------------------------- Mac 에서 Homebrew 를 사용하면 각종 package 를 편리하게 관리 할수 있다. 그런데 Homebrew 를 통해 Python 을 설치한 환경에서, Google App Engine 의 Flask package 를 설치하기 위해 명령어 ( pip install -r requirements.txt -t lib/ )를 실행하면 아래와 같은 오류가 발생한다. 말 그대로 prefix 를 설정해 달라는 이야기 인데, 해결 방법은 다음과 같다. HOME(~/) 에 .pydistutils.cfg 파일을 생성하고 아래 코드를 추가한다. [install] prefix= 그리고 다시 실행하면 정상적으로 Flask package 가 설치되는것을 확인할 수 있다. Reference 1. stackoverflow http://stackoverflow.com/questions/24257803/distutilsoptionerror-must-supply-either-home-or-prefix-exec-prefix-not-both 2. Github Issue https://github.com/Homebrew/homebrew/wiki/Homebrew-and-Python

[Tip] Android Studio, Intellij 에서 Source Code Pro font 적용

예전에 코딩할 때 좋은 폰트 에 Source Code Pro 가 1등으로 선정된 것을 본 적이 있다. 그전까진 나눔고딕코딩 을 자주 썼는데, Source Code Pro 를 쓰면서 가독성이 좀더 향상된 것을 느낄 수 있어 요즘 주력 폰트로 사용 하고 있다. 그런데 Mac에서는(윈도우는 어떨지 모르겠지만...) Eclipse 나 Xcode 에서는  문제없는 이 폰트가 유독 Intellij 혹은 Android Studio 에서는 폰트 설정 시, 이탤릭체가 깨지는 문제가 발생하고 있다. 폰트 설치 후, Intellij 에 적용하면 아래와 같이 이텔릭 채 부분에서 깨지기 시작한다. 이같은 문제는 이미 Source Code Pro Github issue 에 등록되어 있는데, issue 에서 가이드 하는 수정방법은 다음과 같다. 먼저 Source Code Pro Font 를 다운받고, 설치하자. Source Code Pro Font 다운로드   그 후 아래 폴더로 이동하자. /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/fonts 위 경로에 Source Code Pro 의 TTF 에 포함되어 있던 폰트들을 모두 복사하여 붙여넣는다. 그리고 Intellij (혹은 Android Studio) 를 재부팅 후, 다시한번 폰트를 설정하러 들어가면 아래와같이 폰트들이 나타나는것을 확인 할 수 있다. 개인적으로 Medium 을 선호하기 때문에 Medium 을 선택. 그러면 아래처럼 정상적으로 출력됨을 확인할 수 있다.

[Scala] Learn Scala!

최근 Java 의 확실한 후계자로 Scala 가 거의 확정시 되고 있는 분위기다. (난 Groovy 에 걸었는데 ㅠ) 함수형 프로그래밍이라는것도 좀 어색하고, 문법도 Java 와 다른면이 많기 때문에 처음에 러닝커브가 좀 있는 편인것 같다. 더욱이 우리나라에 번역서는 오직 한권. 그런데 몇일전에 찾아보니 웹에는 많은 문서들이 번역되어 있더라. 요런것들 참조하면 익혀보면 좋을듯! 1. 자바프로그래머를 위한 스칼라튜토리얼 ( http://docs.scala-lang.org/ko/tutorials/scala-for-java-programmers.html ) 2. 스칼라 학교 by twitter ( http://twitter.github.io/scala_school/ko/index.html )

[Android] GDG Gradle CodeLab 을 다녀와서...

연휴 첫날.. GDG Android 에서 Gradle CodeLab 을 한다는 이야기를 듣고.. 어제 급하게 신청했는데 다행이 참가 메일이 와서 참석하게 되었습니다. Google I/O 13 이후로 Gradle 의 인기가 날로 높아져 가고 있습니다. 사실 그동안 Android 에서 외부 라이브러리를 사용하기 위해 Maven 을 대부분 사용하고 있었고, 기본적으로는 Ant 를 지원하고 있습니다. 하지만 둘다 사용하기는 쉽지않습니다. 더욱이 Android 개발도 버거운데 Build 를 위해 Ant 나 Maven 을 별도로 공부해야 한다는 부담감도 존재합니다. 그래서 처음 Gradle 을 새로운 빌드시스템으로 선택한다는 이야기를 들었을 때에도 그닥 반갑지는 않았습니다. 유명한 라이브러리들은 대부분  Maven 을 지원하고 있고, 또 새로운 빌드 시스템을 공부해야 한다는 생각이 들었던거죠. 하지만 오늘 CodeLab 을 다녀오면서 Gradle 은 배울만한 충분한 가치가 있다는 생각이 들었습니다. 1. 발표 프리젠테이션 2.  Github CodeLab Repo Gradle 은 Groovy 를 기본 언어로 채택하고 있습니다. 따라서 Groovy 를 잘 알고 있다면 그만큼 효율성을 높일 수 있습니다. 하지만.. 오늘 CodeLab 만으로도 Android 개발에 필요한 기능들을 충분히 알아볼 수 있었습니다. 특히. Flavor 기능은 정말 유용했습니다. 대부분 현업에서 debug, release 용으로 빌드시, 빌드넘버나 기타 변경사항을 수정하고 하는 과정에서 실수하기 쉬운데, 이러한 것들을 미리 정의해 놓을 수 있다는 점은 정말 큰 장점 이였습니다. 또한, Manifest 에서 정의했던 versionName, versionCode 등을 build.gradle 에서 관리한다는 점도 새로웠습니다. Build Customization  을 통해 빌드를 위해 Manifest 를 수정하는 수고를 덜 수 있었습니다. ...