모던 자바스크립트 핵심 가이드

 

자바스크립트는 대충 알고 있고 적당히 복사해서 사용하면 되는 것 아닌가라는 생각을 많이 했다. ES6니 typescript니 하는 것은 남의 이야기 로만 알고 살았다. 오랜 기간동안 IE 를 벗어날 수 없었던 환경에서 일해왔던 점을 궁색하지만 변명이라고 둘러대고 싶다.

이런 가운데, 이제 IE11도 2022년 6월로 지원이 종료되고, 세상이 변하기 시작하면서 자바스크립트를 다시 공부할 필요할 필요가 생겼다. 무엇 보다도 스크립트에서 알 수 없는 기호(대표적으로 화살표)가 보이기 시작했다.

그런 가운데 좋은 기회로 “모던 자바스크립트 핵심 가이드” 를 만났다.

# 장점
일단 얇다. 
총 300페이지가 안되는 책으로, 사이즈도 작아서 지하철로 출퇴근 하는 동안 읽기에 매우 간편했다. 

얇지만 알차다. 
자바스크립트의 기초 부터 시작 해서, 각종 자료형, 연산자, 클래스, 프록시 등 필요한 모든 내용을 다루고 있다. 

ES6가 끝이 아니다. 
ES2016 ~ ES2020 까지의 새로운 기능을 다루고 있다. 

# 단점
완전한 초보를 위한 책은 아니다. 
아주 친절히 설명 하지만, 기본적으로 자바스크립트를 해본 사람을 대상으로 했다고 생각 한다. 초보자를 위해서 00 장이 추가되었다고는 하지만, 나같은 중고 초보에게 훨씬 도움이 되었다. 
(이것은 장점 인가 단점 인가?)

# 독학을 위한책
“모던 자바스크립트 핵심 가이드”는 각 챕터별로 평균 5개 정도로 나누어 자바스크립트의 기능에 대한 설명을 하고 있는데, 설명이 간결하고 명확한 용어들을 사용해서 책에서 설명이 안된 더 자세한 내용을 원할 때 쉽게 검색해서 찾을 수 있도록 한다. 다만, 번역 과정에서 한글로만 써놓은 용어들은 옆에 영어표현을 모두 붙여주었으면 어땠을 까 하는 아쉬움은 든다.

끝으로


ES6로는 이런게 가능 하다고 한다.
안써볼 이유가 없지 않은가?



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

 

기초부터 활용까지 차근 차근 shell 장벽을 넘자.

 



windows 와 GUI 만 사용해본 사람에게 shell 이라는 것은 linux 에 입문을 하기 위한 첫 장벽 같은 느낌이다.

책은 셸 스크립트의 기초 문법 부터, 가장 많이 쓰는 리눅스 명령어 그리고 앞에서 배운 기초를 실무에 활용하는 예제로 shell 이라는 큰 장벽을 넘기위한 모든 것을 제공 하고 있다.

# 입문자
입문자의 입장에서는 명령어나 문법만 늘어놓은 책은 머리만 아프고 복잡하게만 보이는데, 실제로 활용하는 방법을 탁월한 예제와 함께 제공 하는데, 이 방식이 재미 있으며 정리가 굉장히 잘 되어 있다. 실제 업무에서도 문제 상황이 발생한 경우 이 순서를 통해 해결할 수 있는 능력을 기르도록 해준다.

# 문제 해결의 순서
먼저 다양한 상황을 가정하고 (상황)
해당 상황에서 어떻게 문제를 해결할 것인지 방법을 찾고 (방법 찾기)
찾은 방법에 따라 해당 스크립트를 생성하고 (스크립트 생성)
스크립트를 통해 문제를 해결 (문제 해결)

# 래퍼런스
책은 또한 많이 사용하지만 헷깔리기 쉬운 명령어 (find, awk, sed) 에 대한 자세한 설명을 담고 있어 입문자 뿐 아니라 숙련된 사용자도 필요한 경우에 참조 할 수 있도록 되어있다. 

# 오픈스택
클라우드 시스템 운영에 대한 부분은 오픈소스 클라우드 플랫폼인 오픈스택을 이용하여 클라우드 시스템을 운영할 때 발생할 수 있는 다양한 상황에서 좀더 효율적으로 시스템을 운영할 수 있는 방법들에 대해 소개 하고 있다. 

 


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


DB 공부를 하면서 가장 어려운 부분이

1) DBMS 설치와

2) 뜬구름 잡는 듯한 샘플 데이터 (SCOTT, HR) 그리고

3) 무엇부터 어떻게 공부해야 할 지 모르는 것이다.

 

# DBMS 설치 및 실습 준비

“시험장에 몰래 가져갈 이경오의 SQL+SQLD 비밀노트” 는 가장 많이 사용하고 친숙한 OS 인 Windows 환경에서 ORACLE DBMS 설치 및  tool (SQL Developer, DBeaver) 사용법을 시작으로

 

# 실제하는 데이터를 활용 가능한 모델로

