읽기 쉬운 코드 - 지속 가능하고 유지/보수하기 쉬운, 이해할 수 있고 복잡하지 않은, 좋은 코드를 짜는 방법과 아이디어 로버트 C. 마틴 시리즈
마크 시먼 지음, 김현규 옮김 / 길벗 / 2024년 3월
평점 :
장바구니담기


이 책은 표지 내용처럼 더 좋은 코드를 작성하기 위한 방법에 대해서 설명한다.

그간 내가 작성한 후기들의 책은 대부분 저연차의 개발자들도 읽기 어렵지 않은 책들이 대부분이었는데,

이번 책은 저연차의 개발자분들은 조금은 어려울 수 있는 책이다.

2~3년전부터 고민해왔던 내용들을 다루는 책이어서 인지 나는 이 책이 출간되기를 기다렸었다.

현재 운영 중인 코드를 리팩토링하거나 혹은 새로운 서비스를 개발하기 위한 코드를 작성할 때 나 외에 이 코드를 추후 접할 다른 개발자분들이 이해하기 쉬운 코드를 작성하고 싶기 때문이다.

특히 연차가 쌓이면서 지금까지 여러 개발자분들의 코드를 접해볼 기회가 많았는데, 나는 먼저 코드를 읽을 때 어떤 고려사항으로 코드를 구조화하고 기능을 구현하였는지 생각해본다.

어떤 코드는 이러한 의도가 잘 드러난 반면 어떤 코드는 이해하기 어렵게 코드가 작성되어 있어 리팩토링 및 유지보수하는데에 어려움을 겪었던 적이 있었다.

이 경험 때문인지 내가 작성하는 코드들이 다른 개발자분들이 이해할 수 있도록 작성하려고 한다.

아마 나와 같은 고민을 대다수의 개발자분들이 하실 거라고 생각한다.

이러한 고민들을 이 책을 통해서 어느정도 답을 얻을 수 있었다.

이 책은 크게 두 분류로 나뉜다.

코드를 작성할 때 참고할 여러 내용과 단계, 두번째는 기존 코드에서 기능 추가 및 리팩토링, 성능을 높이기 위해 코드를 보강하는 내용이다.

첫 부분에서는 코드를 작성하는 단계를 집짓기 비유로 들어 얼마나 중요한 작업인지 다시 한번 인식할 수 있었고,

코드를 좀 더 점진적으로 안정적이게 개선하기 위한 여러 수단과 체크리스트들도 제시해주고 있어 실제로 업무를 하면서 이 부분을 참고하여 리팩토링하는데에 도움이 될 내용이었다.

이후부터는 각 챕터별로 상세하게 코드를 잘 작성하고 보강하는 방법들을 다루는데, 책을 읽다보면 저자의 노하우와 중요시 여기는 부분을 이해할 수 있었다.

나는 이 책을 다 읽어갈 때쯤 그동안 어떠한 기준에서 코드를 작성해왔는지 생각해보게 되었다.

그간 나의 코드 작성 습관에 빗대어보니 어느 부분을 보완해야 할지 기준도 알게 되었다.

읽기 쉬운 코드라는 말이 누군가에게 쉬울 수 있지만 누군가에는 어려울 수 있다.

특히 나 외에 이 코드를 접할 개발자분들도 쉽게 이해하고 읽힐 수 있어야 한다는 점에서 어려운 부분이다.

하지만 이 책을 읽고 나니 좀 더 기준점이 명확해졌다.

좋은 습관을 만들기 위해 이 책을 한번은 꼭 읽어보길 추천한다.

역시 기대한 만큼 나에게 도움될 내용이 많았다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
클라우드 네이티브 스프링 인 액션 - 스프링 부트와 도커, 쿠버네티스로 애플리케이션 구축하기 I♥Cloud (아이러브클라우드) 27
토마스 비탈레 지음, 차건회 옮김 / 제이펍 / 2024년 3월
평점 :
장바구니담기


스프링부트와 도커 & 쿠버네티스로 애플리케이션을 구축하기 위한 과정을 배워볼 수 있는 책이다.

온라인 서점의 웹 사이트를 구축하면서 도커와 쿠버네티스의 클라우드 환경에서 애플리케이션을 구축하는 과정을 담고 있는데, 온라인 서점을 구축하는 예시를 단계별로 설명해주고 있다는 점에서 단계별로 좀 더 구체화해주고 있어 개인적으로 좋았다.

첫번째 장에서는 애플리케이션을 구축을 하기 전 이 책의 핵심 내용인 클라우드 네이티브란 무엇인지에 대한 소개하는데, 이를 통해 클라우드의 기술을 활용하여 애플리케이션을 개발하기 위한 접근 방식을 이해할 수 있다.

두번째 장에서는 클라우드 네이티브의 패턴과 기술에 대한 내용을 다루는데, 특히 클라우드 네이티브의 12가지 개발 원칙에 대한 내용을 다루고 있고, 클라우드 환경에서의 애플리케이션을 구축하기 위해 사용하는 기술들에 대해서 소개한다.

세번째 장부터는 본격적으로 클라우드 네이티브 개발을 위한 방법을 단계별로 소개한다.

