MongoDB NoSQL로 구축하는 PHP 웹 애플리케이션

루베이트 이슬람 지음 | 에이콘출판 펴냄

MongoDB NoSQL로 구축하는 PHP 웹 애플리케이션

이 책을 읽은 사람

나의 별점

읽고싶어요
30,000원 10% 27,000원

책장에 담기

게시물 작성

문장 남기기

분량

보통인 책

출간일

2012.12.24

페이지

324쪽

상세 정보

동적인 웹 2.0 애플리케이션을 제작하는 과정에서 PHP와 몽고DB(MongoDB) NoSQL을 결합해 설명하는 책으로 데이터베이스 백엔드로 몽고DB를 사용해 동적인 웹 애플리케이션을 PHP로 개발하는 방법, 몽고DB에 접근하기 위한 각종 PHP API를 비롯한 몽고DB 실전 활용법, 사용자 세션 관리, 실시간 사이트 분석 내용 저장, 위치 인식 웹 애플리케이션 개발 방법을 알려주고 단계별 설명과 실용적인 예제를 통해 현장에 바로 적용 가능한 지식을 쌓을 수 있다.

상세 정보 더보기

추천 게시물

🍋🫧노란귤빛🫧님의 프로필 이미지

🍋🫧노란귤빛🫧

@nenghf6h

  • 🍋🫧노란귤빛🫧님의 구의 증명 게시물 이미지

구의 증명

최진영 지음
은행나무 펴냄

읽었어요
2분 전
0
책읽는엄마곰님의 프로필 이미지

책읽는엄마곰

@k_jin

자존감이 높은 사람은 주변이 소란스러워도 흔들리지 않는다. 세상 사람들 모두 나를 믿지 않고 나르시시스트의 말에 현혹된다고 해도 자신을 믿는다. 지금 당장은 삶의 중심이 흔들리는 것 같고 자존감이 떨어진다면 자신에게 이렇게 말해 보자.

“네가 아무리 나를 흔들어도 나는 흔들리지 않아. 나는 나만의 확실한 목표를 갖고 내 길을 갈 거야. 그 과정에서 나는 내 삶을 진심으로 사랑해 주고 나를 무조건 믿어 줄 거야. 오직 내 삶에만 집중해서 차근차근 성장할 거야. 나에게는 매 순간이 기쁨이거든. 있지도 않은 거짓말과 나를 고립시키기 위한 이간질로 공격해도 그 공격이 내 가슴에 비수로 꽃히지 않아. 나는 이제 알거든. 네가 겁에 질린 존재라는 것을.” (p.208)


지난 겨울, 수오서재의 『그 사람은 내현적 나르시시스트입니다』를 읽으며 언제나 자신에게 유리한 구도를 만드는 사람들에 대한 우려를 느끼고, 그런 일로부터 나를 분리시켜 살아야겠다는 생각을 많이 했었다. 어쩌면 이번에 읽은 『나르시시스트에게 웃으며 거리 두는 법』는 그런 마음의 발전이 아닐까 생각해본다.

『나르시시스트에게 웃으며 거리 두는 법』는 나르시시르트의 존재인식하기, 나르시시스트의 감정놀음에서 벗어나기, 나르시시스트의 궤변을 받아지는 기술, 나르시시스트에게서 나를 지키는 태도 등의 4단계로 나누어 이야기를 이어가는데, 『나르시시스트에게 웃으며 거리 두는법』를 통해 그들과의 거리를 유지하며 나를 지키는 법을 풀어낸다.

『나르시시스트에게 웃으며 거리 두는법』를 읽으며 가장 인상적이었던 것은 내현적 나르시시스트들 역시 타인의 감정에 진정한 공감이 결여되어 있고, 공감능력이 있는 척 학습을 한다는 점이었다. 사실 나는 타인과의 공존을 위해 무척이나 노력하며 사는 타입이기에, 공감을 연기할 수 있다는 것이 무척 놀랍기도 하고 무섭게 느껴지기도 했다. 또 나르시시스트들이 “나의 감정”만이 중요하여 타인에게 상처를 주는 것도 모르는 경우가 많다는 것에, 세상에 얼마나 많은 나르시시스트들이 섞여 살아가는지에 대해 생각해보게 된다.

