메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

학교에서 알려주지 않는 17가지 실무 개발 기술

문자열 인코딩부터 웹 필수 지식까지

한빛미디어

집필서

판매중

  • 저자 : 이기곤
  • 출간 : 2020-04-16
  • 페이지 : 308 쪽
  • ISBN : 9791162242988
  • 물류코드 :10298
  • 초급 초중급 중급 중고급 고급
4.7점 (42명)
좋아요 : 12

빠르게 성장하는 개발자가 되려면 반드시 알아야 할 핵심 기술 17가지!

 

실무에 필요한 지식은 너무나 광범위해서 학교에서 배운 내용만으로는 부족하다. "학교에서 이런 것도 안 배웠어?"에 당황하는 주니어 개발자와 "아직도 이걸 몰라?"에 지친 실무자를 위해 17가지 필수 개발 지식을 한 권으로 묶었다. 소프트웨어를 지탱하는 7가지 기술, 데이터를 처리하는 6가지 기술, 웹을 지탱하는 4가지 기술을 파이썬 코드를 활용해 핵심만 설명한다. 더 나아가 17가지 기술을 언제, 어떻게 써야 하는지도 배운다. 이 책을 정독하고 나면, 남들보다 앞선 출발점에서 시작하는 자신을 보게 될 것이다. 학교에서 알려주지 않는 기술과 경험을 실무에 활용할 준비가 되었는가?

 

 

주요 내용

  • 소프트웨어 기술: 문자열 인코딩, 난수, 범용 고유 식별자, 다국어 처리, 해시 함수, 날짜와 시간, 정규 표현식
  • 데이터 처리 기술: JSON, YAML, XML, Base64, 프로토콜 버퍼, 데이터 압축
  • 웹 기술: HTTP, RESTful API, HTTPS, OAuth 2.0

 

대상 독자

  • 초보적인 코드 작성은 할 줄 알지만, 실력을 한 단계 업그레이드하고 싶은 개발자
  • 실무에 필요한 기술이 무엇이 있는지 궁금한 학생

 

fin_200410_학교에서알려주지않는실무기술개발_700.jpg

 

 

이기곤 저자

이기곤

소프트웨어 프레임워크와 개발 프로세스를 만드는 C++ 개발자다. 한편으로는 개발의 본질적 가치와 의미를 찾기 위해 고민하고, 그 과정을 책으로 옮기며 살아간다.

저서로 『FFmpeg 라이브러리』, 『모던 스타트업』, 역서로 『The Nature of Software Development』, 『도커 오케스트레이션』, 『Docker로 PaaS 구성하기』가 있다.

 

 

[1부 소프트웨어를 지탱하는 기술]

1장 문자열 인코딩

__1.1 문자열 인코딩이란 

__1.2 아스키 코드(ASCII) 

__1.3 EUC-KR(CP949) 

__1.4 유니코드(UTF-8, UTF-16, UTF-32) 

__1.5 UTF-8 

__1.6 UTF-16 

__1.7 마치며 

 

2장 다국어 처리

__2.1 i18n이란

__2.2 i18n 적용하기: gettext

__2.3 마치며

 

3장 날짜와 시간

__3.1 타임스탬프 

__3.2 단조 시간 

__3.3 실제 시간 

__3.4 타임 존 

__3.5 마치며 

 

4장 정규 표현식

__4.1 정규 표현식 기초 

__4.2 실사용 예 

__4.3 마치며

 

5장 범용 고유 식별자

__5.1 UUID 구조 

__5.2 UUID 버전 

__5.3 실사용 예 

__5.4 마치며

 

6장 난수

__6.1 유사 난수 

__6.2 암호학적으로 안전한 난수 

__6.3 공정한 난수, 셔플 백 

__6.4 ‘무엇’을 위해 사용하는가 

__6.5 마치며

 

7장 해시 함수

__7.1 해시 함수 정의

__7.2 해시 함수를 사용하는 곳 

__7.3 해시 함수의 종류 

__7.4 해시 함수의 생성 속도 비교 

__7.5 실사용 예 

__7.6 마치며 

 

[2부 데이터 처리 기술]

8장 JSON

__8.1 JSON 특징 

__8.2 JSON 구조 

__8.3 JSON 메시지 읽고 쓰기 

__8.4 JSON의 한계 

__8.5 마치며 

 

9장 YAML

__9.1 YAML 특징 

__9.2 YAML 구조 

__9.3 YAML 메시지 읽고 쓰기 

__9.4 주석 사용하기

__9.5 앵커와 별칭

__9.6 마치며

 

10장 XML

__10.1 XML 특징

__10.2 XML 구조 

__10.3 XML 메시지 읽고 쓰기 

__10.4 마치며 

 

11장 프로토콜 버퍼

__11.1 프로토콜 버퍼의 특징 

__11.2 프로토콜 버퍼 사용 준비 

__11.3 스키마 파일 정의 

__11.4 인터페이스 코드 사용 방법 

__11.5 메시지 객체 정의 

__11.6 마치며 

 

12장 Base64

__12.1 Base64를 사용하는 이유 

__12.2 Base64 인코딩 구현 

__12.3 Base64 디코딩 구현 

__12.4 파이썬 모듈 사용 

__12.5 URL-Safe Base64 

__12.6 마치며 

 

13장 데이터 압축(zlib)

__13.1 zip, zlib, DEFLATE, INFLATE 

__13.2 압축 시 중요한 요소 

__13.3 파일 압축 예제 

__13.4 파일 압축 해제 예제 

__13.5 마치며 

 

[3부 웹을 지탱하는 기술]

14장 HTTP

__14.1 무상태성 

__14.2 간단한 HTTP 서버 만들기 

__14.3 HTTP 요청 

__14.4 HTTP 응답 

__14.5 세션과 쿠키 

__14.6 스티키 세션 

__14.7 CORS 

__14.8 아파치와 Nginx 

__14.9 마치며 

 

15장 RESTful API

__15.1 글쓰기 API 

__15.2 글 읽기 API 

__15.3 글 업데이트 API 

__15.4 글 삭제 API 

__15.5 마치며

 

16장 HTTPS

__16.1 HTTPS를 사용하는 이유 

__16.2 HTTPS의 구성 요소 

__16.3 HTTPS 핸드셰이킹 과정 

__16.4 마치며 

 

17장 OAuth 2.0

__17.1 OAuth 1.0a vs 2.0

__17.2 OAuth 2 기본 용어

__17.3 OAuth 2 동작 구조

__17.4 OAuth 2 사용 시 주의할 점

__17.5 마치며 

성장을 꿈꾸는 개발자를 위한 책

 

이 책은 복잡한 소프트웨어를 개발하는 데 기반이 되는 기술을 설명한다. 따라서 실무에서 마주할 복잡성이라는 문제를 해결하고 올바른 길로 나아가는 데 도움이 될 것이다. 소프트웨어 개발에서 가장 중요한 기술로 문제가 생기기 전까지는 배울 수 없는 인코딩을 시작으로, 소프트웨어 동작에 꼭 필요한 데이터 처리 기술까지 다룬다. 나아가, 어떤 환경에서 개발하더라도 데이터를 안전하고 효율적으로 주고받을 수 있는 웹 서비스의 근간이 되는 핵심 기술도 살펴본다. 

 

파이썬을 활용해 이런 기술들을 배울 것이다. 파이썬을 모르더라도, C, C++, JAVA 중 한 가지만 알면 쉽게 이해할 수 있는 코드로 구성되어 있다. 파이썬이 익숙한 독자라면 파이썬이라는 친구와 더 깊은 관계를 이어가는 기분으로, 파이썬이 낯선 독자라면 새로운 친구를 사귀는 기분으로 이 책을 여행할 수 있다.

 

현실에 안주하지 않고 성장을 꿈꾸는 개발자라면 이 책에서 설명하는 내용을 숙지하는 것을 강력하게 추천한다. 나아가 개발자를 꿈꾸는 학생에게도 유용한 책이다. 독자가 꿈꾸는 최고의 개발자가 되는 것을 상상해보아라. 그 개발자로 성장하기 위한 첫걸음을 이 책에서 시작해보자.

[이 서평은 출판사의 지원을 받아 작성하였습니다]

 

 

 

코딩에 대해서 기초를 떼고 나면, 뭔가 훅 나아질 줄 알았는데 그게 아니다. '완성'이라는 개념 자체가 없다. 특히 전공자도 아니고 비전공자로 시작한 입장에서 배워야 할 건 많고, 모르는 건 많고, 모르는 게 계속해서 많아진다는 건 고통스러운 일이다.

 

특히 면접을 준비할 때, 어떤걸 준비해야할지 막막하다. 마치 망망대해에서 어떤 걸 캐내야 할지 모르는 상태처럼, 너무나도 넓은 CS세계에서 초심자가 길을 잡기란 어렵다.

 

이 책은 그런 점에서 이제 막 걸음마를 시작한 초심자에게 맞는 책이라고 생각한다.

 

아무생각없이 하던 인코딩부터, 날짜와 시간, 데이터 처리에 필수인 정규표현식, 자료구조에도 나오는 해시 함수, JSON, XML, YAML과 같이 꼭 알아야 할 개념들을 설명하고 파이썬으로 직접 코딩해볼 수 있기 때문이다.

 

특히 각각의 개념들은 면접에서도 물어볼만한 개념들이다.

 

참조 : (www.youtube.com/watch?v=3ArYMq5AomI)

 

17가지 개념 외에도 개발을 위해 알아야 할 개념은 굉장히 많다. 

 

각 분야별 지식, 언어에 대한 지식, 운영체제에 대한 지식 등 사실 하자면 엄청 많은데, 그걸 다 한번에 정복하겠다고 하면 기운빠져서 하지 못한다.

 

Divide and Conquer. 우선 이 얇은 책을 익히고 코딩하며 익힌걸 써먹은 다음 계속 확장하는 전략이 필요하지 않을까 싶다.



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

 

학교에서 알려주지 않는 17가지 실무 개발 기술!!

학교를 졸업한지 오래되었지만, 실무를 하다보면 학교에서 배우지 못한 내용이 너무 많다.

물론 배웠으나 제대로 학습하지 않았거나 까 먹었을 수 있지만, 이제 막 실무를 접하는 사람들이나

실무를 오래했는데 정리가 필요한 분들을 위해 좋은 책인 것 같다.

 

나는 문자열 인코딩 관련한 문제를 많이 겪어봤고

구글링을 통해서 해결은 하였으나 정확한 개념이 없어서 항상 헷깔리고 왜 문제가 발생한지 모르는 경우가 많았다.

1장에 문자열 인코딩에 관해서 쉽고 자세하게 잘 설명해주고 있다.

아스키코드, UTF-8 등 많이는 들어보았지만 정확히 모르는 사람은 꼭 읽어보면 좋을 것 같다.

 

JSON 은 정말 많이 사용하고 있는 키와 값으로 구조화된 객체에 담아 처리하는 규격이다.

실무를 하다 보면 자연히 많이 사용되겠지만, 사전에 미리 알았더라면 더 좋았을 것 같다.

 

오픈소스에서 설정파일을 수정할때 YAML 파일을 많이 사용해보았다.

YAML만이 가지는 고유한 특징 덕분에 차세대 설정 파일 표준 규격으로 영역을 넓혀가고 있는데

한 번 읽어보고 숙지해두면 좋을 것 같다.

 

실무에 필요한 기초적이지만 꼭 알아야할 내용을 잘 정리해놓은 책이다.

특히 이제 막 대학을 졸업하고 개발쪽으로 취업을 준비중이라면 한번 읽어보기를 추천한다.

