자바의 신 - 전2권 자바의 신
이상민 지음, 김성박.박재성 감수 / 로드북 / 2017년 6월
평점 :
구판절판


내가 자바 프로그래머 이기도 하지만 

자바의 신이라는 책 제목만 봐도 관심이 있어 

한번 읽어보고 싶었던 책이다. 

이번에 개정판이 나오면서 책을 읽어볼 수 있는 좋은 기회가 되어 

책을 읽게 되었다. 


책의 구성은 다른 기본서와 그 구성이 조금 틀리다. 

어떻게 보면 특색이 있다고 할까 


항상 기본서의 경우 hello world 를 일단 출력해보고 

기본 타입,변수 에 대해서 설명 후 제어문에 대해서 설명을 해나간다. 

아마 이러한 구성은 예전 프로그래밍 언어에 대한 책이 나올때 만들어졌던 

구성이 이어져 온게 아닌가 하는 생각이 드는데.

어떻게 보면 프로그래밍 언어를 알기위한 기본적인 단계라고 볼 수도 있고. 

객체지향언어 이전의 언어에 대한 구성이라고 볼 수도 있을 듯 하다. 


책은 처음 자바를 실행을 해보는 과정을 다루면서 

먼저 클래스와 객체에 대해서 언급을 한다. 

그리고 클래스을 이루는 구성에 대해서 다룬다. 

기존의 구성과는 조금은 틀린 구성이라고 볼 수 있을 듯 하다. 


전체적인 한 플로우를 설명 후 

그 이후에 자바의 역사에 대해서 나온다. 

책을 읽으면서 엇 이건 보통 처음 단계에 나오는데..  라고 생각을 했다. 


개인적으로는 이러한 구성도 괜찮은듯 하다. 

자바라는 프로그래밍을 해보기 위해서는 빼놓을 수 없는 구성단계를 

먼저 설명을 하는게 더 나아 보이기도 했다. 


책의 내용 중간중간에 나오는 생각해봅시다 의 구성도 괜찮은듯 하다. 

그냥 설명해 나갈수도 있는 구성이지만 한번 포인트를 주어서 

한번 더 생각하고 넘어갈 수 있는 구성이어서 좋았다. 


개인적으로는 그러한 생각해봅시다 에 재미있는 삽화 같은 것도 있었다면 

재미있었을 듯 하다. 


어노테이션 은 책에서도 얘기하지만 

사실 사용자가 정의해서 쓰는 경우는 거의 없을듯 하다. 

사실 개인적으로는 자바를 1 버전부터 봐았기에 

많이 바뀌었던 1.3~4 에 멈춰있다. -_-;

그래서 이러한 어노테이션에 대한 사용자 정의 부분은 재미있었다. 


제네릭은 좀더 내용이 많았다면 하는 아쉬움이 있다. 


함수형 언어가 많이 이슈가 되었었는데 

자바8 의 추가된 부분의 람다표현식에서 

익명클래스로의 구현하는 구성도 보여주고 있어 좋았던거 같다. 


보통 실무에서는 자바버전이 1.8 까지 나와있어도 

그 이전 버전을 사용하는 경우가 많다. 

아무래도 최신 버전을 바로바로 적용하기에는 힘들다. 

개인적으로 그래서 1.7, 1.8 의 추가된 기능에 대해서 별도의

챕터로 다루고 있어서 좋았다. 


자바를 공부하려는 분들이 보면 

도움이 많이 될 듯 하다. 


댓글(0) 먼댓글(0) 좋아요(3)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
그림으로 배우는 클라우드 인프라와 API의 구조
히라야마 츠요시 외 지음, 신상재 옮김 / 로드북 / 2017년 5월
평점 :
장바구니담기


클라우드 라는 말을 접한지는 몇년정도 된 듯 하다. 


프로젝트를 하다보면 

요새는 보안적인 부분때문에라도 클라우드 환경에서 개발을 

하는 경우가 많다. 


책에서 클라우드 환경에 대해서 3가지 형태를 얘기하지만

나의 경우는 개발자이다보니 그 중 개발환경에 대한 클라우드를 많이 접해본듯 하다. 


내 PC 을 온전히 쓰는게 아닌 리소스를 나누어 여러 개발자가 쓰다보니 

항상 도를 닦는 마음으로 개발을 했던 기억이 난다. 

개발환경에 대해서 많은 투자를 해주지 않기에 속도는 많이 느렸다.