나이를 꽤 먹다보니 “좋은 게 좋은 것”도 있지만 그렇지 않은 것도 많았다. 그것을 분간하는 눈이 이제야 겨우 생겨간다는 게 답답하지만, 『나르시시스트에게 웃으며 거리 두는법』등을 읽으며 조금씩 성장해갈 수 있음에 다행임을 느낀다. 타인과의 관계에서 힘듦을 느끼지만, 그것을 대놓고 기피할 에너지가 없는 분들에게, 스스로를 지키는 방어법을 배울 수 있도록 『나르시시스트에게 웃으며 거리 두는법』를 권해본다. 나도 오래도록 “친절한 사람”으로 살아오며 하기 어려웠던 “끊어내기”대신 “나를 지키기”라는 기술을 익히게 된 책이었던 것 같다.

나르시시스트에게 웃으며 거리 두는 법

오수아 지음
유노북스 펴냄

5분 전
0
배희진님의 프로필 이미지

배희진

@hee_recod

  • 배희진님의 엄마를 부탁해 게시물 이미지

엄마를 부탁해

신경숙 지음
창비 펴냄

읽었어요
8분 전
0

이런 모임은 어때요?

집으로 대여
지금 첫 대여라면 배송비가 무료!

상세정보

동적인 웹 2.0 애플리케이션을 제작하는 과정에서 PHP와 몽고DB(MongoDB) NoSQL을 결합해 설명하는 책으로 데이터베이스 백엔드로 몽고DB를 사용해 동적인 웹 애플리케이션을 PHP로 개발하는 방법, 몽고DB에 접근하기 위한 각종 PHP API를 비롯한 몽고DB 실전 활용법, 사용자 세션 관리, 실시간 사이트 분석 내용 저장, 위치 인식 웹 애플리케이션 개발 방법을 알려주고 단계별 설명과 실용적인 예제를 통해 현장에 바로 적용 가능한 지식을 쌓을 수 있다.

출판사 책 소개

PHP와 몽고DB의 위력을 결합해 동적 웹 2.0 애플리케이션 개발하기

PHP와 몽고DB 웹 개발 초보자용 지침서는 PHP와 몽고DB를 사용해 웹 애플리케이션 개발을 시작하기 위한 내용을 담은 실전서로 빠른 전개와 직접 실행해보는 사례 연구를 특징으로 삼는다. 이 책은 '코드를 먼저 소개하고 나중에 설명하는' 접근법을 따르고 있으며, 몽고DB의 독특한 기능을 소개하기 위해 PHP로 만든 실질적인 사례를 활용한다.

이 책은 몽고DB 이면에 숨겨진 개념을 소개하며 시작한다. 각 장은 데이터베이스의 특정 기능들을 설명하기 위한 실질적인 사례를 포함한다.


★ 이 책에서 다루는 내용 ★

■ 몽고DB를 내려받아 컴퓨터에서 동작시키기(윈도우/맥/리눅스)
■ 자료 저장 해법으로서 몽고DB와 더불어 PHP로 웹 사이트 구축
■ 몽고DB로 HTTP 세션 다루기
■ 실시간으로 웹 사이트 분석 자료 저장
■ 맵리듀스로 대규모 자료 집합 처리
■ 기존 관계형 데이터베이스를 보충하기 위해 몽고DB 활용(몽고DB로 자료 저장소와 캐시 층을 구축하고, 값비싼 SQL 질의 결과 저장)
■ 위치 인식 웹 애플리케이션 구현
■ 더 나은 성능과 보안을 위한 몽고DB 최적화


★ 이 책의 대상 독자 ★

이 책은 독자들이 PHP, HTML, CSS를 사용한 웹 애플리케이션 개발에 대한 배경 지식이 있다고 가정한다. 몇몇 장을 읽으려면 자바스크립트에 대한 지식이 있어야 하며 AJAX에 친숙해야 한다. MySQL 같은 관계형 데이터베이스 시스템 활용에 대한 실용적인 지식이 있다면 몇 가지 개념을 훨씬 빨리 익힐 수 있지만 필수는 아니다. 몽고DB에 대한 선행 지식은 필요하지 않다.


★ 이 책의 구성 ★

