흐르는 시간의 블로그...

난 정말 JAVA를 공부한 적이 없다구요.


첫 테스트 소스 작성 날짜를 보니 8월24일이었다.

참 길게 봤다. 뭐 그간 다른 책을 두권이나 함께 보다보니 길어지긴 했다.

그 사이에 Java로 간단한 프로젝트도 하나 진행하기도 했다.

프로그래밍을 전혀 모르는 사람도 충분히 읽기 좋은 책이다.

저자의 세심함과 노력이 돋보인다.

꼼꼼한 예제와 차분한 설명은 초보자에게 큰 도움이 될것이라 생각한다.

물론 나처럼 아주 오래전 자바를 했다가 최근 다시한번 확인차 보는 사람에게도 물론 도움이 된다.

사실 이 책이전에 보려고 시도 했던 책이 있다.

...

"이펙티브 자바 2판"

...


지금 읽고 있는 웹서버 책과 Go Lang 책을 다 읽고 이펙티브 자바를 진행할지 고민해보자. 

그래도 또 한권을 읽고 정리하고 넘어섰다. ^^

책을 읽고 간단한 프로젝트를 하고나서 자바에 대해 느낀 점은 아래와 같다.

C++ 보다 편하다.

느린점은 분명하다.

하지만 다양한 도구가 큰 도움이 된다.

레퍼런스가 참 많다.

OOP에 대해 어느정도 알면 컴퓨터에 대해 잘 몰라도 쉽게 코딩할 수 있겠다.

이 정도이다.

'' 카테고리의 다른 글

7가지 동시성 모델  (0) 2016.09.22
C++11 STL 프로그래밍  (0) 2015.12.11
Pro Oracle Spatial for Oracle Database 11g  (0) 2011.11.15
오라클SQL튜닝(쿼리의 본질과 성능 튜닝에 대한 37가지 이슈)  (0) 2011.11.15
Head First PMP  (0) 2010.03.06

7가지 동시성 모델

2016. 9. 22. 10:42


읽은 책에 대해 다 정리하고 있지는 못하지만...

우쨋건 지난주까지 우격다짐으로 읽어보긴 한 책이다.


출판사링크: http://www.hanbit.co.kr/store/books/look.php?p_code=B3745244799


책에 대해서는 페북의 광고와 팟캐스트 나프다에서 접했다.

오래전부터 동시성 코딩에 대해 관심이 많기는 했다.


이미 15년 전쯤? 구매해서 가장 많이 활용했던 책도 Thread 관련 책이었다.


Multithreading Applications in Win32

Multithreading Applications in Win32

 

저 책의 저자 서문즈음에 나온다. 원문은 기억나지 않지만 대략 이런 내용이다.

"쓰레드는 반드시 네 손 위에서 쓰도록 하라"

모르거나 능력밖의 범주 혹은 통제범위 밖에서는 절대 사용하지 말라는 경고였다.

개인적인 학습의 목적이라면 저런 경고가 괜한 걱정일지 모른다.

그러나 상용 프로그래밍 개발에서는 진리와 같다.


쓸 얘기도 별로 없지만 다시 "7가지 동시성 모델"에 대해 얘기해보자.

내가 걸어온 개발자의 길에서는 상당히 생소한 책이었다.

내용은 충분히 가치가 있었다.

그러나 해당 언어들에 대해 생소하고 예제를 직접 다 실행하고 분석해보지 않은다면 와 닿지 않을 수 있다.


책에서 설명하는 언어에 대해 간단히 적어보자.

  • 클로저 - Java VM 기반의 함수형 언어
  • Elixir - Erlang 기반의 함수형 언어 

클로저 예제를 돌려 보기 위해 이것저것 뒤져보았다.


Elixir도 편하게 예제를 실행해 볼 수 없을까 찾아봤다.

  • http://elixir-lang.org/install.html - Elixir 설치
  • http://elixir-lang.org/getting-started/introduction.html#installation - 시작 부분으로 윈도우에서는 설치 후 iex.bat --werl 명령을 통해 얼랭의 콘솔을 이용하여 더 편리하게 작업 가능하다

