MongoDB 완벽 가이드 - 실전 예제로 배우는 NoSQL 데이터베이스 기초부터 활용까지, 3판
크리스티나 초도로우 외 지음, 김인범 옮김 / 한빛미디어 / 2021년 3월
평점 :
장바구니담기


이 글에는 스포일러가 포함되어 있습니다.

몽고 db는 NoSQL 기반으로 의 DBMS다.


NoSQL


“Non Relational Operation Database SQL” 의 줄임말로써 “관계형 데이터베이스가 아닌 SQL” 입니다.


일반적인 관계형 데이터베이스에서는 데이터의 중복을 제거하고 무결성을 보장하기 위해서 정규화를 하게 되는데 이러한 정규화가 과도한 JOIN으로 인해 성능 저하가 있을 수 있다고한다.


이책은 이러한 문제를 잘극복할수있도록 처음 설치부터 컬렉션을 다루는 방법까지 자세하게 해당 책에서 내용을 담고있다.

몽고 db의 쉘은 자바스크립트 해석기이고, 자바스크립트 프로그램이 실행이 가능하다. > x = 200; 200 > x / 5; 40 > Math.sin(Math.PI /2) 1 > new Date("2019/1/1"); ISODate("2018-12-31T15:00:00Z") > "Hello, World!".replace("World","MongoDB"); Hello, MongoDB! replace 를 통해 글자를 수정가능하다. //현재 db조회 > db test //데이터베이스 선택 > use video switched to db video > db video //db변수에서 컬랙션에 접근한다. > db.movies video.movies //movie 변수를 생성한다. > movie={"title":"Star Wars:Episode IV -A New Hope","director":George Lucas","year":1977} 2021-04-03T20:20:48.637+0900 E QUERY [js] SyntaxError: missing } after property list @(shell):1:68 > movie={"title":"Star Wars:Episode IV -A New Hope","director":George Lucas","year":1977}; 2021-04-03T20:20:55.541+0900 E QUERY [js] SyntaxError: missing } after property list @(shell):1:68 > movie={"title":"Star Wars:Episode IV -A New Hope","director":"George Lucas","year":1977}; { "title" : "Star Wars:Episode IV -A New Hope", "director" : "George Lucas", "year" : 1977 }

collection을 다루고 있는 만큼 key,value 형식으로 값을 입력이 가능했다.

//무비컬렉션에 값을 저장한다. > db.movies.insertOne(movie) { "acknowledged" : true, "insertedId" : ObjectId("6068501d5890e9d90fadf7ea") } find를 통해 결과를 확인한다. > db.movies.find().pretty() { "_id" : ObjectId("6068501d5890e9d90fadf7ea"), "title" : "Star Wars:Episode IV -A New Hope", "director" : "George Lucas", "year" : 1977 } find와 findone은 컬렉션을 쿼리하는데 사용한다. > db.movies.findOne() { "_id" : ObjectId("6068501d5890e9d90fadf7ea"), "title" : "Star Wars:Episode IV -A New Hope", "director" : "George Lucas", "year" : 1977 }

해당 책을 통해 기본 부터, 활용하는데 익히는데 큰무리가 없었다.

몽고db를 익히고자 하는 데에 이책을 추천하고싶다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
처음 배우는 리액트 네이티브 - 크로스 플랫폼 앱 개발을 위한 실전 입문서
김범준 지음 / 한빛미디어 / 2021년 2월
평점 :
장바구니담기


이 글에는 스포일러가 포함되어 있습니다.


리액트 네이티브는 요즘 플로터와 더불어 인기를 끌고 있는 모바일 개발 플랫폼이다. .

리액트 자체가 좀 어렵고, 혼자 해볼생각이 두려웠는데 입문서가 쉽게 나온것같아 책을 접하게 되었다.


기본 환경설정부터 내용이 자세히 나와있어서 설치하는데 어려움 없이 설치 할수 있었다.

기본 설치환경이 기존에 프로그램이 설치되어있으면 충돌이 날수도있으므로, 지우고 새로운 버전으로 설치 해보는게 좋은것같다.

첫 에뮬 에서 실행을 하는데에 좀 기존 설치된 것과, 충돌이 나는 부분이 있어서, 노드를 삭제 하고 재설치 하고 우여곡절 끝에 첫화면을 띄우는데 성공하였다.