물론 그건 그 환경이 특이해서 그런거지만.. -_-; 


처음 클라우드 환경에서 개발을 했던게 2009 년도 였으니 

그리 짧은 시간이 지난건 아닌듯 하다. 


항상 그 환경에서 개발만 해봤는데

이렇게 책으로 클라우드 환경에 대해서 읽어 볼 수 있어서 좋았던듯 하다. 


클라우드 환경에 대해서 처음 접하면 잘 이해가 안갈수도 있다고 생각한다. 

나 스스로도 그냥 사용만 해봤지 잘 이해하고 있지도 않고..

책의 앞부분에 그러한 클라우드 환경에 대해서 좀더 자세히 언급해줬다면 

하는 아쉬움이 있다. 


책을 읽으면서

IT 가 더 얼마나 발전할까 하는 생각도 들었다. 

소프트웨어적으로 발전하면서 이제는 하드웨어적으로 가능했던 구성도 

만들어내는걸 보면.. 


아이언맨 이라는 영화를 처음 봤을때 주인공이 허공에서 설계를 하고 

틀린것을 쓰레기통에 집어던지는 장면을 보고 많이 충격을 받았었는데.

책의 내용과 연관은 없지만 갑자기 그때 생각이 떠오른다. -_-;


클라우드 환경의 실질적인 시스템의 실물 사진과

작은 환경이라도 구성해가는 과정이 있었다면 좀더 재미있었을 듯 하다. 


클라우드에 대해서 막연히 생각하고 있었는데 

이렇게 클라우드 환경에 대해서 좀더 많이 알게 되어 좋았던듯 하다. 


책 제목대로 

클라우드로 인프라를 구성하는 내용에 대해서 다루고 있기에 

클라우드 환경에 대해서 관심이 있는 독자들이 읽으면 도움이 많이 될 듯 하다


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
스토리로 이해하는 암호화 알고리즘
김수민 지음 / 로드북 / 2017년 4월
평점 :
장바구니담기


알고리즘 책을 

많이 봤지만 암호화 알고리즘 책은

이번에 처음 본 듯 하다. 


항상 암호화 관련해서는 게임과 더불어 관심을 많이 가지는 부분이긴 하지만

관심만 가지는 부분이다. -_-;


책을 읽으면서 

암호화 관련 해서 좀더 알 수 있어서 좋았던듯 하다.

개인적으로 프로젝트를 하면서 

해시,공개,블럭 암호화 에 대해서 는 접해본적이 있는데 

그 외에 암호화 에 대해서도 다루고 있어서 그러한 부분을 읽을 수 있어서 

좋았다. 


각 암호화에 대해서 해당 알고리즘을 만든 인물들과 그 이야기를 설명전에 

다루고 있는데 알고리즘 뿐만 아니라 만든 인물에 대해서도 볼 수 있어

좋았던듯 하다.


수식은 아직도 적응이 되지 않는다. -_-;

책에서는 최대한 쉽게 다루고 있지만 그래도 어렵다. 

책 초반에도 수식이 좀 나오는데 

초반에는 암호화 알고리즘의 종류에 대해서 재미있는 삽화등으로 설명을 했다면 하는 아쉬움이 있다. 


암호화에 대해서 설명만이 아닌 해당 암호화 알고리즘으로 

어떻게 암호화가 되는지를 설명하고 있기에

수식이 어려워도 인내심을 가지고 본다면 얻는게 많을듯 하다. 


NPKI 같이 우리가 일상에서 흔히 접하는 익숙한(?) 인증서에 대해서도 다루고 있는데

해당 부분에 대해서 좀더 알 수 있어서 좋았던듯 하다. 

관련 인증서에 대한 종류가 그리 많은지는 몰랐다. 

관련한 작업을 한 적이 있는데 왜그리 종류가 많나 하고 의구심만 가지고 있었는데 

이번에 알게 되어 좋았던듯 하다. 


랜섬웨어는 항상 먼나라 얘기처럼 들렸었는데 개인적으로 저번에 한번 당했을때 상당히 

당황했던 기억이 난다. 

사이트에서 아무거나 함부로 클릭을 하면 안된다. -_-

결국 해당 노트북을 다시 포맷을 했다. 

기존에 작업했던 내용은 눈물을 머금고 다시 작업했던 기억이 난다. 


개인적으로 암호화 관련과는 무관하지만 

