We will find a way, we always have.

-interstellar

Blah blah 24

[리뷰] 함수형 프로그래밍 with 자바

"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다."   함수형 프로그래밍을 사용한다면 코드를 간결하고 효율적으로 표현할 수 있다. 또한 복잡한 로직을 읽기 쉽게 리팩토링할 수 있으며 재사용 가능한 코드로 만들어준다.  이전까진 '모던 자바 인 액션'을 통해 함수형 프로그래밍을 배웠다면 이제는 '함수형 프로그래밍 with 자바'로 함수형 프로그래밍을 배워도 좋을 거 같다고 생각한다. 모던 자바 인 액션도 람다와 함수형 프로그래밍을 다루지만 자바 8로 다루기 때문에 살짝 올드한 면이 있다.  함수형 프로그래밍 with 자바에선 자바 17를 사용하고 있어 record나 새로운 스트림 문법들을 사용하여 좀 더 young하다고 생각한다.  자바와 관련한 좋은 레퍼런스 북이 생겨 뿌듯하다:)

Blah blah 2024.04.28

[리뷰] 게임 AI를 위한 탐색 알고리즘 입문

"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 일반 코테를 위한 알고리즘이라 하면 DP, 그리디, 완전탐색, 구현, 그래프 탐색이 있다. 그리고 좀 더 나아간다면 kmp, 비트마스킹, digit dp, 세그트리 등등이 있는데 이 책에서는 완전 다른 세계의 알고리즘을 알려주어 재미있게 읽을 수 있었다. 게임 AI를 위한 탐색 알고리즘 입문에서는 플레이어 수, 컨텍스트 존재 유무, 플레이 진행 순서에 따라 크게 네 종류의 게임으로 구분한다. 이 네 종류의 게임은 다시 세부 조건을 확인해 빔 탐색, Chokudai 탐색, 담금질 기법, 미니맥스 알고리즘, 알파-베타 가지치기, Thunder 탐색, 순수 몬테카를로 탐색, MCTS 몬테카를로 트리 탐색, DUCT(Decoupled Upper Co..

Blah blah 2024.03.24

[리뷰] 개발자를 위한 최소한의 실무 지식

한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다. 이 도서는 데이터베이스에서의 트랜잭션과 인덱스, 대칭키와 비대칭키, SQL 인젝션 그리고 더 나아가 좋은 코드를 만들기 위한 예외 처리 방법까지 필요한 핵심 부분들을 모아놓은 도서였다. 개인적으로 느끼는 이 책의 장점이 바로 필요한 부분을 모아놓은 요점 정리 노트인데 개념 설명까지 깔끔하게 되어 있는 점이라고 생각한다. 암호화 기법을 설명하는 부분에선 자바 코드로 java.security 패키지의 있는 코드를 사용하며 암호화, 복호화 과정을 설명하고 예제 그림을 통해 과정을 설명해주고 있다. 또 어떠한 암호화 방식은 이래서 사용하면 안되고 어떤 방식은 이런 점에 취약하다고 설명까지 해주어 쉽게 이해 되었다. 현재 나의 상황에 적절한 도서인거 같다..

Blah blah 2024.02.25

[리뷰] 아는 만큼 보이는 백엔드 개발

길벗 개발자 리뷰어 활동을 위해 책을 제공받아 작성된 서평입니다. 백엔드 개발자가 되기 위해서 쌓아야 하는 지식의 양은 방대하다고 생각한다. 이 도서에서 제시하고 있는 로드맵은 아래와 같다. 이 도서를 통해 위 로드맵에 대한 개념들을 쓰윽 한번 맛을 보고 앞으로 어떤 개념들을 어떤 순서로 배워야 할지 감을 잡을 수 있었다. 사실 위 그림의 모든 개념을 책 한권에 담는 다는 것은 불가능하다. 각 장마다 추천 프로젝트를 소개해주는데 이런 추천 프로젝트를 스스로 해결하고 넘어 가는 것이 좋을 것 같다. 총 3 파트로 되어 있는데 파트 1은 백엔드의 소개, 파트 2는 백엔드 로드맵, 파트 3은 DBA, 데브옵스 엔지니어, PM을 소개헤주고 있다. 모든 내용을 담으려다보니 빈약한 부분들이 보이기는 하지만 로드맵의..

Blah blah 2024.02.22

[리뷰] 머신러닝 엔지니어링 인 액션

한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다. 머신러닝 엔지니어링 인 액션 도서는 크게 세 부분으로 구성되어있다. 그리고 각 부는 머신러닝 프로젝트에 적용되는 마일스톤을 다룬다. '무엇을 해결하려고 하는가?'에 대한 초기 범위 설정 단계부터 '이 솔루션을 앞으로 몇 년간 어떻게 유지 관리할 것인가?'에 대한 마지막 단계까지, 프로젝트를 진행하면서 시기별로 고려하게 되는 주제들에 대해 논리적으로 동일한 순서로 살펴본다. 주로 머신러닝 프로젝트의 관리 측면에 대해 팀장, 매니저, 프로젝트 리더의 관점으로 다룬다. 솔루션 구축에 따르는 함정에 빠지지 않도록 범위 설정, 실험, 프로토타이핑에 대한 청사진을 제시하고, 포괄적인 피드백을 전달한다. 머신러닝 프로젝트의 개발 프로세스를 다룬다. 머신러닝 ..

