> 진행에 앞서
개발자로서 웹 개발 한 번 해보지 않은 사람이 있을까.
학교 프로젝트, 업무상 필요하여 아주 작은 html 페이지 하나 개발 등 대부분 조금은 거쳐간 경험이 있을 것이다.
하지만, 업무로 웹 개발로 뛰어든 개발자는 많지 않으며,
특히 모던 웹 개발에 들어서면서 제대로 이것을 이해하고 개발자는 드물다.
그렇다고 이해조차 안해도 되는 영역은 아니다.
내가 어떤 형태의 개발자라 하더라도 Google, StackOverflow를 경험하는 것은 아주 빈번한 일일 것이다.
이것을 경험하는 데 사용하는 것이 바로 웹 아닌가.
수많은 블로그 페이지, 이 글을 작성하고 보고 있는 이 페이지도 웹으로 작성되어 있다.
이렇게 많은 부분이 웹과 연관되어 있는데, 그런 웹을 외면하면, 설령 의도하지 않았다고 하더라도 다른 사람들에게 폭 넓은 개발자라는 평을 듣기는 어려울 것이다.
이런 웹에 대해서 폭 넓은 시각을 갖도록 도와주는 책이라고 생각한다.
> 책에 대한 간단한 정보
이 책이 주는 지식의 스펙트럼에 비해 표지는 다소 심심해보인다.
단순 에세이를 보여줄 것만 같은 표지이지만, 내용은 그렇지 않다. 기대를 갖게 만들도록 표지도 그렇게 제공되었으면 하는 아쉬움이 있다.
> 인상깊은 부분들
이 책의 저자는 확실히 체계적인 성향을 가진 것 같다.
이 책의 특징 및 대상 독자에 대해 명확하게 알려주고 시작하기 때문이다.
물론 저 내용만으로는 어떤 것을 알려주는지 사실 크게 와 닿지 않을 수도 있다.
제대로 이 책의 매력을 알기 위해서는 결국 책의 내용을 봐야만 한다..
웹 개발에 대한 라이프 사이클을 말하고 있지만, 이것은 일반 서비스 개발과 유사하다.
애플리케이션을 개발하는 입장에서도 이런 유사한 형태로 개발을 진행하기 때문이다.
그래서 더 이해가 잘 되었다.
이런 단계를 적절하게 소화하지 않거나 무시하고 넘어간다면, 그 다음 단계에서는 매우 힘든 시간을 보내게 될 것이다.
각 단계에서 담당자들이 해야 할 역할들이 있기 때문이다.
이것을 업계 용어로는 R&R(Roles & Responsibilities)라고 하며, 각자의 역할에 소홀하거나 다음에 하면 될 것이라는 생각으로 넘겨버릴 때, 제품의 퀄리티는 급격하게 낮아질 것이다. 결국 생산의 맨 끝에 있는 개발 단계에서 고스란히 그 몫을 책임지게 될 것이기 때문이다.
모든 제품이나 서비스는 전달되는 개체에 사용되는 클라이언트는 매우 중요하다.
애플리케이션이라고 하면, 모바일 기기 및 설치되는 애플리케이션이 그에 해당하겠지만, 웹 서비스 개발은 그 역할을 브라우저가 담당하고 있다. 클라이언트를 직접 설치할 필요가 없다는 것이 장점임과 반면 그 클라이언트를 이해하지 못한다면 직접 건드릴 수 없는 클라이언트가 되므로 개발이 매우 어려워질 것이기 때문이다.
그런 브라우저에 대해 구조적으로 이해를 할 수 있도록 도와준 부분은 매우 인상적이었다.
웹 개발을 한다고 하면, js, typescript, html, css 등의 사용법에 대해서만 주구장창 설명하고 알려하지, 그것을 구동하는 브라우저에 대한 이해는 뒤늦게 인지하는 경우가 많기 때문이다.
하지만, 이 부분에 대한 이해를 소홀히 한다면 아마 이유도 모른 채 컨텐츠가 매우 늦게 delivery 되는 현상을 보고도 해결을 못할 것이다.
여러 최적화 하는 방법에 대해서 나온 부분도 있었다. 그 중 prefetch는 인상적이었는데, 미래에 사용될 것으로 예상되는 리소스를 미리 캐싱의 목적으로 다운로드 하는 역할을 담당하기 때문이다.
렌더링을 차단하지 않기 때문에 main thread에 부하를 주지 않을 것이고, 사용자에게는 쾌적하다는 인상을 남길 것이기 때문에 좋은 기법이 될 것이라고 생각한다. 이 외에도 몇 가지 방법을 소개하고 있는데, 내가 웹 개발자라면 매우 소중한 정보가 될 것 같다고 생각한다.
이 책의 특징 중 하나인데, 웹 개발을 하기 위한 개념적인 전반에 대해서 다루는 것 뿐 아니라 코딩에 대해서도 말하고 있다는 사실이다.
그 중 코딩 컨벤션에 대해서 말하고 있는데, 일반적인 컨벤션을 아는 것은 매우 중요하다.
내 코드를 개발할 때 체계적으로 작성할 수 있을 뿐 아니라, 다른 사람의 코드를 볼 때에도 빠르고 이해도를 높이는 데 도움이 되기 때문이다.
이 부분으로 이 책이 더 괜찮다는 생각을 갖게 만들어 주었다.
웹 사이트를 개발할 때 흔히 말하고 있는 부분이 아닌, 다른 부분에 대해서 말하고 있다.
생각보다 앞 뒷 표지에 그런 부분이 잘 어필되고 있지는 않은 듯 하여 아쉬움이 남는다.
그래도 이 책의 제목과 같이 웹 개발을 하는 입장에서 한 계단 더 성장하고 싶다면 이 책이 반드시 도움이 될 것이다.
> 괜찮은 부분
1. 웹 개발의 피상적인 면이 아닌 핵심적인 부분에 대해 말하고 있다.
웹 개발에 대한 책을 여러 권 만나보았는데, 보통은 해당 언어의 에센셜에 대해 언급하고, 그것을 일반 언어와 대비해서 구현하기 위해 어떤 특징이 있는지. 그것을 어떻게 잘 구현해야 하는지. 최신 개발 구현 기법에 대해서 알려주는 것이 일반적이다. 하지만, 이 책은 그런 것은 접어두고(아니 이미 알고 있다고 가정하고), 그 너머 있는 지식과 그 지식 틈의 사이에 비어있는 공간을 채워주려고 노력한다. 그래서 지식의 피상적인 면을 공부하면서 알기에는 어려울 수 있는 핵심적인 부분에 대해서 알려주고 있어서 매우 좋았다.
2. 웹 개발의 최적화에 대한 개념적인 부분과 실제 코드 측면에서 설명하고 있다.
웹 개발을 진행할 때 더 나은 개발을 하려면 아무래도 최적화는 빼 놓을 수 없다. 그래서 필요한 각 요소에 대해 말하다보니 ARIA(Accessible Rich Internet Applications), 웹 이미지, 웹 비디오, 웹 오디오 최적화, 렌더링 최적화 등에 대해서 잘 할 수 있는 방법을 말하고 있는 한 편, 자바스크립트 메모리 관리, 코딩 컨벤션 등 실제 코드 측면에서 어떻게 개발하는 것이 최적화를 할 수 있는지 도와주고 있기도 하다. 이런 부분은 온라인 강의나 직장 선배에게 배울만한 부분인데 이런것을 책으로 알 수 있다는 점이 매우 좋았다.
3. 핸드북으로 들고 다니기에 부담이 없다.
이 책의 매우 좋은 부분인데, 핸드북으로 들고 다니기 어렵지 않을 정도로 가볍과 얇다. 하지만 내용이 가볍다는 것은 결코 아니다. 단지 들고다니기에 부담이 없을 뿐이다. 책이 알차다는 뜻이다. 저자의 깊은 고민과 노하우가 잘 담겨있다고 생각한다.
> 아쉬운 부분
1. 이 책을 처음 접할 때엔 어떤 것을 기대할 수 있는지에 대해 감이 오지 않을 수 있다.
이런 종류의 책을 흔히 볼 수 있는 것은 아니다. 그래서 이 책에서 어떤 내용을 말하고 있는지 감이 쉽게 오지 않는다. 그래서 코드를 알려주겠다는 것인지, 아니면 개념적인 학습을 도와주겠다는 것인지 책을 1/3쯤 읽었을 때에는 감이 오지 않았다. 하지만 절반이 넘어가면서 어느정도 이해가 되었으며, 다시 이 책의 앞부터 살펴보게 되었다. 책의 구성이 좀 더 명확하게 보여졌다면 좋았을 것 같다. 제목이든, 뒷표지이든 말이다.
2. 책의 흐름에 대해 로드맵 역할을 하는 가이드가 있었다면 좋았을 것 같다.
이 책의 서두에는 로드맵이 별도로 없다. 저자가 의도했다면 그 또한 이해해야겠지만(전체를 보라는 의도), 그래도 요즘같이 바쁜 시대를 살고있는 개발자들에게 좀 더 잘 읽히려면 이 책의 전체적인 흐름을 알려주고 있다면 내가 지금 어디쯤 오고 있는지 알 수도 있을 것 같다. 반드시 필요한 부분은 아니겠지만, 무엇을 어떤 순서로 말하는지 궁금한 사람에게 도움이 될 것 같다.
> 추천 독자
- 웹 개발을 현직으로 하고 있는 개발자
- 웹 개발과 연관된 일을 하고 있는 개발자
- 앞으로 개발자를 하고 싶은 개발자 지망생
- 웹의 작동 원리에 대해서 궁금한 일반인
> 개인적인 평점
- 가격: 8 / 10
- 내용: 10 / 10
- 디자인: 7 / 10
- 구성: 7 / 10
> 정보
저자: 고승원
출판사: 한빛미디어
가격: 30,000원
전체 페이지: 380페이지
** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
'[Review] > Book' 카테고리의 다른 글
[도서 리뷰] 상상을 실현하는 로블록스 게임 만들기 (0) | 2023.09.24 |
---|---|
[도서 리뷰] 사실은 이것도 디자인입니다 (0) | 2023.08.27 |
[도서 리뷰] 백엔드 개발을 위한 핸즈온 장고 (0) | 2023.06.25 |
[도서 리뷰] 혼자 공부하는 C언어 (0) | 2023.06.11 |
[도서 리뷰] 초보자를 위한 유니티 입문(개정 2판) (0) | 2023.05.28 |
댓글