> 해당 포스팅은 한빛미디어 ‘나는 리뷰어다` 서평단 자격으로 책을 무료로 제공받아 작성된 서평임을 밝힙니다.

 

학교에서 알려주지 않는 17가지 실무 개발 기술 - 이기곤 저

 

## 책의 구성 및 평가

 

개발을 할 때 언젠가는 사용하게 될, 하지만 관심 없이는 알기 힘든 기술들에 대해서 설명하는 책 입니다.

 

이 책을 통해 Base64 / YAML 등 많이 사용하고 있지만, 어떤 기술인지 명확히 알아보고 있지 않았던 기술들에 대해 정리 할 수 있었습니다.

 

특정 기술이 어떤 기술인지 설명하고, 그에 대한 예로 파이썬 코드를 제시함으로써 책의 내용을 읽는데 큰 어려움이 없습니다.

 

다만, 기술에 대해 깊지는 않게 서술하고 있으므로 기술을 좀 더 알고 싶다면 책을 통해 대략적인 개념을 파악 한 뒤 추가적인 공부가 필요 해 보입니다.

 

알고 있던 내용을 한번 더 정리하거나, 사용하고 있던 기술을 한번 더 정리하는 용도로 책을 본다면 정말 좋은 책 이라 생각합니다.

 처음 회사에 입사하면 어떤 일을 할까 고민했던 적이 있었던 것 같다. 석사 전공이야 컴퓨터 구조와 관련된 내용을 했고, 그걸로 합격이 되었으니, 아마 이와 관련된 일을 하지 않을까 싶었는데, 사실 제일 처음 입사하자마자 한 일은 테스트 자동화를 위한 Shell Script 개발과 테스트 방법을 잘 이해할 수 있도록 나름의 Documentation 작업을 하는 것이었다. 이런 것들을 사실 학교에서 다루지 않는 것이다. 물론 나도 학부가 컴퓨터전공이 아니었기 때문에 뭐라고 확언하기는 어렵지만, 적어도 학교에서 가르치는 것은 뭔가 개념적인 내용이지 실제 실무에서 활용할 수 있는 자동화 개발이나, 어떻게 하면 SW 관련 문서를 잘 쓸 수 있을까에 대한 내용은 아니었던 것 같다. 모든 케이스가 그렇다고는 못하겠지만, 적어도 회사에 처음 왔을 때 신입사원에게 시키는 것은 당장의 개발 문제나 프로젝트 수행이 아닌, 업무를 통해서 빨리 익숙해지는 소위 OJT 식이라고 생각한다. 

그렇다고 직접적으로 실무에 연관이 된 내용이 아니더라도, 그렇게 시키는 내용들은 현업에서는 자주 쓰이는 내용이고, 어떻게 보면 필수적인 것들이다. 특히 데이터를 다루는 입장에서는 반드시 거쳐야 하는 단계가 Data Preprocessing인데, 여기서는 진짜 평소에는 경험하지 못한 문제들이 툭 튀어나온다. 가령 데이터를 인코딩한 쪽과 디코딩하는쪽과의 환경이 달라서 제대로 못 읽어오는 경우도 있었고, 또는 datetime 형식으로 csv에 저장되었는데, 실제 읽어올 때는 해당 타입으로 안 읽히는 경우도 있었다. 또는 뻔하게 오픈소스 코드에서 환경 재생성을 위한 yaml 파일이 제공되는데도, 이를 몰라서 삽질하는 경우도 있었다. 이런 상황을 단순히 학교에서 배운 내용으로 커버될 수 있을까?

 

그림 1. 학교에서 알려주지 않는 17가지 실무 개발 기술

 

앞에서 언급한 문제들을 해결하려면 그만큼 구글링을 해야되고, 어쩌면 왜 그렇게 작성했을까 이해하기 위해서 소스코드를 분석해봐야 한다. 그리고 가장 많이 방법을 찾는 곳이 stackoverflow일텐데, 이 책은 어쩌면 그런 stackoverflow에 나올 법한 해결책들이 쭉 나와있는 일종의 cheatsheet이라고 할 수 있다. 일반 개념서나 역서처럼 정해진 목차를 따라서 가는 방식이 아니라 크게

  • 소프트웨어 기술
  • 데이터 처리 기술
  • 웹 기술

3가지 카테고리로 나눠서 각 기술별로 유용하게 쓸만한 팁과 이와 관련된 python 예시들이 제공되고 있다. 

처음 책을 접하는 사람이라면 책의 두께가 생각보다 얇다고 느낄 수도 있지만, 이 안에 담겨져 있는 내용들은 그 얇은 책으로 표현하기 힘들만큼 광대한 범위를 담고 있다. 여기서 다시 질문을 던져보면 다음과 같다. "이 안에서 다루는 내용들을 과연 학교에서 가르쳐줬을까?" 아마 장담하건데 아닐 것이다. 물론 학교 교육에서 기대하는 것은 수업 내용과 과제를 통해서 이런 기술들을 자연스럽게 습득해나가길 바라겠지만, 아마 대다수가 저런 문제를 딱 접하면, 진짜 저런것을 배웠나 싶을 정도로 생소하게 느껴질 것이다. 그리고 이 책의 내용이 담고 있는 내용을 보면, 현업에서 바로 쓰는데 도움이 많이 될 기법들이 소개되어 있다.

개인적으로 관심있게 읽은 내용은 파트 2에서 다뤘던 데이터 처리 기술 내용들인데, 아무래도 python과 관련된 실험을 수행할 때 되면, 실험마다 설정을 바꿔주고 기록하는 부분이 자주 발생한다. 이렇때 보통 설정을 스크립트와 병행해서 자동화하려면 필수적으로 다룰 내용이 JSON이나 XML일텐데, 이책에서 다루는 기본적인 파일 생성/처리 관련된 부분에서 해당 내용을 다룬다. 또한 Tensorflow에서 처리되는 모든 파일 형식은 ProtoBuf라는 형식을 따르게 되는데 역시 책에서 다루고 있고, 개인적으로도 이와 관련된 내용을 다루는 것은 거의 이 책에서 처음 본 것 같다.

여타 많은 말들을 계속 했지만, 이 책의 장점은 우리가 학교나 일반적인 교육 과정에서는 다루지 않은 기술들이 소개가 많이 되어 있고, 분명 현업에서 이런게 있으면 좋겠다 싶은 내용들이 담겨져 있다. 물론 책의 내용이 주류가 되어서 활용되지는 않지만, 뭔가 개발을 열심히 하고, 뭔가 편한 것, 내가 원하는 기능을 새로 구현해보려는 사람은 이 책에서 뭔가를 얻어가지 않을까 생각한다.

PS: 책의 예제 코드는 공개되어 있기 때문에, 어떤 내용이 다뤄지는지 궁금한 사람은 해당 github를 참고하면 좋을 것 같다.

 

 

sorrowhill/17techs

Contribute to sorrowhill/17techs development by creating an account on GitHub.

github.com

 

(해당 포스트에서 소개하고 있는 "학교에서 알려주지 않는 17가지 실무 개발 기술" 책은 한빛미디어로부터 제공받았음을 알려드립니다.)

출처: https://talkingaboutme.tistory.com/entry/Book-17techs [자신에 대한 고찰]

이 책은 보통 대학교 과정에서 소프트웨어, 컴퓨터 공학 강의에서는 깊게 다루지 않는 실무에 좀 더 가까운 개발 기술을 소개하고 있다. 

 

 

 

총 세 부분으로 나눌 수 있는데,

1. 소프트웨어를 지탱하는 기술

: 인코딩, 날짜와 시간 처리, 정규 표현식, 고유식별자, 난수 등을 배울 수 있다.

 

 

2. 데이터 처리 기술

: JSON, YAML, XML 등 다양한 데이터 표현 형식과 이를 처리하는 방법에 관해 배우게 된다.

 

 

3. 웹을 지탱하는 기술

: HTTP, RESTful API 와 같이 웹 개발에 필수적인 기초 실무 지식에 관하여 다룬다.

 

 

 

 

내가 생각하는 이 책의 강점은 소프트웨어나 IT 관련 전공을 이수한 사람이라면 한번쯤은 들었을 내용을 추상적인 형식의 겉핧기 식의 설명이 아니라 실제로 사용되는 방법을 아주 쉽게 설명한다는 것이다. 예를 들어, 문자열 인코딩 중 아스키코드, 유니코드 등은 한번씩 들어봤을 것이다. 그러나 그것이 정확히 어떤 식으로 나타나며 각 인코딩 방식별 차이점, 인코딩이 깨지는 이유 등을 이해가 쉽도록 서술한 책은 많지 않을 것이다. 

 

개인적으로는 대학교 신입생 때 '전산학 개론'에서 배웠었던 내용이지만 거기에는 그냥 한 문단 정도로 간략히 설명하고 넘어가버린다. 시험에도 설명하는 내용이 어떤 방식의 인코딩인지 정도만 물어보는 것이다. 그런데 이것이 중요한 이유는 바로 개발을 할때 문제되는 상황이 있기 때문이다.

 

 

 

 

나의 경우 이클립스로 작성하여 저장해왔던 Perl 스크립트들이 많았는데 이클립스를 다시 설치해보니 저장된 코드들이 전부 책 그림에서처럼 깨져있었다. 그 이유는 UTF-8로 작성되어 있는 코드를 EUC-KR 인코딩 설정에서 읽으려 했기 때문이다. 당시에는 그냥 해결하는 방법만 알게 되었는데 이 책을 보고 왜 그런 일이 발생하게 되었는지 알게 되었다. 

 

 

그리고 이 책에 설명된 정규표현식 파트가 아주 유용하다. 나는 Perl의 가장 강력한 기능인 정규표현식을 매일 다루기 때문에 어느정도 정규표현식에는 자신이 있다고 생각하는데 Perl 책에도 잘 소개는 되어있지만 비밀번호 검증, 이메일 주소 검사, 웹 크롤러 등 실제로 쓰이는 사례 위주로 공부하니 더 기억에 많이 남지 않을까 생각했다. 완전히 책 한권을 정규표현식만 다루는 책이 있는데 그런 책을 볼 것이 아니라면 사례 위주로 모르는 내용은 '정규표현식' 연습장 사이트 등에서 직접 작성해가며 보충하여 깨닫는 것이 중요하다고 생각한다.

 

나머지 난수나 해시 함수를 이해하는 것도 인증 부분을 설계하고 개발할 때 중요하다고 생각한다. 보안 기사 등의 이론서에서 나오기는 하지만 파이썬 코드를 이용한 예제로 그 결과를 직접 보면서 과정을 배우지는 않기 때문에 이 부분도 이 책의 가장 큰 장점이라 하겠다.

 

 

 

아까 언급했던 정규표현식도 같은 맥락에서 나는 Perl을 주로 쓰지만 이 책에서는 파이썬 코드로 설명을 하고 있다. 사실 웹 크롤러 때문에 파이썬에서의 정규표현식이 궁금했고 익숙치 않았는데 여기서 잘 기술된 설명으로 다시 보게 되다니 좋았다.

 

 

제 2장에서는 데이터를 표현하고 처리하는 규격에 대해서 배우게 된다. 솔직히 말하면 학생 시절에 XML이 뭔지 가르쳐주는 것도 없고 책의 설명이나 인터넷 내용들은 어렵기만 했다. 그리고 그런 설명들도 너무 추상적이어서 실제로 어떻게 쓰는지 알고 싶었다. 마찬가지로 JSON, YAML 같은 방식도 내가 IT 업체를 다니게 되면서 알게 된 것이다. 특히 JSON을 파싱하는 코드를 짜야 했을 때 어려움이 많았다. 그때는 맨땅에 헤딩으로 그냥 내가 데이터 표현 방식을 직접 눈으로 보며 파악해가는 방향으로 개발했었는데 이 책의 내용은 너무도 쉽고 친절하게 설명해주고 있다. 

 

 

 

마지막으로 제 3장은 많은 분들이 어느정도는 알고 계시리라 믿는다. HTTP. HTTPS에 관한 내용이 나오는데 이정도는 보통 네트워크 관련 수업에서 배우니 말이다. HTTP 메소드의 경우도 정보처리기사나 정보보안기사에 필수적으로 공부해야 하는 부분이 아닌가. 그러나 이 범위에 나오는 약간은 생소할 수도 있는 RestfulAPI나 OAuth 같은 기술은 마찬가지로 좀 더 실용화된 예제를 학교에서는 가르쳐주지는 않을 것이므로 웹 분야에서 일하는 개발자라면 반드시 이해하고 넘어가야 하는 내용이라 생각한다.

 

 

 

이 책의 독자 대상으로는 IT 분야를 최소한 학교에서 배우거나 기초적인 지식이 어느정도 있으면서 한 가지 프로그래밍 언어 정도는 익힌 사람이 될 것 같다. 내가 완전히 IT와 프로그래밍, 컴퓨터에 대해서 전혀 모르는데 바로 첫장부터 이해하기는 쉽지는 않을 것 같다. 사실 실제 내용이 그렇게 어려운 수준이 아닌데도 말이다. 그러나 아주 불가능한 것은 아니라고 생각한다.

 

 

 

마무리로서 이 책의 코드는 책 앞쪽 부분에 있는 깃허브 저장소에서 모두 다운로드하거나 볼 수 있고 요즘 가장 많이 쓰이고 인기 있는 언어 중에 하나인 파이썬으로 실무에서 쓰는 방식을 예제로 만들어 수록하였기 때문에 파이썬을 공부하거나, 파이썬은 아니지만 해당 코드를 자신이 주로 쓰는 언어와 환경에서 변환하는 과정 속에서 더 깊은 이해를 할 수 있을 것 같다.

 

 

 개발하다 보면 항상 유틸리티를 만드는 곳은 비슷한 듯하다

문자열 인코딩, 다국어, 날짜/시간, 정규 표현식 등등 그런 부분들에 대해서 언제가 정리해서 나중에 다른 프로젝트에서도 사용해야지 하는 생각만 하곤 했다. 하지만 언제나 그렇듯이 새로운 프로젝트를 하면서 다시 초기화되곤 했다.

 이 책을 보면서 나처럼 생각한 것에 대해서 정리가 잘 되어서 사람들이 생각하는 것은 비슷하다고 느꼈다. 파트를 3개(소프트웨어, 데이터, 웹)로 나눠서 조목조목 필요한 부분을 기술해서 필요한 부분을 쉽게 찾을 수 있었다.

특히 초급 개발자에게는 한 번쯤 보고 자신만의 유틸리티를 만들면 좋은 듯하다. 물론 이 책은 파이썬으로 작성되어 있어서 자바 개발자들에게는 바로 사용할 수는 없겠지만, 챕터마다 간단한 원리도 적혀있고, 파이썬이라고 해도 간단하게 조금만 노력한다면 다른 언어로 바꿀 수 있지 않을까 하는 생각을 해 보게 되는 책이다.

 

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

2021년 올해의 책리뷰 / 학교에서 알려주지 않는 17가지 실무 개발 기술 / 한빛미디어

 

 

대학교 또는 강의, 책, 블로그를 통해 개발 관련 이론 및 프로그래밍 언어 문법을 배울 수 있다. 하지만, 실제로 소프트웨어를 어떻게 만들어야 하는지, 실무에서는 어떻게 적용해야 하는지는 회사에 들어가지 않고서는 경험하기 어렵다. 이러한 어려움을 해소할 수 있는 책이 바로 '학교에서 알려주지 않은 17가지 실무 개발 기술' 이다.

 

이 책은 파이썬 언어를 기반으로 작성된 책이지만, 최소 한 가지 이상의 프로그래밍 언어를 알고 있는 사람들을 대상으로 한다.

 

책은 총 3부로 구성되어 있는데, 1부는 소프트웨어를 지탱하는 기술에 대하여 소개하고, 2부는 데이터 처리 기술에 대해 소개한다. 그리고 마지막 3부는 웹을 지탱하는 기술에 대하여 소개를 한다.

 

1부 소프트웨어를 지탱하는 기술에서는 먼저 문자열 인코딩을 다룬다. 아스키 코드, EUC-KR, UTF-8,16,32에 대해 살펴보고 인코딩마다 주의할 점을 다루고 있다. 그 다음은 다국어 표준인 i18n에 대해 살펴본다. 다국어를 처리하는 방법은 프로그래밍 언어나 소프트웨어 프레임워크마다 다르지만, 동작 방식은 모두 비슷하기에 i18n을 기준으로 살펴본다. 그리고 소프트웨어에서 사용하는 날짜와 시간의 종류와 사용법, 주의할 점을 다룬다. 또한, 정규 표현식과 범용 고유 식별자, 난수, 해시 함수에 대해서 다룬다.

 

2부에서는 소프트웨어가 동작하기 위해 필요한 네 가지 대표적인 데이터 처리 기술인 JSON, YAML, XML, 프로토콜 버퍼(Protobuf)를 다룬다. JSON, YAML, XML이 텍스트 기반 규격이고, 프로토콜 버퍼는 구글에서 만든 바이너리 기반 규격으로 더 빠르고 효율적으로 데이터를 가공하고 처리할 수 있다. 그리고 인코딩 방식 중에 하나인 Base64를 다루고, 데이터 압축 방법인 zip, zlib, DEFLATE, INFLATE에 대해 배울 수 있다.

 

3부에서는 웹 서비스의 근간이 되는 핵심 기술 네 가지인 HTTP, RESTful API, HTTPS, OAuth 2.0을 다룬다. HTTP, RESTful API는 데이터를 주고 받는 기술이며, HTTPS, OAuth 2.0은 웹 서비스를 안전하게 만드는 데 도움을 주는 보안 기술이다.

 

깊은 내용은 다루지 않지만, 실무에서 꼭 필요한 부분을 다루고 있어, 개발자들에게 많은 도움을 주는 책이다.

 

 

 

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

 

001.png

 

제목 그대로 학교의 교육 과정에서 알려주기 어려운, 그렇지만 실제 업무에서는 꼭 필요한 기술에 대해 친절하게 담고 있다. 책은 크게 3 부분으로 구성되어, 소프트웨어를 지탱하는 기술, 데이터 처리 기술, 웹을 지탱하는 기술을 다루고 있다. 

 첫번째 파트인 소프트웨어를 지탱하는 기술에서는 문자열 인코딩, 다국어 처리, 날짜와 시간, 정규 표현식, 범용 고유 식별자 (UUID), 난수(RANDOM), 해시 함수의 7개 주제에 대해 소개하고 있다. 두번째 파트인 데이터 처리 기술은 JSON, YAML, XML, 프로토콜 버퍼, Base64, 데이터 압축 (zlib) 를 다룬다. 마지막 파트인 웹을 지탱하는 기술에는 HTTP, RESTful API, HTTPS, OAuth 2.0 의 내용이 포함되어 있다. 

 이 책에서 다루는 17개의 주제는 실제 업무에서 상당히 많이 사용될 수 있는 내용들이다. 특히 1부, 2부에 포함된 주제들은 실제 종사 분야와 관계없이 공통적으로 도움이 될만한 것들이다. 정규표현식은 개발자에 따라 이해도와 활용도에 차이가 나는 주제인데, 꼭 필요한 내용을 한정적인 지면에 잘 압축해서 설명하고 있다. 해시 함수 편에서 다루고 있는 솔트(Salt)는 현업에서의 노하우를 잘 보여주는 대목이다. 

 지은이의 말에서 저자가 밝힌 것처럼 이 책에서 소개하는 기술을 모두 사용해보거나 외울 필요는 없다. 하지만 이러한 기술이 있다는 것을 알고 필요할 때 찾아서 적용할 수 있는 능력은 무엇보다 중요하다. 학교에서 컴퓨터 관련 학과를 다니고 있는 학생들 뿐 아니라, 현업의 개발자들도 옆에 두면 좋을 책이다.

 

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

 

SE-dd5455fa-21ee-44ea-8cb7-532d7d7b4cd4.jpg

 

 

 

실무에서 중요한 핵심 로직을 만들거나 복잡한 문제를 해결할 때 알고리즘, 스레드와 프로세스, 스택과 힙 구조 등의 공학 이론이 큰 도움이 된다. 이런 공통 기술들은 언젠가 한 번 이상 사용하게되므로 이런 점들을 알고 업무에 시작하면 큰 도움이 된다. 이러한 기술들은 소프트웨어 공학 이론과 비교했을 때, 어렵지도 않고 당장 깊게 배워야 할 필요도 없다. 특히 분야와 상관없이 사용할 수 있다. 소프트웨어 공학이 더 뛰어난 결고물을 만들고 더 나은 개발자가 되는 데 도움을 주는 것처럼, 어떤 분야에서 일을 하건 적재적소에 알맞은 기술을 사용할 줄 안다면 더 나은 개발자가 되는데 도움이 될 것이다.  



빠르게 성장하는 개발자가 되려면 반드시 알아야 할 핵심 기술 17가지를 담았다. 소프트웨어를 지탱하는 7가지 기술, 데이터를 처리하는 6가지 기술, 웹을 지탱하는 4가지 기술을 파이썬 코드를 활용해 핵심만 설명한다. 소프트웨어 개발에서 가장 중요한 기술로 문제가 생기기 전까지는 배울 수 없는 인코딩을 시작으로, 소프트웨어 동작에 꼭 필요한 데이터 처리 기술까지 다룬다. 나아가, 어떤 환경에서 개발하더라도 데이터를 안전하고 효율적으로 주고받을 수 있는 웹 서비스의 근간이 되는 핵심 기술도 살펴본다.



실무에서 감초처럼 쓰이는 17가지 기술을 한 권으로 묵었다. 


1부 소프트웨어를 지탱하는 7가지 소프트웨어 기술에서는 소프트웨어 동작과 밀접한 관련이 있는 기술들을 소개한다. 이 기술들은 범용적으로 사용되기 때문에 어떤 프로그래밍 언어 및 소프트웨어 프레임워크에서든 해당 기능을 제공하는 함수를 쉽게 찾아볼 수 있다. 


- 문자열 인코딩


- 다국어 처리


- 날짜와 시간


- 정규 표현식


- 범용 고유 식별자


- 난수


- 해시 함수



2부 6가지 데이터 처리 기술은 소프트웨어가 동작하기 위해 필요한 데이터를 가공하는 기술들을 소개한다. 이 기술들은 텍스트 기반 규격과 바이너리 기반으로 나눌 수 있다. 얼핏 보면 비슷한 텍스트 기반 규격들이 각각 어떤 특징이 있는지 살펴보고, 바이너리 기반 규격으로 데이터를 가공하는 것이 어떤 장점이 있는지 살펴본다. 


- JSON


- YAML


- XML


- 프로토콜 버퍼


- Base64


- 데이터 압축



3. 웹을 지탱하는 4가지 웹 기술은 서버와 클라이언트가 데이터를 보다 효율적으로 주고 받기 위해 필요한 기술과 데이터를 보다 안전하게 주고 받기 위해 필요한 기술을 설명한다.  


- HTTP


- HTTPS


- RESTful API


- OAuth 2.0



현실에 안주하지 않고 성장을 꿈꾸는 개발자라면 이 책에서 설명하는 내용을 숙지하는 것을 강력하게 추천한다. 나아가 개발자를 꿈꾸는 학생에게도 유용한 책이다. 


본 포스팅은 한빛 미디어를 통해 책을 제공받아 개인의 주관으로 작성된 서평입니다.

 

[개요]

 

코딩 입문과정을 끝낸 초급자가 본격적으로 소프트웨어 개발을 시작하고자 할 때 부딪히는 주제를 놀랍도록 쉽게 설명해주는 책이다. 

 

 

[내용]

 

- 소프트웨어 기술: 문자열 인코딩, 난수, 범용 고유 식별자, 다국어 처리, 해시 함수, 날짜와 시간, 정규 표현식

- 데이터 처리 기술: JSON, YAML, XML, Base64, 프로토콜 버퍼, 데이터 압축

- 웹 기술: HTTP, RESTful API, HTTPS, OAuth 2.0

 

 

[독자]

 

파이썬 문법도 알고 기초적인 코드 작성은 할 수 있지만, 실무 수준으로 코딩을 시작할 때 계속해서 막히는 문제들을 잘 정리해주는 책이다. 실력을 한 단계 업그레이드하고 싶은 초급 개발자와, 코딩에 필요한 기초가 무엇인지 궁금한 학생이 대상이다. 중급 개발자라고 해도 무작정 라이브러리만 설치해서 사용하는데 익숙하다면, 제대로 이해하지 못하고 있던 부분을 다시 정리하기 좋다. 

 

이 책은 비전공자 출신 프로그래밍 입문자가 보기에 특히 좋다. 전공자라도 학교에서 개념을 배우긴 했는데, 그 내용이 실무에서 어떻게 적용이 되는 지 체험해본 적이 없는 경우에는 아주 유용할 것 같다. 

 

[소감]

 

개발자로 취업하면 많이 사용하는 기본 개념을 기가 막히게 정리해주는 책. 무엇보다도 선정된 주제가 좋다. 거의 모든 장이 S/W 개발을 제대로 시작할 때 반드시 알아야 하는 내용이다. 설명도 쉽다. 저자가 스스로 이해한 그대로 풀어서 설명한다. 일단 재미도 있고 깊이가 너무 깊지 않아서 책장도 잘 넘어간다.

 

특히 인코딩과 다국어 처리, 날짜와 시간 등의 개념은 필요할 때마다 검색해서 적당히 사용하게 되는 경우가 많은데, 코딩 초기에 이렇게 제대로 이해해둔다면 큰 도움이 될 뿐더러 시간적으로도 많이 절약된다. 

 

각 장의 주제에 대해서 깊이 있게 들어가지는 않으나, 그만큼 간결해서 이해하기가 좋다. 앞으로의 개발 실력 도약을 위한 발판이 되어줄 수 있는 책이다. 

 

 

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

 

[장점]

- 코드를 통한 설명

이 책은 파이선 코드를 이용하여 기술에 대한 내용을 설명하고 있습니다. 실제 코드를 통해 이 기술이 어떻게 활용되는 지 설명하기 때문에 개발자로서 이해하는데 좀 더 편했습니다.

- 꼭 필요한 기술들이 포함되어 있다.

세상에는 정말 다양한 개발 기술들이 있지만, 이 책에는 현재 정말 많이 사용하는 기술들을 설명하고 있습니다. 그래서 개발자로 진로를 정하신 분들에게는 정말 큰 도움이 되지 않을까 생각합니다.

[총평]

실제 회사 업무를 하게 되면 학교에서 배우는 것 외에도 많은 기술들을 알아야 개발자로 성장할 수 있습니다. 이 책은 17가지 개발 기술을 정리하여 설명하고 있는 책입니다. 현재 개발자로 일하고 있기 때문에 몇몇 기술을 제외하고는 다 알고 있는 내용이었습니다. 모르는 부분은 좀 더 자세히 읽어 내 기술로 만드려고 노력하였고, 아는 부분은 한 번 더 학습하며 깊이있게 알아가는 과정으로 생각하며 읽었습니다.

기술을 어떻게 하면 활용할 수 있는지 코드로 설명하는 부분이 특히 좋았고, 제가 생각하기에 꼭 필요한 기술들로 정리되어 있는 부분도 너무 좋았습니다. 특히, 저와 같이 웹 개발을 하려는 분들이라면 좀 더 도움이 될 것 같다는 생각이 들었습니다.

이 외에도 많은 기술들이 있는 데, 좀 더 다양한 기술들을 다루는 책이 더 나와도 되지 않을까 생각합니다.

분야별로 흩어져있는 개발 기술들을 한 권으로 접할 수 있는 책입니다.

 

개발을 시작하시려는 분들에게 추천 드립니다.

 

book-17가지 실무 개발 기술-00.jpg

 

안녕하세요 ~~ 오늘은, 정말 강력 추천 도서를 가지고 찾아왔습니다.

 

해당 글을 보는 모든 분들께 그리고 이렇게 리뷰를 할 수 있게 제공해 주신 한빛미디어 관계자분께도

 

진심으로 감사 인사를 드립니다 :)

 

1.jpg

 

2.jpg

 

 

 

이 책에서 소개하는 기술을 모두 사용해보거나 외울 필요는 없습니다. 이러한 기술들이 있다는 것만 기억하면 됩니다. 더 나아가 언제 사용하는 게 가장 적합한지도 알아두면 좋겠습니다. 이 책을 보며 이론과 실무 기술 사이에서 느끼는 괴리감을 덜고, 이 책에서 미처 소개하지 못한 더 많은 지식을 찾아보거나, 언젠가 실무에서 적용하길 바랍니다.

 

- 학교에서 알려주지 않는 17가지 실무 개발 기술 中 -

 

 

오늘도 역시 조금 어려운 분야를 소개하게 되었습니다.

 

IT 도서 리뷰만 취급하고 있어서 제 블로그를 방문하시는 분들이 대부분 어려워하실 것이라 생각합니다 ^^;;

 

그 와중에 이번 서적은 프로그래밍 문법을 잘 모르면 이해하기 힘든 내용이 들어 있으니

 

참고 부탁드립니다.

 

 

 

 

DAY 1, 2, 3

 

소프트웨어를 지탱하는 기술

 

 

3.jpg

 

4.jpg

 

5.jpg

 

6.jpg

 

7.jpg

 

8.jpg

 

 

파트 1

 

 

학교에서 알려주지 않는 17가지 실무 개발 기술 서적은 크게 3파트로 나누어 설명합니다.

 

 

1. 소프트웨어 기술

 

2. 데이터 처리 기술

 

3. 웹 기술

 

 

해당 3가지 파트로 나누어 알기 쉽게 설명하고 있습니다.

 

그렇다면 파트 1부터 한번 살펴보겠습니다!

 

= 파트 1에서는 소프트웨어 기술에 대한 전반적인 내용을 다룹니다, 문자열 인코딩, 다국어 처리, 날짜와 시간, 정규식, 범용 고유 식별자, 난수, 해시 함수 등 소프트웨어 개발에 정말 필요하다고 생각하는 기본적인 모든 것을 압축하여 다루는 것 같습니다.

 

아스키코드, 여러 종류의 유니코드에 대한 설명, 그리고 추가로 살펴보면 좋은 내용들이라고 하여 팁도 나와 있습니다.

 

서적을 계속 읽다 보면 좋은 내용이 많습니다, 심지어 저도 모르는 내용이 많이 있어 놀랍기도 하고많은 공부가 되었습니다.

 

특히 실무에서는 어떤 식으로 처리하는지 도움이 되는 내용이 많이 있어 좋은 서적이라고 감탄을 하며 책장을 넘겼습니다.

 

기본이 되는 기술을 알아두는 것만으로도, 소프트웨어를 빠르게 파악하고 개발하는 데 큰 도움이 될 것입니다.

 

파트 1은 꼭! 정독하고 넘어가시길 바랍니다.

 

 

 

 

DAY 4, 5, 6

 

데이터 처리 기술

 

9.jpg

 

10.jpg

 

11.jpg

 

12.jpg

 

13.jpg

 

 

파트 2

 

 

데이터 가공, 처리

 

 

해시 함수 챕터까지 보셨다면, 이제 본격적으로 파트 2가 나옵니다. 파트 2는 데이터 처리 기술에 대하여 다루고 있습니다.

 

모든 소프트웨어에는 입력값과 출력값이 있습니다. 가치가 없는 여러 입력값에서 가치가 있는 출력값을 만드는 게 소프트웨어의 본질적인 기능입니다. 그래서 소프트웨어를 개발할 때 기능을 만드는 것도 중요하지만, 입력값과 출력값을 잘 가공하고 처리해야 합니다.

 

해당 챕터는 개발을 조금이라도 해보셨다면 익숙한 내용이 많은 챕터입니다. JSON, YAML, XML, 프로토콜 버퍼, Base64과 데이터 압축에 대해서도 다루고 있습니다.

 

단순하고 강력한 텍스트 기반 데이터 규격인 JSON부터 JSON과 많은 특징이 겹치는 YAML 그리고 XML, 메시지만 정의하면 검증, 누락과 관련된 인터페이스를 자동으로 생성하기 때문에 관리 필요성을 크게 줄일 수 있는 프로토콜 버퍼까지 비교해가며 설명하고 있습니다.

 

마지막으로 압축의 원리, 압축률, 레벨, 속도와 같은 기본적인 요소를 다루는 데이터 압축 파트도 좋은 내용이 많이 들어있으니

 

파트 2도 꼭 정독하고 넘어가시길 바랍니다, 하나도 버릴 것이 없을 정도로 훌륭하네요 ^^;;

 

 

 

 

DAY 7, 8, 9

 

웹을 지탱하는 기술

 

14.jpg

 

15.jpg

 

16.jpg

 

17.jpg

 

18.jpg

 

19.jpg

 

 

파트 3

 

웹 서비스

 

 

 

마지막으로 파트 3에서는 웹을 지탱하는 기술에 대하여 다룹니다.

 

웹..!! 요즘 시대에서 절대 빼놓을 수 없는 기술이고 시장이 가장 넓은 분야이기도 합니다.

 

웹 서비스는 서로 다른 두 컴퓨터가 데이터를 주고받기 위해 사용하는 시스템으로 웹 브라우저로 접속하는 구글, 페이스북, 네이버와 같은 웹 사이트, 유튜브와 같은 동영상 스트리밍 등 다양한 서비스들이 모두 웹을 근간으로 하기 때문에 현시대에서는 외면할 수 없는 절대적인 기술 분야입니다.

 

HTTP, RESTful API, HTTPS, OAuth 2.0에 대한 내용을 다루고 있고, 특히 웹 개발 분야로 가시려면 필수로 정독해야 될 파트라고 생각합니다. 아니, 누구나 알면 좋습니다. 많은 도움이 될 것이라 확신합니다.

 

해당 4가지의 기술은 오늘날 웹 서비스의 근간이 되는 핵심 기술입니다. 데이터를 주고받는 기술 두 가지와 웹 서비스를 안전하게 만드는 데 도움을 주는 보안 기술 2가지인데 보안 기술 내용을 두 가지나 이 서적에서 다루는 이유는 많은 공격에 노출된 웹 서비스를 안전하게 만들기 위해 반드시 필요한 기술이기 때문입니다.

 

 

 

DAY 10

 

후기

 

 

21.jpg

 

22.jpg

 

main.jpg

 

 

실무에 활용할 준비가 되었나요?

 

핵심 기술 17가지!

 

후기 : 이러한 기술이 있다는 것을 기억하자

 

 

 

첫 회사에 들어갔을 때가 종종 생각납니다. 실무에서 중요한 핵심 로직을 만들거나 복잡한 문제를 해결할 때 알고리즘, 스레드와 프로세스, 스택과 힘 구조 등의 공학 이론이 큰 도움이 됐습니다. 하지만 얕은 컴퓨터 공학 이론과 프로그래밍 언어 문법만 알뿐, 실제로 소프트웨어를 '어떻게' 만들어야 하는지 아무것도 모르는 상태였습니다.

 

- 학교에서 알려주지 않는 17가지 실무 개발 기술 中 -

 

 

오랜만에 너무 재미있는 서적을 정독했습니다.

 

리뷰를 작성하는데 이야기할 것이 너무 많아 무엇을 적어야 될지 모를 정도로 훌륭하게 구성되어 있는 서적입니다.

 

학교에서는 이런 기술을 잘 다루지 않기 때문에, 실무에 가면 고생하는 경우가 대부분입니다.

 

생산성을 중요하게 여기는 개발 업계에서는 최소 기능들이 큰 버그 없이 동작할 수 있게 개발하는 능력 또한 중요하다고 나와 있습니다.

 

물론 모든 개발 업계가 그런 것은 아니지만, 학교에서 배우는 컴퓨터 공학 이론들은 실무에서 사용하는 기술과 거리가 멀 때가 많습니다.

 

해당 서적을 정독하시면 더 나은 개발자가 되는 데 큰 도움을 줄 것이라 확신합니다.

 

추천 만점! 드립니다.

 

리뷰를 마치며!

 

 

 



[ 진입 ] 

이번 달 서평단 숙제가 왔다. 이제 갓 2년차된 나에게 실무에 필요한 기초를 세우고 가볍게 읽을 수 있는 책같아 신청했다.

<본문>

소프트웨어를 지탱하는 기술  : 문자열 인코딩, 다국어 처리, 날짜와 시간, 정규 표현식, 범용 고유 식별자, 난수, 해시 함수

데이터 처리 기술 : JSON, YAML, XML, 프로토콜 버퍼, Base64, 데이터 압축(zlib)

웹을 지탱하는 기술 : HTTP, RESTful API, HTTPS, OAuth 2.0

이렇게 3부분으로 이루어져 있다. 

문자열 인코딩, 다국어 처리를 읽다가 그냥 개인적으로 정리해도 좋을 것 같다는 생각이 들어 노션에 하나씩 정리했고

 

 

완독하면서 완성되었다. 다른 업무와 프로젝트로 2주 정도 걸렸다.

아무래도 책 한권에 17가지를 담으려다 보니 이미 핵심인 내용인데, 내가 핵심을 또 요약해서 적으면 한줄 요약밖에 안될 것같아서

내 나름대로 배운 지식도 넣고, 인터넷에 추가적인 정보도 찾아 내용을 구성했다. 물론 파이썬 코드는 다 뺐다 ㅎㅎ

그 후에 다른 사람과 공유했고 부족한 부분이나 추가할 내용이 있다면 맘껏 추가해달라고 했다. 

언젠가 들어온 누군가를 위해, 한 권의 책과 해당 페이지의 URL를 주고 싶다는 생각을 하기도 했다.

실습 코드가 파이썬으로 작성되었다 보니 문법 하나하나를 보기보다는 어떤 방식으로 이뤄지는지에 중점을 두고 진행했다. 처음에는 자바스크립트 코드로 실습 코드를 변환해서 하다가 어느 순간부터는 그냥 읽고 정리만 했다.ㅎㅎ 생각보다 양이 많았다.

<총평>

난이도 : 초

'언젠가 들어올 후임, 부사수에게 선물하고 싶은 그런 책'

KakaoTalk_20210409_162122698.jpg

프로그래밍이란 분야는 초등학교부터 컴퓨터 수업시간이면 꼭 빠지지 않는 이제는 필수적으로 배우는 과목으로 컴퓨터나 IT전공이 아닌 사람일지라도 한번쯤은 배웠을 것입니다. 특히 IT분야에서 개발을 담당하는 사람이면 3가지 개발언어를 알고있는 것이 기본적입니다. 따라서 프로그래밍 언어 책이 소설처럼 서점에서 많은 수량을 담당하고 있습니다. 제가 이 책을 선택한 이유는 이제 개발자로 취업을 희망한 사람이나 현직 개발자라면 필수적으로 알고 있어야할 기술들을 비교적 자세하게 설멍해주고 있다고 생각하기 때문입니다.

 

이 책의 특성은 책 제목처럼 학교에서는 잘 알려주지 않는 개발 기술들을 개발자에게 친숙한 기본적인 언어를 사용해서 알려주기 때문입니다.

 

우리가 학교에서 배우는 언어는 보통 C++, JAVA, C언어 이 세가지가 보편화된 언어입니다. 그리고 대학에 따라 Python이나 java script 등을 배우고 있습니다. 하지만 학교에서 가르쳐주는 것은 책에 나와있는 실습에 조그만한 프로젝트를 하는 정도가 한계여서 실전에서는 응용하기에는 부족함이 많습니다. 따라서 대부분의 사람들은 개발자로 취업하기 위해서 조그만하게 많은 프로젝트를 하여 실전경험을 간접적으로 키우고 있습니다. 그런 방법이 나쁘지 않다고 생각하지만 이 책을 읽고 자신이 희망하는 언어분야에 맞춰서 집중하여 프로젝트를 진행하는것이 더 효율적으로 좋다고 생각합니다.

 

구성

Chapter 1: 문자열 인코딩

Chapter 2: 다국어 처리

Chapter 3: 날짜와 시간

Chapter 4: 정규 표현식

Chapter 5: 범용 고유 식별자

Chapter 6: 난수

Chapter 7: 해시 함수

Chapter 8: JSON

Chapter 9: YAML

Chapter 10: XML

Chapter 11: 프로토콜 버퍼

Chapter 12: Base64

Chapter 13: 데이터 압축(Zlib)

Chapter 14: HTTP

Chapter 15: RESTful API

Chapter 16: HTTPS

Chapter 17: oAuth2.0

 

파트별로 나누어 봤을때 책에서 나와있는 것처럼 1~7장은 소프트웨어 동작과 밀접한 관련이 있는 기술들에 대해 소개하고 있으며 이러한 기술들은 범용적으로 사용되기 때문에 어떤 프로그래밍 언어 및 소프트웨어 프레임워크에서든 쉽게 찾을 수 있는 기능의 함수에 대해 설명하고 있고 8~13장은 소프트웨어가 동작하기위해 필요한 데이터를 가공하는 기술들을 소개하고 있으며 각각 텍스트 기반 규격과 바이너리 기반 규격으로 나뉘어 각각의 규격으로 데이터를 가공했을때 장점에 대해 14~17웹을 구성하는 기술 4가지에 대해 설명하고 있으며 2가지는 서버와 클라이언트가 데이터를 보다 효율적으로 주고받기 위해 필요한 기술, 2가지는 데이터를 보다 안전하게 주고받기 위해 필요한 기술들에 대해 설명하고 있습니다.

 

개인적인 생각으로 학습은 개발자로 취업을 희망하시는 분들이나 이제 막 개발자로 시작하시는 초보자이신 분들께서는 1장부터 시작하시면 좋을것 같고 어느정도 경험이 있으신 분들(개발자 경력 3~n년차)부터는 자신들의 전문분야가 아닌 다른 언어로 개발을 시작하실때 이 책을 찬찬히 보시면서 해당하는 언어가 있으시면 참고해보시는 것이 좋을것 같습니다.

그리고 초보자분들은 본격적으로 실무프로그래밍을 시작하시기 전에 지은이의 말이랑 책 구성을 한번 보시는 것을 추천드립니다. 지은이의 말은 저자분이 경험담이 적혀있어 공감이 되실것이며 책 구성은 보시고 자신이 중점적으로 학습할 부분을 정하시는데 도움을 줄수 있을거라고 생각합니다.

 

그리고 개인적으로 약간의 단점이 어쩌면 욕심일수도 있는게 좀더 많은 언어 분야가 담겨져 있으면 더 좋았을것 같습니다. 그리고 좀더 많은 실습 예제가 담겨있으면 더 좋았지 않았을까라는 아쉬움이 있습니다.



 

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

 

 

<참고> 표시 광고의 공정화에 관한 법률(약칭:표시광고법)을 준수하고자 드리는 공지이며

           한국출판문화산업진흥원에 따르면 서평 도서 제공은 문제의 소지가 전혀 없습니다.

안녕하세요.

현재 1년차 신입 웹 개발자이자 2021년 한빛미디어 도서 서평단으로 선정된 테크시그널입니다.

오늘은 '학교에서 알려주지 않는 17가지 실무 개발 기술 '을 리뷰하겠습니다. 

이 책은 한빛미디어로부터 무상 제공 받은 책입니다.

 

 

책 표지

 

 

주요 내용

  • 소프트웨어 기술: 문자열 인코딩, 난수, 범용 고유 식별자, 다국어 처리, 해시 함수, 날짜와 시간, 정규 표현식
  • 데이터 처리 기술: JSON, YAML, XML, Base64, 프로토콜 버퍼, 데이터 압축
  • 웹 기술: HTTP, RESTful API, HTTPS, OAuth 2.0

대상 독자

  • 초보적인 코드 작성은 할 줄 알지만, 실력을 한 단계 업그레이드하고 싶은 개발자
  • 실무에 필요한 기술이 무엇이 있는지 궁금한 학생

목차 일부분입니다. 예시 코드는 파이썬으로 작성되어있습니다.

 

목차의 일부분

 

 

책 제목에서부터 나와있듯 이 책은 '실무'를 위한 개발 기술, 지식을 알려주는 책입니다.

4개월차 신입 개발자로서 얕게만 알던 내용을 깊게 알게 되어 좋았습니다.

정규표현식이나 UUID, 해시함수와 같은 개념은 컴퓨터 공학 전공을 하면 배울 수 있지만 실제로 써보진 않는데요.

이 책에는 실 사용 예시가 나와있어 좋았습니다. 

특히나 JSON, Base64 관련 코드를 짤 때 이 책을 미리 읽었다면 훨씬 수월했겠다 하는 생각이 들었습니다.

이 책 덕분에 중급 개발자로 성장하는 길에 조금이나마 가까워진 기분입니다!

 

이 책은 제목 그래도 학교에서 알려주지 않거나 전공시간에 짧게 훑고 지나갔던 내용들을

 

사례와 예제코드를 바탕으로 현업에 바로 사용할 수 있게 쉽게 알려주는 책입니다.

 

제일 기본적인 문자열 인코딩에서부터, 날짜 및 시간, 정규표현식, 해시 함수, JSON 및 기타 마크업 랭기지,

 

웹의 기초인 http부터 RESTful API까지 프로그래밍을 하는 사람이라면

 

언젠간 한 번 쯤은 접할 내용들을 넓게 다루고 있습니다.

 

특히 RESTful API부분이 설명이 쉽고 이해가 잘 되게 설명해 주고 있습니다.

 

만약 신입 프로그래머가 입사하기 전에 이 책을 읽고 기본적인 내용을 습득하고 간다면, 

 

면접에서도 도움이 많이 되고, 팀에선 더 환영받을 것 같습니다.

 

취직을 준비하는 취준생 개발자부터, 초보 개발자, 다른 분야에 대한 배경지식을 알고싶으신 개발자 분들까지

 

모두에게 추천드리고 싶은 책입니다.

 

쟁여놨다가 부사수나 후배가 오면 꼭 주고 싶은 책입니다. 강추!!

 

[나의 한줄 추천사]

현재 RESTful API 개발하고 실무에 적용하고 있는데, 백그라운드 지식이 없었다. 그냥 이상없이 작동하니

잘되는거라 싶었고, 운영하는 입장에서 손도 안가니 그냥 덮고 있었다. 이책에서는 RESTful API 대한 버전관리 방법이면,

사용법을 파이썬 코드로 제시해 주면서 백그라운드 지식들을 알기쉽게 설명해주고 있다. 문자열 인코딩 부터 필수 지식까지

설명하고 있어서 알쓴신잡 느낌도 난다. 거꾸로 읽는 것을 추천한다.

 

[책을 구매한 이유]

그냥 쓰는 것도 좋지만 알고 쓰면 좋은 기본기를 놓치지 않기위해서 구매하였다.

 

[내가 찾고자 했던 질문과 대답들]

 

데이터를 주고 받을때 여러 프로토콜이 있는데 굳이 RESTful API 쓰는 이유는?

-요청주소와 메서드(GET, POST), JSON 규격을 이용하여 웹주소를 콜하면 사람이 읽기 쉬운 형태로 데이터를 전송받을수 있기 때문이다.

- POSTMAN 툴로 쉽게 테스트 해볼수 있어서 빠르게 개발하기 쉽다.

 

HTTPS TLS(Transport Layer Security) 역할은 무엇인가?

 - TCP 대신 TLS 프로토콜 기반으로 하는 HTTP 예전에는 SSL(Secure Sockets Layer) 프로토콜을 사용하였으나, 너무 많은 취약점으로

더이상 사용하지 않고 TLS 쓰고 있고, OSI 4 계층에 해당한다.

 

CORS(Cross-origin resource sharing) 문제 해결방법은?

 - ajax 콜할때 다른 도메인에서 콜할 경우 same origin policy 때문에 리소스 접근이 안될때가 있다. 리소스 무단 사용을 방지하기 위한 정책인데

Access-Control-Allow-Origin, Methods Headers 명시적 설정을 통하여 다른 도메인에 대해서 공유할수 있다.

 

UUID(Univerally Unique IDentifier) 사용하는가?

 - 식별이 필요한 액션이나 오브젝트에 대해서 지정이 필요할 경우 UUID 생성시킨다. 낮은 확률로 쫑날 수가 있는데, 이때 저장 DB 통해서 기생성 유무 확인후

 

재생성 방식으로 쫑나는 상황을 방지할 있다.

이 책의 목차를 보고 신입 때가 많이 생각났다. 아무것도 모르는 시절, 이런저런 문제들을 어찌어찌 해결하던 날들 말이다. 내 컴퓨터에선 잘 보이던 웹 페이지가 다른 컴퓨터에선 깨져서 인코딩을 수정했던 일들, 날짜 계산을 하는데 갑자기 1970년이 나와서 당황했던 경험. 그래서 이 책은 반갑다. 개발하면서 많은 시간을 할애하진 않지만 잘못 쓰면 문제가 생길 수 있는 주제들에 대해 친절하게 설명하고 있다. 왜 Java 클래스의 hashCode()를 구현해야 하는지, 암호화할 때 MD5는 사용하면 안 되는지, 단순히 '이렇게 하면 된다'가 아닌 기술의 히스토리 알고 나서 '이런 이유 때문에 이렇게 하면 된다'라는 지식이 쌓이면 개발을 하는데 더 풍요롭게 일 할 수 있다고 생각한다.

UUID를 사용하지만 어떤 원리로 문장열이 생성되는 건지, JSON과 YAML을 사용하지만 그 이유가 무엇인지 생각해본 적이 없다면 이 책을 읽는 것을 추천한다. 이미지를 DB에 저장할 수 있는 방법이 있을까? 이런 고민을 하다 보면 BASE64라는 키워드를 만나게 되고 잘은 모르지만 BASE64를 사용해서 문제를 해결하기도 할 것이다.

이 책에서 소개하는 기술을 모두 사용해보거나 외울 필요는 없습니다. 이러한 기술이 있다는 것만 기억하면 됩니다.
더 나아가 언제 사용하는 게 가장 적합한지도 알아두면 더 좋겠습니다.

저자의 말에 쓰인 이 두 문장이 책의 목적을 말해준다. 우리는 이 책에서 설명하는 지식을 최소 한 번 이상 경험하며 일을 해나가겠지만 제대로 알지 못하고 개발한다면 언젠가 문제가 발생하거나 문제 해결에 어려움을 겪을 수도 있다. 어쩌면 이런 문제가 있는지도 모른 채 지나갈 수도 있다. 하지만 이 책을 한 번 읽고 나면 코드에서 더 많은 것을 보고 깨달을 수도 있지 않을까 싶다.

KakaoTalk_Photo_2020-05-31-20-06-43.jpeg

> <학교에서 알려주지 않는 17가지 실무 개발 기술>은 크게 소프트웨어, 데이터, 웹에 대한 기술을 주제로 삼고 있다.  

> 나는 웹 기술에 관심이 있어서 집중적으로 읽고 리뷰를 쓰려고 한다.

 

## 전체 목차

 

1.  소프트웨어를 지탱하는 기술

-   문자열 인코딩

-   다국어 처리

-   날짜와 시간

-   정규 표현식

-   범용 고유 식별자

-   난수

-   해시 함수

 

2.  데이터 처리 기술

-   JSON

-   YAML

-   XML

-   프로토콜 버퍼

-   Base 64

-   데이터 압축(zlib)

  

3.  웹을 지탱하는 기술

-   HTTP

-   RESTful API

-   HTTPS

-   OAuth 2.0

 

## 중요하게 생각하지 않았던 기술들

 

 

나는 최근 프론트엔드 개발을 공부하고 있어서 한 번씩 들었던 단어들이 있었다.  

특히 **웹을 지탱하는 기술** 파트를 나는 인상깊게 봤다.  

웹에 있어서 꼭 알아야 하지만 깊게 살펴보지 않고 사용했던 개념들이 나와 있다.  

 

요즘 하고 있는 웹 개발 프로젝트에서 주로 쓰이는 개념은 아래와 같다.  

 

- HTTP 통신을 할 때의 쿠키와 세선에 관한 보안적 문제

- CORS에 대한 설명 

- RESTful API 의 사용 예제와 설명

- OAuth 인증할 때의 주의사항 

 

나는 주로 화면 위주의 개발을 하고 있어서 지나치기 쉬운 주의사항이 쉽게 표현되어 있어서 읽기 좋았다.

개념이 헷갈릴 때나 키워드가 궁금할 때 한 번씩 펼쳐보면 좋을 책인 것 같다. 

 


 

<학교에서 알려주지 않는 17가지 실무 개발 기술>에는 대략 두 가지로 표현할 만한 지식이 담겼습니다.

  1. 선배나 나보다 경험 많은 듯한 동기에게 어디에서 배웠는지 어디에 나오는지 물었을 때 신통한 대답이 나오지 않는 지식
  2. 구글에서 검색해 보면 나오기는 하는데 뭔가 속시원히 앞뒤 맥락을 알기에는 힘든 지식

목차를 보면 알겠지만 17장에 걸쳐 나오는 내용 각각을 전문적으로 다룬 서적으로 추리면 10권 이상 나올 수도 있습니다. 그만큼 다방면을 다루는 책으로, 각 주제를 입문자로서 알아야 할 수준으로 정리했습니다. IT 업계 종사자로서는 필수적으로 이해해 두고 있어야 할 지식들입니다. 업무에 따라서는 이 책에 나온 이상을 알지 않아도 될 수도 있겠지만 그렇지는 않길 바랍니다.

개발경험이 많지 않아 보이는 신입사원이나 구직자를 보다가 안타까울 때가 있습니다. 'py나 java 파일을 만들' 줄은 알지만 실제 서비스를 올리는 데에 필요한 지식이나 인터페이스를 바꾸는 등의 응용력이 부족하기 때문입니다. 신입사원 열 명을 공채로 한번에 뽑았다 치면 한두 명, 많으면 서너 명이 이럴 때도 있습니다. 신입사원 전반적으로 모르는 사안이 아니라서 저 소수인원만 업무에 적응하지 못하는 상황이 벌어지곤 합니다. 특정 범위에 대한 무지가 아니기에 매뉴얼을 만들 엄두를 내지 못합니다.

저자는 아마 그런 상황을 몇 차례 경험하지 않았을까 합니다. 이 책은 현장 투입 이후에 사소한 어려움을 자주 겪어야 하는 이들에게 도움이 될 겁니다. 더불어 어깨 너머로 익혔거나 급한 불만 끄느라 맥락을 익히지 못했던 기술에 입문하고자 할 때 유용하겠습니다.

누군가는 이 책에서 다루는 주제를 모르는 IT 업계 입문자들이 의아할 수도 있겠습니다만 사람 사는 세상에는 드물지 않은 일이라 봅니다. 이런 사안으로 힘들어 하는 동료가 있다면 방황을 일찍 끝내도록 <학교에서 알려주지 않는 17가지 실무 개발 기술>을 슬쩍 권해도 좋겠습니다.

KakaoTalk_20200531_205732951.jpg

리뷰내용

한빛미디어에서 이벤트를 통해서 신청한 책이다.
해당 책을 신청한 이유는 매일 무언가 새로운 기술이나 기능들을 학습하고 이를 정리하지 않았던 것 같다.
그러니 자주접하고 자주 사용하는 것 들은 잊을 수가 없지만 잊을만 하면 나오는 기술들은 매번 구글링을 통해 다시 학습했다.
구글링이 나쁘다는 것은 아니지만 신청한 책들 중 이 책이 오면 이번엔 책을 통해서 해당 기술들을 내용정리를 하려고 했다.

결과적으로는 베스트 선택이였다.
완독을 해보니 인코딩 종류, timestamp, 정규표현식 등 학교다닐때 배웠던 항목들도 있었고 실제 업무에서 사용해본 것도 있었다.
1장에서는 해시함수와 정규표현식이, 2장에서는 YAML, 3장에서는 Restful API 가 좀더 명확하게 머릿속에 자리잡은 느낌이다.

요즘은 기술들도 많이 나오고 매번 빠르게 변화하는 세상인데
가끔 이런 책을 통해서 뒤돌아보는 시간을 가져보고싶은 사람들에게 추천하고 싶은 책이다.
또한 기술부채가 많이 쌓인 사람들에게는 꼭 필요한 책인 것 같다.

K322638441_f.jpg

 

 

한빛미디어의 '나는 리뷰어다' 5월 도서로 받은 책이다.

나는 리뷰어다 제도 괜찮네.

석 달째 따끈따끈한 신간을 계속 받아보고 있다.

 

PART 1. 소프트웨어를 지탱하는 기술

파트 1에서는

문자열 인코딩, 다국어 처리, 날짜와 시간, 정규 표현식, 범용 고유 식별자, 난수, 해시 함수에 대해 다룬다.

 

CHAPTER 01. 문자열 인코딩

EUC-KR, UTF-8은 들어는 봤는데

누가 설명하라고 하면 제대로 못했을 것 같다.

작가님은 이해하기 쉽게 참 잘 적어주셨네.

 

팁도 잘 숙지해 둬야겠다.

엄격하게 구분하면 문자 집합(Charset)에는 유니코드, ISO-8859, ASCII 등이 이에 해당하고

문자열 인코딩은 UTF-8, UTF-16, UTF-32 등을 말한다고 하네.

 

CP949는 EUC-KR의 확장 문자 집합이라더라.

CP949는 생소한데 MS949랑 같은 거더라.

이클립스였던가? 거기서 인코딩 방식을MS949로 체크한 기억이 났다.

 

UTF-16, UTF-32라는 것도 책 덕분에 알았다.

리틀 인디언, 빅 인디언 참 오랜만에 봤다.

 

어느 순간부터 EUC-KR/CP949/MS949에서 UTF-8로 넘어간 것 같은데..

다 이유가 있었네(UTF-8가 나중에 ISO에서 정한 국제표준).

 

이제까지 프로젝트 할 때에는 어설프게 알고 막 썼던 것 같은데,

다음에는 좀 제대로 알고서 쓰게 될 것 같다.

 

CHAPTER 02. 다국어 처리

국제화라고, i18n(internationalization) 표준에 대해 설명한다.

이런 게 있는지도 몰랐다.

내가 우물안 개구리이긴 했나 보다.

해외 서비스를 안 해봤으니 알 리가 있나.

생소한 내용이다 보니 확실이 이해가 빨리 되지는 않더라.

 

CHAPTER 03. 날짜와 시간

올해 초에 timestamp 넣어야 해서 계산 방식에 대해 공부를 좀 했는데

이게 바로 나오네.

시험공부한 부분이 딱 시험에 나온 그 느낌이었다.

 

맨 뒤에 ETCD, 주키퍼를 사용해서 여러 서버가 같은 타임 존을 사용해 보라는데,

이게 뭔가 했더니 분산처리 관련된 거네.

후.. 내가 제일 약한 부분이네.

갑자기 허를 찔린 기분이더라. 공부할 게 너무 많다.

 

CHAPTER 04. 정규 표현식

정규표현식은 2년 전에 수천개의 소스 코드를 일괄 리팩토링하면서

재대로 좀 많이 익혔는데..

그 때 기술부채를 좀 덜어서 읽는데 어렵지는 않더라.

다만 그 때 따로 정리를 안 한 게 아쉽더라.

 

CHAPTER 05. 범용 고유 식별자

범용 고유 식별자라길래 뭐지? 했는데.

UUID(universally unique identifier)였네.

 

예전에 운영이가 개발인가 할 때 단말기 정보로 사용자를 구분해야 했던 것으로 기억한다.

안드로이드 계열은 MAC, 아이폰은 이것으로(UUID)로 식별한 줄 알아서

오 또 아는 거 나왔구나, 했는데..

찾아보니 내가 한 건 UUID가 아니라 UDID 였나보더라.

 

세상이 계속 휙휙 바뀌니 쫓아가기가 좀 버겁고 그러네.

 

CHAPTER 06. 난수

난수 이야기 하면서 Seed 이야기 할 때에는 십수년 전에 확률 수업에서 배운 게 생각이 나더라.

그 때 (초반에만) 열심히 공부했었는데.

그래도 공부했던 것 기억이 새록새록 났다.

학교 커리큘럼이 정말 중요하긴 한 것 같다.

 

셔플 백shuffle bag(공정한 난수)이라는 개념도 있고..

'난수'만으로 한 챕터를 만들 수 있는 작가님의 역량도 부럽더라.

 

OTP 이야기가 나오길래 OTP 인증 프로세스에 대해

따로 공부할 기회도 얻을 수 있었다.

 

CHAPTER 07. 해시 함수

대강의 해시 함수 개념은 알았는데 책에서 충실히 잘 설명해주어서

제대로 확실히 알 수 있었던 것 같다.

 

MD5(message-digest algorithm5)는 들어는 본 것 같은데.. 설명을 보고서야 이제 좀 알겠더.

뒤의 SHA-1(Secure Hash ALgorithm-1), SHA-2 보면서 예전에 운영할 때 암호화 알고리즘 전환한 것 생각도 잠시 났다.

전환 그 자체보다 여기저기 테스트해달라고 요청하고 취합 받는 게 많이 빡셌지.

 

뒤의 '솔트' 개념도 설명이 잘 되어 있더라.

이것도 들어는 본 것 같은데..

내 머리 속에 허점이 참 많기도 한 것 같더라.

 

PART 2. 데이터 처리 기술

파트 2에서는

JSON, YAML, XML, 프토토콜 버퍼, Base64, 데이터 압축에 대해 다룬다.

 

CHAPTER 08. JSON

JSON은 이전에도 있는 것은 알았지만, 작년에 팀 이동 후 코딩하면서 JSON으로 계속 주고 받고 하니깐 좀 JSON에 대해 겁이 덜 해졌다.

덕분에 이 챕터는 가볍게 아는 내용을 복습하는 정도로 넘길 수 있었다.

 

CHAPTER 09. YAML

YAML이라는 단어는 작년에 처음 들어보고 사용하게 되었다.

찾아보니 2001년에 처음 나왔던데..

언제부터 많이 쓰였는지는 모르겠지만 그래도 꽤 된 듯하네.

 

대부분은 아는 내용인데, 뒤에 앵커와 별칭 부분은 처음 들어보는 부분이었다.

앵커는 &, 별칭은 *를 뜻한다네.

C의 포인터 비스무리 하네.

 

민감정보 저장하지 말라면서 레디스Remote Dictionary Server(Redis) 이야기가 잠시 나온다.

레디스가 뭔가 해서 찾아봤다만..

역시 이것도 한 번 써봐야지 뭔지 제대로 알게 되겠지.

 

CHAPTER 10. XML

이게 드디어 나오는구나.

나 같은 라뗴에게 제일 친숙한 것이겠지.

ant, maven, spring, iBatis/MyBatis, ...

워낙 여러 군데에서 썼으니.

 

그래도 나보고 책 쓰라고 하면 못했겠지.

사원 시절에 siblings, child 등등 써서 설문조사 만들었던 생각이 났다.

 

CHAPTER 11. 프로토콜 버퍼

이건 처음 들어보는 개념이었다.

구글에서 만든 데이터 직렬화 규격이구나.

 

작가님이 테스트 데이터로 만든 메시지 파일 비교를 해보니,

JSON: 225 bytes

YAML: 215 bytes

XML: 607 bytes

Protobuf: 86 bytes

라고 한다.

전송 속도가 무지 빨라지긴 하겠더라.

 

세상 참 빨리도 변한다.

(아니면 반대로 내가 너무 고인물인 건가)

 

CHAPTER 12. Base64

문자열 뒤에 '=', '==' 로 끝나는 것 가끔 봤었는데

그게 다 이유가 있었구나. 이게 Base64라는 것을 이번에야 알았다.

 

3바이트로 뚝뚝 끊어지게 해서 모자란 바이트만큼

패딩(=)을 붙이는 거였구나.

 

CHAPTER 13. 데이터 압축(zlib)

이번 장은 개념들이 많이 나오는데, 이것들 각각 숙지해 놓으면 좋겠더라.

 

손실압축/무손실압축, 압축률처럼 어느 정도 알고 있던 개념부터 시작해서

압축 레벨, 압축 속도, 합축 해제 속도, 체크섬 등등 잘 몰랐던 개념까지

압축에 대한 내용이 참 잘 정리된 것 같다.

 

PART 3. 웹을 지탱하는 기술

파트 3에서는 HTTP, RESTful API, HTTPS, OAuth 2.0에 대해 다룬다.

 

CHAPTER 14. HTTP

간단한 HTTP 서버 만들면서 Flask 써서 웹서버 만드는 게 예제로 나온다.

실무에서 Flask 써보지는 않았지만, 라즈베리파이 독서 통신 하면서 Flask 써 본 경험이 있길래 대충 감이 잡히더라.

그 때 좀 해놓길 잘했다는 생각도 들었다.

 

이번 달까지 1% 네트워크 원리/와이어샤크 독서통신도 하고 있는데, 거기서 나온 개념이 여기에서 많이 중복된다.

내가 제너럴한 제너럴리스트라 뭐 딱히 잘 하는 게 없다고 자조하긴 하는데

아주 가끔 이럴 때 좋긴 한것 같다.

 

그래도 이왕 하는 거면 기술 부채 안 쌓이게 잘 정리해 둬야지.

 

HTTP 챕터 부분은 그래도 거의 다 한 번 쯤은 들어본 부분인데,

챕터 뒷부분의 CORS(Cross-origin resource sharing, 교차 출처 리소스 공유)는 처음 들어보는 부분이더라.

확실히 프로젝트 하면서 직접 써보지 않은 개념들은 여러 번 읽어도 잘 머리에는 안 들어오긴 하더라.

 

CHAPTER 15. RESTful API

IT 용어 중에 남들은 다 아는데 나만 모르고 있는 것 같은 개념이 몇 개 있다.

그 중에 하나가 이거였다.

REST는 representational state transfer의 약자로 분산시스템을 위한 소프트웨어 아키텍처의 한 형태를 말하며, RESTful이란 REST의 조건을 만족한다는 뜻이랜다.

 

작년에 Java로 열심히 API 만들고 Swagger로 주구장창 테스트했는데..

그게 바로 RESTful API였네.

올해에는 다른 프로젝트에서 만들어진 API 테스트할 때 많이 쓰고 있다.

다행이다.

어디 가서 RESTful API 썼다고, 쓰고 있다고 말할 수 있어서.

 

CHAPTER 16. HTTPS

이 업계 일하면서 여러 번 마주쳤으나, 그 자세한 내용은 잘 몰랐던 부분에 대한 챕터다.

 

얼마전에 HTTP를 HTTPS로 리다이렉트 시키는 데 고생을 해서..

많이 익숙한 부분이었다.

단어만 익숙하지 난 역시 구체적인 건 취약한데, 그에 대한 설명이 참 잘 되어 있더라.

 

HTTPS 챕터답게 SSL, TLS 등에 대한 설명부터 시작한다.

RSA, DHE, ECDHE 등 메시지 암호 키 교환 알고리즘 소개도 되어 있고,

X.509, CA 등등 들어는 봤던 개념들에 대해 충실히 설명도 되어있더라.

 

이쪽 분야 역시 이야기 나오면 움추러 드는 분야이긴 하다.

책을 읽어도 암호 알고리즘의 내부는 모르고 인증서 오고 가는 게 눈에 안 보여서 그런가?

아직도 나는 이에 대해 신나게 떠들 만큼의 역량은 부족하지 않나 싶다.

 

CHAPTER 17. OAuth 2.0

처음 리뷰할 책을 고를 때 뒷부분에 HTTPS, OAuth 2.0이 있길래 이 책으로 골랐다.

 

예전에 프로젝트 했던 부분이 나왔네.

근데 그 때도 제대로 공부를 안 해놔서.. 기술 부채가 쌓였나보다.

 

챕터 말미에 JWT(JWON Web Token) 잠시 언급되는데,

이걸 지금 프로젝트에서 쓰고 있어서인지 눈이 반짝거리게 되더라.

역시 아는 만큼 보이는 듯.

 

* 전체 후기

지은이 소개를 하는데, 작가님이 7년차 C++ 개발자라고 하신다.

헉. 내가 7년차 때 이 정도의 책을 쓸 역량이 되었던가 싶다.

난 15년차 된 지금도 17개의 기술 중에서 나는 한 챕터도 제대로 못 쓰겠는데 대단하네.

 

웹툰 작가 주호민 님의 군대 만화 '짬'이 생각났다.

입대할 때부터 군대생활을 만화로 그려보자고 생각하면서 모든 것들을 기록한 덕에,

전역하고 군대 만화를 그릴 수 있었겠지.

 

작가님도 그런 마음으로 하나씩 하나씩 기록하다 보니

이렇게 책도 낼 수 있지 않았을까 싶다.

나도 지금부터라도 열심히 기록을 해둬야지.

 

여기 있는 대부분은 어디선가 한번씩은 들어본 부분인데..

그만큼 실무에서 쓰는 기술들이 잘 설명된 것 같다.

 

대부분은 출근시간/퇴근시간에 버스에서 보면서 읽을 정도로 어렵지 않게 잘 풀어서 설명이 되어 있더라.

바쁘다는 핑계로 예제로 나온 파이썬 코드는 실습해 보지 못했다.

파이썬을 쓰는 프로젝트 하게 되면

공부도 할 겸 이 책에 있는 예제 소스 전부다 한 번씩 실습해 보면 좋을 것 같다.

그 이전에 혼자서 하게 되면 좋을텐데..

닥쳐야 하는 내 성격상.. 아무래도 안 할 듯 싶다.

 

지은이의 말 부분 보면 '언젠가 한 번 이상 사용하게 될 기술을 알고 회사에 들어가면 좋겠다고' 한다.

그래서 주니어를 타겟으로 쓴 책인 것 같은데, 나처럼 고인물 라떼도 읽으면 좋을 것 같다.

어쩌면 나같은 이에게 더 필요한 채찍일지도 모르겠다.

 

이것 저것 뭔가 많이는 했는데,

엉성하게 알고 있던 지식을 제대로 쌓을 수 있게 해줬다.

 

사상누각에 D라서 보강 공사를 한 듯한 기분?

점과 점을 잇은 선이 그어진 기분?

서말 있던 구슬이 꿰어진 기분?

을 느끼게 해준 책이었다.



 

 

IMG_0349.jpeg

 

 

 

 

오늘은 또 새로운 한빛미디어 책을 읽고 리뷰 해보려고 한다. 이번에 나온 책은 되게 읽고 싶은 책이었다. 개발을 하다보면 생각보다 개발에 필요한 기타 지식들이 많이 필요한데, 이런 것들은 대부분 직접 부딪히면서 배워서 되게 힘들 때가 많았고, 이런걸 어디서 가르쳐주는지도 몰랐다. 가끔씩 웹수업이나 DB 같은 수업에서 이런 것들을 엑스트라 식으로 가르쳐 줄 때가 있긴 했었다.

암튼 이 책은 확실히 실무중심에서 적혀진 책인 것은 확실하다.

 

IMG_0350.jpeg

 

생각보다 내용들이 놀라웠다. 뭐 사실 Protobuf 를 다룰만한 과목은 DB정도? 이긴 할 것 같은데, 뭐 전문적으로 이런 것들을 배운다기 보다는 이론에 중심을 둔 수업들이니까 이런걸 배울 수 있다는 것에서 제한된다. 책이 얇아서 깊은 지식을 얻기에는 부족하지만 적어도 이런 기술들이 있고, 간단히 개념을 파악하고 사용하는데 무리가 없도록 하는 것에 초점을 둔 것 같다.

IMG_0351.jpeg

 

개발자 중심으로 적힌 책이여서 아예 개발을 잘 모르는 사람들이 읽기에는 무리가 있는데, 적어도 웹이나 앱, 게임개발을 한번쯤 제대로 해본 사람이라면 굉장히 많은 도움을 얻을 수 있는 책인 것 같다. UUID는 사실 이번에 모바일 앱 개발 수업을 들으면서 처음 알았던 개념이다. 이런걸 어디서 배우나 싶은데 이런 책이 나와줘서 참 좋은 것 같다.

사실 이 책의 초반부는 개발 어느 분야든 공통된 내용이긴 하지만 후반에 가면 갈 수록 웹에 관련된 내용이 많이 등장한다. 그렇다고 다른 개발 분야 사람이 읽으면 아예 쓸모없는 것이 아니다. 항상 다양한 것들을 알고 있으면 도움이 되기 마련인 것 같다. 그런 의미에서 나는 또 다양한 소프트웨어 개발 지식을 넓힌 것 같다.

* 이 책은 한빛미디어 나는 리뷰어다 이벤트로 제공받은 책입니다.

파일을 읽었는데 갑자기 인코딩이 깨져서 당황스러울 때가 있었을거다. 분명히 읽혔던 파일인데 다른 장비에서 읽거나 백업해서 읽었더니 한글이 다 깨져보인다든지 코드의 주석이 다 깨져보인다든지 하는 경험을 해본 적이 있을거다.

그래서 여러가지 방법으로 찾아보다가 그게 인코딩 문제라는 것을 깨닫게 된다. 또 세부적인 인코딩의 차이점이 무엇인지 인코딩을 설정해서 파일을 읽어오긴 했는데 다른 사람에게 전송했더니 인코딩이 깨진다는 얘길 듣기도 했을거다.

책의 제목대로 학교에서 알려주지 않는 실무 개발기술에 대해 잘 정리가 되어 있다.

이 책의 코드는 파이썬으로 되어 있지만 어떤 언어를 사용하든 공통적으로 마주칠 수 있는 문제라 다른 언어를 사용하고 있더라도 무리 없이 읽을 수 있는 책이다.

코드도 깃헙에 공개가 되어 있다.

https://github.com/sorrowhill/17techs

코드나 파일은 거의 UTF-8을 사용하지만 다른 경로로 받은 파일은 인코딩 때문에 열리지 않는 경우가 종종 있다. 또 DB에 저장된 인코딩과 코드에서 불러오는 인코딩이 다 달라서 이런 설정을 맞춰야지 어렵게 인코딩 문제를 해결한적도 있는데 인코딩에 대한 기본지식이 없다면 인코딩을 맞추는데 애를 먹을 수 있을거다.

이 책은 내가 업무에서 만났던 어려웠던 점들을 잘 집어 설명하고 있다. 다국어 처리 같은 경우에도 해당 업무를 해보고 이해할 수 있었다. 업무에서 마주쳐서 직접 구글링을 하며 어려움을 겪었던 기억이 떠올랐다. 이런 꿀팁들이 이 책에는 잘 정리가 되어 있다.

타임스탬프로 시간을 처리하는 문제라든지 왜 시간을 불러왔는데 1970년 1월 1일 인지 그리고 원하는 패턴을 찾기 위해 정규표현식을 활용한다든지 여러 파일의 포맷이라든지 JSON, XML, YAML 의 차이점은 무엇이고 장단점은 무엇인지 이 책에서 친절하게 정리해서 설명해 주고 있다.

대부분 현업에서 꼭 필요한 내용인데 학교에서 가르쳐주지 않아 현업에서 삽질과 구글링으로 많은 시간을 보내게 되는 문제들을 너무 잘 정리해 놓았다.

출간 전부터 읽어보고 싶었는데 기회가 되어 처음부터 끝까지 너무 재미있게 읽었다. 이제 막 개발을 시작한 사람이라면 고민하지 않고 사용했던 실무 팁을 익힐 수 있고 또 경험이 많은 개발자는 친절한 언어로 정리할 수 있는 책일거 같다.

이번에 신청한 책은 학교에서 알려주지 않는 17가지 실무 개발 기술이라는 책입니다.

 

KakaoTalk_Photo_2020-05-31-16-34-59.jpeg

 

 

지금은 주니어는 아니지만 요즘 주니어일 때는 핵심적으로 알아야 할 기술들이 어떤 것이 있을까?

 

좀 더 알아보고 싶어서 이렇게 신청하였습니다.

 

그리고 오히려 시니어분들한테도 좋을 것 같아요. 가이드를 제시하기 위해 개념을 다시 한번 익히기도 좋은 책 같습니다.

 

기본적으로 책은 3가지 파트로 나뉘어있습니다.

 

소프트웨어를 지탱하는 기술, 데이터 처리 기술, 웹을 지탱하는 기술로 나뉘어있습니다.

 

내용의 소스 코드는 주로 파이선으로 되어 있어서 요즘은 파이선 언어를 많이 쓰니 예제만 보셔도

 

이해가 많이 가실 겁니다.

 

현업에서 일하고 있는 저도 책을 읽으면서 다시 한번 용어 관련해서 다시 머릿속에 넣기 좋았고

 

또한 책 구성이 기본적으로 이해하기 쉽게 도표와 그림으로 이해를 돕게 하고 있어서

 

좋았던 거 같습니다.

 

저는 간만에 문자열 인코딩 쪽이랑 날짜와 시간 및 다국어 처리 내용을 다시 한번 읽어보니

 

쉽게 정리가 되어 있어서 좋았던 거 같아요

 

그리고 최근에 프로토콜 버퍼라던지 관심이 있었는데 책에도 내용이 있어서 좋았던 거 같고요

 

특히 파트3인 웹을 지탱하는 기술에서 HTTP, Restful API랑 HTTPS, OAuth 2.0은 현업에서도 계속 쓰이고 있는 기술이니 특히 아파트는 꼭 읽어보셨으면 좋겠습니다.

 

제가 주니어일 때 이런 책이 나왔으면 더 좋았을 것 같은데 요즘에는 기술 익히기에 좋은 세상이니

 

이 책을 작성해 주신 작가님과 한빛미디어 관계자분들께 감사의 말씀을 드립니다~!

공부를 처음 시작할 때 부터 지금까지,  개발에 관한 모르는 용어나 기술은 줄어들지 않고 있다. (오히려 계속 늘어가고 있는 실정이다.) 

 

보통 무언가 작업을 하다가 모르는 내용이 나와서 막히면 구글신의 은혜를 입기 위해 크롬을 키기 마련이다. 다만, 제대로 정리된 내용을 찾아내고 그걸 또 이해하는 것은 온전히 나의 몫이다.

 

더욱이 시작한지 얼마 안된 상태에서는 무엇을 먼저 찾아야 할지도 모르는 경우가 수두룩 하다.  그래서 간단하게 나마 여러가지 기술을 소개 하는 책에 대한 요구가 있어 왔고 이미 그런 책들을 많이 보아 왔다.

 

“학교에서 알려주지 않는 17가지 실무 개발 기술” 은 실제로 실무에서 사용 하는 여러가지 기술에 대한 내용을 소프웨어를 지탱하는 기술, 데이터 처리 기술, 웹을 지탱하는 기술 이라는 3가지 파트로 나누어 17가지의 기술을 설명 하고 있다.

 

기술에 대한 레퍼런스 북이 아니라, 소개서나 입문서의 포지션을 지니고 있기 때문에 자세한 내용은 설명하지 않는 것도 많이 있지만, 설명 자체가 군더더기 없고 깔끔해서 읽으면서 딱히 막히는 부분이 없었다.

 

그리고 요즘 많이 사용 하고 있는 파이썬 언어로 간단한 예제를 작성하여 보여주기 때문에 때론 뜬구름 잡기가 될 수 있는 부분에 대한 설명도 구체적으로 보여 주고 있다. (책을 읽으면서 각자 사용하는 언어별 예제를 작성해 보는 것도 재미있을 듯 하다.)

 

기본이 되는 기술들에 대한 개략적인 이해를 배우고, 사용하는 언어별로 내용에 대항하는 라이브러리나 기술 등을 찾아서 공부 하는 로드맵을 스스로 그리다 보면, 개발 실력이 어느순간인가 일취월장 해질 것으로 기대 된다.

 

신입 사원이 들어 온다면 꼭 한권 선물하고 싶은 책이다.

 

KakaoTalk_20200531_102525760.jpg

 

표지는 또 진짜 안예쁘다

학교에서 잘 다루지 않지만(과목으로 새로 만들기가 애매하거나, 컴퓨터 공학적으로 크게 중요하다고 교수님이 생각하는 부분) 분명히 실무에서는 많이 쓰이는 주제들이 있다.

이 책에서는 그러한 내용들을 다루고 있고, 나도 실제 게임제작에서 UTF8 인코딩, 난수, JSON, 정규표현식, RESTful API 등을 사용하는 입장에서 이러한 서적이 굉장히 재미있게 다가왔다.

물론 이 책에서 다루는 내용이 어디에서도 구할 수 없고, 정말 컴퓨터 공학을 하는데 있어서 필수적인가라는 생각은 하지 않는다. 하지만 검색으로만은 해결되지 않는 그 정보가 어디에 있는지도 모르는 상황을 이 책은 다소 해결해줄 수 있다.

KakaoTalk_20200531_102525760_01.jpg왜 어떤 인코딩에서는 한글이 3바이트고 어떤 인코딩에서는 이모지가 안보이는지 알겠다

나는 텍스트 인코딩 방식에 관련된 부분에서 도움을 개인적으로 많이 받았는데, 비전공자 출신 개발자로서 그동안 엔디언이 뭔지, UTF-8이 뭔지 16이 뭔지에 대해 전혀 알고있지 않았다. 그래서 인코딩이 이상하게 됐을 때도 왜이럴까 싶은 채로 문제를 해결하기 어려워했다.

하지만 이 책에서 자세하게 설명되어 있는 내용을 보고, UTF-8, UTF-16, Euc-kr의 대표적인 논리를 이해하면서 텍스트 인코딩에 대한 자신감을 얻기도 했다.

또한 뒷부분에 나와있는 http와 관련된 부분은 tcp기반의 통신에 대한 설명도 되어서 개발하고있는 C# 서버에서도 도움을 받을 것 같다고 생각했다.

이 책은 전자책으로도 상당히 가치가 있을 것 같다고 생각했고, 옆에다가 딱 화면 띄워놓고 개발하기에도 나쁘지 않다고 생각했다.

다만 조금 더 다양한 기술에 대한 설명이 있었으면 했다. 학교에서는 깃도 알려주지 않고, AWS도 안알려주지 않는가. 어차피 파보면 깊은 기술들이 많아서 단순하게 인스턴스 생성하는 수준까지 보여주고 서버 / 클라이언트 프로그램 정도 구동만 보여줘도 괜찮을 거라고 생각했다. 그냥 개인적 의견이다.

 

KakaoTalk_20200531_102525760_02.jpg

가끔 찾아볼 일이 있을 것 같은 책이다.

* 본 리뷰는 한빛미디어에서 서적을 제공받아 작성되었으며, 원고료 등은 일체 지급되지 않고 객관적으로 리뷰를 남긴 것입니다.

화면이 돌아가보이는 것은 한빛미디어홈페이지 잘못입니다. 이미지 돌아가는 기능도 없게 만든 쪽이 잘못이죠.

i18n, 서머타임, UUID, RSA, HTTPS, OAuth2, YAML 등의 실제 서비스 개발에 꼭 필요한 친구들을 잘 설명해 주고 있습니다.

 

토이 프로젝트에서는 해당 단어들을 사용하기가 쉽지 않은데, 이 책으로 간접 경험 하는게 나쁘지 않아 보입니다ㅎㅎ~

대학을 졸업한지도 어느덧 4년, 그 말은 개발자로 일하기 시작한 지도 어느덧 4년이라는 뜻이 되네요.

컴퓨터공학부에서 웬만한 전공수업은 다 듣고 졸업하였지만 이 책을 보면서 학생 때 이런 걸 배웠었나? 싶은 것들도 많았습니다.( 그래서 학교에서 알려주지 않는 17가지 실무 개발 기술이라는 제목이겠지요? )

17가지 전부를 가르쳐주는 학교도 적겠지만 17가지 중에 1가지도 가르쳐주지 않는 학교도 없을 거라 봅니다.

그만큼 개발자로서 현업에서 실무를 수행하는데 필요한 기술들이기 때문이지요.

어떤 기술들이 있는지 쓱 보면서 제 생각을 가볍게 끄적여 봅니다.


소프트웨어를 지탱하는 기술 7선

  1. 문자열 인코딩: 요즘엔 대부분 UTF-8을 사용하지요?
  2. 다국어 처리: 글로벌 시대에 필수라고 봅니다.
  3. 날짜와 시간: 로그 기록할 때 처음 접해봤네요.
  4. 정규 표현식: 입력값 처리할 때 중요하죠!
  5. 범용 고유 식별자: 이 책에서 알게 되었습니다. 말 그대로 고유한 식별자.
  6. 유사 난수: 난수면 난수지 웬 유사 난수?라고 생각했지만 그 이유가 있었죠.( 책을 봅시다! )
  7. 해쉬 함수: 라이선스 키를 생성할 때 처음 접해봤네요.


데이터 처리 기술 6선

  1. JSON: 정말 많이 쓰이는 데이터 포맷
  2. YAML: 이 책에서 알게 되었는데 왜 이런 것들이 자꾸 생기나 했는데 이유가 있었죠.( 책을 봅시다! )
  3. XML: JSON에 의해서 설자리를 많이 잃었지만 그래도 많이 쓰이죠
  4. 프로토콜 버퍼: 구글 갓
  5. Base64: 영상, 이미지 등등 텍스트가 아닌 데이터들을 처리하기 위해 사용된다는군요. 처음 알게 되었습니다.
  6. 데이터 압축(zlib): 학생 때 과제가 생각났던.. 허프만 아저씨도 생각났던..


웹을 지탱하는 기술 4선

  1. HTTP: HTTPS를 씁시다.
  2. RESTful API: 설계의 중요성
  3. HTTPS: 보안의 중요성
  4. OAuth 2.0: 얘는 많이 들어봤는데 아직 써본 적은 없네요..

필자는 윈도우 응용프로그램 개발자였다.

그럼에도 불구하고 이 책에서 알려주는 기술들을 실무에서 접하게 되었으며 그만큼 핵심적인 기술들이란 이야기.

오픈소스를 사용해보면서 알게 된 기술들도 있는데 이것 또한 그만큼 책에서 알려주는 기술들이 중요하단 이야기.

결과적으로 어찌 되었든 개발자로서 세상의 문제를 해결하고자 한다면 알아야 할 기술들이란 이야기.


그래서 이 책이 어떻다는 건데?

기술을 17가지나 소개하지만 책은 300페이지 정도밖에 안된다.

그 말은 즉슨 최대한 핵심적인 개념사용하는 이유어디에 쓰이는지무엇을 고려해야 하는지 등등 꼭 알아야 될 포인트들만 콕콕 집어서 이야기해준다.

가끔 깨알 같은 팁들은 저자의 세심함을 보여주는데 개인적으로 크게 공감하는 이야기가 많았다.( 그만큼 도움이 된다는 이야기 )

취준생이라면 상식을 쌓는다는 느낌으로, 실무자라면 한 번쯤 복습하는 느낌으로 읽어보길 권합니다.

학교에서뿐만 아니라 회사에서도 누가 알려주기 힘든 개발 기술들을 엮어 놓은 책이다.

 

책은 문자열 인코딩, 다국어 처리, 날짜와 시간, 정규 표현식, 범용 고유 식별자, 난수, 해시 함수, JSON, YAML, XML, 프로토콜 버퍼, Base64, 데이터 압축(zlib), HTTP, RESTful API, HTTPS, OAuth 2.0에 대한 주제로 10~20페이지 내외로 구성되어 있고 각 기술별 이론과 특징, 왜 사용하는지, 그리고 간단한 사용 예로 구성되어 있다. 참고로 사용 예는 모두 파이썬 코드다.

 

평소에 잘 알고 쓰는 기술들도 있고, 듣기는 했지만 책을 읽으며 '아, 이런 거였구나.'라고 알게 된 기술들도 있다.

저자가 서문에서 이야기한 대로 알아두면 언젠가는 한번 사용하게 되거나 문제로 맞게 될 것들이라 생각된다.

 

"이 책에서 소개하는 기술을 모두 사용해보거나 외울 필요는 없습니다. 이러한 기술들이 있다는 것만 기억하면 됩니다."

 

한 권의 책으로 내기에는 각각 하나의 주제들의 분량이 많지 않고, 그렇다고 여기저기 검색하면서 찾고 참조하기에는 쉽지 않은 주제들을 잘 설명해 놓았다.

 

너무나 당연하게(아무 생각 없이 쉼 쉬며 사는 것처럼) 여겨지고 사용되는 기술들이지만, 무언가 문제가 발생하면 그제서야 이 기술이 무엇이고 왜 이런 일이 발생했고 어떻게 해결해야 하는지 찾아 헤매야 하는 것들을 어떻게 이렇게 잘 모을 생각을 했을까 하는 생각으로 책을 읽었다. 요소마다 무릎을 탁 치게 만드는 책이다.

 

인코딩 하나만 하더라도 문제없을 때는 아무런 것도 하지 않아도 되지만, 한번 꼬이기 시작하면, 웹페이지를 편집한 편집기 설정과 저장 속성, 웹서버 설정, DB 인코딩 설정까지 다 짚어보는 과정을 거쳐야 겨우 해결될 때가 있다.

그럴 때는 파일, 서버, DB 간 인코딩이 왜 깨지는지, 어디가 문제인지, 어느 인코딩으로 통일시켜야 하는지 등을 고민해야 하는데 그럴 때 이 책을 한번 훑어보고 해결에 들어간다면 도움이 되지 않을까 싶다.

 

실제 나도 얼마 전 정규표현식 하나 만들어야 하는 일이 있어서 반나절 정도 이 사이트 저 블로그 돌아다니며 결국 완성했는데, 이 책을 좀 더 빨리 만났다면 그렇게 고생할 일이 없었을 것 같다.

 

저자 경력 연차가 꽤 될 거라 생각했는데, 이제 7년차라고 하니 앞으로 많은 발전과 성장이 기대된다.

어차피 회사에서 실무로 몇 년 굴러먹기까지는 다 거기서 거기랍니다.

어쩌면 입사한지 몇 년되었다고 해도 규모있는 프로젝트를 접하지 않았다면, 새로 입사하는 그들하고도 별반 다르지 않습니다.

그래서 언제든지 투입될 수 있게 미리 미리 준비하느냐가 중요합니다.

그래서 가끔씩 선배들이 던져주는 과제들 속에서 기본적인 실수들은 만회하기가 어렵답니다.

그리고 과제나 프로젝트들의 문제가 생겼을때 보통은 기본적인 실수가 많기에 그런것들을 캐치한다면 사뭇 달라보일 수 밖에 없습니다.

크그림이나 전체적인 관점에서 보는 선배들하고는 조금 다른 어프로치가 더 적합해 보입니다.

그럼 어떻게 무엇을 그런 거대한 질문들만 남습니다.

 

그런 측면에서 최근에 책 한권에 눈에 들어옵니다.

제목도 세련되었고, 구성, 그리고 실제 목차내용도 솔깃합니다. 

그래서 신입이든 오래된 중간관리자든 집에서 티내지 않고 몰래보는 책으로 추천드립니다.

 

한빛미디어 사이트 큰 장점은 미리보기가 참 좋다는 것입니다.

미리보기로 맛보고 구매결정이 가능하답니다.

https://preview2.hanbit.co.kr/books/nayi/

12.png

 

11.png

 

문자열 인코딩

33.png

 

Base64를 사용하는 이유

29.jpg

REST란

28.jpg

TCP와 HTTP26.jpg

 

27.jpg

17가지 실무 개발 기술

25.jpg

 

24.jpg

빠르게 성장하는 개발자가 되려면

23.jpg

 

22.jpg

 

 

 

책에서 다루는 주요 내용은 다음과 같습니다.

 

소프트웨어 기술
문자열 인코딩, 난수, 범용 고유 식별자, 다국어 처리, 해시 함수, 날짜와 시간, 정규 표현식
데이터 처리 기술
JSON, YAML, XML, Base64, 프로토콜 버퍼, 데이터 압축
웹 기술
HTTP, HTTPS, RESTful API, OAuth 2.0

 

이 책은 학교에서 알려주진 않지만 실무에서는 필요한 지식들을 전해주기 위해서 집필된 책입니다. 실무에서는 아주 다양한 기술들이 사용됩니다. 쉽게 프로그램이라고 하지만 사람마다 프로젝트마다 사용되는 기술들이 다르다 보니 신입은 헤매기 마련입니다.

 

책을 읽으면서 신입 개발자의 관점에서 보면 좋을 내용들이면서 비개발직군이지만 개발적인 이해를 필요로 하는 마크업 엔지니어나 디자이너, 기획자들도 접하면 좋을 것 같습니다. 전체적으로 읽는 데 있어 어려움은 없는 편이었습니다. 개발 기술에 대해 궁금할 경우, 개념에 대한 설명이 필요한 경우 읽어 본다면 방향을 잡는데 도움을 받을 수 있을 것 같습니다.

 

 

 

 

조금만 검색해 보면 알 수 있지만 책에서 다루어지고 있는 내용에 따라선 한 권으로 다루어지는 내용도 있습니다. 그만큼 책 한 권에 17가지에 달하는 기술들을 다루고 있기 때문에 깊이 있게 들어가지는 못하는 부분도 있습니다.

 

 

 

초급 개발자의 입장을 고려해서 집필된 책이지만, 비개발자인 사람에게도 도움이 되는 내용들로 구성되어 있으니 시간을 들여 읽어 둘 가치가 있다고 생각됩니다.

 

 

 

KakaoTalk_20200529_160730956.jpg

 

제목부터 끌렸다.

학교에서 알려주지 않는 17가지 실무 개발 기술.

책에서 소개해주는 17가지란 다음과 같다.

1.문자열 인코딩, 2.다국어 처리, 3.날짜와 시간, 4.정규 표현식, 5.범용 고유 식별자, 6.난수, 7.해시 함수,

8.JSON, 9.YAML, 10.XML, 11.프로토콜 버퍼, 12.Base64, 13.데이터 압축(zlib) 14.HTTP,

15.RESTful API, 16.HTTPS, 17.OAuth 2.0

책은 17가지 기술을 크게 3파트로 나누어서 소개한다. 소프트웨어 기술, 데이터 처리 기술, 웹 기술 이렇게 3파트 이다. 소프트웨어 기술은 말 그대로 소프트웨어 전반에 걸쳐 쓰는 기술이다. 학교에서 단순하게 입출력만 다루었다면 실무에서는 사용자 컴퓨터에 맞게끔 문자열을 다루어야 하므로 중요한 기술들이다. 난수 파트는 학교에서 가르쳐주는 내용과 큰 차이가 없다고 생각한다. 책에서 다루고 있는 개념들은 프로그래머로써 살아가기 위해 반드시 알아야되는 기본 개념들이다.

아쉬운 점은 프로그래밍 기본 개념서와 별다른 차이점이 없다. 사실상 프로그래밍 언어 책에 부록으로 실무에서는 이런 개념들이 자주 쓰이니 꼭 알아두자! 이런 느낌이다. 프로그래밍 언어 개념서를 보면 대부분이 다음과 같이 진행된다.

이 언어에는 이런 기능(함수)들이 있습니다.

main 함수에서 이러이러 어렇게 사용하면 됩니다. 쉽죠?!

자 다시 리셋시키고 다음 기능을 보겠습니다.(1번으로)

이 책도 마찬가지다. 실무에서 이런 개념들이 자주 쓰입니다. 이거는 파이썬으로 이렇게 쓰면 되요. 끝

저자소개란에 C++ 개발자라고 적혀있는데 책에서 사용하는 언어는 파이썬이다. 아마 파이썬 사용자들이 많으니 독자층을 고려하여 선택한 것 같으며 기본 개념을 설명하는 것이니 굳이 C++로 할 필요는 없어서 파이썬을 선택한 것으로 보인다. C++ 개발 희망자로써 조금 아쉬운 부분이였다.

 

> 진행에 앞서

타이틀 정말 길다.

이 책의 첫 느낌이었다.

 

그리고 어딘가 상당히 초보적인 내용과 뻔한 내용이 들어있을 것 같은 불안감이 있었다.

 

결론을 미리 이야기하자면, 어느정도는 맞고 어느정도는 아니었다.

사실 실무에서 도움이 되는 내용이기에, 현직 개발자 입장에서 보자면 당연하게도 뻔한 내용이었지만, 실무에 도움이 되는 내용임에는 틀림이 없었다. 그리고 그 내용은 구체적이기도 해서, 실제 책 제목에 부합하는 내용이었다.

 

 

> 책에 대한 간단한 정보

책의 표지

일단 이 책은 2020년 4월 16일 초판 발행한 책이다.

어딘가 복잡하게만 돌아가는 느낌으로 표지 구성이 되어있으며, 17을 강조하였다. 왜 하필 17일까. 딱 떨어진 숫자를 많이들 사용할텐데, 개인적으로는 소수(Prime number)의 느낌이 들었으나, 이건 개인적인 느낌일 뿐이다.

개발자라면 대부분이 알아야 할 내용, 하지만 학교에서는 대놓고 가르치지 않는 지식을 가르치고 있다는 느낌을 받았다.

그래도 어떤 내용이 들어있는지는 매우 궁금하였던 것이 사실이다.

 

> 목차

목차는 곧 이 책에서 말하고자 하는 17개의 항목과도 같다.

 

[소프트웨어를 지탱하는 기술]

문자열 인코딩, 다국어 처리, 날짜와 시간, 정규 표현식, 범용 고유 식별자, 난수, 해시 함수

[데이터 처리 기술]

JSON, YAML, XML, 프로토콜 버퍼, Base64, 데이터 압축(zlib)

[웹을 지탱하는 기술]

HTTP, RESTful API, HTTPS, OAuth 2.0

 

위와 같은 항목으로 나열되어 있으며, 분류에 대해서는 대충 느낌이 올 수 있었다.

 

문자열 인코딩에 대한 소제목을 보면 알 수 있듯이, 뻔한 내용일 수 있겠지만, 그래도 우리가 실무에서 접하면 필요한 내용을 담았다는 사실을 알 수 있다.

 

> 인상깊은 부분들

각 기술을 설명할 때, 사수가 부사수에게 설명한다는 느낌이 들었다.

그래서 뻔할 수 있다는 생각이 들었나보다.

각 개념에 대해 이론을 설명한 뒤, 그에 관한 실습을 실었다. 물론 기준이 파이썬이기 때문에 실제로 와 닿지는 않을 수 있으나, 의사코드(PSUDO CODE) 정도의 느낌으로 접하면 그리 또 어렵지만은 않다.

개발자로서 첫발을 디디는 신입이라면, 이 책이 매우 도움이 될 것으로 보인다.

특히 어떠한 환경상 자신을 전담하는 선임이 존재하지 않거나 그 도움을 받기 어려운 환경이라면 이 책이 어느정도는 그역할을 대신할 수도 있을 것이다. 전반적인 느낌에 해당하지만, 참 인상적인 부분이다.

 

> 괜찮은 부분

- 첨삭지도 해주는 느낌으로 접근하는 책이기에 친절하다.

- 타겟이 분명해서 이 책을 필요로 하는 사람에게는 큰 도움이 될 것이다. 혹은 두고두고 볼 수 있는 부분도 존재한다.

- C++개발자가 작성한 책이지만, 파이썬으로 예제를 수록함으로 쉽게 예제에 접근할 수 있도록 잘 선택하였다고 본다.

- 각 개념에 대한 설명이 풍부하며, 실무에 매우 가깝게 느껴진다.

 

> 아쉬운 부분

- 2020년 4월이면, 최신 트렌드 기준으로 좀 더 회자되는 기술 중심으로 더 다뤘으면 좋지 않았을까(가령 클라우드에 필요한 개념들이라든가, Front-end, Back-end에 대한 스택 이야기 등)

- 웹과 일반적인 데이터 처리 기준으로 작성된 책이지만, 쉽게 배우기 어려운 용어에 대해서도 다뤘으면 좋았을 것 같다.

 

> 개인적인 평점

- 가격: 7 / 10

- 내용: 8 / 10

- 디자인: 5 / 10

- 구성: 8 / 10

 

> 정보

저자: 이기곤

출판사: 한빛미디어

가격: 20,000원

전체 페이지: 308페이지

 

** 이 리뷰는 "한빛미디어"를 통해 도서를 제공받아 작성하였습니다.

IMG_6374.JPG

 

이 책의 목차를 처음 봤을 때, 과거에 경험했던 어려움들이 생각났습니다.

 

제가 일했던 분야는 수출을 많이 했습니다. 그래서 다국어가 중요했고 Day Light Saving이 적용되는

시간대의 지역이 많았습니다.

 

그럴 때 마다 서버를 담당했던 엔지니어와 (저는 그때 클라이언트 담당이었습니다.) 문자열의 인코딩 타입을 계속 맞추고

시간이 왜 서로 안맞는지에 대해 계속 논의했던 기억이 납니다.

또한 시큐리티 이슈로 HTTPS와 OAuth2.0를 개념조차 몰랐던 상태에서 실제 어플리케이션에 구현 하기 위해 고생했던 기억이 납니다.

 

목차를 통해 이 책에서 다루는 기술을 보면 실제 실무에서 많이 사용하는 내용들입니다. 

 

- 다국어

- 날짜와 시간

- 정규식

- 고유 식별자 

- 해시함수

- JSON, XML, YML

- 프로토콜 버퍼 

- Restful API

- HTTPS

- OAuth2.0

 

등 이런 기술이 있다는 것은 알고 있으면 개발을 할때 상당히 도움이 될 것입니다.

 

이 책의 저자가 책의 서두에서 말한 것 처럼 이 모든 것을 다 기억할 필요도 없고 기억할 수도 없습니다.

또한, 이 기술들은 인터넷에 자세하게 설명되어 있습니다. 

그러나 어떤 기술들이 있는지 대략적으로 알고 있는 상태에서 접근하는 것과 아무것도 모르는 상태에서 찾는 것과는

천지 차이 입니다.

 

 

이 책은 제목 처럼 이런 내용은 학교에서 알려주지 않고 실제 실무에서 겪을 수 있는 또는 알고 있으면 좋을 내용들로

채워진 책입니다. 

 

개발을 막 시작한 개발자에게 추천하고 싶은 책입니다.

 

1.인트로 - 

최근에 컴퓨터 공학이 대세 학과롤 떠오르면서 많은 사람들이 컴퓨터를 공부하기 시작했다. 조기 코딩교육은 물론 관심도가 많아지고 무한한 가능성이 펼쳐져 있다고 생각한다. 하지만 학교나 학원에서 배우는 것은 기본적인 것과 어떻게 시험을 통과해야하는지에 초점이 맞춰져 있다. 그 누구도 실무개발 기술에대해서는 직장에서 사수에게 배우기 전까지 알려주지 않는다. 하지만 이책은 그런 내용에 초점을 맞췄다.

 

2.메인 내용 - 

Chapter 01 : 문자열 인코딩

Chapter 02 : 다국어 처리

Chapter 03 : 날짜와 시간

Chapter 04 : 정규 표현식

Chapter 05 : 범용 고유 식별자

Chapter 06 : 난수

Chapter 07 : 해시함수

Chapter 08 : JSON

Chapter 09 : YAML

Chapter 10 : XML

Chapter 11 : 프로토콜 버퍼

Chapter 12 : Base64

Chapter 13 : 데이터 압축

Chapter 14 : HTTP

Chapter 15 : RESTful API

Chapter 16 : HTTPS

Chapter 17 : OAuth2.0

 

기본적으로 제목에 나와있듯이 17가지의 실무기술을 설명해준다. 내용은 실전 개발 능력이라서 그런지 꽤나 어려운 편이였다. 하지만 어떻게 하면 좀 더 편리하고 좋은 알고리즘으로 개발을 할 수 있는지에 초점이 맞춰져 있다. 대부분의 기술들을 들어보지 못했었고 코드의 내용도 쉽게 이해하기는 힘들었다. 하지만 일단 이해가 되면 이런 새로운 방법이 있고 실전에서는 어떻게 하는지 잘 알게 된 것 같다.

 

3.마무리 - 

확실히 초급자 수준이 아닌 이제 취업을 앞둔사람들이나 실무에서 개발하는 사람들을 위해 만들어진 책인 것 같다. 언제나 배울점은 있고 부족한건 많다. 이 책을 통해 실무 경험에 좀더 새로운 공부를 해보는 것은 어떨까?

한빛미디어 리뷰어로 선정되고 세번째 활동 도서 목록에 다소 재미난 제목의 책을 발견했다.

 

' 학교에서 알려주지 않는 17가지 실무 개발 기술'

 

 

제목만 봐도 이쪽을 공부하는 학생 또는 신입급 개발자 또는 이제 막 초급 개발자를 넘어선 대리급 개발자들이 보면 좋을 것 같다는 느낌이 물씬 난다.

 

이 책은 IT업계에 종사하는 사람들이 알면 좋을만한 17가지의 주제에 대해서 정리가 되어 있다. 목차를 보면 고개가 절로 끄덕끄덕 해진다.

 

실무에서 개념과 원리를 알고 있으면 좋기는 한데 막상 겪어보지 않으면 딱히 따로 시간을 내서 공부하거나 하기에는 사전에 알아서 챙기기에 애매한 내용들...

 

수많은 개발서에 어디 속 시원하게 정리되어 있거나 하지는 않고... 간단하게 언급되는 정도?

 

학교에서는 이런것까지 가르쳐주지는 않고, 실무에서는 당연히 알고 있는 것 아닌가 하는... 일종의 그레이존에 있는 개념들 17가지를 잘 정리해놨다.

 

단순히 이게 이런거에요 설명하기 보다...

해당 기술이 어떻게 활용하는지 -> 코드로 직접 돌려보고 -> 현업에서의 노하우도 양념으로 곁들이며 -> 함께 살펴보면 좋은 것들 순으로 각 장이 짜임세 있게 구성되어 있다.

 

예제들은 요즘 대세인 파이썬으로 기술되어 있다.

 

 

 

꼭 IT 뿐만 아니라 다양한 분야에서 다양한 종류의 초급입문서 / 중급 활용서들이 많은데 그 어딘가에도 속시원하게 설명되어 있는 것이 아닌 것들이거나... 실무에 종종 알고 있으면 좋은데 누구도 애써 정리하지 않는 것들... 현업노하우 등이 있을 수 있는데... 과하지 않는 범위내에서 일종의 옴니버스식 구성으로 쏙쏙 모아 정리하는 이런 활용서도 구성도 괜찮다는 생각을 해본다.

 

대학교 3~4학년 내지 초급개발자들이 꼭 한번 가볍게 읽어봤으면 하는 책... 

 

 

※ 본 리뷰는 IT 현업개발자로서 한빛미디어 리뷰어로 출판사로부터 제공받아 읽고 작성한 글입니다.

 

목차

[1부 소프트웨어를 지탱하는 기술]

1장 문자열 인코딩

2장 다국어 처리

3장 날짜와 시간

4장 정규 표현식

5장 범용 고유 식별자

6장 난수

7장 해시 함수

[2부 데이터 처리 기술]

8장 JSON

9장 YAML

10장 XML

11장 프로토콜 버퍼

12장 Base64

13장 데이터 압축(zlib)

[3부 웹을 지탱하는 기술]

14장 HTTP

15장 RESTful API

16장 HTTPS

17장 OAuth 2.0

이 책의 특징으로는

1. 실무에서 쓰이는 17가지 기술(소프트웨어를 지탱하는 기술, 데이터 처리 기술, 웹을 지탱하는 기술)을 한 권에 담았다.

2. 기술을 '어떻게' 사용하는지 소개한다.

3. 간단하면서 실용적인 파이썬 코드를 제공한다.

4. 저자의 노하우를 공유한다.

5. 각 장 별 내용 요약 및 핵심 내용을 제공한다.

추천대상

1. 입사를 앞둔 신입 개발자

2. 개발자를 꿈꾸는 모든 학생

3. 실무에서 자주 쓰이는 기초 기술이 궁금한 주니어 개발자

학교 교육과 실무와의 괴리감을 없애고자 하는 분들께 이 책을 추천드립니다.

리뷰어클럽 서평단 자격으로 작성한 리뷰입니다.

 

저는 요즘 학교에서 무엇을 가르쳐 주는지 잘 모릅니다.

학교를 졸업한지 정말 꽤 오래 되었거든요~

그래서 학교에 다닐때는 이 책에서 만나는 기술들의 몇몇을 제외하고는 있지도 않은 기술이었기에 당연히 교육을 받지 못했던것은 사실이네요.

하지만 제가 실무를 하면서 많이 막혔던 부분들~

어떤때는 한 문제에 막혀서 몇일을 부딪혀서 해결했던 문제들~

특히나 다른 시스템과 연동할때의 문제들은 지금도 항상 두려움에 맞닥뜨리게 됩니다.

실제로 실무에 투입이 되면 프로젝트를 수행하면서 다른 프로그램들과 연동을 해야 할일이 많은데 실제로 요즘 IT 업무는 협업이 대세이기 때문에 서로 다른 시스템과의 연동은 필수 불가결의 요소 입니다.

이 책은 실무에서 연동할때 꼭 필요한 정보들을 알려 주고 있습니다.

[1부 소프트웨어를 지탱하는 기술]

1부에서는 문자열 인코딩,다국어처리,날짜와시간,정규표현식 등 소프트웨어의 기본이 되는 기술에 대해 설명해 주고 있는데요.

문자열 인코딩 부분이 특별하게 문제 될것 같지 않지만 다른 시스템과의 연동에서는 서로 다른 인코딩에 따라 잘 못 이해 하는 경우에 연동이 되지 않아서 몇일씩 걸리는 경우가 있거든요. 다국어 처리 같은 경우는 여러 국가에 시스템을 납품하는 경우라면 한가지 프로그램을 가지고 언어를 처리하는 기술등에 대한 부분도 기술이 되어 있구요.

[2부 데이터 처리 기술]

2부 데이터 처리 기술에서는 요즘 데이터를 연동하기 위해 주고 받는 프로토콜에 대해서 설명을 하고 있습니다.

JSON,YAML,XML 과 같이 데이터 구조와 메시지를 읽고 만드는 방법 등에 대한 설명에 대해서 나와 있습니다.

실제로 저도 XML 이 처음 나왔을때는 XML 에 관한 책이 1000페이지가 넘게 두꺼운 책을 구매 했지만 결국은 읽다가 포기 했었는데요.

데이터를 처리 하기 위해서는 XML 의 역사 부터 모든 것을 알 필요 없이 그냥 구조와 데이터 파싱하는 방법 만드는 방법에 대해서만 알고 있으면 데이터 처리하는데는 무리가 없었는데 1000 페이지 넘는 두꺼운 책을 보면서 두려움을 느꼈던 적이 있었네요.

여기서는 실제로 다루어야 할 부분 실무에서 필요한 부분들에 대해서만 다루고 있기에 프로그램을 배우시고 실무에 접근하시는 분들에게는 유용한 분야가 아닌가 싶네요.

[3부 웹을 지탱하는 기술]

3부에서는 웹을 지탱하는 기술에 대해서 다루고 있는데요.

저는 실무경험이 응용 프로그래밍 분야이기에 웹을 가지고 만드는 것은 별로 좋아 하지는 않습니다.

HTML 을 가지고 화면을 하나 구현하려고 해도 너무 많은 수고와 디자인이 들어가기 때문에 이러한 디자인이 없으면 웹 프로그래밍을 하는 것은 내부가 아무리 잘 만들어 진다고 해도 고객이 보는 것은 별로 이뻐 보이지 않기 때문에 웹 프로그래밍 쪽은 접근하는 것을 싫어 했던 것일 수도 있습니다.

하지만 요즘에는 대세가 웹을 구현하는 기술이기 때문에 응용 프로그래머라고 해도 웹과 연동을 해야 할 일이 많아 질 수 밖에 없는데요.

여기서는 웹의 기본 기술인 HTTP 에 대해서 다루고 서버를 만들어 보고 데이터를 주고 받으면서 서로 연동을 할 수 있는 RESTful API 에 대해서 다루고 있습니다.

또한 제가 몇달 전에 다른 시스템과 연동을 하면서 TLS 보안 부분 때문에 몇일을 고생했던 적이 있는데 이 책에서는 이러한 부분 까지도 다루고 있네요.

 

이 책은 실무에서 프로그래밍을 하는 분들에게 도움이 많이 될것 같습니다.

https://www.hanbit.co.kr/store/books/look.php?p_code=B9288599157

 

 

학교에서 알려주지 않는 17가지 실무 개발 기술

실무에 필요한 지식은 너무나 광범위해서 학교에서 배운 내용만으로는 부족하다. "학교에서 이런 것도 안 배웠어?"에 당황하는 주니어 개발자와 "아직도 이걸 몰라?"에 지친 실무자를 위해 17가��

www.hanbit.co.kr

위의 사이트에서 미리보기가 가능합니다.

 

특히나 다른 시스템과의 연동을 주로 하는 업무에 투입되시는 분들이시라면 읽어 보시면 아무래도 실무에서 많은 도움이 될것 같습니다.

저도 실무 경험이 있지만 실무에서는 시간 안에 어떤 프로젝트를 끝내야 하는 것 때문에 어떤 기술에 대해서 검색을 해서 어찌 어찌 처리 하기는 하지만 그것이 어떤 원리 때문에 처리 되었는지 그 원리를 찾아 내지 못하고 그냥 프로젝트를 끝냈으니 됐어 하고 넘어가는 경우가 종종 있었던 것 같아요.

그러면서 다음에 똑같은 원리의 프로젝트를 수행하면서 다시 한번 더 헤매고 나서 원리를 깨닫는 경우가 있는데~~

이 책을 읽는 다면 그 원리를 깨닫기에 좋은 책이라고 판단이 됩니다.

[한줄평]

6년차 선배 개발자의 개발 엑기스를 기술을 배울수 있다.


[목차구성]

[1부 소프트웨어를 지탱하는 기술]

1장 문자열 인코딩

2장 다국어 처리

3장 날짜와 시간

4장 정규 표현식

5장 범용 고유 식별자

6장 난수

7장 해시 함수


[2부 데이터 처리 기술]

8장 JSON

9장 YAML

10장 XML

11장 프로토콜 버퍼

12장 Base64

13장 데이터 압축(zlib)


[3부 웹을 지탱하는 기술]

14장 HTTP

15장 RESTful API

16장 HTTPS

17장 OAuth 2.0


[이 책의 특징]

  • 실무에서 감초처럼 쓰이는 17가지 기술을 한 권으로 묶었다.

  • 기술을 ‘어떻게’활용하는지 소개한다.

  • 간단하면서 실용적인 파이썬 코드를 제공한다.

  • 현업에서 저자가 쌓아온 노하우를 아낌없이 방출한다.

  • 장마다 내용 요약과 함께 살펴볼 내용을 제공한다.


[이 책의 대상 독자]

  • 입사를 앞둔 신입 개발자

  • 개발자를 꿈꾸는 모든 학생

  • 실무에서 자주 쓰이는 기초 기술이 궁금한 주니어 개발자


[서평]

‘학교에서 알려주지 않는 17가지 실무 개발 기술’은 7가지 소프웨어 기술, 6가지 데이터 처리 기술, 4가지 웹 기술등 실무에 도움이 되는 기술들을 소개 합니다. 우선 책의 구성은 1부 소프트웨어를 지탱하는 기술에서는 소프트웨어 동작과 관련된 기술들을 배울수 있습니다.  2부 데이터 처리 기술에서는 소프트웨어가 동작하기 위해 필요한 데이터를 가공하는 기술을 배웁니다. 이 기술들은 텍스트 기반 규격과 바이너리 기반으로 나눌 수 있는데, 비슷한 텍스트 기반 규격들이 각각 어떤 특징이 있는지 알아보고 바이너리 기반 규격으로 데이터를 가공하는 것이 어떤 장점이 있는지 살펴봅니다. 3부 웹을 지탱하는 기술에서는 크게 4가지를 배웁니다. 서버와 클라이언트가 데이터를 보다 효율적으로 주고받기 위해 필요한 기술을 배우고, 데이터를 안전하게 주고 받기 위해 필요한 기술을 배웁니다.

이책은 기본 문법을 알려주는 것이 아니라 저자가 6년동안 회사 생활을 하면서 실무에서 중요하다는 것을 17가지를 정리해서 개발 기술을 알려주고 있습니다. 각 기술은 파이썬 문법으로 실무에서 빠르게 적용해서 쓸수 있는 코드입니다. 선배 개발자가 실무를 하면서 경험한 것을 한권의 책으로 배운다고 생각하며 읽으면 어제 보다 더 나은 개발자가 될수 있을것이라 생각합니다.

학교에서 배우는 프로그래밍은 다분히 언어 중심이다.
자바나 C, 파이썬과 같은 언어의 문법을 배운다.
그 다음에는 컴퓨터 공학의 주요 기술과 활용 방법을 배운다.
 - 소프트웨어 공학, 데이터베이스, 데이터 분석, 빅데이터 등등
 
학교에서 배운 지식을 실무에서 바로 사용하는 것은 어렵다. 프로그래밍도 예외는 아니다. 실무에서 중요한 것은 언어의 문법이 아니라 주어진 문제를 가장 효율적으로 해결하는 능력이다. 
 
300 페이지 정도의 책에 가볍지 않은 주제 17개를 소개하다 보니, 각 주제에 대해서 깊숙히 설명하지는 못한다. 아무래도 각 주제 하나하나가 책 한권이 될 수 있을 만큼의 내용이 있다보니, 책에서 소개하는 것은 기술에 대한 소개, 사용처, 간단한 사용법 정도이다. 각 주제에 대해 자세히 알고 싶다면 각 장의 '마치며'에 나오는 내용을 찾아 함께 보는 것이 좋을 듯 하다. 

 

 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
학교에서 알려주지 않는 17가지 실무 개발 기술
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
학교에서 알려주지 않는 17가지 실무 개발 기술
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
학교에서 알려주지 않는 17가지 실무 개발 기술
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실