모던 C - 전문가를 위한 C 작성법!
옌스 구스테트 지음, 남기혁 옮김 / 길벗 / 2022년 1월
평점 :
장바구니담기


…혹시 시간이 없다면 이 책은 뒤에서 부터 읽어보길 권한다. 앞 부분 보다는 뒷부분을 먼저 읽어보면 최소한 책 값은 건질 수 있다.

1

개발을 시작하고 가장 적은 학습 시간을 소모했지만, 가장 많은 이윤을 주었던 언어는 C다. 그리고 한 시절 배웠던 언어를 지금까지 사용하고 있다. 더 이상의 변화도 없었고, 변화를 반영할 수 있는 분야도 아니였다. C를 사용했던 대부분의 분야에서 C99는 사치였고, 대부분이 C90에서 합의를 봤던 것 같다.

내가 그런 환경에서 개발을 했던 것 일수도 있지만 일단은 그러했다.

2

C99를 공부하고, C11에 대한 명세를 살펴보았지만 정확히 어떤 지점을 파고 들어야 하는지 명확하지 않았다. 대부분 구문에서 뭔가 편리해진 것은 알겠지만 구문에 말하는 의미를 정확히 이해하긴 쉽지 않았다. 특히 C언어처럼 이전의 사용환경을 최대한 보존하는 형태의 개선안을 제시하는 구조에선 특히나 그렇다.

3

C언어를 공부했거나 공부하고 있다면 이 책을 한 번쯤은 참고했으면 좋겠다. 우리가 알고 있는 C언어가 가진 변화에 대해서 알기 쉽게 설명하고 있으며, 속 깊은 이야기도 알차게 설명하고 있다. 혹시 시간이 없다면 이 책은 뒤에서 부터 읽어보길 권한다. 앞 부분 보다는 뒷부분을 먼저 읽어보면 최소한 책 값은 건질 수 있다.




댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
이펙티브 코틀린 - 안전성, 가독성, 코드 설계, 효율성을 향상시키기 위한 52가지 전략과 기법
마르친 모스칼라 지음, 윤인성 옮김 / 인사이트 / 2022년 1월
평점 :
장바구니담기


TL;DR

  1. Kotiln 문법을 위주로 공부했다면 이 책을 활용해서 기초적인 개념에 대해서 확인할 수 있다.
  2. 간단한 Android 앱(cf. Memo, Todo)을 작성했다면 이 책을 읽으면서 코드를 요리조리 뜯어보면서 함께 공부하면 효율이 높을 것으로 예상된다.

1

먹고 살아야 되는 입장에서 JVM 언어를 완전히 포기하기란 쉽지 않다. 대부분의 개발을 Java 8에서 진행하고 있기 때문에 혼자서 Java 11 / 17을 학습해봐야, 결론적으론 별다른 이득도 없고해서 남는 시간에 빠르게 새로운 JVM의 방언 중 하나인 Kotlin을 배웠다.

사용할 생각으로 배운 언어가 아니라서 문법이나 개념 중심으로 학습하다가, Android 개발에 몇번 사용해보고 Kotlin에 대해서 전혀 새로운 경험을 하게되었다. 그렇다고 해서 Kotlin을 하루 아침에 잘 사용할 수 있는 것은 아니였다. 왜냐하면 주변에 Kotlin을 사용하는 분들이 흔하지 않아서 뭐… 다음에 더 알아보기로 하고 적당히 접어다.

2

책 이름에서 알 수 있듯이 이 책은 Effective Java를 모티브로 작성된 책이다. Effective Java의 경우 내가 알고 있는 Java가 얼마나 허술한지 알려주는 책이다. 이 책도 그러한데, Kotlin에 대해서 깊게 알거나 많이 활용했던 책이 아니라서 Effective Kotlin에 담겨진 내용의 깊이에 대해서 논할 순 없다.

하지만 개인적으로 기존의 코드를 수정하면서 가장 많이 활용한 것은 1장 안정성, 2장 가독성, 5장 객체 생성, 8장 효율적인 컬렉션이다.

3

Kotlin을 여전히 잘 사용하고 싶어서 노력은 하고 있지만, 많이 사용할 기회가 없어서 아쉽다. 이런 아쉬움을 달래줄 수 있는 책이라 할 수 있다.

문법 위주로 공부했고, 간단한 Android 앱을 만들어보았던 경험이 있다면 이 책을 읽으면서 기존의 코드를 요리조리 뜯어보면서 학습을 병행하면 값진 책이 될 것이다.