'1장 몽고DB 시작하기'는 몽고DB의 기반 개념을 소개하고, 컴퓨터에서 몽고DB 서버를 설치하고 돌린 다음 PHP와 몽고DB가 서로 대화하도록 만드는 방법을 단계적으로 소개한다.

'2장 몽고DB를 사용한 첫 웹 애플리케이션 제작'은 PHP와 몽고DB를 사용해 간단한 블로깅 웹 애플리케이션 제작 기법을 보여준다. 2장에 나오는 PHP 예제는 몽고DB에서 CRUD(Create/Read/Update/Delete) 기법을 보여줄 것이다.

'3장 세션 관리자 제작'은 HTTP 세션을 다루기 위해 PHP와 몽고DB를 사용하는 방법을 보여준다. 단독형 세션 관리자 모듈을 제작하고, 이 모듈을 사용해 사용자 인증/권한 부여 기법을 배울 것이다.

'4장 집계 연산 질의'는 강력한 함수형 프로그래밍 방법론인 맵리듀스(MapReduce)를 소개하고 몽고DB에서 집계 연산 질의를 수행하기 위해 맵리듀스를 사용하는 방법을 보여준다.

'5장 몽고DB를 사용한 웹 분석'은 실시간으로 몽고DB에 웹사이트 트래픽 데이터를 저장하고 중요한 분석 결과를 추출하기 위해 맵리듀스를 사용하는 방법을 보여준다.

'6장 관계형 데이터베이스와 함께하는 몽고DB 활용'은 관계형 데이터베이스와 함께 몽고DB를 사용할 수 있는 활용 사례를 탐구한다. 몽고DB에 데이터를 보관하는 방법, 값비싼 질의 결과를 캐시하기 위해 몽고DB를 활용하는 방법, 도메인에서 다양한 객체에 대한 비구조적인 메타 데이터를 저장하는 방법을 보여준다.

'7장 GridFS로 대용량 파일 처리'는 데이터베이스에서 대용량 파일을 저장하도록 몽고DB가 제공하는 특화된 명세인 GridFS를 소개한다.

'8장 몽고DB와 PHP로 위치 인식 웹 애플리케이션 제작'은 PHP, HTML5, 자바스크립트, 몽고DB의 지리공간 색인 기능을 활용해 현재 위치에서 가까운 식당을 찾도록 도와주는 웹 애플리케이션을 구현한다.

'9장 보안과 성능 향상'은 색인을 사용해 질의 성능을 끌어올리고, 질의를 분석하고 미세 조정하기 위한 내장 도구를 사용하고, 데이터베이스 보안을 강화하고, 데이터 내구성을 보증하는 방법을 소개한다.

'10장 RockMongo와 phpMoAdmin를 사용한 손쉬운 몽고DB 관리'는 몽고DB 서버를 관리하기 위한 PHP 기반 GUI 도구인 RockMongo와 phpMoAdmin 활용법을 소개한다.


★ 아마존 서평 ★

몽고DB NoSQL과 PHP를 위한 훌륭한 웹 2.0 개발 서적!
몽고DB에 관심이 있으며 몽고DB가 지원하는 데이터베이스 아키텍처 유형을 배우고 싶어하는 개발자에게 아주 도움이 되는 책이다. 이 책은 누구나 따라할 수 있는 단계별 예제를 보여주는 웹 중심 시각으로 만들어졌다.
(내 경우) 이 책은 서가에 특별히 잘 보이는 위치에 꽃아 놓을 가치가 있다는 생각이다. 이 책은 웹 2.0 개발에서 몽고DB와 PHP의 위력을 명확하게 보여주며, 웹 개발자에게 훌륭한 지침서가 될 것이다.
- Joe(뉴욕 브루클린) ★★★★★