Blah blah 2023.12.24

[리뷰] <노코드/로우코드>

한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다. 노코드(No-code)와 로우코드(Low-code)는 소프트웨어 개발에 있어서 전통적인 코딩이나 프로그래밍 작업을 최소화하고, 시각적이고 직관적인 도구를 사용하여 응용 프로그램을 만드는 방법을 나타낸다. 이러한 개념들은 비전문가들이나 프로그래밍 경험이 제한된 사람들도 소프트웨어를 개발할 수 있게 하는 데 중점을 두고 있다. 1. 노코드(No-code) - 노코드는 말 그대로 "코드를 작성하지 않음"을 의미한다. 노코드 플랫폼은 주로 시각적 인터페이스와 드래그 앤 드롭 기능을 제공하여 사용자가 프로그래밍 없이도 소프트웨어를 개발하고 관리할 수 있도록 한다. - 예를 들어, 노코드 도구를 사용하면 웹 페이지, 비즈니스 프로세스, 데이터베이스 애플리케..

Blah blah 2023.11.26

[리뷰] 러닝 MySQL

한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다. 러닝 MySQL은 MySQL을 처음 배우는 사람이나, 다른 데이터베이스를 사용하다 MySQL로 변경되어 공부하려는 사람들에게 추천하는 도서이다. 이 책은 총 4부로 이루어져있다. MySQL 시작 리눅스, 윈도우, 맥OS, 도커에서 MySQL을 설치하고 설정하는 방법을 설명한다. MySQL 사용법 사용법에서는 데이터베이스 모델링과 설계, CRUD와 같은 쿼리 작성 방법, 테이블, 인덱스를 생성하고 수정하는 방법을 설명한다. 제품 환경의 MySQL 제품 환경에서는 데이터베이스의 꽃이라고 볼 수 있는 트랜잭션에 대해 다루고, 사용자 및 권한 관리, 백업 및 복구와 서버 구성 및 튜닝에 대해 설명한다. 기타 마지막 부에서는 MySQL 서버 모니터링 방법..

Blah blah 2023.10.29

[리뷰] 그림으로 배우는 리눅스 구조

한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다. 하드웨어와 소프트웨어를 이해하기 위해서 운영체제에 대한 지식은 필수적이다. 또한 운영체제에서 리눅스는 빠질 수 없는 운영체제이다. 리눅스를 배우고 싶은 사람들에게 그림으로 배우는 리눅스 구조는 필독서가 될 것 같다. 이 책은 운영체제에 대한 내용을 Python, Go, Bash 등으로 작성된 코드를 기반으로 실습을 진행하여 어렵지 않게 이해시켜주고 있다. 흐름은 우선 리눅스 개요부터 시작하여, 프로세스 생성과 종료와 같은 프로세스 관리, 프로세스 스케줄러, 메모리 관리 시스템, 프로세스 통신 파일 시스템, 메모리 계층 뿐만 아니라 가상화 기능과 컨테이너에 대해 후루룩 훑는다. 이 책을 실습과 같이 진행한다면 완독하고 난 후에는 커널, 하드웨어 등..

Blah blah 2023.09.24

[리뷰] 전문가를 위한 C++ (개정 5판)

한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다. 이번에 소개할 도서는 전문가를 위한 C++ 이다. 1600페이지가 넘는 방대한 책이며, 전문가의 냄새가 풀풀 풍기는 도서이다. 총 다섯가지의 파트로 나눠져 있다. 전문가를 향한 C++ 첫걸음 전문가다운 C++ 소프트웨어 설계 방법 전문가답게 C++ 코딩하기 C++ 고급 기능 마스터하기 C++ 소프트웨어 공학 그리고 부록으로 면접 예상 질문과 표준라이브러리 헤더 파일 그리고 UML 기초가 포함되어 있다. 파트 1에서는 C++의 기본적인 문법을 설명해준다. C++의 코딩 스타일을 파악할 수 있는 파트이다. 파트 2에서는 객체지향적이며 재사용에 최적화된 코드를 설계할 수 있는 방법에 대해 설명해준다. 파트 3은 본격적으로 C++의 핵심을 다루기 시작한..

Blah blah 2023.08.27

서버리스 - Serverless

서버리스 서버리스(Serverless)는 서버가 없다고 생각할 수 있는데 사실 서버가 없는 건 아니다. 특정 작업을 수행하기 위해 컴퓨터를 혹은 가상머신에 서버를 설정하고, 이를 통해 처리하는 것이 아님을 의미한다. 정리하면 개발자가 서버를 관리할 필요없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델이다. 예를 들어 서버의 사용자가 늘어날 것을 기대하고 그에 맞는 용량의 서비스도 늘렸다면 사용자가 늘던 줄던 동일한 금액을 내야 한다. 이는 분명 손실을 가지고 온다. 반면에 서버리스 아키텍처에서는 동적으로 서버의 자원을 할당한다. 서버리스를 활용하면 운영체제 및 파일 시스템 관리, 보안 패치, 부하 분산, 용량 관리, 스케일링, 로깅, 모니터링 같은 일상적인 작업을 모두 클라..

Blah blah 2023.07.27