본문 바로가기

코딩과 알고리즘

몽고DB(mongodb) PHP 에서의 맵리듀스(mapReduce) 사용하기 몽고DB PHP 에서의 맵리듀스(mapReduce) 사용하기 지난 시간에 이어 이번에는 콘솔창이 아닌 PHP 에서의 맵리듀스를 사용하는 방법을 알아보겠습니다. 우선 지난번의 샘플 데이터 입력과 share.php 소스가 먼저 생성된 단계에서 시작하겠습니다. itadventure.tistory.com/384 executeCommand('DB명', $command); $cursorArr = $cursor->toArray(); mapReduce 든, 중복을 제거하는 distinct 든, 그룹을 지어주는 group 든 다양한 통계 기능이 이 함수를 거쳐서 사용됩니다. $command 파라미터에는 MongoDB\Driver\Command 클래스로 정의된 오브젝트가 입력이 되는데요.. 맵 리듀스를 실행하고자할 경우 .. 더보기
몽고DB 콘솔에서 맵리듀스(MapReduce) 기술 지난 챕터에서는 몽고DB의 가장 기본 중의 기본, CRUD 에 대해 다루어 보았는데요. itadventure.tistory.com/383 그리고 아래 파일은 share.php 와 같은 폴더에 mongo_sample.php 로 저장해 주세요. 이 샘플코드는 앞의 3개의 학과와 각각의 학급 정보를 입력해 줍니다. 트리 구조로 입력하여 주고 각각의 학급은 배열형태로 입력됩니다. 이제 웹브라우저에서 퍼블릭URL/mongo_sample.php 를 실행하면 아래와 같은 결과가 보이실 겁니다. var_dump 함수보다는 좀 더 보기 쉽지요? :) 여기서 nUpserted=>3 으로 3개의 자료가 업서트된 것을 확인하실 수 있습니다. 모든 학과를 삭제하고 새로 입력합니다. object(MongoDB\Driver\Wri.. 더보기
보안기능활성화 모드의 PHP + 몽고DB 지난 시간에는 몽고DB에서의 관리자 계정 설정에 대해서 다루어 보았습니다. itadventure.tistory.com/381 몽고DB, 데이터베이스별 관리자 계정 생성 이번 시간에는 지난번의 몽고 DB 최고관리자 계정 생성에 이어, 데이터베이스별로 각각 관리자 아이디를 생성하는 방법을 알아보도록 하겠습니다. itadventure.tistory.com/380 몽고DB, 계정 보안! 최고 itadventure.tistory.com 특히 최고관리자 계정과 데이터베이스별 관리자 계정을 생성하고 패스워드를 설정하는 방법에 대해 살펴보았었는데요. 그러다 보니 원래 PHP 에서 잘되던 몽고DB 접속이 한가지 문제가 발생되었습니다. PHP 에서 몽고 DB에 접속할 때 만일 몽고DB에 아이디, 패스워드가 걸려 있는 경우.. 더보기
몽고DB, 데이터베이스별 관리자 계정 생성 이번 시간에는 지난번의 몽고 DB 최고관리자 계정 생성에 이어, 데이터베이스별로 각각 관리자 아이디를 생성하는 방법을 알아보도록 하겠습니다. itadventure.tistory.com/380 몽고DB, 계정 보안! 최고관리자 계정 만들기 이번 시간에는 몽고DB 의 계정 보안에 대해 살펴보겠습니다. 관계형 데이터베이스 대부분은 데이터베이스에 로그인할 때 관리자 계정이라는게 있습니다. 보통 mysql(or mariadb)과 mssql 계열은 root, itadventure.tistory.com 1대의 서버를 여러 다중 목적으로 사용한다고 생각해 봅시다. 이를 테면 대학교 홈페이지, 도서관, 건설사 홈페이지를 한대의 서버에 폴더를 따로 두어 각각 도메인을 세팅하여 서비스 한다고 가정해 볼까요? ※ 이를 가상 .. 더보기
몽고DB, 계정 보안! 최고관리자 계정 만들기 이번 시간에는 몽고DB 의 계정 보안에 대해 살펴보겠습니다. 관계형 데이터베이스 대부분은 데이터베이스에 로그인할 때 관리자 계정이라는게 있습니다. 보통 mysql(or mariadb)과 mssql 계열은 root, 오라클은 sys이지요. 몽고DB도 관리자 계정이란게 있긴 하지만 처음 몽고DB를 설치하면 관리자 계정 없이 로그인이 됩니다. 계정 인증 기능이 없는게 아니라 기본으로 비활성화(disable) 되어 있기 때문이지요. 이는 사실 외부 해킹의 소지가 있습니다. 그것도 매우 큽니다. 만일 해커가 몽고 DB의 진입 입구까지만 도달할 수 있다면 그 후부터는 아무런 비밀번호 없이 들어갈 수 있으니 아파트 문을 열어둔 셈이나 마찬가지입니다. 그래서 처음에는 이 보안설정을 해주어야 합니다. 연습하는 수준이라면.. 더보기
AWS 과금되다! 음? 프리티어인데? 요금내역서 보는 방법 AWS 를 며칠 테스트하다 보니 EC2 프리티어로 테스트만 진행해서 서비스 용량에는 훨씬 못 미치는데 0.7$(약 700~800원)의 과금이 부과된 것을 확인할 수 있었습니다. 이게 어떻게 된 것일까요? 그것은 바로 'Elastic IP Address'에 있었습니다. 바로 '고정IP주소 서비스'인데요. AWS에서는 이를 탄력적 IP로 해석하고 있습니다 :) EC2로 인스턴스를 할당받으면 기본적으로 유동 IP 서비스를 제공합니다. 그래서 인스턴스를 중지후 재시작하면 항상 변경이 되는데 그것도 완전 다른 IP로 바뀌어 버립니다. EC 서비스 중 '탄력적 IP'라는 서비스가 있어서 대략 고정 IP를 제공해주는 서비스구나 감이 외서 시도해보았었는데요. 비용은 그리 비싸지는 않지만 처음에는 뭔지 모르니 약간 불안.. 더보기
유용한 SSH, 모바XTERM으로 AWS 접속하기 아마존 리눅스의 웹페이지에서 접속가능한 리눅스 콘솔창은 놀라운 기능이긴 하지만 사용이 매우 불편해 보입니다. 그 이유인 즉, 한글이 우선 안되는 것과 칼라링이 없어 온통 검정배경 흰 글씨로 보인다는 것을 예로 들수가 있습니다. 그렇게 때문에 보통 SSH 작업을 할 때는 기본 콘솔 창이 아닌 별도의 SSH 툴을 사용하는 것이 일반적이지요. 아주 적절한 도구가 있어 소개해 드립니다. 바로 MobaXterm( 모바엑스텀 ) 입니다. 뭐.. 원래 영어 이름이나 한글로는 짓기 나름이니 이게 꼭 맞는 명칭이라고는 볼 수 없지만.., 이 글에서는 그렇게 지칭하도록 하겠습니다. 모바XTERM 이란 원격 서버에 있는 파일을 편집도 할 수 있고 파일을 서버에 전송하거나 다운받을 수 있는 도구인데요. 보통 putty 나 S.. 더보기
AWS(아마존 웹서비스) 몽고DB + php 드라이버 설치 몽고DB를 보면 볼수록 그 매력이 더한것 같습니다. 비록 관계형 데이터 베이스처럼 간단하게 한줄로 group by 문을 통한 통계를 낼 수는 없지만, 맵 리듀스라는 기술을 이용해서 가능하고, 맵 리듀스라는 기술은 관계형 데이터베이스의 프로시저와 맞먹는 기술이라 응용력은 매우 다양해 보입니다. 오늘 그 부분을 다룰건 아니구요. 지난번에 이어 AWS 에 몽고DB 및 php 드라이버를 설치하는 부분을 진행해보겠습니다. itadventure.tistory.com/373 AWS(아마존 웹서비스) 웹서비스 자동 시작 & PHP 설치 지난 시간에는 AWS 프리티어 서버를 세팅하고 nginx 웹서비스를 설치하여, 홈페이지를 띄워보는 부분까지 알아보았습니다. 그리고 소요 시간이 소진되지 않게 서버를 중지하는 부분까지 진.. 더보기