댓글(1) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
민둘기 2022-03-30 17:28   좋아요 0 | 댓글달기 | URL
정밀한 댓글 감사합니다. 참고가 됬어요
 
러닝 Go - Go 개발자처럼 생각하는 방법
존 보드너 지음, 윤대석 옮김 / 한빛미디어 / 2022년 2월
평점 :
장바구니담기


한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지

TL;DR

  1. Go언어에 관심있다면 이 책을 가장 추천한다. 이전에 읽었던 책을 모두 포함해서 이 책 정도면 Go언어를 실무에서 사용할 수 있는 최소한의 수준은 커버.
    • 참고로 저는 이 책 이후에 “밑바닥부터 만드는 컴파일러 in Go”와 “Gin“에 도전해볼 생각인데, 다른 좋은 의견 있으시면 언제든 연락주세요!
  2. 설치 관련해서는 구글이나 네이버에서 별도의 검색할 필요없이 교재에 나와있는 방법을 활용하면 됨.
    • 이 책을 함께 읽었던 분들 중 대부분이 윈도우 사용자라서 제가 개인적으로 설치 방법을 따로 정리해둔 것이 있으니 필요하시면 참고하시고, macOS의 경우 brew를 사용해서 설치하시길 권장합니다.
  3. Go가 처음이라면 VSCode와 플러그인(Go with Go Team at Google)을 함께 사용하길 권하며, Jetbrains의 GoLand를 사용하신다면 IDE 관련해서 설정 등과 같은 것들에 관한 내용은 GoLand 사용법을 꼭 참고해서 진행하시길 권장함.

  4. 저는 기존에 Go와 문법 구조와 철학이 유사한 언어를 알고 있어서 Ch1 -> Ch5 -> Ch13 -> Ch7 -> Ch8 -> Ch9 순서로 공부를 진행했고, 나머지는 순서대로 진행하였음

1

올해는 Go언어를 배워보기로 결정하고, 몇가지 사전 조사를 끝내고 Golang tutorial series을 하나씩 진행하고 있었다. 언어가 영어라서 알듯 모를듯한 내용을 뒤로 천천히 하고 있다가 3월에 한빛미디어에서 진행하는 리뷰 목록 중에서 러닝 Go책이 있어서 냅다 신청했다.

왜냐하면 Go 1.18 버전에 업데이트 되는 제네릭(generic)에 관한 내용이 책에 포함되어 있어서 내가 원하는 내용 뿐만 아니라 기존에 영어 때문에 알듯 모를듯한 내용도 바로잡기 위해서 냅다 신청했다.

만약 Go언어에 관심있다면 이 책을 가장 추천한다. 이 책 정도면 Go언어를 실무에서 사용할 수 있는 최소한의 수준으로 충분하다고 생각한다. 기존에 출판된 Go책도 몇권 봤지만, 언어 명세가 변경되었기 때문에 이왕이면 변경된 명세가 반영된 책을 참고하시길 권한다.

책의 특성상 문법 위주로 설명하고 있지만, 세부적으로 살펴보면 적당한 난이도가 있는 예제를 중심으로 진행하고 있다.

2

책의 구성상 처음부터 천천히 읽어보셔도 좋지만, 만약 기존에 언어를 사용하고 계시거나 1~2개 정도 언어를 알고 계시면 목차를 참고하시고 기초적인 변수/제어문 정도는 건너띄고 읽으셔도 큰 불편함은 없을 듯 하다. 왜냐하면 책이 앞서 소개한 개념이나 내용을 계속해서 가볍게 언급하고 있어서 필요할 때 참고하시면 좋을 듯 하다.

구성

학습을 진행할 때 약간의 불편함이 있는데, 1) 설치와 관련된 문제와 2) 예제 실습을 위해서 Makefile를 사용한다는 점이다.

1) 설치의 경우 기존에 구글이나 네이버에서 설치 관련된 내용을 별도로 검색하지 마시고 교재에서 안내된 것으로 진행해도 충분하다. 윈도우에서 사용하는 Go 1.18의 경우 필요한 환경 설정은 대부분 자동으로 진행되기 때문에 특별히 새롭게 설정해야 되는 점은 없다.

2) 예제 실습을 위해서 Makefile을 사용하길 권장하는데, 대부분의 경우 VSCode에서 해결된다. 그리고 이 책에 있는 80% 이상의 예제를 실행하면서 Makefile 때문에 문제가 발생한 적은 없으니 너무 걱정하지 않아도 된다.

