그림으로 공부하는 TCP/IP 구조 - 2022 세종도서 학술부문
미야타 히로시 지음, 김모세 옮김 / 제이펍 / 2021년 10월
평점 :
장바구니담기


이번 도서 후기는 네트워크 기초를 차근차근 다질 수 있는 책이다.

우리 일상에서 네트워크는 뗄레야 뗄 수 없는 관계가 되었다.

일상에 가장 많은 부분을 차지하며 여러 정보를 접할 수 있는 인터넷 서비스는 네트워크라는 기술을 통해 우리에게 제공하고 있다.

사실 이 책의 저자의 말처럼 네트워크라는 기술은 이해하기 어려워 용어와 개념을 암기했을 것이다.

나 또한 그랬었다.

하지만 네트워크에 관한 지식을 알고 있으면, 업무를 함에 있어 많은 도움이 된다.

첫번째 챕터에서는 네트워크의 기초를 다룬다.

네트워크의 개념을 시작으로, 프로토콜, OSI 계층으로 네트워크를 구성하는 물리 계층, 데이터링크 계층, 네트워크 계층, 트랜스포트 계층, 애플리케이션 계층을 구성하는 기기를 설명한다.

이후 우리가 흔히 알고 있는 LAN, WAN, DMZ라는 네트워크 형태와 SDN, CDN, IoT, IaaS라는 새로운 네트워크 형태에 대해 다룬다.

두번째 챕터부터는 앞에서 다루었던 물리 / 데이터링크 / 네트워크 / 트랜스포트 / 어플리케이션 계층에 대해 설명한다.

개인적으로 물리 계층에 대한 챕터는 케이블과 커넥터 등의 구성 기기와 통신 방식에 대한 설명부분을 다루는데 나의 경우에는 이 부분은 빠르게 읽고, 반이중화와 전이중화 통신 방식에 대한 개념 부분은 꼼꼼히 읽었다.

이 부분은 주로 용어 정리를 하는 범위 내에서 마무리하였다.

세번째 챕터는 데이터링크 계층에 대한 내용으로 이루어져있다.

우리가 알고 있는 MAC 주소에 대한 내용을 다루는데, 이 내용에서는 1:1 통신방식인 유니캐스트와 1:N 통신방식인 브로드캐스트, 멀티캐스트의 통신 방식에서의 MAC 주소가 이루어지는 방식에 대해 알아두면 좋을 듯하다.

그리고 우리가 실제로 사용하는 무선 LAN에 대한 내용도 다루는데, 실제로 와이파이를 연결할 때 볼 수 있는 내용인 암호화 방식 WEB, WPA, WPA2, WPA3에 대한 차이도 알아두면 좋을 듯하다.

네번째 챕터는 네트워크 계층에 대한 내용으로 이루어져 있다.

IPv4와 IPv6, 라우팅, IP 주소 할당 방법인 정적/동적 할당 방법, NAT, 포트포워딩, IPsec 등 우리가 필히 알고 있어야 하는 내용들을 집중적으로 다룬다.

개인적으로 이 챕터에서는 두/세번째 챕터보다 더 집중해서 읽으며 용어 정리도 겸하였다.

업무를 하면서 기본적으로 알고 있어야 하는 용어들이기 때문에 개인적으로 이 챕터는 꼼꼼히 읽었으면 한다.

다섯번째 챕터는 트랜스포트 계층에 대한 내용이다.

트랜스포트 계층은 네트워크 계층과 다음 챕터의 어플리케이션 계층을 이어주는 역할을 한다.

트랜스포트 계층에서 사용하는 프로토콜인 UDP와 TCP에 대해 다룬다.

우리가 필히 알고 있어야 하는 UDP와 TCP의 개념과 차이에 대한 내용도 포함되어 있지만 각 프로토콜이 어떻게 동작하는 지 그림으로 상세하게 설명하고 있어 아직 개념이 완벽히 이해되지 않은 분들에게는 도움이 될 챕터이다.