스프링 부트로 애플리케이션을 구성하고, 작성한 코드를 테스트 코드로 검증하는 방법과 배포를 위한 빌드와 파이프라인을 구성하는 내용을 다룬다.

이후에는 각 단계를 설정과 데이터를 관리하기 위한 방법과 저장하는 방법을 위해 사용하는 기술을 다룬다.

이를 토대로 설계한 애플리케이션을 컨테이너 환경에 기동하기 위한 이미지를 생성하는 방법, 이를 등록하는 방법을 소개하고 이후에는 쿠버네티스 환경에 대한 설정도 상세히 다룬다.

후반부에는 API 게이트웨이나 보안, 확장성 등 클라우드에서 실행되는 분산 시스템에 대한 속성과 패턴들을 다루고, 리액트 프로그래밍, 이벤트 중심의 아키텍처에 대한 설명을 통해 Rabbit MQ와 스프링 클라우드 스트림 등을 구현하는 방법을 살펴본다.

이후에는 안정적인 운영을 위한 보안과 인증의 기술도 다루고 있어 분산 시스템 환경에서 데이터를 송/수신하고, 이를 접근하기 위한 사용자와 애플리케이션에 권한을 부여하는 방법도 알 수 있다.

후반부의 내용은 첫번째 장 만큼이나 중요하다고 생각하는데, 운영 환경에서 안정적으로 애플리케이션을 운영하기 위한 내용이 담겨있기 때문이다.

책의 두께만큼이나 다루는 내용이 많이 담겨 있어 도움받을 내용이 많이 담겨있다.

클라우드 네이티브 환경에 대한 공부를 시작하고자 하는 분들이나 좀 더 깊이 있게 공부를 해보고자 하는 분들, 안정적인 애플리케이션을 운영하기 위한 기술을 공부해보고 싶은 분들에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
Release의 모든 것 - 대규모 웹 분산 시스템을 위한 운영 고려 설계 | 아마존 소프트웨어 공학 분야 베스트셀러
마이클 나이가드 지음, 박성철 옮김 / 한빛미디어 / 2023년 11월
평점 :
장바구니담기


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

책의 제목에서 유추할 수 있듯이 운영 환경에서의 접할 수 있는 여러 문제 상황들을 유연하게 대응하기 위한 설계 방법을 배워볼 수 있는 책이다.

개발과 테스트를 잘 마무리했다고 해서 운영 환경까지 문제가 없을 거라는 경우는 없을 것이다.

분명 테스트 과정에서 많은 케이스에 대한 검증과 결과를 완료하였다고 하더라도 오류들이 발생할 수 있다.

이런 상황들을 경험하게 되었을 때의 해결 방안에 대한 방안을 빠르게 모색해야 하는데, 이 책은 이런 상황에 대해서 포괄적인 방안을 제시해준다.

특히 테스트 과정에서의 우리가 고려해야 하는 여러 요소들을 예시로 설명해주기 때문에 좀 더 이해할 수 있도록 해준다.

이 책은 총 4가지 챕터로 구성되어 있다.

첫번째 챕터에서는 시스템이 멈추지 않고 계속해서 안정적으로 유지할 수 있도록 안정성을 구축하는 기반을 다지는 방법을 살펴본다.

특히 시스템을 안정성있게 유지하기 위한 패턴에 대한 내용을 다루는 내용은 반드시 읽어보기를 추천한다.

두번째 챕터에서는 점점 진화되는 운영 환경에서 복잡하게 이루어진 여러 요소들을 운영시 고려하며 설계하는 방법에 대해 다루는데, 시스템을 안정적으로 운영하기 위한 전반적인 설계 방법을 소개한다.

현재 시스템들이 운영되는 환경에서부터 이 시스템을 이루는 여러 구성 요소들과 보안영역까지의 전반적인 내용이 담겨있다.

세번째 챕터에서는 대용량 데이터를 다루는 배치에 대한 설계와 각 서버 간의 버전 관리 내용을 다룬다.

특히 이 챕터는 배치 설계방법과 무중단 배치에 대해 알아볼 수 있었고, 버전 관리의 중요성을 다시한번 느끼게 되었다.

네번째 챕터는 시스템이 점점 진화하면서 이에 유연하게 적응하는 시스템을 만드는 방법을 알아본다.

특히 여러 장애 상황을 무작위로 가해 시스템을 점점 개선하는 생소할 수 있는 카오스 공학에 대해서도 배워볼 수 있다.

개인적으로 이 책은 시스템을 개발하고 운영하는 모든 분들이 한번쯤 꼭 읽어보기를 추천한다.

운영 환경 설계에 대한 고려사항들에 대해 모두 담겨 있다는 점에서 한번 읽고 끝이 아닌 소장해도 좋을 책이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
노코드/로우코드 - Microsoft Senior CA 유저스틴, 유튜버 일잘러 장피엠 특별 인터뷰 수록
필 사이먼 지음, 박수현 옮김 / 한빛미디어 / 2023년 11월
평점 :
장바구니담기


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

노코드, 로우코드라는 단어는 작년에 처음 들었다.