마지막으로 github에 공개된 예제가 하나의 저장소가 아니라 여러 저장소에 나눠져있기 때문에 예제를 활용할 때 github의 learning-go-book 계정에서 필요한 예제를 clone 해서 사용해야 한다는 점은 미리 알아두면 좋을 듯 싶다.

3

저는 기존에 Go와 문법 구조와 철학이 유사한 언어를 알고 있어서 Ch1 -> Ch5 -> Ch13 -> Ch7 -> Ch8 -> Ch9 순서로 공부를 진행했고, 나머지는 순서대로 진행했다. 테스트 방법을 먼저 학습하고 나머지 챕터는 책을 읽으면서 어설프지만 나름대로 테스트 코드를 작성해서 진행하였다. 이렇게 공부하는데 귀찮긴 하지만 언어에서 제공하는 구문을 효율적으로 학습할 수 있다고 생각해서 개인적으로 생각하는 방법 중 하나다.

Go언어를 처음 접하신다면 순서대로 진행하시길 권하며, 다른 언어에 대한 사용 경험이 있으시면 자신만의 Path를 만들어서 진행하셔도 좋다.

저는 Go에 관심이 많고, 리뷰를 위해서 책을 다 읽었기 때문에(이것이 리뷰 이벤트에 참여하는 중요한 이유!) “밑바닥부터 만드는 컴파일러 in Go”와 “Gin“에 도전해볼 생각이다. Go를 좀 더 잘 활용하고 싶어서 선택했고, Gin은 초보자에게 적합하다는 풍문을 믿고 진행하기로 했다.

P.S : Go를 쉽고 재미있게 접할 수 있기를 기원하며, 문법 이후에 대해서 새로운 아이디어가 있으시면 언제든 연락주시면 반영해서 해당 문서를 업데이트 할 수 있도록 하겠습니다.

Written on March 20, 2022



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
레트로의 유니티 게임 프로그래밍 에센스 - C#으로 배우는 입문부터 4가지 게임 제작까지(Unity 2021/2022 호환, 부록: 어드레서블 시스템, 2022 버전 호환 가이드 별도 제공), 개정판 소문난 명강의
이제민 지음 / 한빛미디어 / 2022년 2월
평점 :
장바구니담기


한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지

TL;DR

  • 1~2부 내용은 ‘꼭’ 읽어보시고(설치 및 기초적인 내용은 가볍게 실습을 진행하시길 권함), 5부인 ‘유니런’을 먼저 진행하길 권장, 왜냐하면 3부인 ‘탄막 슈팅’ 게임 보다 난이도 및 실습 분량이 적절하다고 판단
  • 단, 기존에 Unreal 등을 사용하셨던 분들은 3부인 ‘탄만 슈팅’과 6부인 ‘좀비 서바이버’를 진행하시면 난이도가 적절할 것으로 예상
  • C# 등과 같이 개발이 처음이신 분들은 이 책에 소개된 C#과 함께 MS에서 제공하는 학습 사이트인 Learn C#을 도움 받을 수 있고, 교재에 제시된 C#의 내용이 너무 어렵지 않으니 Unity를 먼저 접한다는 생각으로 진행하길 권함
  • 개인적으로 M1 기반 MacBook Air를 사용하고 있으며 해당 기기로 교재의 내용을 진행, M1기반 macOS의 Unity는 ARM64 버전으로 진행되는데 교재의 모든 과정을 별다른 어려움 없이 진행할 수 있기 때문에 macOS 사용자라도 너무 걱정하지 않아도 됨

1

주변에서 ‘메타버스’에 대해서 여러가지 이야기를 하면, 시작은 메타버스였고 그 끝은 ‘Unity’로 끝났다. 그래서 이번에 유니티 책을 리뷰하면서 매우 즐거웠다. 무엇보다 책을 받고 좋았던 점은 교재가 2권으로 분권되어 있다는 점이다.

2권으로 분권되어 있다

1권은 초급자를 위해서 구성되어 있었고, 2권은 중급자를 위한 책이다. 책을 받자 말자 2권에 있는 멀티플레이어 게임을 먼저 진행하고 싶었지만, 유니티를 사용하는 방법을 전혀 몰라서 유니티의 구성 및 구조를 익히기 위해서 1권부터 차근차근 교재를 진행했다.

