목록서평/IT-책 (51)
Scientia Conditorium
[기본 미션] p.51의 확인 문제 3번, p.65의 확인 문제 3번 풀고 인증하기 1. 프로그램이 실행되려면 반드시 '메모리'에 저장되어 있어야 합니다. 이 문장이 중요한 이유는 운영체제와 연관되어서 그렇습니다. 흔히들 사용하고 있는 Window 윈도우 운영체제 역시 프로그램의 하나 입니다. 따라서 컴퓨터 전원 버튼을 누르면 가장 먼저 운영체제 프로그램이 메모리에 적재됩니다. 책 261쪽을 보면 '운영체제는 매우 특별한 프로그램이기 때문에 항상 컴퓨터가 부팅될 때 메모리 내 커널 영역(Kernel space)이라는 공간에 따로 적재되어 실행됩니다' 라고 서술되어있습니다. 물론 세부적으로는 BIOS → 부트로드 → 커널영역 → 초기화 프로세스 순서로 동작합니다. 2. 2의 보수는 현재 부호있는 정수를 표..
[책리뷰] 이것이 자료구조+알고리즘이다 with C언어 이것이 시리즈 중 자료구조와 알고리즘이 합친 책이 등장했다. 예전에 'C언어로 쉽게 배우는 자료구조' 책이 유명했지만, 그보다는 이 책이 훨씬 더 깔끔하고 좋다. 제목에 with C언어를 붙여서 혼동을 최소화 시킨 것도 마음에 들었다. 자바와 파이썬 왕국에서 C언어로 책을 쓰다니! 라는 사람들이 있을 것 같지만, 자료구조만큼은 메모리 관리가 가능한 언어로 학습해야된다는 것이 내 지론이다. 이유는 어떠한 언어를 쓰던 컴퓨터 내부적으로는 비슷하게 동작하는데, 특히 자료구조의 경우 메모리 구조를 알고 있어야 이해하기 쉽기 때문이다. 따라서 C언어를 통해 메모리 관리를 직접 해보면서 자료구조의 동작 원리를 이해하는 것이 좋다. 이 부분에 대해서는 홍정모 박..
[책리뷰] 똑똑한 코드 작성을 위한 실전 알고리즘(Learning Arlgorithms) 학부 과정에서 알고리즘 수업을 수강했거나 기본적인 알고리즘을 알고 있는 이후에 보면 좋은 책이다. 여러 알고리즘을 소개하기 보다는 대표적으로 많이 사용하고 널리 알려진 알고리즘들을 조금 더 심도있게 다루고 있는 책이라고 생각하면 된다. 책에서 다루는 알고리즘으로는아래와 같다. 알고리즘 분석(시간복잡도, 공간복잡도, 성능 비교 방법) 해싱(키, 해시함수, 연결 리스트, 동적 해시 테이블, 완벽한 해싱) 힙(최대 이진 힙, 배열로 이진 힙 구성, 엔트리 이동의 구현) 정렬(교환, 선택, 삽입, 재귀, 병합, 퀵, 힙, 팀) 이진 트리(이진 탐색 트리, 탐색, 제거, 순회, 성능 분석, 자가 균형 이진 트리) 그래프(모델..
[책리뷰] 전문가를 위한 C C++의 교과서였던 '전문가를 위한 C++'에 이어서 C 역시 탄생하였다. C언어의 정신은 C99 Rationale에서 다음과 같이 묘사하고 있다. 프로그래머를 믿어라(Trust the programmer) 프로그래머가 작업을 못하게 방해하지 마라(Don't prevent the programmer from doing what needs to be done) 언어를 작고 간단하게 유지하라(Kepp the language samll and simple) 명령을 실행하는 방법을 하나만 제공하라(Provide only one way to do an operation) 호환성은 장담할 수 없더라도 빨리 작동하게 만들어라(Make it fast, even if it is not gua..
[책리뷰] 헤드퍼스트 디자인 패턴(개정판) 한줄 요약 : 프로그래머라면 반드시 가지고 있어야 할 교과서 디자인 패턴 관련 책으로 가장 유명한 것은 'GoF의 디자인 패턴' 일 것이다. 그러나 회사 선배에게도 들었지만 대부분 '헤드퍼스트 디자인 패턴' 책을 더 추천해주신다. 책의 첫 챕터에서는 디자인 패턴을 왜 배워야하고 알아야 하는지를 상황과 코드를 통해 설명해준다. 디자인 패턴 공부를 위해 이 책을 접했다면 옮긴이의 말을 반드시 읽어야 한다. 프로그래머들 중에서 디자인패턴 공부를 숙제처럼 여기고 반드시 해야되는 숙제처럼 여기는 사람들이 종종 있다. 알아두어야 하기는 하지만 의무감을 가질 필요는 없다. 옮긴이의 말에서는 아래와 같이 설명한다. 디자인 패턴이 만병통치약은 아닙니다! 디자인 패턴은 코드를 재..
[책리뷰] 혼자 공부하는 컴퓨터구조 + 운영체제 컴퓨터 공학과 전공자 필수 과목 중 하나인 컴퓨터 구조와 운영체제. 이 과목들의 혼공 시리즈가 나와서 대단히 기쁘다. 결론은 역시나 혼공 시리즈답게 혼자서 충분히 공부할 수 있도록 기초 개념을 잘 잡아준다. 비전공자들은 구매해서 쭈욱 읽어보는 것을 적극 추천한다. 각 챕터에 대한 간략한 후기를 아래 나열해보는 것으로 이번 리뷰를 해보겠다. Chapter 01 컴퓨터 구조 시작하기 컴퓨터 구조의 큰 그림과 공부해야 하는 이유를 설명해준다. 책에서도 설명되어있지만 컴퓨터 구조는 컴퓨터공학과의 전공 필수과목 중 하나이며 대부분의 채용 공고에서 컴퓨터구조를 중요시 여긴다. 서울대학교 컴퓨터공학과 교과목 정보를 살펴보면 2020입학 기준으로 컴퓨터 구조는 전공필수 ..
[책리뷰] 오준석의 안드로이드 생존코딩 코틀린 편(2판) 아직까지는 모바일이 미래라고 보지는 않는다. 데이터 통신과 전력 충전이 유선보다 빠를수가 없기 때문이다. 그럼에도 불구하고 모바일 앱을 개발해야되는 상황을 마주치게 되었다. 이 책의 좋은 점은 실용 앱 9가지를 개발해볼 수 있다는 점이다. 실질적으로 모바일 앱 개발은 이 책을 통해서 처음으로 해보았다. 무작정 따라하기만 하면 되기 때문에 쉬웠다. 다만 생각보다 안드로이드 스튜디오 설치에 오래걸렸다.(모바일 주제에...) 이 책에서는 코틀린 언어를 사용한다. 구글이 코틀린을 안드리오드 앱 개발의 공식 언어로 선언하고 지원함으로써 코틀린 인기가 상승하고 있으며, 자바보다 배우기 쉽고 더 간결하기 때문이라고 한다. 어떤 언어가 더 쉽고 좋다로 왈가왈부하..
대부분의 아키텍처 책이 그렇듯이 이 책도 해당 분야를 전공한 학부생 3,4학년 혹은 석사과정을 대상으로 한다. 언어의 뉘앙스 차이로 책 제목은 'just'가 '적정'으로 번역되었다. 옮긴이의 말에서도 적혀있지만, just enough 느낌이 제대로 살지 않는 느낌이다. 완벽히 들어맞다고 할 수는 없지만 이보다 좋은 단어는 없다고 생각된다. 이 책은 특정 아키텍처 모델을 설명하는 책이 아니다. 이 책은 다른 저자가 발명한 아키텍처 모델링 접근법을 어떻게 해야 효율적으로 선택할 수 있는지 기준을 제시한다. 그 기준이 바로 리스크(Risk)다. 핵심 아이디어는 소프트웨어 아키텍처를 설계하는 데 드는 노력이 프로젝트의 리스크에 비례해야 한다는 것이다. 이것을 간단하게 저자는 우편함 설치를 예시로 들었다. 기계공..
[책리뷰] 동시성 프로그래밍(Concurrent Programming) 한줄 요약 : 프로그래밍 성능을 끌어올리고 싶은 시니어 프로그래머들이 봐야할 책 그렇다. 이 책은 초보자나 주니어 프로그래머들 보다는 프로그램 성능을 담당하고 있는 시니어 프로그래머 이상급이 봐야되는 책이다. 저자의 말에서 이 책이 다른 책과 다른 점이 무엇이냐 묻는 질문에 저자는 다음과 같이 답했다. "어셈블리에서 알고리즘, 계산 모델에 이르는 광범위한 주제를 총체적으로 다룬 세계 최초의 책입니다." 책의 대부분의 예제 코드는 Rust를 이용한다. Rust 언어를 사용한 이유는 동시성 프로그래밍에서 안정성을 제공하고, 메모리를 고려해 코드를 작성할 수 있으며 async/await 등의 고급 개념을 적용하고 있기 떄문이라고 한다. 저..
WSL이 등장한 것은 2016년부터 였지만, 최근에 들어서야 사용자들이 많아지기 시작했다. 컴퓨터 사용자들 대다수가 윈도우 운영체제를 사용하기 때문에 개발자들도 윈도우 환경에서 테스트가 필요하다. 스택오버플로우 2021 통계에 따르면 개발자들 45% 정도는 윈도우 운영체제를 선호한다고 한다. 그러나 재밌는 점은 2021년도부터 WSL도 하나의 운영체제로 선호도 반열에 올라섰다. 나 역시 윈도우 환경에서 서류 작업과 코드를 짜면서 동시에 리눅스 환경에서 빌드 테스트를 해야할 일이 많다. 보통은 가상머신을 설치하여 리눅스 환경을 별도로 구축하거나, 리눅스 노트북을 이용하여 개발을 진행해왔다. 그러나 WSL 존재를 알고난 이후부터 따로 해도 되지 않아 편리해졌지만, 아직 개선점이 많이 필요하지만 훌륭하게 동작..