훌륭한 책
이 책을 읽고 따라 하면서 무척 즐거웠다. 이 책은 논리적으로 구성되어 있고, 책에서 소개하는 힌트와 지침은 상당히 많은 도움을 준다. 책 내용은 웹 개발에 배경 지식이 있으며 새로운 기술을 접하려는 개발자를 대상 독자로 적절히 잘 맞췄다는 생각이다. (내 경우) 이 책의 가장 좋은 부분은 유용한 예제와 연습 문제다. 특히 몽고DB를 사용해 클러스터 환경에서 웹 애플리케이션을 위한 세션 관리자 구축, 지리 공간 색인, 비동기식 쓰기로 웹 분석을 하는 내용이 마음에 들었다. 이 책의 연습 문제는 몽고DB의 장점을 아주 잘 살리고 있다. 또한 맵/리듀스 개념을 멋지게 소개하므로, 여기 익숙하지 않은 사람들에게 좋은 사례를 제공한다.
물론 만능은 아니지만 몽고DB에 여러 가지 장점이 있다는 사실을 보여주기 위해 저자는 훌륭한 작업을 해냈다. 저자는 관계형 데이터베이스 시스템을 사용해야 할 때와 그렇지 않을 때를 구분하며 몽고DB를 가장 효율적으로 사용하기 위한 예를 들고 있다. 이 책은 몽고DB의 고급 활용법과 여러 가지 측면을 더 깊게 파고들고 싶은 독자를 위해 힌트도 제공한다.
- cedub ★★★★★


★ 저자 서문 ★

몽고DB는 현대적인 웹 2.0 애플리케이션의 일반적인 요구 사항을 충족하도록 설계한 오픈 소스이자 비관계형 데이터베이스 시스템이다. 현재 몽고DB는 전 세계에서 가장 인기 있는 몇몇 웹사이트에서 도입해 사용 중이다. 이 책은 PHP를 사용해 웹 애플리케이션을 개발해본 배경 지식이 있는 웹 개발자에게 몽고DB를 소개한다. 이 책은 몽고DB가 무엇이며, 관계형 데이터베이스 관리 시스템과 차이점이 무엇이며, 데이터를 저장하기 위해 관계형 데이터베이스 대신 개발자가 몽고DB를 사용해야 하는 시점과 이유를 설명한다.

HTTP 세션 처리, 사용자 인증 등과 같은 일반적인 문제를 해결하는 방법을 비롯해 데이터 백엔드로서 몽고DB를 사용하는 PHP 애플리케이션 개발 방법을 설명할 것이다.

또한 맵리듀스(MapReduce)를 사용한 웹 분석, GridFS를 사용한 대용량 파일 저장, 지리공간(Geospatial) 색인을 사용한 위치 인식 애플리케이션 제작과 같은 흥미로운 문제를 몽고DB로 푸는 방법도 배우게 될 것이다.

마지막으로 몽고DB를 최적화해 성능을 끌어올리고, 보안을 강화하고, 데이터 내구성을 보증하기 위한 방법을 배울 것이다. 이 책에서는 데이터베이스 관리를 좀더 편하게 만드는 편리한 GUI 도구의 사용법도 보여줄 것이다.

★ 옮긴이의 말 ★

최근 클라우드 시대가 도래하면서 업계에 NoSQL 열풍이 불고 있다. 일부에서는 좋았던 관계형 데이터베이스의 시절은 저물고 NoSQL 시절이 도래하고 있다는 다소 과격한 주장까지 나오고 있으니, 개발자라면 누구나 한 번쯤 NoSQL에 대해 관심을 보여도 전혀 이상하지 않다. 하지만 컴퓨터 분야의 신기술이 나올 때마다 늘 반복되듯 중요한 것은 용어가 아니라 실체다. 하지만 실체는 직접 만져보고 써보기 전에는 관념에 불과하므로 어떻게든 시간을 투자해 신기술과 친해져야 할 필요가 있다. 그렇다면 어떻게 새로운 기술을 실전에 적용해볼까? 데이터베이스에 "Hello, World!"를 넣고 검색하는 테스트 프로그램만 작성해서는 감조차 오지 않을 것이고 그렇다고 실제 프로젝트에 적용하기에는 짊어져야 할 위험이 너무 크다. 방법은? 다행스럽게도 몽고DB 분야에서는 이 책이 신기술 탐험에 나선 여러분들을 도와줄 것이다.