실습하는 데이터 모델을 실제 하는 데이터(소상공인시장진흥공단_상가(상권)정보, 지하철역승하차 데이터, 인구데이터)
로 진행 하는데, 이는 모두 공개되어 있는 데이터로 인터넷을 통하여 다운로드 받을 수 있는 데이터셋이다. 

 

우리의 일상생활과 밀접하게 관련되어 있는 데이터가 어떻게 데이터 모델로 설계되는지의 과정과 각 SQL 실습 과정을 통하여 데이터를 통해 어떤 결과들을 얻어낼 수있는지를 생각해 보는 것도 좋은 경험 이었다.

 

# 공부하는 순서

그외 목차는 국가공인SQL개발자 자격의 시험주요내용에 따라

1) 데이터 모델링의 이해
2) 데이터 모델과 성능
3) SQL 기본
4) SQL 활용
5) SQL 최적화 기본원리

 

순으로 이루어 지며, 책의 제목으로 사용하고 있는 비밀노트는 맨 마지막 부분에 위치 한다.
(책의 연습문제 및 시험 직전 비밀노트는 저자가 수년간의 경험을 바탕으로 시험에 출제될 만한 문제 및 내용을 정리한 것이라고 한다.)

책 내용중 한부분을 소개한다. 

아래는 실제 인구데이터를 이용한 집계관련 함수 실습 내용이다.

먼저, 집계관련 함수가 사용된 코드를 소개 하고,

결과 값을 보여주며

최종적으로 각 항목들에 대한 설명을 자세히 진행 하는 식으로 되어 있다.


강의 경험이 많은 저자의 친절한 설명으로, 자세한 내용을 잘 모르고 사용하던 부분들에 대해서 정확히 알 수 있는 좋은 기회가 되었다.

 

# 추천

꼭 SQLD 시험 만을 위한 책처럼 보일 수 있지만, 

데이터모델링 및 SQL에 대한 이론과 실습을 바탕으로 실무에서 활용할 수 있는 능력을 길러줄 수 있는 책이며
또한 DB를 처음 공부해야 하는 대학생이나, SQL 활용이 미숙한 신입사원에게 꼭 사서 선물하고 싶은 책이다.

열심히 읽고 나면 SQLD 자격증은 덤이다.

 

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

 

첫 구매 책이 PHP 라니....

 

 

자바스크립트를 지원 하는 백엔드 런타임인 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 개발팀은 얼마나 열심히 일하고 있는 것인가.



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

 

 

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

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

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

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

공격은 해커가 현대 웹 애플리케이션에 침투하기 위해 공통적으로 사용하는 기법을 다룬다.
XSS, CSRF, SQL Injection 등 그나마 많이 들어본 용어들이 등장 한다.

 

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

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

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

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

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

 

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

 

대한민국 치킨전 을 탐독했기에 또다른 치킨의 역사에 관한 이야기인가 얼핏 생각 했지만

 

대한민국 치킨전

한국인의 소울푸드로 자리매김한 치킨을 본격적으로 다룬 최초의 책이다. 농촌.농업 사회학을 전공한 젊은 학자 정은정은 표준 표기인 ‘프라이드치킨’ 대신 ‘후라이드치킨’을 고집한다.

www.aladin.co.kr

일반적인 의미의 치킨이 아니라, 원래 의미의 chicken 에 관한 이야기 이다.

 

원 제목은 "鳥肉以上,鳥学未満 : HUMAN CHICKEN INTERFACE" 새(닭)고기 이상, 조류학 미만

 

조류학의 대상으로서의 닭에 대한 내용을 먹을거리와 연관 지어 재미있게 풀어내고 있다. 

닭가슴살, 날개, 넓적다리로 시작해서 마지막엔 머리까지 먹을 수 있는 부분은 다 먹어 본다. 

 

"우리는 일상적으로 닭고기를 먹는다. 먹을 때는 이 고기의 구조를 세세히 관찰할 수 있고 고기가 붙어 있는 뼈의 형태를 확인할 수 있다. 그리고 다양한 부위의 고기를 먹으면 새의 전체 형태를 지근거리에서 파악할 수 있다."

 

쉬운 내용이 아닐진데, 무척이나 쉽게 쓰여 져서 손에 쥐고 끝까지 어렵지 않게 읽었다.

다만, 간간히 나오는 개그는 참으로 이해하기 어렵다.

 

 

리눅스는 어렵다.

 

설치도 쉬워지고, 참고 할 책도, 사이트도 많아졌지만

처음 시작하는 사람에게는 여전히 막막하고 어려운 운영체제다.

 

처음부터 제대로 배워 보겠다고, 글자만 가득찬 큰 책을 펼치고

리눅스의 역사 부터 공부하다 보면 금방 포기 하기 쉽상이다.

 

거기에다 실무에서 필요하다고 해서 공부 하다 보면 한 대의 컴퓨터로는 좀처럼 테스트 해보기 어려운 상황도 많다.

 

저자는 이런 부분들을 해결하고 쉽고 빠르게 리눅스 실무를 배울 수 있는 학습 로드맵과 학습 방법을 제시 한다.

 