import { StatusBar } from 'expo-status-bar'; import React,{Fragment} from 'react'; import { StyleSheet, Text, View } from 'react-native'; // import {Text} from 'react-native' export default function App() { const name = "Hanbit"; return ( <View style={styles.container}> <Text style={styles.text}> //스타일에 텍스트에 따라 화면에 보여주는 장면이 다르다. {(()=>{if(name==='Hanbit') return 'My name is Hanbit'; else if(name ==='Beomjun') return 'My name is Beomjun'; else return 'My name is React Native'; })()} <StatusBar style="auto"/> </Text> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center', }, text :{ fontSize:30, } });

생각보다 컴포넌트를 적용하는 코드는 기본초기 설치되는 소스가 있기 때문에 변경하여 적용하는것은 크게 어렵지 않은것같다.

import { StatusBar } from 'expo-status-bar'; import React,{Fragment} from 'react'; import { StyleSheet, Text, View } from 'react-native'; // import {Text} from 'react-native' //3항 연사자 실습 name의 값에 따라 화면에 표시되는 내용이 틀려진다. export default function App() { const name = "Hanbit"; return ( <View style={styles.container}> <Text style={styles.text}> My name is {name ==='Bemjun'?'Beomjun kim':'ReactNative'} </Text> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center', }, text :{ fontSize:30, } });

가변적인 값에 따라 화면에 표시가 달라지는 예제 이다.


import { StatusBar } from 'expo-status-bar';

import React,{Fragment} from 'react'; import { StyleSheet, Text, View } from 'react-native'; // import {Text} from 'react-native' export default function App() { const name = "Beomjun"; return ( <View style={styles.container}> {name==='Beomjun' && (<Text style={styles.text}>My name is Bemjun</Text>)} {name!=='Beomjun' && (<Text style={styles.text}>My name is not Bemjun</Text>)} <StatusBar style="auto"/> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center', }, text :{ fontSize:30, } });


아직 모든 실습을 해보지는 못했지만, 에뮬레이터를 통해 바로 실습을 확인할수있고, 쉬운예제부터 차근 차근 실습위주의 내용으로,

리액트네이티브에 대해 처음 접하고자 하는 사람에게 매우 좋은 책이라 생각한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
진지한 파이썬 - 파이썬 작동 원리에서 확장, 테스트, 배포, 최적화까지
쥘리앵 당주 지음, 김영하 옮김 / 한빛미디어 / 2021년 1월
평점 :
장바구니담기


이책은 파이썬의 기본 문법은 알고있고, 각 파트별 고급 기술을 이해하는데 도움을 준다.

각 파트별 다루고있는 장표별 내용이 다르므로, 관심있는 내용을 주로 접하면 좋을것 같다.

1장에서는 파이썬 프로젝트를 시작하는데 기본적인 지식을 익히는데 중점을 다루고있다.

pyflakes , pylint 등 코딩 오류를 잡는툴과 스타일 오류를 잡는도구 등 전반적인 설계방법을 다루고 있다.

2장은 모듈,라이브러리,프레임워크 에 다룬다.

메타 경로 파인더표준 .py 파일뿐만 아니라 지정 객체를 로드할수있는 객체

메타 경로 파인더 객체는 로더 객체를 반환하는 find_module 메서드를 호출해야 한다.

3장 은 사실상 문서화 표준인 스핑크스 모듈에 대해 다룬다.

4장은 시간 정보와 시간대 다루기 에 대해 설명한다.

dateutil 과 tzinfo 와 호화 객체를 얻을수 있다고 한다.

5장은 distlib 를 활용한 개발한 소프트웨어를 배포하는 방법을 다루고 있다.

6장은 단위테스트에 대해 설명한다 .

pytest 에대해 다루고 있다.

travis ci 깃허브 호스팅 서비스등 다양 한 도구를 설명하고있다.

7장 메서등와 데커레이터

데커 레이터 는 정적 메서드, 클래스 매서드, 추상 메서드를 만들고 추상 메서드 내에 구현 가능한 코드를 배치할수있는 super 함수를 사용할수있다.

파이썬에 대해 좀더 깊이 있게 공부하고 싶고, 파이썬 에 대한 성능분석이나 최적화 에 대해 공부하고싶은 사람에게 이책을 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
머신 러닝을 위한 수학 with 파이썬, R - 딥러닝에 필요한 수학만 골라 담았다!
이원상 지음 / 길벗 / 2020년 8월
평점 :
절판



요즘 화두가 되고 있는 머신러닝에 대해 수학을 기반으로 한 파이썬과 R을 다루는 책이다.

해당 장에서는 아나콘다 설치방법과 간단한 실습방법에 대해서 안내 하고있는데, 윈도우 환경에서만 다루고있는점이 맥사용자로써, 좀 아쉬웠다. 파이썬의 자료구조를 한번 되짚어서 중요 한부분은 짚고 넘어가는점은 좋았다. 