나의 경우, 기본 개념은 알고 있었지만 깊은 내용은 잘 몰랐었는데 이 챕터를 통해 내가 몰랐던 부분도 채워갈 수 있었다.

마지막 챕터는 애플리케이션 계층에 대한 내용이다.

개발자라면 필히 알고 있어야 하는 내용들을 다루고 있어 나와 같은 개발 직군의 독자라면 집중해서 보았으면 한다.

특히 HTTP와 SSL/TLS, DNS 내용은 업무에 많은 도움이 될 내용들로만 구성되어 있어 다시한번 더 읽으려고 한다.

개인적으로 이 책을 통해서 내가 깊이 알고 있지 못한 내용을 정리해볼 수 있었고, 지금 우리가 쓰는 표준이 어떻게 변화했는지에 대한 흐름을 익힐 수 있었다.

구성된 여러 챕터 중, 도움이 되었거나 필히 읽었으면 하는 부분을 추천하자면 네트워크 / 트랜스포트 / 어플리케이션 계층을 다루는 4, 5, 6챕터이다.

나와 같이 용어 정리를 해가며 읽는 것을 추천한다.

네트워크는 개인적으로 조금 어려워했었는데 그림과 용어 정리를 통해 공부하니 조금은 더 친숙해진 것 같다.

생각했던 것보다 더 깊이 있는 내용을 다루기 때문에 더욱 도움이 되었다고 생각한다.

네트워크 기초를 다루고 싶거나 OSI 계층에 대해 좀 더 공부해보고 싶은 분들에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
가장 쉬운 독학 알고리즘 첫걸음 : C&자바편 - 개념 이해 → 코딩 → 계산 과정 추적으로 익히는 단계별 알고리즘 학습법 가장 쉬운 독학 알고리즘 첫걸음
야자와 히사오 지음, 박광수 옮김 / 동양북스(동양문고) / 2021년 10월
평점 :
장바구니담기


이번 도서 후기는 알고리즘의 개념과 풀이 과정을 자세히 설명하여 이를 토대로 실습도 겸할 수 있는 책이다.

올해 알고리즘 관련 책을 몇권 정도 읽고 실습을 했었다.

내가 보았던 알고리즘 책마다 약간의 특/장점이 있지만 이번 후기의 도서는 알고리즘 계산 풀이과정을 그림과 설명으로 자세히 쓰여져 있어서 개인적으로 풀이과정을 이해하는데 많은 도움이 되었다.

내가 보기엔 이 책의 가장 큰 장점이 이 부분이 아닌가 싶다.

이 책에 앞부분에 학습 진도표가 나와있어 2주 / 30일 / 4개월 단위로 학습할 분량들이 정해져 있어서 2주 / 30일 / 4개월 단위로 학습하고자 하는 분들이라면 이 분량대로 따라하면 될 것으로 보인다.

나의 경우에는 2주는 조금 길어서 1주일을 목표로 공부하였다.

이미 알고 있는 개념이나 내용이 조금 짧은 부분은 2챕터씩 보았고, 먼저 개념 내용을 이해하고 실습을 눈으로 따라가면 이해한 뒤에 실습 문제를 풀어보았다.

이 책은 C와 자바 언어로 실습을 해볼 수 있는데, 나의 경우에는 C언어 부분의 풀이과정과 실습은 건너뛰고 자바 언어 부분의 풀이과정과 실습 부분만 보았다.

다른 알고리즘 책과 달리 이 책은 의사코드를 통해서도 알고리즘을 작성하는 부분이 설명되어 있다.

나의 경우에는 내가 공부했던 알고리즘 책에서는 의사코드를 통해 알고리즘을 작성했던 내용은 없었다.

의사코드를 통해 알고리즘을 작성하는 건 처음보았기 때문에 챕터 1에서 설명하는 의사코드 표기방법을 익혔다.