프로젝트를 하다보면 보안상 의 이유로 암호화를 접하는 경우가 좀 있다. 


책에서도 얘기하는 BASE64 인코딩은 가장 빈번하게 접하는 넘이다. 

예전 어떤 프로젝트에서는 아무리 인코딩을 변경해도 한글이 깨져서 BASE64 인코딩을 

사용했던적도 있다. 


요새는 보안에 상당히 민감하기에 다른 프로그램과 통신하는 경우에

통신 내용을 평문으로 보낼수 없어 암호화를 하는 경우가 많다. 

나도 그러한 부분을 구현하다가 MD5 와 RAS, SEED 을 접해본적이 있다. 


책에서도 언급하지만 여러 암호화 알고리즘을 조합하는 경우도 종종 있다.

예를 들어 SEED 암호화 키를 MD5 로 암호화한 해시값으로 사용하여 암호화 하는등 

좀더 보안을 강화하려는 경우가 많다. 


개인적으로 다른 프로그램과 통신하면서 어려웠던건

이미 구현되어 운영중인 프로그램이 C++ 이었는데 해당 프로그램에서는 SEED 암호화,복호화를 사용하고 있었다.

요건에 따라 자바로 해당 프로그램과 통신을 하게 되었는데 동일한 알고리즘을 자바로 구현하여 연결을 했는데

제대로 암,복호화가 안되었다. 

암호화 알고리즘을 똑같이 구현했어도 프로그램언어에 따라 조금씩 틀린 부분이 있는듯 하다.

책에서 언급하는 패딩 처리 라든가 같은 부분에 따라서 미묘하게 틀린 부분이 있어 며칠동안 고생을 했던 기억이 난다. 


책에서는 웹에서 fiddler 같은 패킷도구로 값을 수정해서 해킹하는 걸 보여주었는데 

요새는 웹브라우저에서 개발자도구를 제공하기에 그러한 접근이 더욱 쉬워졌다고 볼 수 있다.

그래서 그러한 보안관련 코드를 작성해야 하기에 보안이 강화될수록 개발하기에 어려운 점도 있긴하다. 


책에서 얘기하는 것처럼 컴퓨터의 성능이 좋아지면서 sha1 는 더이상 안전하지 않다 하여 sha2 로 권장을 하고 있다. 

xp, 비스타의 경우는 sha2 스펙을 따르지 못하는 걸로 알고 있다. 

그래서 어떤 프로젝트에서는 암호화 적용이 필요한 업무에서는 지원 os 을 제한하는 경우도 있다. 


책을 읽으면서 

많이 접해보진 않았지만 그래도 한번쯤 들어본 암호화 알고리즘이 나올때마다

예전 프로젝트 경험이 떠올라 좋았던듯 하다. 


암호화 알고리즘에 관심이 있는 분들이 읽으면 좋을듯 하다. 

암호화 특성상 책에 수식이 좀 나와 어려울 수 있지만 

그래도 그만큼 얻는게 많을듯 하다. 


댓글(0) 먼댓글(0) 좋아요(3)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
실용주의 소프트웨어 개발 - 현장에서 길어올린 소프트웨어 개발 베스트 프랙티스(Best Practices)
오병곤 지음 / 로드북 / 2017년 4월
평점 :
장바구니담기


오병곤 저자님의 책은 오랜만에 읽어본듯 하다. 

대한민국 개발자 희망보고서 라는 책을 예전에 읽었었고..

월화수목금금금 에 상당히 공감했었다.

IT 의 힘든 상황에서 기술사 자격증을 땃다는 것에 놀랐고 참 대단함을 느꼈었다. 


개인적으로는 아직도 그정도의 열정을 쏟지는 못하고 있는듯 하다. 


이 책은 프로젝트를 성공적으로 마치기 위해서 

실용적으로 어떻게 소프트웨어 개발을 진행할지에 대한 내용을 담고 있다. 


넓게는 프로젝트 개발하면서 우리가 흔히 접하게 되는 개발단계의 단계별 과정을 다루면서

해당 단계의 문제점과 대안 그리고 우수사례를 다루고 있다. 


간접적으로 프로젝트의 진행이 어떻게 이루어지는지 나 해당 과정에서 어떠한 문제가 발생을 하는지 

그러한 문제가 발생하지 않기 위해서 어떠한 방법을 쓰고 어떠한 우수사례가 있는지를 접할 수 있어서 좋은 듯 하다. 