이 책은 현재 나와 있는 여러 NoSQL 계열 데이터베이스 중에서 문서 중심(document-centric) 데이터베이스인 몽고DB를 설명하는 책이다. 하지만 단순히 NoSQL 이론을 늘어놓은 다음 몽고DB 관리법과 사용법만 설명하는 선에서 끝내는 대신, 웹 개발자라면 누구나 손쉽게 사용할 수 있는 PHP 스크립트와 자바스크립트를 사용해 가상적인 웹 서비스를 실제 몽고DB로 구축하는 방법을 단계에 맞춰 차근차근 소개한다. 따라서 이런 전개 방식은 실질적인 구현을 거쳐 추상적인 개념을 이해하는 과정에 큰 도움을 주리라는 생각이다. 이렇게 컴퓨터에서 실제로 다양한 실험 과정을 거치고 나면 비로소 몽고DB의 실체에 한 걸음 다가간 자신을 발견할 수 있을 테다.

이 책에서는 몽고DB의 훌륭한 특성(특히 맵리듀스와 지리 공간 색인)을 실제 현장에서 어떻게 적용할지를 놓고 충분히 고민한 내용을 담고 있다. 간단한 블로그를 만들어 로그 분석기를 추가하는 방법으로 몽고DB의 맵리듀스 기능을 실시간으로 활용하는 예제나 방문객의 위치에 인접한 음식점을 찾아주는 위치 인식 애플리케이션을 만들어 W3C API와 지리 공간 색인 기능을 활용하는 예제는 (비록 상용에서 직접 사용하기는 어려울지라도) 몽고DB의 특성이 잘 녹아난 사례라 볼 수 있겠다. 몽고DB에 처음 입문하는 개발자를 대상 독자로 삼아 지나치게 복잡하지 않으면서도 그렇다고 부족함도 없이 딱 필요한 만큼 예제 중심으로 설명하는 방식을 따르기에 NoSQL에 대한 이론적인 사전 지식이 없더라도 웹과 PHP에 대한 기초 지식만 있으면 부담 없이 이 책이 여러분에게 다가올 것이다.

물론 몽고DB를 처음 접하는 독자를 위해 쉽게 작성하느라 중급 개발자들을 소외시키지도 않았다. 이 책에서는 클라우드에서 흔히 일어나는 다중 노드 배포 과정에서 분명히 직면할 세션 관리를 몽고DB를 사용해 처리하는 방안은 물론이고, 비동기식 특성을 사용해 여러 노드에서 동시에 접근 가능한 로그 시스템을 추축하는 방안도 소개한다. 또한 레거시 시스템을 버리지 못하는 상황에서 관계형 데이터베이스 시스템인 MySQL과 몽고DB를 함께 활용하는 방안을 소개하며, MySQL에서 몽고DB로 완전히 이주할 경우를 대비해 양쪽의 차이점과 주의 사항을 쉽게 설명하는 배려도 잊지 않고 있다. 마지막으로 몽고DB의 특성에 맞춰 보안과 성능 향상을 위해 기본으로 고려해야 하는 내용도 빠짐없이 다루고 있기에 상용 환경에서 고급 기능을 원하는 개발자라면 이를 출발선으로 삼아도 좋겠다.

백문이 불여일견이라고 이 책을 읽고 나서 LAMP(Linux-Apache-MongoDB-PHP) 스택에서 자신만의 개성 만점의 웹 애플리케이션을 직접 개발해보자. 여기서 한걸음 더 나가 몽고DB 위에 만들어진 뛰어난 오픈소스 소프트웨어를 분석해 몽고DB의 고급 기능을 적용하는 방법도 익혀보자. 그러고 나서 다시 한 번 직접 개발한 소프트웨어에 고가용성과 고성능을 달성하기 위한 특질을 추가해보면 몽고DB의 큰 그림이 머리 속에 그려질 것이다. 이제 몽고DB행 티켓을 손에 넣었으니, 애독자 여러분들 앞에 펼쳐질 즐거운 여행을 기원하겠다.

무제한 대여 혜택 받기

현재 25만명이 게시글을
작성하고 있어요

나와 비슷한 취향의 회원들이 작성한
FLYBOOK의 더 많은 게시물을 확인해보세요.

지금 바로 시작하기

플라이북 앱에서
10% 할인받고 구매해 보세요!

지금 구매하러 가기

더 많은 글을 보고 싶다면?

게시물 더보기
웹으로 보기