이후 챕터 2에서부터 알고리즘을 의사코드와 자바코드로 표현한 부분을 함께 보았는데, 자바코드로만 작성되었던 알고리즘을 의사코드로도 함께 보니 의사코드가 짧고 간결하여 한눈에 이해하기 좋았다.

그래서 나의 경우, 의사코드로 먼저 이해한 뒤 자바코드를 참고하였다.

챕터 마지막 부분에는 확인 문제가 있어 앞에서 다룬 실습 문제를 의사코드로 표현한 내용을 풀어보거나 개념에 대해 객관식, OX 문제로 풀어볼 수 있어 다시한번 챕터에서 중요하게 다룬 부분을 정리하기에 좋았다.

그리고 보충설명 부분과 찾아보면 도움이될 링크 소개도 있어서 이 부분은 건너뛰지 않고 필수로 이해하고 소개된 링크를 찾아 공부하였다.

10 챕터가 끝나도 마지막 챕터에는 실력 확인하기라는 부록이 있는데 이부분은 앞에서 설명하고 익혔던 알고리즘을 토대로 문제를 풀어볼 수 있어서 혹시나 부족한 부분은 다시 해당 챕터로 돌아가서 보충학습을 하면 좋을 듯하다.

마지막으로 이 책에서 가장 와닿았던 내용을 적어보려고 한다.

알고리즘을 마스터하려면 반복 연습이 필요하다.

알고리즘은 누구나 처음에는 어려울 수 있다.

이 책의 말처럼 나도 반복학습이 필요하다고 느낀다.

계속해서 반복하다 보면 처음보다 실력이 향상된 것을 느낄 수 있을 것이다.

나도 그렇게 느껴왔기 때문에 데일리로 알고리즘 문제를 풀어보고 있다.

알고리즘은 달달 외워서 배우는 것이 아니다.

이 부분을 알고리즘 문제를 풀면서 공감하는 부분이다.

먼저 개념에 대해 이해하고 이를 토대로 문제를 풀어가야 한다.

달달 외워서 푸는 것은 기초적인 부분은 빠른 답을 얻을 수 있지만 심화 문제를 푸는 데에 있어서는 어떻게 접근하고 풀어가야 하는지 계획을 세우기 어렵다.

늦어지더라도 꼭! 개념을 이해하도록 하고, 만약 해결하지 못한 문제가 있다면 다른 사람의 풀이 과정이나 실습을 따라서 작성해보면서 풀이 과정을 이해하도록 해야 한다고 생각한다.

마지막으로 이 책에 알려주는 알고리즘을 생각하는 비결에 대해 작성해본다.

1) 처리를 구분하고 차근차근 거듭합니다.

2) 서두르지 안혹 천천히 생각하며, 일단 뭔가 처리해봅시다.

3) 처리에 의한 숫자의 변화를 추적합니다.

4) 더 나은 절차를 생각합니다.

5) 몇 번이고 반복 연습하여 내 것으로 만듭니다.

계속해서 노력하다보면 어느 순간 뒤돌아 보았을 때 처음보다 향상된 실력을 발견할 수 있을 것이라고 생각한다.

알고리즘을 시작하려는 분들이나 계산과정과 단계별 학습이 필요한 분들에게 추천한다.



댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
그림으로 이해하는 AWS 구조와 기술 - AWS, 쉽고 재미있게 시작하자! 그림으로 이해하는 시리즈
오가사와라 시게타카 지음, 성창규 옮김 / 길벗 / 2021년 6월
평점 :
장바구니담기


나는 몇달 전부터 AWS Associate 자격증을 취득하기 위해 틈틈히 공부를 하고 있다.

계속해서 반복하며 공부를 하고 있는데 기본적인 내용을 다시한번 다져보고 싶어 AWS에 대한 도서 정보를 얻기 위해 서점에 들렸다.

여러 책을 보다가 AWS 서비스들에 대한 정보를 이해하기 쉽게 그림과 표로 정리된 이 책을 보게 되었는데 짧은 시간 동안 기본기를 다질 수 있어 보였다.