참고로 Elixir의 몇몇 예제들은 버전문제인지 모르겠으나 책의 내용처럼 실행이 되진 않았다.
Clojure의 경우 자바의 jar 파일을 요구하는? 경우 환경 설정에 오래걸릴듯 하여 지나쳤다.


  "7가지 동시성 모델"을 한번에 이해하지 못하더라도 분명 읽어볼만 하다. 나처럼 평생 C와 C++로 함수형 언어를 겪어보지 못한 경우라면 말이다. 최근 Modern C++ 책을 보면서 람다와 같은 경우를 접하긴 했으나 저 책은 개념적으로 이해하기에 충분한 도움을 준다.

새롭게 "GO 언어"를 접해보고 있는 "7가지 동시성 모델"책에서 다루는 통신 순차 프로세스( CSP, Communicating Sequential Processes)에 대한 설명이 조금 나온다. 동시성에 대한 부분은 빅 데이터와 그 분석에 기인한바가 크다고 생각한다. map-reduce... 

책에서 얻은 아이디어 중 하나는 GPGPU에 대한 부분이다.
GIS 영역의 일과 GPGPU에서 처리하고자 했던 이미지 프로세싱은 같은 영역의 일이다.
지도와 이미지를 표시한다고 해서 같다고 생각하는 것이 아니라
이미지 프로세싱 자체가 위치와 경계, 계산의 영역이고 GIS 영역 또한 동일하다.

http://philliplemons.com/2014/09/14/ray-casting-algorithm/ - Ray Casting 알고리즘에 대한 부분이다. 실제로 이미지 프로세싱에서도 쓰이지만 GIS에서 2D Polygon 내의 점의 유무를 확인하는데 쓰인다.

이런 부분을 GPU를 이용할 경우 좋은 성능을 낼것이다. 물론 GPU를 활용할 수 있을때에 해당하겠지만...

HW의 변화에 따라 앞으로 동시성 프로그래밍에 대한 요구는 거세게 불어닥칠 것이고 5년 내에 일반화 될 것이다.
개발자로 그에 대한 대비는 분명히 해야할 것으로 보인다.
...




C++11 STL 프로그래밍

2015. 12. 11. 11:26

최근 Effective Modern C++이란 책을 구매해서 봤다.

결국 중간에 접었다.

어려웠다.


다시 이전 단계로 갔다.

C++11 STL 프로그래밍...

문법 보다는 사용예를 위주로 책을 구성하였다.

일주일도 안되는 시간에 몇몇 예제를 돌려보며 책을 다 보았다.


일관된 방식으로 빠르게 볼 수 있게 구성된 것이 장점이다.

그러나 개정2판임에도 몇몇의 오자와 함께 예제가 통채로 뒤바뀐 경우도 있고

대소문자가 다르게 나온 경우도 있다.


그럼에도 불구하고 빠른 시간내에 C++11에 대해 접하기에는 나쁘지 않다는 생각이다.


이 예제 테스트를 위해 VC++ 2015(Professrional)를 깔았다.

예전과 다르게 MS 홈페이지에서 직접 다운로드 하여 깔 수 있다.

(혼자 공부하는 것이니 아마도 라이센스에 걸리지는 않을 듯하다)


예전 디지털방송쪽 일을 할때 보면 문서가 두벌이 세트이다.

규격과 Guide...

이번에 C++11을 보면서도 그 지점을 느꼈다...

C++11 STL 프로그래밍은 "규격"을 보여준다면 Effective Modern C++은 Guide를 제공한다.

규격이 훌륭하더라도 그 제약점과 한계를 모르면 일을 할 수 없다.

여기서 좀 더 발전하면 How를 제공하는 패턴과 같은 쪽으로 갈 수 있을 것이다.


일단 읽은 기념으로 표지라도 붙인다.




Pro Oracle Spatial for Oracle Database 11g

  • 저자 : Kothuri, Ravi /Godfrind, Albert /Beinat, Euro | 출판사 : Apress
  • 출간일 : 2007년 10월 | 787쪽 | 언어 : English | ISBN-10 : 1590598997 / ISBN-13 : 9781590598993

정가: 136,790원

오라클에서 위치 정보를 활용하는 방법에 대한 책...

현재의 업무에 매우 도움이 될것으로 보인다