실무에서 중요한 핵심 로직을 만들거나 복잡한 문제를 해결할 때 알고리즘, 스레드와 프로세스, 스택과 힙 구조 등의 공학 이론이 큰 도움이 된다. 이런 공통 기술들은 언젠가 한 번 이상 사용하게되므로 이런 점들을 알고 업무에 시작하면 큰 도움이 된다. 이러한 기술들은 소프트웨어 공학 이론과 비교했을 때, 어렵지도 않고 당장 깊게 배워야 할 필요도 없다. 특히 분야와 상관없이 사용할 수 있다. 소프트웨어 공학이 더 뛰어난 결고물을 만들고 더 나은 개발자가 되는 데 도움을 주는 것처럼, 어떤 분야에서 일을 하건 적재적소에 알맞은 기술을 사용할 줄 안다면 더 나은 개발자가 되는데 도움이 될 것이다.
빠르게 성장하는 개발자가 되려면 반드시 알아야 할 핵심 기술 17가지를 담았다. 소프트웨어를 지탱하는 7가지 기술, 데이터를 처리하는 6가지 기술, 웹을 지탱하는 4가지 기술을 파이썬 코드를 활용해 핵심만 설명한다. 소프트웨어 개발에서 가장 중요한 기술로 문제가 생기기 전까지는 배울 수 없는 인코딩을 시작으로, 소프트웨어 동작에 꼭 필요한 데이터 처리 기술까지 다룬다. 나아가, 어떤 환경에서 개발하더라도 데이터를 안전하고 효율적으로 주고받을 수 있는 웹 서비스의 근간이 되는 핵심 기술도 살펴본다.
실무에서 감초처럼 쓰이는 17가지 기술을 한 권으로 묵었다.
1부 소프트웨어를 지탱하는 7가지 소프트웨어 기술에서는 소프트웨어 동작과 밀접한 관련이 있는 기술들을 소개한다. 이 기술들은 범용적으로 사용되기 때문에 어떤 프로그래밍 언어 및 소프트웨어 프레임워크에서든 해당 기능을 제공하는 함수를 쉽게 찾아볼 수 있다.
- 문자열 인코딩
- 다국어 처리
- 날짜와 시간
- 정규 표현식
- 범용 고유 식별자
- 난수
- 해시 함수
2부 6가지 데이터 처리 기술은 소프트웨어가 동작하기 위해 필요한 데이터를 가공하는 기술들을 소개한다. 이 기술들은 텍스트 기반 규격과 바이너리 기반으로 나눌 수 있다. 얼핏 보면 비슷한 텍스트 기반 규격들이 각각 어떤 특징이 있는지 살펴보고, 바이너리 기반 규격으로 데이터를 가공하는 것이 어떤 장점이 있는지 살펴본다.
- JSON
- YAML
- XML
- 프로토콜 버퍼
- Base64
- 데이터 압축
3. 웹을 지탱하는 4가지 웹 기술은 서버와 클라이언트가 데이터를 보다 효율적으로 주고 받기 위해 필요한 기술과 데이터를 보다 안전하게 주고 받기 위해 필요한 기술을 설명한다.
- HTTP
- HTTPS
- RESTful API
- OAuth 2.0
현실에 안주하지 않고 성장을 꿈꾸는 개발자라면 이 책에서 설명하는 내용을 숙지하는 것을 강력하게 추천한다. 나아가 개발자를 꿈꾸는 학생에게도 유용한 책이다.
본 포스팅은 한빛 미디어를 통해 책을 제공받아 개인의 주관으로 작성된 서평입니다.