매일 1시간 정도씩 책을 읽으며 기본기를 다졌다.





책을 읽으면서 가장 좋았던 점은 아무래도 AWS를 실제로 사용해보지 못한 분이나 기본 개념을 익히고 싶은 독자들을 위해 쉽게 쓰여져있었던 것과 AWS에서 제공하는 다양한 서비스에 대해 간략하게 표로 정리되어 있었던 부분이었다.

특히 이 표로 정리된 부분은 시험 준비에 요점 정리로 활용하면 좋을 것 같다고 생각한다.

이 외에도 몇 가지 더 좋았던 점이 있다.

첫번째로 중요 용어에 대해 형광색으로 강조되어 있는 부분이다.

여러 개발 도서를 읽어보면 처음 접하는 용어들이 많이 있다.

두껍고 어려운 책일수록 이런 용어들을 많이 접할 수 있는데, 이 책은 이런 용어들에 대해 형광색으로 강조되어 있어 내용을 읽으면서도, 각 챕터를 다 읽은 후에도 중요 용어에 대해 리마인드할 수 있어 개인적으로 도움이 되었다.

두번째로 각 소챕터별로 내용을 정리해둔 부분이다.

AWS 서비스 시 이용시 필수로, 자주 접하는 서비스들에 대한 내용이 주로 쓰여져 있는데 각 챕터 마지막 부분에 주요 내용을 짧게 정리해둔 부분이 있다. 이 부분은 앞에서 말한 주요 용어에 대한 설명이나 정책 등에 대해 정리해두어 용어와 함께 챕터에서 어떤 내용을 다루었는지 알 수 있어 다시한번 훑어볼 수 있어 도움이 되었다.

개인적으로 이 책을 통해 다시한번 AWS 서비스의 구조와 기술에 대해서 리마인드해볼 수 있어서 좋았다.

AWS를 접해보지 못한 분들이나 Practitioner와 Associate 자격증을 준비하는 분들에게 기초 개념을 정리해볼 수 있어서 도움이 되지 않을까 싶다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
아파치 카프카 애플리케이션 프로그래밍 with 자바 - 카프카의 개념부터 스트림즈.커넥트.스프링 카프카까지 데이터 파이프라인 구축 따라하기
최원영 지음 / 비제이퍼블릭 / 2021년 4월
평점 :
장바구니담기


이번 도서 후기는 최근 내가 읽으려고 작성해둔 도서 목록에 포함되어 있던 아파치 카프카에 관한 책이다.

카프카에 대한 이해와 함께 프로그래밍도 함께 해보고 싶어서 추가해두었었다.

몇년 전 세미나를 통해 카프카에 대해 알게된 이후 아직까지 직접적으로 내가 구축을 해보고 경험을 해보진 못했지만, 언젠가 내게도 기회가 주어진다면 능숙하게 구축하고 운영 할 수 있도록 미리 스터디해보아야 겠다고 생각했었다.

먼저 이 책은 처음 읽기 전부터 두 번정도 볼 계획으로 읽기 시작했다.

첫번째로 읽을 때는 개념 위주로, 두번째로 읽을 때는 개념을 다시 보고 책에 나와있는 실습을 병행하면서 읽을 계획이다.

카프카의 구성요소에 대한 개념과 함께 각 역할이 이해되어야 책에 나와있는 실습도 이해하면서 할 수 있다고 생각했기 때문이다.

개념 위주로 읽다보니, 나는 챕터 1을 읽고, 챕터 2가 아닌 챕터 3을 먼저 읽었다.

특히 챕터 3은 어느 챕터보다도 꼼꼼히 읽었는데, 아무래도 카프카에 대한 기본 개념이 설명되어 있어 더욱 꼼꼼히 읽었다.

이 책을 읽으면서 느낀 카프카에 대한 나의 인상은, 정말 잘 만들어진 플랫폼이다라는 것이다.

처음 카프카를 만들고자 했던 의도가 잘 반영되어 있다고 생각한다.