교재를 진행하면서 중반 정도 진행하면서 느낀점은 2D 기반의 러너 게임이 앞선 3D 기반의 슈팅 게임에 비해서 실습이 훨씬 쉽게 다가왔다. 3D 슈팅 게임의 경우 유니티 카메라를 잘 사용하지 못해서 그런지 난이도가 좀 있다고 느꼈는데, 2D 게임의 생각보다 쉽게 진행되었다.

2D 게임

이 책을 읽는 분들 중에서 저와 같이 C#을 처음 접하거나, 이런 형태의 개발 도구가 익숙하지 않으신 분들의 경우 3D로 진행되는 게임보다는 2D로 진행되는 예제를 먼저 진행해서 개발 도구가 먼저 익숙해지면 향후 진행될 예제를 쉽게 접할 수 있다.

2

대망의 7부 ‘좀비 서바이버 멀티플레이어’를 진행하게 되었다. 6부 ‘좀비 서바이버’를 진행하면서 4부 ‘공간’을 2~3번 정도 반복했던 것 같다. 사실 7부의 경우 Photon을 적용하는 과정만 쉽게 해결할 수 있다면 실습은 전혀 무리가 없을 정도로 잘 설명하고 있다. 반면에 6부 ‘좀비 서바이버’를 진행할 때 오브젝트를 배치하고 움직이는게 쉽지 않아서 시행착오가 많았다. 하지만 멀티 플레이는 내가 생각했던 것 보다 너무 쉽게 진행되어서 약간 놀라웠다.

멀티는 잘 된다!

교재가 생각보다 세세한 것을 잘 설명하고 있기 때문에 크게 어렵진 않지만, 유니티를 잘 다루지 못하면 교재의 설명이 별 소용이 없기 때문에 유니티라는 도구를 익숙하게 진행하는데 조금 노력을 기울이면 좋을 듯 하다. 그리고 C#의 경우 교재에서 코드 설명을 과도하게 해주고 있고, 예제로 제공하는 파일에도 주석으로 주요 코드는 전부 설명하고 있어서 C#은 큰 문제가 아니였다.

세부적인 사항이 잘 설명되어있다!

3

18장/19장의 경우 ‘멀티플레이어’에 관한 내용을 다루고 있다. 주제가 쉽진 않지만 많은 사람들에게 관심이 있을 것으로 예상된다. 무엇보다 중급자의 경우 특별히 관심이 있을 것으로 예상되는데, 18장/19장이 다른 챕터에 비해서 짧게 소개되어 있다. 책이 초급자를 위주로 배려하기 때문에 중급자를 위한 내용을 충분히 다르긴 쉽지 않지만, 네트워크와 관련된 기능은 많은 사람들이 관심있을 주제라고 생각하는데 분량이 아쉽다. 그리고 모바일에 특화된 내용은 많이 다루고 있지 않다는 점도 약간의 아쉬움을 준다.

P.S 한빛미디어에 ‘문의’ 메일로 모바일과 네트워크를 다루는 중급자 교재를 많이 문의하시면 되지 않을까요?!




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
데이터 과학자 되는 법 - 취업, 이직부터 탄탄한 커리어를 쌓는 방법까지
재클린 놀리스.에밀리 로빈슨 지음, 이창화 옮김 / 한빛미디어 / 2021년 11월
평점 :
장바구니담기


데이터 과학자 되는 법 - 취업, 이직부터 탄탄한 커리어를 쌓는 방법까지

한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지

TL;DR

  1. 데이터 관련 직무 입문자
  • 데이터 관련 직무와 관련된 전반적인 소개와 커리큘럼 등을 소개하고 있기 때문에 꼭 참고해서, 자신이 원하는 직무/직종에 대한 이해도를 높이고 데이터 관련 직무 교육을 진행하는데 사용하자.
  1. 데이터 관력 실무자
  • 실무자의 경우 각 장의 말미에 소개된 인터뷰 내용을 중심으로 가볍게 접근하거나, 이직등과 같이 커리어에 대한 고민이 있다면 참고할만하다.
  1. 외국계 회사로 커리어를 시작하거나 이직하려는 분들의 경우 이 책을 조금 진지하게 읽어보길 권한다. 국내에서 데이터 관련 직무를 담당하는 실무자의 경우 국내 문화와 약간의 차이를 보이는 부분을 참고하면 좋을 듯 싶다.

  2. 마지막으로 이 책의 저자와 인터뷰가 외국계를 중심으로 진행되기 때문에 국내에서 관련 직무를 지원하는 분들의 경우 이 책의 내용을 충실히 참고하되, 국내 회사의 문화나 업무의 특수성을 고려해서 약간의 필터를 거칠 필요가 있다.

