한 권으로 끝내는 Node & Express : 모던 웹을 위한 서버 사이드 자바스크립트의 모든 것 - 2판
이선 브라운 지음, 한선용 옮김 / 한빛미디어 / 2021년 5월
평점 :
장바구니담기


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


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


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


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


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


요청과 응답 객체 다루기

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

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

쿠키와 세션 다루기

데이터베이스 다루기

이메일 다루기


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


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


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


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


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




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


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



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


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


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


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


꼭 사서 보자.








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


댓글(0) 먼댓글(0) 좋아요(2)
좋아요
l 공유하기 l 북마크하기찜하기 lthankstoThanksTo
 
 
 
디노 첫걸음 - 최신 자바스크립트 런타임 알아보기
페르난도 돌리오 지음, 우정은 옮김 / 한빛미디어 / 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)
좋아요
l 공유하기 l 북마크하기찜하기 lthankstoThanksTo
 
 
 
웹 애플리케이션 보안 - 정찰, 공격, 방어 세 단계로 배우는 웹 애플리케이션 보안의 모든 것
앤드루 호프먼 지음, 최용 옮김 / 한빛미디어 / 2021년 2월
평점 :
장바구니담기


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


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


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


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


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

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


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


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


p. 246

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


p.248

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


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



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

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


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
l 공유하기 l 북마크하기찜하기 lthankstoThanksTo
 
 
 
플러터 인 액션 - 안드로이드와 iOS 애플리케이션을 한 번에 개발하는 완벽 가이드
에릭 윈드밀 지음, 우정은 옮김 / 한빛미디어 / 2021년 2월
평점 :
장바구니담기


한번 코드를 작성하여 여러 플랫폼에서 사용 할 수 있는 것은 엄청나게 큰 장점이다. 플러터는 이런 장점을 가진 모바일 SDK 이다. 누구나 플러터를 이용하여 간단한 방식으로 모바일 쉽게 만들 수 있다고 저자는 이야기 한다.


책의 대상 독자를 보면 앱을 개발한 경험이 있다고 가정하고 있다. 수박 겉핥기 식으로 안드로이드 책을 읽어본적은 있지만, 실제로 앱을 개발해 본 경험은 없었기에, 책에서 나온 여러가지 용어들을 따로 인터넷을 검색해가며 찾아봐야 했다. 


플러터는 dart 라는 프로그래밍 언어를 사용 하는데, 2장에서 이에 대하여 설명 하고 있다. 책의 내용들 중에서 가장 쉽게 읽을 수 있는 부분이었다. 경험해본 언어라고는 java, python 정도 인데, java 와 매우 비슷해 보이지만 더 간결하고 쓰기 편하다고 느꼈다.


플러터는 앱개발에 필요한 모든 것을 제공 하고 이를 쉽게 설치하고 활용 할 수 있다. 부록과 flutter 홈페이지를 참고 하여 mac os 환경에서 homebrew 를 설치 하고 fludder sdk 를 다운로드 하여 설치하고 카운터 앱을 만들어 실행 하는데 채 한시간 걸린것 같지 않다. (가장 많은 시간이 소요된 것이 xcode 를 다운로드 하는 시간 이었다.)


어찌어찌 xcode 도 설치하고 소스파일을 작성할 에디터인  vscode 를 실행하여 카운터 앱 프로젝트를 확인 해 봤는데, 역시나 전혀 알 수 없는 구조의 프로젝트이다. 걱정할 필요는 없다.책의 3장에서 플러터의 기본 프로젝트 구조 부터 플러터 앱이 어떻게 구성되는지 자세하게 설명 한다.


모든 것은 위젯이다라는 설명 처럼 플러터는 어떤 위젯을 사용할 수 있는지에 대해서 아는 것이 중요 하다. 각각의 위젯을 조합 하여 화면을 구성 하기 때문에, 어떠한 위젯들이 있으며 어떤 상황에 어떤 위젯을 사용하는 지가 매우 중요 하다. 이에 대한 기초적인 설명이 4장에 있다.


라우팅, 상태관리, 비동기 처리, 데이터 처리 등 잘 알 수 없지만 중요한 내용들이 나머지 뒷부분을 채우고 있는데, 위젯 다루기에 조금만 더 익숙해지면 다시 읽어 볼 계획이다.


매년 새로운 언어를 최소 하나는 배워라 라는 실용주의 프로그래머의 책 내용을 다시 한번 상기하며, 올해의 목표는 플러터로 앱을 하나 개발해 보는 것으로 하려고 한다.


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