시간이 지날수록 어플리케이션의 개수가 많아지고 데이터의 양이 방대해지고 있다.

어플리케이션 간에 연결하는 파이프라인 개수가 많아지면 아무래도 서비스를 운영하는 과정에서 여러 문제에 직면하게 된다.

카프카는 이런 상황에서 각 어플리케이션에서 수집한 데이터를 한 곳에 모아서 실시간으로 처리할 수 있게 해준다.

중앙에서 처리함으로써 어플리케이션 간의 의존도를 최소화할 수 있게 되었다.

카프카에서 데이터가 처리되는 방식은 FIFO의 큐와 유사하다.

큐에 데이터를 보내는 프로듀서와 이 데이터를 가져가는 컨슈머로 이루어져 있는데, 카프카를 통해서 전달할 수 있는 데이터 포맷의 제한이 없다는 점에서 가능한 모든 객체가 지원이 된다.

카프카를 도입함에 있어서의 장점으로는, 많은 양의 데이터를 송수신하는 데에 있어서 통신 횟수를 최소한으로 줄이면서 한번에 많은 데이터를 전송할 수 있는 점, 데이터의 양을 예측할 수 없는 경우에 대해서도 가변적으로 확장이 가능하다는 점, 파일 시스템에 데이터를 저장하기 때문에 어플리케이션이 종료되어도 데이터가 사라지지 않는 다는 점, 카프카 클러스터로 데이터 복제를 통해 일부 서버에 장애가 발생하더라도 무중단 상태에서 데이터를 처리할 수 있다는 장점을 가지고 있다.

카프카가 왜 만들어졌고, 카프카 플랫폼을 적용함에 있어서의 장점과 더불어 각 구성요소의 개념과 함께 실습 코드를 통해서 카프카의 원리를 좀 더 이해할 수 있었다.

특히 나는 설명에 대한 그림과 QR 코드로 좀 더 알아두면 좋을 내용, 아직 실습을 진행하진 않았지만 카프카 각 요소에 대한 실습 코드의 설명이 카프카의 동작 원리를 이해하는 데에 많은 도움이 되었다.

이제는 두번째로 실습을 겸하며 다시 책을 읽어보려고 한다.

첫 완독을 했으니 두번째 읽을 때는 내가 놓쳤던 부분을 다시 읽고, 이해가 잘 되지 않았던 부분을 다시 리마인드하면서 읽고, 실습을 겸하면 처음 읽었을 때보다 이해도가 조금 높아지지 않을까 싶다.

첫 완독을 끝낸 시점에서 카프카 입문자인 나에게 카프카에 대한 이해도가 많이 높아졌다.

나와 같은 입문자에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
자료구조와 알고리즘을 함께 Java! - 퀴즈로 쏙쏙 이해하는 초보자를 위한 입문서
손상우 지음 / 비제이퍼블릭 / 2021년 4월
평점 :
장바구니담기


작년부터 나는 틈틈히 알고리즘 공부를 하고 있다.

알고리즘은 요즘 특히나 개발자에게 있어서 뗄레야 뗄 수 없는 관계가 되었다.

학생 때 자료구조에 대한 강의를 들었을 때 재밌으면서도 어렵게 느꼈었었는데, 알고리즘을 다시 공부하기 시작하면서 아직도 어렵다고 느낀다.

그래도 공부를 하면서 느낀 것은 알고리즘에 대한 이해가 있으면 개발할 때도 이를 바탕으로 로직을 좀 더 짧고 간결하게 만들 수 있고 속도와 효율적인 면에서 많은 도움이 된다고 생각한다.

작년에 처음 공부했던 책을 완독하고 나서 여러 책을 보았었는데, 이제 다시 시작한 나에게는 조금 어렵게 느껴졌었다.

얼마 전 서점에서 오늘의 리뷰도서인 "자료구조와 알고리즘을 함께 Java!"라는 책을 보게되었다.

