반응형

책을 읽어보기 전까지는 단어의 의미조차 알지 못했던 Developer Relations 에 대한 책을 읽게 되었다. 단어 자체가 길다보니 보통은 축약해서 DevRel(데브렐) 이라고 표현을 하는것 같다. 

처음에는 데브렐의 역할이 기업의 마케팅이나 영업과 비슷하다고 생각을 했으나 알고 보니 전혀 다른 역할이었다. 내가 책을 읽으면서 간략하게 파악한 그들의 역할은 다음과 같았다.

개발자들을 위한 문화를 만드는데 고민한다. 커뮤니티를 만들고 활성화 될수 있도록 돕는다. 하지만 이런 행동들이 기업의 홍보를 위한것이 아니어야 한다. 

마지막 문장이 정말 의미심장하다. 기업의 홍보를 위한것이 아니어야 한다. 정말 쉽지 않은 일이고 단시간이 이루어 질수 없는 일이다. 분명 꾸준한 노력과 인내, 그리고 속한 조직의 지지가 있지 않고서는 달성하기 힘든 목표이다. 

그럼에도 불구하고 이런 역할을 필요로 한다는 것은 그만큼 개발자라는 역할이 중요해졌다는 의미이다. 책 뒷쪽에 있는 국내 회사에서 데브렐 역할을 하고 있는 분들의 인터뷰를 읽으면서 정말 부러웠다. 우리 회사도 저렇게 생각을 하고 문화를 키워 나가면 좋을 텐데, 아직은 많이 부족하구나 라는 생각을 했다. 

그렇기에 이 책은 조직을 이끌어 가는 리더들이 한번쯤은 읽어봐야 한다고 생각한다. 개발자들을 위한 문화는 어떻게 만들어 가야 하는지 그리고 어떤 부분들이 필요한지 많은 도움을 받을 수 있을 것이다.

    "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

728x90
반응형
반응형

개발과 관련된 일을 하는 사람이라면 한번쯤은 구글에서 일하는 생각을 해봤을것이다. 나또한 그랬으며 항상 동경의 대상처럼 여겨졌다. 그들이 하는 일들은 항상 앞서 나가고 무엇인가 혁신적이고 세상을 바꿀것 같은. 그런 기본적은 생각들이 밑바탕에 깔려있었다. 이번에 읽게된 "구글 엔지니어는 이렇게 일한다" 는 그런 구글러들이 어떻게 일하는지, 무엇을 생각하는지에 대해 배워볼수 있는 책이다. 

- 이 책은 개발자들만을 위한 책이 아니다.

이 책은 소프트웨어 엔지니어링에 대한 내용을 많이 다룬다. 프로그래밍과 구분되게 소프트웨어 엔지니어링은 소프트웨어를 개발하기 위해 설계부터 시작하는 모든 라이프 사이클을 포함한다. 그게 개발관련된 일이 될수도 있고 그안의 구성원들인 사람이 될수도 있다. 따라서 이책의 제목에 있는 "구글 엔지니어"들이 일하는 것을 떠올리면 개발자들를 떠올리는게 당연하겠지만 내가 읽어본 이책은 개발자들만을 위한 책은 아니다. 개발자, 디자이너, 관리자등 모든 영역의 사람들이 읽는다면 큰 도움을 얻을 수 있는 책이다. 영역이 IT 관련된 일이 아니더래도 이 책은 많은 사람들에게 도움을 줄 수 있는 책이다. 

- 구글러들도 우리가 생각하는 것들을 동일하게 생각한다.

내 기준에서 구글을 생각하면 항상 특별할 거야 라는 생각이 전제되어있었다. 내가 겪고 있는 일들은 그들은 겪지 않을 거야 라는 생각을 했다. 하지만 그것은 잘못된 생각이었다. 그들도 나와 같은 고민을 하고 나와 같은 어려움을 부딪쳐왔다. 단지 차이점은 그들은 그것을 극복하기 위해 많은 시도와 노력을 해왔고 그 결과 지금의 모습을 만든 것이다. 현재의 모습이 하루아침에 만들어 지지는 않았다. 수도없이 반복되는 노하우들이 쌓이고 쌓여서 만들어낸 결과이다. 누가 시켜서 만든것도 있지만 그들 스스로 만들고 발전시켜나간 일들도 많다. 그게 바로 그들의 문화이고 가치인것이다. 