머신러닝에 근간이 되는 선형대수에대해 꽤나 중요하게 다루고 있다. 

해당장에서는 알기 쉽게 그림과 함께, 백터, 행렬, 마르코프 체인 까지 점점 심화해 나가며 해당장을 접할수있다. 

나는 미분은 보다는 적분이 좀어려운데 이책에서는 모두 다 다루고, 있고, 해당장을 파이썬과R 로 설명하고 있다. 

넘파이 싸이파이 함수를 활용하므로 앞서서 장에서 이해하지 못하면 실습하기 어려울수도 있을것같다. 

기본 통계 개념과 이해를 다루고 있고, 이에 따른 이산형과 연속형 여러 확률 분포 방법을 접해봄으로써, 머신러닝에 에 다향한 검정법을 배운다. 

이책은 수학을 근간으로 둔 어떻게 보면 수학에 초점을 두고, 해당 수학을 실습해보는 정도의 코드를 다루는 책이다. 

따라서 먼저 머신러닝을 배워서 기본지식이 부족한 사람이거나, 좀더 깊이있게 수학과 확률 통계에 대해 배우고 싶은 사람에게 이책을 추천한다. 


 


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
오렌지노의 영상 편집을 위한 유튜브 배경음악 - 개러지밴드로 시작하는 나만의 배경음악, 테마송 만들기
오렌지노(이진호) 지음 / 제이펍 / 2019년 10월
평점 :
절판


이책은 먼저, 개러지 밴드라는 ios앱을 활용한 음악작업을 예를 들기때문에

아이폰이나 아이패드, 맥북이있어야 활용이 가능하다.

먼저 개러지 밴드를 앱을 알고는 있었는데 쉽게 익히기는 힘들다는 편견과 전문가들만 사용하는 앱으로 생각했었다.

이책은 그런독자에게 한발 다가갈수있게 해주는 책이라 볼수있다.

1. 유튜브 영상 편집과 배경음악

해당 부분에서는 영상편집의 소개와 개러지밴드 에대한 소개를 다루고 있다.

2. 누구나 따라할수있는 배경음악 만들기.

해당부분은 개러지 밴드의 주요기능과 화면을 익히는 내용을 다루고 있다.

3. 연주를 가미하여 본격적으로 작곡하기.

해당부분은 작곡/편곡에 대한 이론과 좀더 전문가적인 작업을 하는 내용을 다루고 있다.

1. 유튜브 영상 편집과 배경음악 그리고 저작권



사실


이책을 접해야되는 가장 중요한 이유는 음원을 잘못 상업적으로 이용했다간 많은 문제가 생길수 있고,

저작권에 문제가없는 부분에서는 많은 제약이 있을수 밖에없다.

이책을 접해야 하는 가장 큰이유는

음원샘플들을 사용할수있고, 조합을 통해 새롭게 창작한 곡을 저작권에 문제가 없이 사용가능하다는 부분에 있다.

2. 누구나 따라할수있는 배경음악 만들기.



사용방법을 조금씩 익혀나가는 단계를 책에서 다루고있다.

일단 처음에는 ? 버튼을 누르면 도움말이 표시가 되는데 도움말을

표시한 상태에서 익히는것이 가장 많이 도움이 됬다.



드럼 설명부분

사실 음악에 대해 지식이 전무한 상태에서 이책을 본다고 연주를 할수있을까 하는 생각도 들었는데

쉽게 설명도 잘되어있고, 설명되어있는 연주를 잘따라 해보거나, 연습해보면 어느새 재미를 붙일수가 있었다.

3. 연주를 가미하여 본격적으로 작곡하기.



꼭익혀야되는 기본적인 음악적 지식은 책에 다루고있고,

자세한 셋팅방법도 나와있어 매우 유익했다.

요약

이책은 일단 기본적으로, 애플앱인 개러지밴드로

음원을 만드는 방법을 다루고있기 때문에 꼭 아이패드나, 아이폰이있어야 한다.

그리고 솔직히 상당내용은 맥북도 있어야 한다.

편집을 잘 하기위해서는 맥북이 필요해 보였다.

이책을 한번 흝어본다고 바로 멋진 배경음악을 만들수있는건 아니었다.

하지만, 부지런히 연습하고 실력을 갈고 닦는다면 멋진 음악들을 많이 창작할수 있는 방법을 제시하고 있는 책이었다.

개러지밴드나 음악창작에 관심이 많이있다면 해당책을 추천하고싶다.



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