코드가 더 이상 필요하지 않고, 코드를 작성할 필요가 없는 그런 개념으로 처음 접했던 나와 같이 생각했을 분들이 있었을 것이다.

하지만 노코드와 로우코드는 기술이 발전하고 자동화가 이루어지면서 만들어진 산물로 이해하면 된다.

애플리케이션을 처음부터 하나하나 만들지 않고도, 반복 작업 없이 만들 수 있도록 해주어 개발자 뿐만 아니라 비개발자 모두에게 필요로 한다.

이러한 자동화가 시간이 지나면서 우리의 일상을 변화하게 하고, 이 변화를 각자가 어떻게 바라보고 적응해야 하는지를 생각하게 할 것이다.

이 책은 이러한 변화에 우리가 어떠한 관점에서 바라보고 준비해야 하는 영역들에 대한 내용을 제시한다.

특히 자동화가 되는 여러 현장에서 일하는 사람들에게는 직업 자체가 없어질 수 있다는 두려움을 갖게 하겠지만 이러한 두려움을 버리고 변화에 함께 나아가도록 나아가도록 가이드한다.

이러한 변화는 우리가 일하는 프로세스와 조직에도 변화가 있을 수 있고 특히 시간과 비용 절감에도 도움이 될 것이다.

특히 개발자가 주도했던, 개발자만이 가능했던 영역도 여러 협업 관계자들도 가능할 수 있도록 하여 누구나 주도적으로 일할 수 있도록 해줄 것이다.

최근 몇년간 기술 서적 혹은 개발자로 좀 더 성장할 수 있는 계발서를 위주로 읽었는데, 언젠간 혹은 곧 다가올 변화에 대해 생각해볼만한 주제로 읽어볼 수 있었다.

노코드/로우코드라는 의미를 정확히 모르는 분들이나 변화되는 시대에 맞추어 변화에 빠르게 적응을 원하는 분들 누구나 읽어볼 만한 책이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
러닝 MySQL - MySQL 운영 종합 가이드, 데이터베이스 설계부터 비용 최적화까지
비니시우스 그리파.세르게이 쿠즈미체프 지음, 김선종 옮김 / 한빛미디어 / 2023년 9월
평점 :
장바구니담기


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



러닝 MySQL은 MySQL을 아직 사용해보지 못하고 접하지 못한 분들이나 실 운영환경에서 좀 더 능숙한 사용을 위한 분들에게 좋은 지침서이다.

총 4부로 이루어져 있다.

1부는 대부분의 기본서처럼 설치방법을 소개한다.

다양한 OS 환경 및 Docker에서도 MySQL을 사용하는 방법도 다루기 때문에 참고하면 좋을 듯하다.

이 부분은 MySQL을 공부하기 위한 첫번째 단계이지만 이미 실습환경이 구축되어 있다면 건너뛰어도 되지만 실습 외의 환경에서 MySQL을 사용하게 된다면 설치법을 참고할 수 있게 내용이 잘 구성되어 있다.

2부는 MySQL의 사용법을 다룬다.

데이터베이스를 생성하고, 접속하는 방법을 배워 모델링을 설계하는 내용을 가장 먼저 다루는데 실습에서 사용되는 데이터를 미리 셋팅하여 이 책에서 다루는 실습들을 따라해보는 것을 추천한다.

이후에는 MySQL에 생성한 데이터베이스에 데이터를 다루는 CRUD 명령을 사용하는 문법을 다루고 테이블이나 인덱스 등을 사용하는 법도 다룬다.

또한 기초 문법 쿼리 외에 좀 더 복잡한 쿼리들도 다루고 있어서 단계별로 하나하나 따라가면서 직접 작성하고 결과도 출력해보면 내용을 이해하는 데에 도움이 된다.

3부에서는 트랜잭션을 다루는 기법을 배운다.

트랜잭션을 다루기 위해 알아야 하는 기본 개념을 설명하고, 실행계획을 통해 최적의 쿼리를 완성해가는 방법을 다룬다.

특히 실행계획을 보는 방법은 개발자도 필히 알아야 하는 내용이기 때문에 이 부분은 공부하는 것을 추천한다.

3부에 후반부 내용은 주로 데이터베이스를 관리하는 DBA분들의 업무와 연관된 내용을 다루는데, 사용자 생성과 권한 관리, 구성파일을 사용법, 데이터베이스를 백업하고 복구하는 방법, 서버의 구성과 튜닝법을 다룬다.

마지막 4부에서는 견고한 운을 위한 모니터링 및 분석법과 로드밸런싱, 레플리카 설정법등을 배우고 다양한 업체의 클라우드에서 다루는 MySQL의 사용법도 다룬다.

이 책의 두께만큼이나 MySQL을 효율적이고 견고하게 운영하는 방법에 대해 초보자도 단계별로 배울 수 있도록 목차가 구성되어있다는 점이 좋았다.

최근 MySQL을 공부해볼 계획을 갖고 있었는데, 이 책을 리뷰도서로 접하게 되어서 개인적으로도 좋았다.

MySQL을 공부해보고 싶은 분들에게 이 책을 추천한다.


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