- 기술을 발전 시키려면 어떻게 해야하는지 그들은 알고 있다.

코드리뷰, 테스트는 개발자에게는 필수조건처럼 따라 다니는 단어이다. 하지만 이게 개발자들에게 익숙해지기 까지는 상당한 시간이 걸린다. 코드리뷰를 무시하거나, 단위 테스트를 무시하게 되면 후에 모든것들이 기술부채로 다가오게 된다. 작은 버그들이 점점 스노우볼 굴리듯 굴러가서 큰 오류를 발생시기고 만다. 그걸 방지하기 위한 행위들중 하나가 코드리뷰와 단위 테스트이다. 실제 구현되는 코드들보다 중요하게 생각해야 하는 부분이 테스트 코드이고, 내 코드가 잘못되어있는지 또는 실수는 하지 않았는지, 아니면 더 나은 방법은 없는지 찾아볼수 있는 방법이 코드리뷰이다. 그들은 그것이 중요하다는 것을 알았으며 지금도 꾸준히 실천하고 있다. 

이 책은 마치 백과사전처럼 읽으면 읽을 수록 배울것이 많은 책이다. 하지만 그들이 했던 방법들이 모두다 내게 맞는 방법은 아닐수도 있다. 하지만 최소한 그들이 해왔던 방법들을 알고 있다면 비슷한 문제를 마주했을때 좀더 현명하게 풀어갈수 있을것이다. 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

728x90
반응형
반응형

많은 시간 개발을 하면서 시스템 아키텍처에 대해서 생각을 안해왔던것은 아니었다. 하지만 그런 지식들은 공부를 해서 생기는게 아니라 실제 경험으로 해봐야만 알수 있다는 생각을 많이 했었다. 그런데 요즘드는 생각은 이론으로 알고 실제 경험을 하면 더 많은것을 할수 있고 더 잘 할수 있을거라는 생각이 많이 들었다. 그래서 최근 책을 고를때에 아키텍트 관련 서적을 많이 골랐던것 같다.

개발을 하다가 나이 먹으면 아키텍트를 해야 한다 라는 그런 의견(?) 들이 많긴 한데 개발자에서 아키텍트로 간다는 것은 생각처럼 당연하지도 않고 쉽지도 않다. 지금도 물론 개발도 하고 아키텍트 역할도 하고 있지만 솔직히 그게 아키텍트로서의 역할이 맞는지, 아니면 개발자인지 구분이 안간다. 

그리고 매번 같은 방법, 같은 형식으로만 생각하다 보니 우물 안에 개구리처럼 생각이 닫혀버린 느낌이 많이 들었다. 아마도 관련 지식과 경험의 부족이라고 생각이 든다. 그래서 "개발자에서 아키텍트로" 되기 위해서는 어떤 것들이 필요한지 책을 통해서 조금이나마 알아가보기로 했다. 

이 책은 총 3개의 챕터로 구성이 되어있다.

1부. 소프트웨어 아키텍처

소프트웨어 아키텍처가 어떤 일을 하는 사람인지 알아보는 챕터이다. 그리고 디자인 마인드셋 (이해하기, 평가하기, 탐색하기, 실현하기)은 무엇인 알려준다. 

2부. 아키텍처 설계의 기초

2부에서는 1부에서 말한 마인드셋 영역별로 아키텍처 설계를 어떻게 해야 하는지 기초 지식에 대해서 알아볼 수 있다. 요구사항 분석부터 설계, 패턴, 시각화, 문서화, 그리고 평가까지 기본적으로 알아야 할 내용들이 담겨있다. 그리고 요구사항 분석 이전에 이해관계자들과는 어떻게 대화를 해야 하는지도 알려준다. 

아래 그림은 아키텍처 패턴 부분에서 설명에 추가되어있는 그림과 표이다. 실체 패턴이 어떻게 구성되는지 알수있고 각 컴포넌트들이 어떤 역할을 하고 있는지 쉽게 알수 있다. 

 

3부. 아키텍처의 은빛 도구상자

3부는 지금까지 배운 내용에 대한 실습 과제를 해보는 부분이다. 총 38가지의 주제를 가지고 팀 활동을 해볼수 있다. 그리고 팀 활동도 위에서 말한 마인드셋 영역별로 4가지 주제를 가지고 나눠져 있다. "문제를 이해하고 싶을때", "해결책을 찾고 싶을때", "손에 잡히는 설계를 만들고 싶을때", "설계 대안을 평가하고 싶을때". 

활동의 목적이 무엇인지, 그리고 이 활동을 함으로써 얻을수 있는 장, 단점, 시간, 절차, 예시까지 아주 꼼꼼히 설명이 되어있다. 그리고 설계에 대한것 뿐만 아니라 앞에서 말한 4가지 주제에 해서도 활동이 있기 때문에 책에서 읽은 부분들을 충분히 경험해 볼수 있다. 

개발자가 아키텍트 역량을 키우기 위해 어떻게 해야 하는지 업주적인 내용부터 기술적인 내용까지 두루 살펴볼수 있는 책이다. 그리고 실습해볼수 있는 주제들을 통해 책의 이론을 경험해 불수 있다는 것이 무엇보다도 좋은 부분이었던 것 같다.

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

728x90
반응형
반응형

한빛 미디어 나는 리뷰어 다 를 통해서 이번에는 "개발 7년차, 매니저 1일차" 라는 책을 리뷰하게 되었다.

 

"개발 7년차, 매니저 1일차".

우선 이 책의 제목부터가 흥미롭다. 

개발자로 일을 하고 있는 사람이라면 언젠가는 겪어야 하는 과정의 한 부분이기 때문이다. 그런데 현실은 그렇게 만만치 않다. 누군가 자세히 설명해주는 사람도 없다. 그러한 과정들이 항상 되풀이 되고 이제 곧 나에게도 다가올 것이라는 생각이 든다.

 

책은 매니저에서 부터 시작해서 점점 더 큰 조직을 맡게 되면 어떻게 팀을 관리를 해야 하는지, 매니저들은 어떻게 관리를 해야 하는지에 대해서 이야기를 해준다. 그리고 중간 중간에 같은 상황에 대해서 어떻게 대처하느냐에 따라서 상황이 어떻게 달라지는지 비교해서 설명을 해주는 부분들도 있다. 

 

도움이 되는 Q&A 와 생각해볼수 있는 문제들

각 챕터 중간중간에 위와같이 "CTO에게 묻는다" 라는 소주제들이 있다. 질문과 답변 형식으로 되어있고 실체 처음 관리를 맡게 되는 사람들이 궁금해 할 만한 질문들로 이루어져 있다. 답변들을 천천히 읽다 실제로 우리 주변에서 많이 볼수 있는 일들이어서 공감이 많이 됐다.

그리고 챕터 마지막에는 오른쪽과 같이 질문들이 있어서 한번 생각해보고 챕터를 마무리 할 수 있다.

 

실제 종사자들의 경험담

많지는 않지만 3편 정도의 기고글이 책 중간에 담겨져 있다. 실제 이러한 일들을 겪었던 분들의 경험담이기 때문에 같은 고민을 하고 있는 분들이나 이야기에서 말하는 상황에 놓인 분들에게 도움이 될만한 내용이다.

 

이런 분들에게 꼭 권해주고 싶어요.

 

책을 읽으면서 처음 부터 끝까지 나와 비슷한 상황 또는 고민들에 대한 내용들이 많이 나왔다. 아마 나 또한 직장생활한지 이제 곧 10년정도 되어가고 관리를 해야되는 역할에 다가가고 있어서 그런것 같다. 나는 항상 개발밖에 할수 없으며 무엇인가 관리하는 일들은 정말 나와는 안맞는다 라고 생각해왔다. 아래 글을 잠깐 보자.

딱 내가 생각했던 것들이다. 매니저가 되면 개발할 시간이 줄어들고 여기저기 회의에만 쫓아다녀야 하고. 그런 모습들이 정말 싫었다. 그리고 처음 개발을 할때에는 이러한 업무들은 개발보다 중요하지 않다고 생각을 하기도 했다. 하지만 그건 나의 잘못된 생각이었다. 이건 쉽게 생각할 업무가 아니고 정말 무거운 책임을 갖고 임해야 하는 중요한 일이다. 또 매니저란 역할은 연차가 올라간다고 맡는게 아니라 그 업무를 잘 해낼수 있는 사람에게 맡겨야 된다는 생각이 들었다. 이 책에서도 그러한 이야기를 계속 해주고 있다. 

안타깝게도 실제 우리가 다니고 있는 회사에서는 그런 것들을 배려해주지는 않는다. 그래서 이런 글들을 통해 조금이라도 준비를 할수 있으면 실제 매니저가 되었을때에 아주 조금이라도 덜 힘들지 않을까 생각이 든다. 

이제 곧 매지너라는 역할을 맞이 해야하는 모든 개발자 분들에게 이 책을 적극 권해주고 싶다. 파이팅.

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

728x90
반응형
반응형

요즘에 한참 클라우드 관련 내용들을 공부하고 도커, 쿠버네티스 에 대한 내용을 보다보니 마이크로 서비스에 대한 내용들을 자주 접하게 되었다. 컨테이너를 사용한 환경에서 어플리케이션을 배포하고 관리 하려면 아무래도 덩치가 큰것 보다는 좀더 작게 모듈화 해서 배포 하는것이 나을 것이다. 어플리케이션의 크기가 작아진다는 것은 간단히 생각해봐도 배포시간이 줄어들고 그렇게 되면 다운 타임 또한 줄어들게 된다. (물론 배포 전략에 따라서 이런 부분들은 없도록 하는게 맞다.) 그래서 나 또한 마이크로 서비스에 대해서 다시 관심을 갖게 되었고 이것저것 책을 찾아보고 읽어보고 있었다. 전부터 관심이 있어서 한번 읽어봐야겠다고 생각은 하고 있었는데 길벗 개발자 리뷰어에 선정되어서 이렇게 책을 접할수 있게 되었다. (베타리더때도 신청을 했었지만 그때에는 선정되지는 못했었다. ^^;)



목차는 아래와 같이 구성이 되어있다.


1장 스프링, 클라우드와 만나다.

2장 스프링 부트로 마이크로 서비스 구축

3장 스프링 클라우드 컨피그 서버로 구성 관리

4장 서비스 디스커버리

5장 나쁜 상황에 대비한 스프링 클라우드와 넷플릭스 히스트릭스의 클라이언트 회복성 패턴

6장 스프링 클라우드와 주울로 서비스 라우팅

7장 마이크로서비스의 보안

8장 스프링 클라우드 스트림을 사용한 이벤트 기반 아키텍처

9장 스프링 클라우드 슬루스와 집킨을 이요한 분산추적

10장 마이크로 서비스의 배포


부록 A 데스크톱에서 클라우스 실행

부록 B OAuth2 그랜트 타입


내가 기존에 알고 있던 내용들은 주로 컨피그 서버나 유레카를 이용한 서비스 디스커버리, 그리고 Zuul 을 사용한 라우팅 정도만 약간 해본 정도였다. 그런데 목차에서 보면 알수 있듯이 그것 이외에 다양한 내용들이 있다. 실패 전략을 통한 복구 패턴(5장), 인증및보안(7장), 그리고 이벤트 처리(8장)가 수록되어있다. 그리고 마이크로서비스 하면 중요하게 생각해야할 모니터링에 대해서 9장에 잘 설명해 주고 있다. 


또 내가 OAuth 2 처음 공부할때에 grant type 이 잘 정의가 안되어서 이해하는데 어려움이 많았었는데 이 내용도 부록을 통해서 설명해주고 있어서 공부하고 있는 입장해서 정말 알찬 구성인것 같다. 



다음은 책 내용을 살펴보자.



코드에 대한 내용과 그 의미들이 코드와 함께 담겨져 있다. 개인적으로 이런 형태의 코드 설명을 좋아하는 편이다. 그냥 종이 위에 코드만 써있는 것보다는 주석 이외에 이렇게 설명을 추가해주면 이해하는데 도움이 많이 된다. 



그리고 내가 읽으면서 가장 맘에 드는 부분이다. 마이크로서비스에 대한 개념과 구성을 거의 빠짐없이 그림으로 설명을 다 해준다. 마이크로 서비스 자체가 작은 단위로 쪼개서 전체 시스템을 구성하기 때문에 머릿속에서 그 큰 그림을 떠올리기는 쉽지가 않다. 어디에서 부터 시작을 해야 할지 막막해질 때도 있다. 그런데 이 책에서 고맙게도 구성, 개념을 알기 쉽게 그림을 통해서 설명을 해준다. 이 부분이 이 책의 가장 큰 장점인것 같다. 


책의 전체적인 내용들을 봤을때에는 초보자들을 위한 책이기 보다는 어느정도 Spring Boot 에 대한 지식을 가지고 있는 개발자에게 도움이 되는 책인것 같다. Spring Boot 에 대한 책이 아니라서 Spring Boot를 모르는 사람이 보기에는 코드부터가 어려울 수 있다. 그래서 Spring Boot 로 개발을 해봐서 코드를 이해하는데에 문제가 없는 분들이 마이크로 서비스를 이해하는데 많은 도움을 줄수 있는 책이라고 생각된다. 



728x90
반응형
반응형


요즘 기업에서 코딩 테스트를 중요시 하다 보니 알고리즘 관련 책들이 많이 나오고 있다. 나도 1년전에 회사에서 진행하는 코딩 자격시험 준비때문에 여러가지 알고리즘 책들을 많이 봤었다. 물론 패스하고 난 후에는 좀 안보긴 했지만. 

그런데 알고리즘 공부를 하다 보면 부딪치는게 있다. 바로 수학이다. 특히 확률, 경우의 수와 같은 내용들은 시험에도 응용해서 자주 나오는 편이었다. 분명 중,고등학교때에 배운 내용인데도 지금은 하나도 생각이 안난다. 그래서 수학 공부를 해불까라는 생각도 자주 했다. 그런데 범위가 넓다보니 뭐부터 시작을 해야할지 좀 막막했었다. 그렇다고 수학의 정석을 처음부터 공부할수도 없는 노릇이다. 


1. 나는 알고리즘 공부를 하고 싶다. 

2. 나는 수학도 공부를 하고 싶다. 단 수학에 대한 인물들에 대해서도 좀 알고 싶다. 


이게 바로 내가 바라는 것이었다. 알고리즘 책을 보면 알고리즘 내용만 나오고 , 수학책을 펴면 수학만 나오고. 아직 그걸 연결 시킬정도의 실력은 안되니 어떻게 해야 할지 난감 했는데 이번에 받은 책이 딱 거기에 부합하는것 같다. 



일단 알고리즘 책이니 알고리즘에 대한 내용이 나오는것은 당연하다. 그런데 이렇게 알고리즘을 수학적으로 설명을 해준다. 수학적이라고 해서 그렇게 난이도가 높지는 않다. 그냥 차분히 읽었을때 분명 이해를 할 수 있을 정도이다. 용어에 대한 정의가 생각이 안나서 찾아 볼 수는 있지만 그래도 책 안에서 모든 내용을 이해할 수 있다. 읽다보면 예전에 중,고등학교때에 배웠던 내용들도 생각이 나면서 재미있다.



그리고 주목할 만한 내용으로는 수학이나 알고리즘에 대한 설명만 있는게 아니라 그것을 만든사람, 또는 관련있는 사람에 대해서 짧게나마 설명을 해준다. 내가 위에서 언급했던 2가지 조건을 딱 충족하는 부분이다. 전에 수학에 대해서 책을 좀 볼까 라고 마음 먹고 책을 좀 찾아봤었는데 보통 인물 도감 같은 느낌의 책들이 많았었다. 그런데 이 책은 이렇게 중간중간 내용을 넣어줘서 책을 좀더 재미있게 읽을 있었다.


알고리즘과 수학에 지식을 동시에 충족 시키고 싶은 분들에게 이 책을 추천해주고 싶다. 





728x90
반응형

+ Recent posts