그전에도 우리나라 특유의 빨리빨리 가 it 도 예외는 아니어서 

외국보다 더 짧은기간에 개발을 했었지만 

점점 경기가 안좋아져서 그런지

이제는 그 기간마저도 더 줄이고 개발자도 더 줄여서 개발을 진행하는 경우가 많다. 


책에서 얘기하는 것처럼 프로젝트는 분석,설계,개발,단위테스트,통합테스트 등의 단계의 과정을 거치며

개발을 해나간다. 


그런데 요새는 앞의 분석,설계을 없애거나 개발에 합치고 개발기간은 줄이고 

단위테스트도 개발에 합쳐버리는 개발,통합테스트 의 과정으로 가는 경우도 많다.

더구나 개발자는 전보다 축소하고 기간도 축소를 해서 프로젝트를 한다. 

예전에 3년정도의 기간을 잡고 하던 프로젝트를 요새는 1년을 넘기는 경우가 거의 없다. 


개발자들은 기계가 아니다. 

프로그램 개발은 기계적으로 키보드를 두드려서 완성하는것이 아닌데

기본적으로 무엇인가를 개발하기 위해서는 개발전에 어쩌면 개발보다 더 긴 시간을 생각을 하며 구상을 해야 한다. 

책에서도 말하는 것처럼 개발자들에게 그러한 생각할 시간이 필요한데..

요새 현실은 그러한 생각의 시간조차도 없애려고 하고 있다. 

그냥 자리에 앉아있는걸 더 중요하게 여기는 경우도 많다. 

책에서 말하는 것처럼 우리는 최선을 다하고 있다는 보여주기식, 면책용 등의 방법으로 

개발자들의 시간을 이용하는 경우가 많다.  


it 에는 많은 방법론이 나와있다. 해당 방법론들은 모든 프로젝트에 적합한것이 아니다.

책에서도 얘기하고 있지만 해당 프로젝트마다의 상황에 맞추어 그에 맞는 적절한 프로세스를 정의해야 하는데..

그러한 부분이 아직까지 잘 이루어지지 않는거 같아 좀 아쉽다.

내가 겪은 프로젝트들은 그때 트렌드에 따라 이 개발방법론을 쓰면

개발기간이 단축이 되고 비용도 단축시킬수 있다면서 무슨 마술인것마냥 쓰는 경우가 많다. 


개발방법론이라는게 해당 프로젝트의 개발기간을 단축시키거나 비용을 단축시키기 위해서 사용하는건 아니라고 생각한다.

개발을 진행하면서 시행착오로 개발기간의 연장과 그에 따른 추가 비용 및 요구사항 변경들에 따른 추가리스크, 추후 유지관리 등에 대한 리스크를 

최소하 하기 위한 것이라고 생각한다. 

실제 그 프로젝트에 들어가는 실공수가 줄어드는 것은 아니라고 생각하는데.. 

이상하게 이 방법론을 쓰면 실공수가 이렇게 줄어요.. 와 같은 식의 프로젝트를 많이 겪게 된다. 

결국은 프로젝트를 성공시키기 위해서 개발자들은 월화수목금금금 상황을 계속 할 수 밖에 없게된다.

정작 그렇게 만든 관리자들은 책임을 안지는데 실제 개발하는 개발자들이 책임을 지는 상황인것이다. 


책에서 언급한 고객의 인식도 가장 바뀌어야 할 부분중 하나이다. 

눈으로 보이는 것은 쉽게 요구를 변경하지 않는다. 

책에서 찰흙을 예를 들었지만 만들어 이미 굳어버린 찰흙으로 다른걸 만들어 달라고 요구를 하진 않을것이다.

그런데 소프트웨어 개발에서는 고객이 아무때나 그냥 수정할 수 있다고 생각한다.

소프트웨에의 개발도 찰흙처럼 굳으면 다시 변형하기가 힘들다는 인식을 가지는게 참 중요하다고 생각한다. 


시스템 오픈이 내일인데.

오늘 요구사항을 변경하면서 수정해달라는 경우도 허다하다.


갑질 이라는 단어가 요새 많이 사용되는데

기존에 작성한 요구사항정의서 든 해당 요구에 대해서 이렇게 협의했다는 사인을 했든

분명 이렇게 해달라고 하지 않았냐는 회의록 녹취 든.. 소용이 없다. 

