본문 바로가기
도전

한 달에 책 한 권

by oncerun 2023. 1. 1.
반응형

11월부터 한 달에 책 한 권을 읽기 위해서 노력 중이다.

 

출근 시간에 타는 버스안에서 퇴근 시간에 타는 버스 안, 점심시간에 남는 시간, 출근 전 남는 시간 등등

다양한 시간을 할애하여 책을 읽는다. 

 

주말에는 1시간에서~2시간 정도 시간을 할애에서 읽다보면 300p 정도 되는 책은 가볍게 2권 정도 읽을 수 있다.

 

다만 개발관련 서적은 실습과 이론, 이해력이 동반되고 과거 버전에 해당되는 책은 최신 버전으로도 번역과 추가적인 정보를 찾아보아야 하기 때문에 생각보다 진도를 나가기 어렵다. 

 

나는 현재 다음과 같은 책을 읽었다.

 

1. 객체지향과 사실과 오해 (저자 조영호)

 

2.  테스트 주도 개발 시작하기 (저자 최범균)

 

3. 자바 ORM 표준 JPA 프로그래밍 ( 저자 김영한)

 

4. 리팩터링 2판 ( 저자 마틴 파울러)

 

5. GoF의 디자인 패턴 ( 저자 에릭 감마..)

 

6. 모던 자바스크립트 Deep Dive (저자 이웅모)

 

7. Clean Code (저자 로버트 C. 마틴)

 

8. 도메인 주도 개발 시작하기 ( 저자 최범균 ) (읽는 중)

 

9. 토비의 스프링 part 1 (저자 이일민)

 

10. 방통대 각종 교재.

 

 

해당 책을 다시 읽는 경우도 허다하고 실제 개발하다가 정리가 필요한 경우 다시 읽기도 하였다.

 

실제로 리팩터링 2판을 읽는 것은 매우 어려워 별도의 강의를 구매하여 개념을 간단히 수립하기도 하였다. 

이 경우 백기선 님의 강의를 활용하였다.

 

GoF의 디자인 패턴 같은 경우는 C언어 기반으로 작성되어 있고 책의 사용되는 용어자체가 매우 전문적이어서 바로 읽기가 힘들었다. 

 

이 책도 별도의 강의와 다음 웹 사이트를 참고했다.

https://refactoring.guru/ko/design-patterns/behavioral-patterns

 

행동 디자인 패턴

요청을 요청에 대한 모든 정보가 포함된 독립 실행형 객체로 변환합니다. 이 변환은 다양한 요청들이 있는 메서드들을 인수화할 수 있도록 하며, 요청의 실행을 지연 또는 대기열에 넣을 수 있

refactoring.guru

 

사실 몇몇 권의 책은 오래전에 읽어 내용이 전부 기억나지 않지만 여러 책을 읽다 보면 기억의 파편들이 조금씩 맞춰지기도 한다. 

 

가장 재밌던 책을 묻는다면 객체지향의 사실과 오해라고 할 수 있다. 

 

그냥 하루하루 웃으면서 책을 읽었던 기억이 있다.

매우 재밌게 내용을 쉽게 풀어내어 저자의 생각이 그대로 머릿속에 박히는 듯한 기분이 들어서 그랬던 것 같다. 

 

어려웠던 책은 역시 전문 개발서적이었는데, 이는 실제 코드를 적용시키거나 실습하지 않으면 금방 휘발되어 날아가서 실제 사용되어야 하는 타이밍을 놓치거나 까먹기도 했다. 

 

따라서 리팩토링, 클린 코드, 디자인 패턴 관련 책들은 반복해서 읽어야 함을 깨달았다. 그래서 현재도 리팩토링을 하기 위해서 관련 카테고리를 찾고 한번 읽고 사용하는 방법을 사용한다. 

 

 

그래서 1월 달에 무슨 책을 읽을 것인가?

 

나는 멀티태스킹이 부족하다. 관심 있는 것은 많은데 체력이 안된다라고 할 수 있다.

 

올해 목표에 공부해야 할 여러 기술들이 많다. 따라서 강의로 보충할 수 있는 것과 미래에 내가 사용해야 할 수 있는 기술을 정리한 적이 있는데 해당 목표에 맞춰서 책을 읽으려고 한다. 

 

우선 읽고 싶은 책의 목록이다.

 

1. 한 권으로 읽는 컴퓨터 구조와 프로그래밍 ( 저자 조너선 스타인하트)

2. 코틀린 관련 책

 

 2.1 이펙티브 코틀린 

 

 2.2 코틀린 프로그래밍

3. IT 엔지니어를 위한 네트워크 입문

 

 

4. 실전 카프카 개발부터 운영까지

 

 

5. 도메인 주도 설계 핵심

 

6. 오브젝트

 

 

 

 

