열심히 활동해야지 생각만 하고 회사 업무로 정신이 없어 항상 뒤쳐지고 있는 성스러운기사입니다.
작년에는 훈련소와 안드로이드 개발 팀장을 맡으면서 리뷰어 활동을 거의 하지 않았습니다.
올해 8월 20일에 산업기능요원이 끝나기도 하고 마음의 양식(?) 개발 지식(?)을 다시 채우기 위해
한빛미디어 '나는 리뷰어다 2021'를 신청하였고, 선정되어 올해의 첫 도서 리뷰를 해보도록 하겠습니다.
우선 작성하기 앞서 이전 리뷰글들을 보시면 아시겠지만, 도서의 내용 위주로 사진과 함께 느낀점을 설명 드리고 있으니 도서 구매 전 많은 도움이 되길 바랍니다!
이것이 C#이다
고등학교 1학년 때 WinForm C# 개발을 시작으로 현직장 취업 전까지 4년동안 Unity로 2D/3D/Multi/AR/VR/Chat 등 다양하게 개발 해왔습니다.
하지만 단순히 블로그 포스팅과 구글링을 통한 독학이라 현업분과 대회를 함께 나가면 분명 기초인데 처음 보는 방법에 많이 부족하다고 느꼈었습니다.
이번 기회에 차근차근 정석대로 배워보도록 하겠습니다.
우선 초반 내용은 다른 도서와 동일하게 기본적인 정보를 안내하고 있습니다.
도서 제목을 보았을 때 에는 '기초적인 내용은 두루뭉실하게 넘길 것 같은데...?' 라는 느낌을 받았었는데,
이처럼 변수에 대해서도 글과 그림으로 하나하나 입문자도 쉽게 배울 수 있도록 설명하고 있습니다.
이런 식으로 간단한 내용이지만 단순히 글로 표현하는게 아닌, 그림으로 함께 표현을 한 것이 입문자를 위해 많이 신경썼다는 것을 느꼈습니다.
조건문, 반복문 등 이러한 제어문은 모든 프로그래밍 언어에 대해 기본이자 핵심 요소이죠
본 도서에서는 각각 제어문의 기능에 대해 중요 포인트를 설명하고 예시 코드도 함께 제공하고 있어 코드를 모르는 입문자도 따라할 수 있게 도와줍니다.
중간 중간 개그포인트(?)가 존재하여 읽는 동안 여러 번 웃었습니다.
추가적으로 단순히 배열 관련 내용이라 잠깐 그림으로 설명하는 것이 아닌, 이해를 돕기 위한 포인트로 도형이나 그림을 통한 표현도 많이 나오는 것을 보고 많은 신경을 썼다는 것을 느꼈습니다.
저도 독학할 때에 있어 성장하는데 불편했던 부분이 특정 기능을 구현할 때 관련 함수가 있는지 모르니 나만의 방법으로 우회하여 개발하다 나중에 이런 기능 또는 함수가 있었구나를 깨닫고 성장했다는 기분 좋음과 함께 이전에 만든 코드에 대해 아쉬움을 느꼈습니다.
그런데 본 도서에서는 관련된 함수가 있다면, 관련 함수와 설명을 표로 알려주고 있어, "아 이런 함수가 있었지" 또는 "이런 함수를 사용하면 되겠구나" 라고 깨달을 수 있게 제공하고 있습니다.
저도 처음 알았습니다.
이런식으로 많은 개발 팁을 제공하고 있어 이미 C#을 다룰 줄 알고 개발하는 사람들도 배워가는 내용이 많습니다
이처럼 많이 사용하는 형식이나 정보를 표로 안내를 해주고 있어 단순히 C#이라는 언어 외에도 많은 추가적인 상식을 얻을 수 있습니다.
저도 단순히 List는 추가를 못하고 ArrayList는 추가 가능하다고만 알고있고 자세히는 알아볼 생각도 안했는데,
ArrayList는 추가할 수 있는 이유를 설명해주는 등 자세한 분석과 함께 팁을 제공해주고 있어 많이 배워갔습니다.
또한 배열에서 [..] 이렇게 접근 하는 것은 파이썬에서만 가능한줄 알았는데 C#에서도 가능하다는 것을 처음 알게되었습니다.. 그동안 바보같이 for문으로 가져왔었네요...
보통 다른 도서를 보면, 소스코드는 나와있지만 일부 실행 결과가 누락된 경우도 봐왔습니다.
그렇지만 본 도서에서는 실행 결과가 꼭 나오고 있어 굳이 코딩을 하지 않고도 이런식으로 결과가 나온다는 것을 확인할 수 있어 좋았습니다.
이전에 다중 클래스를 상속받으려고 하여 검색을 해보니 불가능하다고 배웠는데, 이를 해결하는 방법 등 여러가지 정보도 역시 제공하고 있어 많은 도움을 받았습니다.
3년전만해도 단순히 블로그 글을 보고 독학을 했기에 나중에 getter, setter가 있다는 것을 알게됐고 '굳이 사용해야하나?'라는 생각을 하였습니다. 개발을 하다보니 사용해야하는 이유를 스스로 깨닫게 되고 그 이후로 사용하려고 노력하였습니다만 만약 깨닫지 못하였다면 쭉 사용을 하지 않았을듯 합니다. 본 도서에서는 어떠한 기술 또는 내용에 대해서 사용을 해야하는 이유를 설명하고 납득시켜주기에 잘못된 개발(?)을 하지 않도록 어느정도 방향을 잡아주는데 도움이 될 듯 합니다.
C# 3.0 이전에는 이런 문제점이 있었다... C# 7.0에서는 이렇게 바뀌었다... C# 9.0 에서는 이렇게 추가되었다...
이러한 C# 버전에 따른 변화에 대한 내용도 나오고 있어 짤막한 상식이자, 본인이 현재 사용하고 있는 C# 버전에 따라 무엇을 사용하면 되는지를 알 수 있습니다.
한가지 예시로 같은 프로퍼티를 설명하는 내용 중 C# 9.0 부터 추가된 기능을 안내해주고 있습니다.
즉 "자신이 이전 버전부터 개발했다면 몰랐을, 이후에 개발했다면 이전 버전에서는 지원을 하지 않는다"는 것을 알 수 있습니다.
이론을 알려주고 끝이 아닌, 해당 이론을 통해 직접 예제 프로그램을 만들어보도록 나서주고 있어 책이 시키는 내용으로 따라만 한다면 자신의 기술로 충분히 만들 수 있습니다.
앞에서도 말씀드렸다 싶이 중간중간 개그요소가 있습니다. 역사라던지 잡다한 팁을 설명할 때에도 이렇게 과하지 않게 살짝 넣어주어 딱딱하게 외우는 것이 아닌, 재미있게 이해하고 배울 수 있습니다.
챕터 별 목차에 대해 설명을 드리지 않았었네요. 각 내용에 따라 총 22개의 챕터로 분류가 되어있고, 챕터가 시작할 때 무엇을 배우는지 '핵심 개념'으로 요약해주고 '학습 흐름'을 통해 배우는 순서를 알려줍니다.
'이 기술이 최고야'라 말하고 끝나는 것이 아닌, 'A가 B보다는 좋지만 그렇다고 A가 항상 좋은 것은 아니야'라는 내용도 함께 제공하기에, '개발하는데에 있어 정답은 없다' 라는 것을 알려줍니다.
제가 항상 비동기를 설명할 때 에는 '비절차적으로 수행된다', '동시에 진행된다' 정도로 설명했는데, 여기서는 다른 방법으로 쉽고 간단하게 설명을 해주더라구요. 딱딱한 설명이 아닌 쉽게 낮추어 설명하여 입문자도 쉽게 이해할 수 있을 듯 합니다. 저도 나중에 위의 내용대로 설명해야겠네요
앞서 말씀드렸다 싶이 이론과 결과를 보여주고 끝나는 것이 아닌, 역사도 함께 설명해주고 있어 단순히 배우고 끝나는게 아니라 배경 지식도 습득할 수 있는 부분이 매력적이였습니다.
여기서부터는 직접 서버와 클라이언트를 만들면서 TCP/IP에 대해 이해할 수 있도록 구성되어 있습니다.
네트워크는 이론적인 부분도 필요한데 그에 대해 여러 예시나 내용을 빗대어 설명하기에 쉽게 배울 수 있을 듯 합니다.
사실 이 부분은 개인적으로 마음에 들어서 넣어봤습니다. 자신의 규격이 뛰어나다고 춘추전국시대를 펼쳤다면 프로그래머들은 배울게 너무 많아 정신없었을 텐데 TCP/IP 표준 프로토콜로 자리잡아 우리는 살았다고 표현을 하시네요 정말 재밌었습니다ㅋㅋ
많은 내용은 아니지만, WinForm에 대한 내용도 포함되어 있습니다.
저도 VB6에서 WinForm으로 개발을 시작하게 되면서 C#을 처음 경험하였습니다.
WinForm의 경우 기본적으로 GUI이기에 글만으로는 설명이 부족하거나 헷갈릴 수 있는데, 그림으로 표현하여 이해하는데 돕고 있습니다.
마무리 평가
글을 쓰다보니 내용이 많이 길어진 것 같네요. 마지막은 짧고 굵게 평가를 해보겠습니다
[장점]
1. 아무런 지식이 없는 입문자도 배경지식없이 배울 수 있습니다.
2. C#을 하는 사람도 배울 내용이 매우 많습니다. (즉 많은 내용을 알려주고 있습니다)
3. 그림으로 부가 설명을 하는 부분이 많아 이해하는데 많은 도움을 줍니다.
[단점]
1. GitHub 레포지토리가 없다
단점을 아무리 생각해봐도 저는 생각나지 않습니다. 보통 어렵다던지 너무 쉽다던지 내용이 아쉽다던지 하나라도 아쉬움이 있는데 고민해봐도 모르겠네요...
굳이 찾아보자면 GitHub 코드가 없어 Lite하게 코드 테스트해보고 싶은 사람이라면 아쉬울 듯 하네요..
보통 입문자/경험자 두 타겟으로 책을 쓰면 이도저도 아닌게 되는데 이 책은 처음부터 끝까지 완벽했습니다.
단순히 리뷰이기 때문에 하는 말이 아닌, 정말로 주변에 C#을 배우고 싶어하는 사람이 있다면 저는 무조건 이 책을 추천합니다.
'도서 리뷰' 카테고리의 다른 글
팀 생산성을 높여주는 21가지 도구와 서비스, '모던 스타트업' (0) | 2021.07.25 |
---|---|
SQL, 한 권이면 충분한 '소문난 명강의 : 김상형의 SQL 정복' (0) | 2021.06.20 |
[리뷰] 처음 배우는 플러터 (0) | 2020.04.02 |
초보자도 손쉽게 배우는 '맛있는 디자인 애프터 이펙트 CC 2019' (1) | 2019.07.13 |
맛있는 디자인 프리미어 프로 CC 2019 & 프리미어 러시 (0) | 2019.06.09 |
상상하는 것을 소프트웨어로 구현하는 것을 좋아하는 청년
게시글이 마음에 드시나요? [ 공감❤️ ] 눌러주시면 큰 힘이 됩니다!