리눅스 뿐만 아니라, 이런 환경을 처음 접하는 사람을 위하여 가상머신의 소개 부터 시작하여, 실무서버 구축 밑 테스트를 위한 준비를 확실하게 해주어, 책의 내용을 따라가는 것을 넘어서 책에서 제공하지 않는 부분에 대한 부분도 스스로 쉽게 공부 할 수 있도록 도와 준다. 

 

게다가 이것이 우분투 리눅스다(개정판) 에서는 무료 동영상 강의 까지 제공해주고 있다.

 

https://youtu.be/pSuHUNghIeM

 

리눅스를 처음 시작하는 꼭 추천하는 책이다.

 

다만, 동영상강의 처음에서도 이야기 하고 있지만, 이것이 리눅스다, 이것이 페도라 리눅스다 와는 리눅스 배포판의 차이만 있을 뿐 사실상 같은 내용이므로, 어느 책으로 학습해도 상관은 없다.

 

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

알라딘에서 미야베 미유키의 에도물 중 

미시마야 변조괴담 1-4를 구입했다.

 

흑백

 

순서대로

 

흑백

안주

피리술사

삼귀

 

북스피어는

왜 여러 시리즈 중 미시마야 변조괴담 시리즈만 ebook 으로 낸 것일까...

 

종이책도 모으고는 있지만, 편하게 읽기에는 ebook 이 더 나은 것 같다.

 

 

최신 자바 개발 기법?

제목만 보고 최신 자바 기술을 다루는 책인줄 알았다. 최신 자바 기술을 확인 하는 것이 목적이라면 저자의 다른 책인 모던 자바 인 액션을 보는 편이 낫다.  물론 7장에서는 람다표현식, 스트림, Optional 등의 최신(?) 자바기술을 다루지만, 이 얇은 책에서 소개 이상의 내용을 기대 하기는 어렵다.

 

이 책의 목적은 최신 기술을 소개하는 것이 아니라 좋은 소프트웨어를 개발 하는 방법을 배우는 것이다.  

SOLID?

(가수가 아니다!)

책에서는 소프트웨어 개발과 관련한 여러 핵심 주제들을 다룬다. 언젠가의 수업에서 들었던 듯한 SOLID 원칙을 책의 여러 챕터를 걸쳐 예제와 함께 소개 한다.

소프트웨어 설계에 관한 내용이다 보니 단순히 정의나 설명 만으로는 이해하기가 많이 힘든데, 실제 예제 (단순 예제가 아니라, 미니 프로젝트에 기반한 예제) 를 통해 이 원칙을 어떻게 구현 하는지, 구현 하는데에 어떤 디자인 패턴이 사용되는지를 설명 한다.  

누가 이 책을 봐야 할까?
자바도 사용 할 줄 알고, 스프링프레임워크도 사용 할 줄 알지만, 프레임워크가 왜 그렇게 구성되었는지 이해를 못할 때 꼭 읽어 봐야 한다고 생각 한다. 스프링프레임워크를 처음 배울 때 의존성 주입이라는 단어를 이해 못해서 고생 하던 때가 있었는데, 이 책을 먼저 읽고 의존성 주입에 관한 내용을 배웠다면, 이해가 훨씬 빨랐을거라고 생각한다.

물론 저자는 프로그래밍 경력이 조금 생기기 시작한 주니어 개발자라면 반드시 읽어야 한다고 이야기 한다.

프로젝트 기반 설명?
소프트웨어 개발 개념을 쉽게 이해 할 수 있도록 예제 프로젝트를 통해 설명 한다. 입출금 내역 분석기 프로젝트는 실제로 많이 사용하는  파일을 읽어서 업무를 처리하는 내용을 진행 하며, 소프트웨어 설계의 원칙 같은 큰 내용과, 예외를 처리하는 등의 소소하거나 중요한 내용 또한 메이븐 같은 빌드 도구에 대한 설명 까지 진행 하고 있다. 물론 구체적인 사용법은 따로 배우면 된다.

마치며
인덱스 포함 216페이지의 얇은 책이다.
어렵지 않은 책이지만, 사실은 어려운 내용을 다루고 있기 때문에  단순히 책을 다 읽었다고 해서 모든 내용을 이해하거나, 이해한 내용을 바로 사용 할 수 있는것은 아니다.

그래서 저자는 “중요한 것은 이를 연습(의식적 연습 : 목표를 가진 체계적인 연습)하는 것이다" 라고 이야기 한다. 반복하여 연습 하다 보면 의식적으로 사용하지 않더라도 습관으로 자리 잡는다. 모든 배움이 그렇겠지만 소프트웨어 개발의 세계에서도 통하는 이야기이다.

 

사족

소프트웨어 카타라는 단어를 처음 들어서 검색해보았다. 일본에서 유래된 단어인듯 한데, 해석 하자면 작은 훈련용 코드를 많이 풀어보았다는 말인듯 한다. 

 

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

+ Recent posts