고객의 입장은 그렇다. 우리가 필요하다는데... 

개발자가 안된다고 하면 관리자에게 얘기해서 통과시키기에.. 

이러한 요구사항 변경에 대한 고객의 인식의 변화가 중요하다고 생각한다. 


짝프로그래밍은 우리나라의 특성상 할수가 있을까 하는 생각을 아직도 가지고 있지만 

그 비슷한 방식은 실무에서는 종종 하는 경우가 있다.  


나과장은 A 라는 업무를 하고 있고 윤과장은 B 라는 업무를 하고 있는데

윤과장의 B 업무중 어떤 프로그램의 개발에 문제가 생겨서 윤과장이 나과장에게 도움을 요청하면

둘이 같이 의논을 하면서 개발하는 경우는 종종 있다. 


이건 프로젝트의 정책으로 하는게 아닌 

두 개발자의 유대관계가 좋을때 위처럼 서로 도와가며 헤쳐가는 경우가 있다. 

해당 업무를 하고 있던 개발자는 계속 보고 있던 소스이기에 거기에 국한된 시야가 생기는 경우가 있다.

그럴때 그러한 제한된 시야를 가지지 않는 개발자가 같이 보게 될 경우 의외의 해결책이나 버그가 쉽게 발견되는 경우가 많다. 


이러한 제한된 시야가 생기는 걸 없애기 위해서도 책에서 말하는 것처럼 

개발자들에게 생각할 시간을 주는게 프로젝트의 리스크를 줄이는 좋은 방법이 아닐까 생각한다. 


책에서도 언급하고 있지만

프로젝트의 공수산정을 제대로 하는게 가장 첫번째 과제일 것이다. 

이 부분도 문제는 소프트웨어 개발은 아무래도 눈에 보이는게 아니기에 그러한 공수산정 자체가 많이 힘들기도 해서

재대로 공수산정이 안되는 경우도 많지만 

더 큰 문제는 그렇게 제대로 산정이 안된 공수산정 조차 고객의 요구에 의해 심하게는 절반으로 줄인다는 것이다.

그 기간자체가 비용이므로 고객은 좀더 저렴한 비용으로 프로젝트를 하려고 한다. 


우리나라의 모든 IT 분야가 그런건 아니지만 

개인적으로 겪었던 IT 프로젝트를 생각하다보니 답답해서 사설이 길었던듯 하다. 


IT 프로젝트에 대해서 발생하는 단계마다의 문제점과 그에 따른 우수사례 등을 간접적으로 접할 수 있어 

IT 에 관심있는 분들이 읽으면 좋을듯 하다. 

개인적으로는 관리자나 고객 처럼 실제 칼자루를 쥐고 있는 분들이 읽고 

인식이 좀 많이 바뀌었으면 좋겠다는 생각을 한다. 


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
이것이 C++이다 - 강의 현장을 그대로 옮긴 C++ 입문서 (무료 인터넷 강의, Q/A를 위한 네이버 C++ 카페 운영)
최호성 지음 / 한빛미디어 / 2016년 1월
평점 :
장바구니담기


이번에 읽게 된 이것이 C++ 이라는 

책은 c++ 의 기본적인 내용을 다루고 있지만 

문법적인 내용에 조심해야 하는 사항이라던가 

좀더 세부적으로 생각해야 하는 사항들을 같이 다루고 있다. 


그러한 내용의 느낌은 Effective C++ 과 조금은 비슷한 느낌을 받았다. 


기본적인 문법을 다루고 있지만

그 내용안에 좀더 심도깊은 부분을 같이 다루고 있어서 

책에서도 언급하고 있지만 

c++ 을 처음 접하는 독자들이 보기에는 내용이 어렵다.


그래도 기본적인 내용을 같이 다루고 있기에 

처음에 읽을때 이해가 안가는 부분은 넘어가면서 

순차적으로 반복해서 읽어나간다면 

그만큼 얻을 수 있는게 많을 듯 하다. 


개인적으로 책에서 다루는 내용중 

템플릿 같은 부분은 그 부분만 다뤄도 상당한 분량의 내용이기에 

내용이 적은게 아쉬웠다. 


c++ 프로그래밍을 하면서 조심해야 할 부분들에 대한 

내용이 많이 담겨 있어 

c++ 을 접해 본 분들이 읽어도 도움이 많이 될 듯 하다. 


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo