개발자에서 아키텍트로 - 38가지 팀 활동을 활용한 실전 소프트웨어 아키텍트 훈련법
마이클 킬링 지음, 김영재 옮김 / 한빛미디어 / 2021년 6월
평점 :
장바구니담기


“훌륭한 아키텍처가 소프트웨어의 성공을 보장하지는 않지만, 나쁜 아키텍처는 필연적으로 실패를 가져 온다.” 라는 말로 저자는 이 책을 시작 한다. 그리고 개발자라면 소프트웨어 아키텍처에 대해 꼭 알아야 한다고 한다.


p.34 소프트웨어 아키텍트


소프트웨어 아키텍트가 하는일

소프트웨어 아키텍트는 모든 이해관계자와 협업 하면서 비즈니스 목표와 요구사항을 만들어 간다. 소프트웨어 시스템을 구현 가능한 작은 조각으로 나누는 동시에 전체 시스템이 일관성 있게 동작 하도록 큰 그림을 그린다. 또한 품질에 영향을 주는 다양한 품질 속성(Quality Attribute)  사이에서 균형을 잡아가며 어쩔 수 없이 늘어나는 기술 부채(Technical Debt) 도 관리 한다.


위에서 이야기한 소프트웨어 아키텍트가 하는일 이라는 문장이 이해가 되지 않는 나 같은 사람에게 반드시 이 책을 추천 한다.


단순히 소프트웨어 아키텍트가 하는일을 소개하는 문장에서 부터 알아들을 수 없는 단어들이 속출 한다. 특히 품질 속성이라는 굉장히 어색한 단어는 책을 읽는 내내 등장 하는데 (왜냐면 중요하니까!) 초반에는 무슨 말인지 이해하기가 어려웠다. 


5.2 의 품질 속성 정의하기 에 가서야 겨우 품질 속성이 무엇인지에 대해서 설명 하고 있고 실제 요소들이 나온다. 그리고 활동 6 의 품질 속성 레이다 차트를 만드는 부분에 가서야 좀더 상세하게 이해 할 수 있었다.


p. 268 품질 속성 레이다 차트


중요하게 생각하는 기준에 따라 시스템이 어떻게 다를 수 있는지 시각적으로 비교할 수 있다.


책의 구성

책은 아래의 순서로 구성 되어 있다. 1부의 소프트웨어 아키텍트가 하는 일(1.1) 에 대한 설명으로 시작해서 2부에서는 실제로 아키텍처 설계를 위한 전략(3), 핵심 요구사항 알아내기(5) , 주요 패턴 설명(7)  그리고 멋진 다이어그램 그리기 (10.2) 를 통해 다이어그램으로 아키텍처를 사실적으로 시각화 하여 보여주는 방법에 대해 이야기 한다.


1부

소프트웨어 아키텍트가 하는 일을 소개, 소프트웨어 아키텍처를 정의


2부

본격적으로 아키텍처를 설계, 이해관계자와 소통, 아키텍처 핵심 요구사항을 찾아내 설계에 반영


3부

아키텍처를 설계하며 문제 상황을 마주했을 때, 해결책을 찾아야 할 때, 설계를 더 구체화하고 싶을 때 해볼 수 있는 38가지 팀 활동을 소개


개발자에서 소프트웨어 아키텍트로

개발자에서 소프트웨어 아키텍트가 되고자 하는 이에 대한 조언은 1.3 팀에서 아키텍트가 되려면 이라는 부분에서 다루고 있다.


저자는 개발자에서 아키텍트로 성장하고 있는지 측정해 보고 싶다면 프로젝트 포트폴리오를 만들어 보라고 말한다. 소프트웨어 시스템을 만들 때마다 어떤 역할을 했든지 간에, 참여했던 소프트웨어 시스템에 대해 간략히 정리하고 개발하면서 배운점을 정리 하는 활동은 소프트웨어 아키텍트에게 필수적이다.


프로젝트 포트폴리오 정리를 위한 주요 질문사항

  • 이해관계자들은 누구였고 주요 비즈니스 목표는 무었이었는가?

  • 최종적으로 어떤 결과가 나왔는가?

  • 어떤 기술을 사용했는가?

  • 가장 큰 리스크는 무엇이고, 어떻게 극복했는가?

  • 다시 시작할 수 있다면 어떤 점을 다르게 하겠는가?



감상평

두께도 얇은 편이고 편집도 깔끔하여 보기에는 쉬웠지만, 내용은 전체적으로 쉽지 않은 책이다. 


하지만, 말로 이해하기 어려운 부분도 책의 그림 이나 다이어그램, 표의 적절한 사용으로 이해하는데 도움을 많이 주었다. 


사례연구로 나오는 라이언하트 프로젝트는 뜬구름 잡기 같던 아키텍처 설계를 좀 더 구체화된 시선으로 볼 수 있도록 해주었다.


3부의 아키텍트의 은색 도구상자는 충분히 확인 하여 실무에서 사용할 수 있는 방안을 생각해보는 중이다. 특히 고객과의 인터뷰 같은건 매번 하는 작업 이지만, “활동4 이해관계자 인터뷰” 에서 처럼 목표와 질문목록 그리고 실행단계를 구분하여 작업해본적은 없었기에 책의 내용을 실천하여 작업을 수행해 보고 싶다.


소프트웨어 아키텍트가 뭐하는 포지션인지 모르는 사람에게 꼭 추천 하는 바이다. 

팀에 아키텍트가 없다면... “네, 축하 합니다. 이제 당신이 하면 됩니다.!”


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


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
한 권으로 끝내는 Node & Express : 모던 웹을 위한 서버 사이드 자바스크립트의 모든 것 - 2판
이선 브라운 지음, 한선용 옮김 / 한빛미디어 / 2021년 5월
평점 :
장바구니담기


웹 애플리케이션행 급행열차를 타라


웹 애플리케이션 (웹사이트, 단일 페이지 애플리케이션, REST API 및 기타)을 작성하기 위한 가장 빠른 방법은 무엇일까? 이 책에서 소개 하고 있는 것은 Node.js 의 Express  이다.


Node.js 는 기본 언어로 자바스크립트를 사용 하기 때문에 프론트엔드에서 사용하던 언어로  서버 프로그램을 개발 할 수 있기 때문에 진입 장벽이 낮다.


거기에 Express 라는 웹 애플리케이션 개발 최적화 되고 배울것이 최소한인 프레임워크를 제공 하기 때문에 (최소한의 프레임워크를 제공하고 사용자가 기능 중에서 필요한 것만 추가하여 사용할 수 있도록 한다.)  빠르게 개발을 시작 하고 끝낼 수 있다.


책은 Node.js 및 Express 에 대한 간단한 소개로 시작해서 “메도라크 여행사 웹사이트” 라는 예제 (웹사이트 및 API 제공) 를 작성하며 웹사이트를 개발는 전반적인 내용과 그에 따라 Express 의 기능을 사용 하는 방법을 배운다. 


요청과 응답 객체 다루기

템플릿 엔진 핸들바 (handlebars) 사용하기

서버로 데이터(및 파일) 전송하기

쿠키와 세션 다루기

데이터베이스 다루기

이메일 다루기


또한 Express 의 사실상 모든것이라고 할 수 있는 미들웨어 대해 다룬다. (익스프레스 애플리케이션은 미들웨어의 조합이다.) 


미들웨어란 간단하게 말하면 요청과 응답 과정에 중간에서 원하는 작업을 처리 하는 함수이다. 함수의 매개변수로 다음 처리될 함수를 줄 수 있어서 작업을 정해진 순서대로 처리할 수 있도록 한다. 책에서는 미들웨어에 대한 정의와 널리 쓰이는 미들웨어를 소개 한다.


마지막으로 사이트 오픈 및 오픈이후의 유지보수에 대한 내용을 간략히 소개한다. 짧은 내용이지만 반드시 실천해야할 내용을 담고 있다.


전반적인 웹에 관한 내용을 다루지만 그렇게 어렵지는 않은 책이다. 다만 너무 기초가 없으면 곤란한 부분이 존재한다. 자바스크립트는 책을 보기전에 미리 공부하는 것이 좋겠고, 웹의 구조등에 대해서는 책을 보면서 모르는 단어가 나올 때 마다 찾아보며 함께 공부하면 편하다.


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




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
[전자책] 생계형 개발자, SI에서 살아남기 (개정판)
연서은 / 부크크 / 2020년 12월
평점 :
장바구니담기


우연치 않게 위키독스에서 검색해서 몇 챕터를 읽고



라고 느껴서 바로 구입해서 막힘없이 끝까지 훌훌 읽어 버렸다.


개발자 라고는 하지만 (밖에서는 그냥 회사원이라고 함)  정말 생계형 잡부로 입에 풀칠하며 살아왔는데 그 동안 겪었던 많은 내용들이 다 정리 되어 있는것 같아서 읽으면서 '그렇지 그렇지'를 연발 했다.


특히 '5.8 회사는 학교가 아닙니다.' 부분은 한부씩 인쇄해서 신입사원이 들어오면 자리 옆에 붙여놓고 싶을 정도이다. (나는 이 말을 2002년도에 학원에서 처음 들었다.) 


SI 쪽에서 오래 있어보신 분들께는 추억을 회상하는 읽을 거리가 될 수 있고, 이제 처음 생계형 개발자를 시작하려는 분들께는 SI 상세 집중 공략 같은 책이다.


꼭 사서 보자.








내가 초보라 신입이라 모르는데 왜 내게 알려주지 않아? 왜 나를 챙겨주지 않지? 라는 말은 돈 내고 교육 듣는 곳에서나 하세요. 다른 분들도 바쁘고 설혹 안 바쁘다고 해도 저런 말 하는 사람을 챙겨주는 것이 당연한 일은 아닙니다. - P178


댓글(0) 먼댓글(0) 좋아요(2)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
디노 첫걸음 - 최신 자바스크립트 런타임 알아보기
페르난도 돌리오 지음, 우정은 옮김 / 한빛미디어 / 2021년 3월
평점 :
장바구니담기