1

이 책은 데이터 관련 직무에 종사하고 싶은 입문자에게 어울리는 책이다. 데이터 관련 직무에 관련된 내용을 일목요연하게 정리하고 있다는 점이 가장 큰 매력이고 장점이다.

많은 회사에서 데이터와 관련된 직무를 새롭게 만들거나, 기존의 직무를 확대하고 있다는 뉴스나 기사를 접한다. 그런데, 막상 데이터 관련 직무를 찾아보게 되면 유사하지만 다채로운 직종의 이름 때문에 입문자의 경우 제대로된 자료를 접하기 쉽지 않다. 21세기 가장 유망 직종으로 떠오른 가장 매력적인 직업 중 하나라고 하지만, 막상 찾아보면 데이터 분석가, 데이터 엔지니어 그리고 데이터 과학자 등 직종의 다양성 때문에 매력을 찾기도 전에 지칠지 모른다.

구글이나 검색 사이트에 나름의 단어를 조합해서 찾아보긴 하지만 일목요연하게 정리된 자료를 찾기는 쉽지 않다. 당연하게도 비슷한 직무를 기반으로 세부적인 직종을 분류했기 때문에 발생하는 문제이고, 개별 영역에서 담당하는 업무가 일목요연하게 정리되기엔 회사 by 회사가 크게 적용되기 때문이다. 그리고 데이터를 다루던 전공자나 실무자가 아니라면 블로그나 홈페이지에 있는 글을 참고하게 되는데, 배경지식이 없다면 몇 번을 읽어도 쉽게 다가오지 않을 듯 합니다.

2

기존에 데이터 관련 업무를 진행하던 분들의 경우, 가볍게 이 책을 접근하실 분들의 경우 커리어를 다듬을 수 있는 내용과 이직에 관련된 내용을 중심으로 접근하길 권한다. 다양한 업계에 종사하는 분들의 인터뷰를 각 장의 말미에 포함하고 있기 때문에 현실적인 이야기를 들을 수 있고, 이런 점은 다른 데이터 관련 서적과 비교해서 특징적인 부분이라 할 수 있다.

실무자의 경우 커리어를 향상하는 방법 뿐만 아니라, 이직을 위해서 준비해야 하는 점까지 소개하고 있기 때문에 데이터 직무를 진행하고 계시다면 나중에 참고하기 위해서 가볍게 읽어보자. 이력서와 커버레터 쓰는 법, 면접 대처법, 제안서 수락하는 방법 등을 포함하고 있기 때문에 생각보다 유용한 정보라 할 수 있다.

그 중에서도 외국계로 이직을 하는 분들의 경우 이 책은 좋은 길잡이가 되어 줄 것이다. 외국과 국내의 업무 환경이나 직무(JD, job description) 등이 생각보다 차이가 많기 때문인데, 외국계로 이직을 고민이라면 이 책을 진지하게 읽어볼 필요가 있다.

이 부분은 필터가 필요하다

3

마지막으로, 이 책을 읽을 때는 약간의 필터가 필요하다. 책에 소개된 대부분의 내용이 국내 사정과는 다소간의 차이가 있기 때문이다. 대부분의 경우 책에서 소개된 내용이나 방법을 사용해도 크게 상관이 없지만, 국내 환경과 차이가 있는 부분을 무시하고 진행하기엔 국내 업무/회사 문화와 상충하는 부분이 생길 수 있기 때문이다.

따라서 이 책을 읽는 초급자의 경우, 책에 소개된 내용을 기반으로 아래 Ref[1], Ref[2] 등과 같은 국내에서 진행되는 팟캐스트나 YouTube 등을 활용해서 국내의 데이터 분석 환경을 참고하자. 국내의 데이터 관련 업무의 경우 회사 by 회사인 경우가 제법 있기 때문이다. 책의 내용 중에서 국내 문화나 자신이 지원하는 회사의 문화와 맞지 않는 경우가 있을 수 있으니 책의 내용을 받아들을 때 약간의 필터를 거칠 필요가 있다는 점은 꼭 알아두자.

Ref.

[1] 통계학 석사의 데이터 분석가 취업 스토리 [2] Q&A 특집 1부 - 데이터 공부, 역량과 취업, 분석 언어




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