벡엔드 개발자는 경력이 쌓일수록 정말 많은 지식이 필요하다.  그리고 정확한 지식이 필수이다.

 

단순 실수로 서버가 다운되는 상황은 서비스가 정지되는 상황이고 이는 회사에 매우 막대한 피해를 입힐 수 있기 때문인데, 이를 위해 여러 가지 장애를 방어할 수 있는 상황과 그에 상응하는 기술들을 사용한다면 사용법을 읽혀야 한다. 

 

추가적으로 개발을 할 때는 성능을 고려할 수밖에 없고, 협업을 위한 클린 코드가 필요하며, 테스트 코드 작성을 위해 매우 많은 힘들 써야 하고, 별도의 아키텍처를 공부해야 한다. 

 

급하면 프런트 영역에도 손을 뻗으며 간단한 서버 사이드 렌더링 정도의 프런트는 만들 수 있어야 한다. 

 

당연히 네트워크 지식도 필요하고 이에 따라 devops 영역의 지식도 필요하다. 왜냐면 서버 엔지니어 분들과 소통을 해야 하기 때문이다.

 

그러면서도 실제 하나의 애플리케이션의 완성까지 모든 설계를 할 수 있어야 하며 적절한 시간 분배와 데드라인을 위해 계획을 짜야한다. 

 

만약 DataBase가 필요한 상황이라면 현재 서비스에 맞는 적절한 데이터베이스를 선택하는 과정도 필요하며 데이터베이스의 권한부터 테이블 설계까지 해야 하며 실제 이를 서비스와 연동하기 위한 방법도 알아야 한다. 

 

그리고 다양한 서비스에 맞는 프로그래밍 언어의 사용법도 알아야 하며, 자주 사용되는 라이브러리의 사용법, 프레임워크를 사용한다면 프레임워크의 개념과 사용법도 익혀야 한다. 

 

또 서버가 다중화로 구성될 때 관리하는 방법도 필요하다 도커와 쿠버네티스, 테라폼 마이크로 서비스를 사용하는 경우 필요한 지식을 습득하고 사용할 줄 알아야 한다.  

 

당연히 리눅스 운영체제에 익숙해야 하고 자주 사용하는 데몬과 서버 설정 등을 할 수 있어야 한다. 

 

보안 관련해서도 어느정도 지식이 필요하며, 전문적이지 않아도 보안관련 이슈에 대응할 줄 알아야 한다.

 

서버에 미들웨어를 설치하여 배포하는 방법도 알아야 한다. 그에 따른 튜닝 방법도 알아야한다. 필요하다면 캐시서버, CDN 구성도 진행해야 한다.

 

JAVA를 사용한다면 JVM에 대한 지식도 알아야 하고 메모리 분석 및 gc의 로그를 볼 줄 알아야 한다.

 

운영과정에서 필요한 모니터링을 하기 위한 여러 가지 툴을 알아야 하고 이를 업무 툴에 적용해 알림 받거나 모니터링을 통해 서버의 문제를 파악할 수 있어야 한다. 

 

클라우드 컴퓨터에 대해 자세히 알아야 하며 AWS, 네이버 클라우드, AZURE 등등 하나의 플랫폼에 대한 전문적인 지식이 있어야 한다.

 

항시 어떤 상황이 올지 모르기 때문에 알고리즘을 공부해야 한다.

 

대충 1년 정도 일을 하면서 필요하다고 생각되는 주니어 백엔드의 역량이다. 

 

이 중에서 나는 가장 느리게 변하는 지식에 대한 책을 우선적으로 추려 읽고 다음은 회사에서 사용해야 하는 것들 혹은 사용할 수 있는 것들을 다음 순서로, 이후 내가 관심 있는 분야에 대한 책을 이번 연도 매달 읽을 순서로 추리려고 한다.

 

1.  한 권으로 읽는 컴퓨터 구조와 프로그래밍 ( 저자 조너선 스타인하트)

2. IT 엔지니어를 위한 네트워크 입문

3. 도메인 주도 설계 핵심

4. 오브젝트

5. 이펙티브 코틀린 

6. 코틀린 프로그래밍

7. 실전 카프카 개발부터 운영까지

 

 

이러면 현재 DDD 책 + 7권이면 8개월이니까. 4개월이 남는데,  4개월은 비상용으로 아껴두자. 아마 알고리즘 관련 책을 구매하여 읽을 것 같고 해당 책은 추천을 받아보자.

 

정리 끝.

반응형

'도전' 카테고리의 다른 글

한국사의 이해(삼국)  (1) 2023.01.06
한국사의 이해 (고조선)  (1) 2023.01.06
컴퓨터의 이해 정보 통신 부분 정리  (0) 2022.12.28
보조기억장치  (0) 2022.12.27
유비쿼터스 센서 네트워크(USN)  (0) 2022.12.25

댓글