자바스크립트를 지원 하는 백엔드 런타임인 Node.js 가 나온지도 벌써 11년이다. 그동안 다수의 버전이 릴리즈 되었고 (현재 최신 버전은 15.14) , NPM 에는 100만개 이상의 패키지가 등록 되어 있지만 노드의 아버지인 라이언 딜은 2020년 5월 새로운 백엔드 기술을 개발했다.

이름은 NODE 를 뒤집어 놓은듯한 DENO.


책에서는 라이언 딜이 DENO 를 탄생시킨 배경과 설치 부터 시작 하는 주요 사용법, 또한 DENO 의 주 언어인 타입스크립트에 대해서 소개 하고 있다. 


가장 흥미롭게 읽은 부분은 DENO 의 보안 강화 부분이다.

스크립트를 실행하는 OS 가 보안을 처리하도록 하지 않고 사용자가 직접 허용할 권한을 지정하도록 강제 하는 부분은 아이폰의 개인 정보 보호 기능을 통해서 익숙한 내용인데, 서버에서 스크립트를 실행 하는 과정에서도 이에 대한 제약을 할 수 있는 부분이 아주 흥미로웠다. 내가 잘 알지못하는 모듈들이 내가 허용하지 않은 작업을 하지 못하게 하는 것은 사실상 왜 여태까지 그런 제약이 없었는지 싶을 정도 이다. 그리고 실행방법도 아주 간단하다. 단순히 스크립트 시작 부분에 플래그를 추가 하기만 하면 된다.


DENO 가 Node.js 를 대신할지에 대한 여부는 여러 내용들을 읽어봐도 알기가 어렵다. 하지만 백엔드 런타임을 새로 배워야 한다면 DENO 로 시작 하는 것도 나쁘지 않을듯 하다.


책의 마지막에서 언급 하지만 이 책을 번역하는 2021년 1월에는 DENO 의 버전이 1.7.1 이었다. 현재 이 리뷰를 쓰는 시점의 DENO 의 버전은 1.9.0 이다.


DENO 개발팀은 얼마나 열심히 일하고 있는 것인가.


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


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
웹 애플리케이션 보안 - 정찰, 공격, 방어 세 단계로 배우는 웹 애플리케이션 보안의 모든 것
앤드루 호프먼 지음, 최용 옮김 / 한빛미디어 / 2021년 2월
평점 :
장바구니담기


보안에 관련된 행위라고는 시큐어코딩 가이드에 따라서 코드를 작성 한다던지, 보안취약점 진단결과에 따른 내용을 조치 하는 작업 밖에 해본적이 없다.


애초에 어떤 웹 애플리케이션의 취약점을 찾는다던지 해킹을 한다던지 하는 행위에 대한 생각을 해본적이 거의 없었기 때문에 당연히 어떻게 하는지도 알지 못했다.


책은 정찰, 공격, 방어 세 단계로 나누어 웹 애플리케이션 보안에 관련된 전반적인 이야기를 하고 있다.


정찰은 웹 애플리케이션의 구조와 기능을 조사 하여 기술과 구조에 대한 깊은 이해를 얻고, 그것을 문서화 하는 여러가지 방법을 이야기 한다. 


공격은 해커가 현대 웹 애플리케이션에 침투하기 위해 공통적으로 사용하는 기법을 다룬다.

XSS, CSRF, SQL Injection 등 그나마 많이 들어본 용어들이 등장 한다.


방어편에서는 웹 애플리케이션을 보호 하는 방법에 관한 이야기를 진행 한다. 내용을 책의 각 주제가 연관성을 가지도록 순서를 배치 하여 앞에서 나온 주제들에 대한 추가적인 설명을 진행해 나간다. 그리고 애플리케이션 보호에 관한 실질적인 방법에 대해서 이야기 해 나간다.


아래와 같은 구문들이 인상 깊었다.


p. 246

“웹 애플리케이션 보호는 중세시대 성의 방어와 같아서 모든 잠재적 진입로를 최대로 방어하는 것은 불가능 하므로 우선순위를 세우는 것이 중요 하다.”


p.248

“취약점을 찾는 전통적인 방식은 고객이 알려주거나 대중에게 널리 공개되는 것이다. (이 방법은 최악이다.”


보안이라고는, 단순히 개발시에 시큐어코딩 가이드에 따라서 코딩을 하고, 개발 후에 pmd 를 적용하여 테스트하고 매년 보안취약점 진단검사를 받고 패치 하는 작업이 전부였었는데, 실질적으로 어떻게 조사하고 침입하는지에 대한 방법을 배우는 것이 매우 의미 있었다.



웹 애플리케이션 보호는 중세시대 성의 방어와 같아서 모든 잠재적 진입로를 최대로 방어하는 것은 불가능 하므로 우선순위를 세우는 것이 중요 하다 - P246

취약점을 찾는 전통적인 방식은 고객이 알려주거나 대중에게 널리 공개되는 것이다. (이 방법은 최악이다.) - P248


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