책 내용을 빠르게 훑어보았는데, 꼭 알아야하는 핵심 내용을 이해하기 쉽게 쓰여있었던 것이 읽어보고 싶다는 생각을 갖게 했었다.

그리고 실습 문제도 있어서 이해한 내용을 바탕으로 직접 풀어본다면 머리 속에 오래 남지 않을까도 싶었다.

그래서 이 책으로 다시 한번 알고리즘을 익혀보자라고 생각했었는데, 마침 비제이퍼블릭에서 하는 도서 증정 이벤트를 페이스북을 통해서 알게 되었다.

여러 책들의 증정 이벤트였는데 마침 내가 읽어보고 싶었던 이 책도 포함되어 있어 신청하게 되었다.

이번에도 좋은 기회로 도서 증정 이벤트에 당첨이 되었는데, 역시나 책을 받고 나서 읽어보니 만족도가 높았다.

알고리즘에 대한 이해를 시작으로 배열과 여러 자료구조에 대한 내용이 이어진다.

특히나 내가 중점적으로 보았던 부분은 후반에 있는 정렬이다.

버블 정렬, 선택 정렬, 삽입 정렬, 셸 정렬, 병합 정렬, 퀵 정렬을 각 챕터로 소개하여 개발을 하면서도 케이스에 따라 정렬 알고리즘을 적용한다면 특히나 속도 측면에서도 많은 도움을 받을 수 있을 것이라고 생각한다.

잠시 앞서 언급한 정렬 알고리즘에 대해 간단히 정리해보았다.

# 버블 정렬

인접한 두 요소의 값을 비교하여 대소관계에 따라 서로 자리를 바꾸는 정렬 기법이다.

속도가 매우 느린 정렬 알고리즘이다.

# 선택 정렬

배열의 요소를 순회할 때마다 최소값과 최대값을 찾아서 배열의 앞쪽으로 정렬하는 기법이다.

# 삽입 정렬

배열의 첫번째 인덱스부터 시작하여 배열의 첫번째 요소까지 비교하여 정렬 위치를 찾아 삽입하는 기법이다.

버블 정렬과 선택 정렬에 비해 효율성이 좋다.

# 셸 정렬

삽입 정렬 알고리즘의 단점을 보완하였다.

배열의 요소들을 얼마만큼 묶을 지 계산하기 위한 간격을 계산하여 이 간격을 이용하여 배열을 부분 리스트로 나눈 후 각각 삽입 정렬을 수행한다.

# 병합 정렬

배열을 균등한 크기로 분할할 수 없을 때까지 분할하여 두 부분 리스트를 정렬과 동시에 병합하여 정렬 결과를 구하는 기법이다.

# 퀵 정렬

피벗이라는 정렬 기준 값으로, 왼쪽은 피벗보다 작은 값으로 오른쪽은 피벗보다 큰 값으로 두고 왼쪽과 오른쪽의 각각 부분 리스트로 보고 두 개의 부분 리스트에서 각각 피벗을 선정하여 피벗을 기준으로 원소를 나누어 정렬하는 기법이다.

가장 빠른 알고리즘으로, 병합 정렬보다 메모리 사용량이 적다.

나의 경우, 이 책을 매일 한 챕터씩 보면서 실습을 직접 풀어보았다.

확실히 내용만 읽어서는 알고리즘을 이해하는 데 어려움이 있다고 생각한다.

알고리즘을 공부하려면 어떤 책이든 강의를 보든지 직접 풀어보고 여러번 풀어보아야 내 것으로 만들 수 있다.

이 책의 내용과 실습 문제 그리고 각 알고리즘 유형에 따른 동작 원리를 나타낸 그림을 놓치지 않고 본다면 초보자에게 있어서 좋은 입문서라고 생각한다.

너무 딱딱하지도 그렇다고 너무 짧고 간단히 설명한 내용이 아니기 때문에 어떤 책을 입문서로 보면 좋을지 고민한다면 추천한다.


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