일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자료구조
- C++최적화
- moreeffectiveC++
- stl
- dataasset
- 데이터애셋
- 언리얼엔진구조체
- 정렬
- 델리게이트
- 애셋로드
- 언리얼가비지컬렉터
- unorder_map
- BFS
- 스마트포인터
- map
- UE_LOG
- C++
- UML관련
- 람다
- 프로그래머스
- UELOG
- 알고리즘
- 약참조
- enumasByue
- 정렬알고리즘
- 크리티컬섹션
- UE4 커스텀로그
- 람다사용정렬
- 선택정렬
- 강참조
- Today
- Total
기억을 위한 기록들
<유연한 소프트웨어를 만드는 설계 원칙> 리뷰 본문
어떤 소프트웨어 프로그램의 구조를 생각할 때는 고려해야 할 것이 많이 있다.
그래서 나도 여전히 초심자로써 이런저런 호기심의 연결고리에서 닿게 된 것들 중에 하나인 유연한 소프트웨어를 만드는 설계 원칙이라는 책을 접하게 되었다.
해당 책은 확실히 초급 중급 상급으로 난이도를 나눈다면... 절대로 초급은 아닌 책이긴 하다. 하지만 그만큼의 가치는 높지 않을까 하다. 첫 번째 챕터부터 살펴보면
1. 자연과 설계의 유연성
2. 영역 특화 언어 ( DSL )
3. 산술 주제의 변형들
4. 패턴 부합
5. 평가
6. 계층화
7. 전파
이라는 각 장을 담고 있다. 그중에서 1장만 살펴보자면, 1장에서는 전체적인 책의 전반적인 내용에 대해 설명해주고 있으며 기억에 남는 내용으로 "이 책의 기법 중 다수는 새로운 것이 아니다... 유연성에 초점을 둔 사고 방식을 권장하는 것이다"라고 하고 있다.
이후에는 1장에서 간략히 소개해준 유연성을 위한 전략들을 각 장에서 소개해주고 있다.
책이 쉽지 않다고 느낀 이유 중 하나로 책에서 나오는 단어들이 특정 소프트웨어 분야에 한정되는 단어들도 아니다 보니, 단어들이 초급자들이 접하기엔 어려운 느낌이 많이 있다.
물론 책의 옮긴이가 그런 단어들을 찾아서 설명을 해주고 계시지만... 아래에 보면 예를 들어 '축 중성(degeneracy)'이라는 단어가 나오고 해당 단어를 설명해주고 있다. 근데도 익숙한 단어는 아니지만(나에게 있어선), 이해하는 데에 좀 어려움이 있었다. 물론 이런 옮긴이의 단어들을 설명해주려고 하신 부분에 대해 박수를 보낸다.
그리고 익숙하지 않은 점이라면 스킴(Scheme)이라는 개인적으로 처음 들어본 언어를 사용하고 있다.
물론 어떤 문법이 어떤 기능을 사용하는데에는 다양한 언어가 있다 하더라도, 크게 다르지 않고 시간을 좀 더 들여서 이해하면 되지만 , 개인적으로도 흔하지 않은 언어라서 좀 더 요즘 대중적인 언어였으면 어땠을까 하는 개인적인 아쉬움은 조금 생겼다.
- 책에 나오는 스킴 언어 샘플 예시 중 일부
대신 각 챕터에 대해 각각에 대한 샘플을 마련해주고 있는 부분은 굉장히 좋았다.
어떤 방법이 있는데 이걸 이렇게 쓰는거야 하는 예시를 이해를 돕는 과정 중에 좋은 방법이 아닐까 한다.
몇 가지 아쉬움이 있었지만, 한 순간에 이 책을 마스터해서 습득할 순 없겠지만 추후에 필요할 때에 꺼내어 보면 좋은 책이 될 것 같다.
마지막으로 책에서 기억에 남는 부분을 끝으로 글을 마친다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'이런저런 책들' 카테고리의 다른 글
<안드로이드 생존 코딩 - 코틀린 편> 리뷰 (0) | 2022.07.24 |
---|---|
<적정 소프트웨어 아키텍쳐 - 리스크 주도 접근법> 리뷰 (0) | 2022.06.26 |
<구글 엔지니어는 이렇게 일한다> 리뷰 (0) | 2022.05.23 |
<처음 배우는 딥러닝 챗봇> 리뷰 (1) | 2022.03.30 |
<레트로의 유니티 게임 프로그래밍 에센스 개정판> 리뷰 (0) | 2022.02.27 |