MongoDB(몽고 디비) 특징 공부하기 / 몽고 DB란 무엇인가?

조영규의 블로그

2014. 10. 20. 21:45 from Develop


Edit

MongoDB(몽고 디비) 특징 공부하기.


유명하다 못해 모르는 사람이 없을 만큼 많이 입에 오르내리는 디비 중 하나인 몽고디비는 예전부터, 아니 지금도 필자가 자주 사용해 오던 NoSQL이다. 해커톤같이 짧은 시간에 개발할 때에는 스키마가 없으면서 설정도 간단하고 빠른 성능을 가진 몽고디비가 강력강력강력 정말 강력한 데이터베이스로 사용될 수 있다. 두번 사용해야 한다. 그러나 안정성 문제가 거론되며 최근 뒷담하는 개발자가 많은 디비기도 하다. 이참에 특징에 대해 제대로 공부하고 싶어 책을 찾아가며, 인터넷을 뒤져가며 정리해보았다.

문서지향 데이터베이스.

몽고 디비는 강력하고 유연하며 확장성이 높은 도큐먼트 베이스(문서 지향)의 데이터베이스이다. NoSQL 중 매우 유명한 놈이기도 하다. 문서 지향 데이터베이스에서는 행 개념 대신에 보다 유연한 모델인 문서를 이용하는데, 내장 문서배열따위의 표현이 가능해서 복잡한 객체의 계층 관계를 하나의 레코드(열)로 표현할 수 있다. 이것은 자바나 파이썬 같은 최신 객체지향 언어들을 사용하는 개발자에 매우 편리함을 가져다 준다.

스키마가 없다.

몽고 디비의 특징 중 가장 유명한 것은 스키마가 없다는 것이다. 이것은 필요할 때 마다 필드를 추가하거나 제거하는 것이 매우 쉬워졌음을 의미한다. 사실은 필드라는게 없는거나 마찬가지니까. 따라서 개발 과정이 매우 단순해지고 빠르게 개발이 가능하게 된다.

스케일 아웃이 가능하다.

소프트웨어 마에스트로에서 뉴스 추천 서비스를 프로젝트로 하고 있다. 언론사들을 크롤러가 돌며 뉴스를 수집하여 개인의 선호에 맞게 추천하는 서비스다. 이때 엄청난 양의 사용자 선호 로그데이터가 필요할 때 마다 필드를 바꾸며 빠른 속도로 쌓여야 하는데, 이때 매우 적합하다고 판정된게 몽고디비다. 데이터베이스에 엄청난 로그가 쌓여야하는데 Scale out도 가능할 뿐더러(디비 자체적으로 지원한다. 이를 염두에 두고 설계되었다. 알아서 문서를 재분배하고 라우팅까지 완벽히 처리한다.) 스키마가 없어 필요할 때 마다 필드를 변형 시킬 수 있기 때문이다.

범용 데이터베이스.

몽고 디비는 범용 데이터베이스 목적으로 만들어 졌다. 따라서 CRUD의 작업외에도 다양한 기능을 제공한다. NoSQL이지만 쿼리가 있다. 조금 더럽긴 하지만. 아래는 몽고 디비가 제공하는 기능 중 일부이다.

  • 인덱싱 제공.
  • 집계 파이프라인의 지원
  • 특수한 컬렉션 유형 제공. (TTL등과 고정크기 컬렉션 등.)
  • 파일 저장소의 지원.

치명적이게도 조인과 트랜잭션 없음.

관계형 데이터베이스에서 당연한듯 멋지게 지원하는 트랜잭션과 조인이 없다. 이것은 정말 치명적인데 몽고 디비는 분산 시스템을 위해 포기했다. 해당 기능들을 제공하는 데에 비용이 크기 때문이다.

매우 고성능이다.

몽고디비는 쓰기와 읽기에서 기존의 RDB의 그것보다 수십배의 성능을 발휘한다. 당연하게도 여러 제약조건에 대한 처리가 없기 때문이기도 한데, 이것을 고스란히 애플리케이션 개발자 혹은 드라이버 개발자에게 맡겼다. 따라서 실제 서비스에서 사용하려면 상당히 많은 공이 필요하다. 손수 다 처리해야하므로. 트랜잭션까지........

낮은 진입장벽. 두번쓰자. 다시보자.

개발에서 가장 힘든건 코딩이 아니라 번역이다. 정말 번역은 사람을 미치게한다. 영어 회화는 모르겠는데 영어 글은 좀 읽는다 생각했는데 안그래도 단어도 잘 모르는데 어려운 단어가 잔뜩 쓰여있는 문서는 곤욕이다. 게다가 쓸데없이 더럽고 사용하기 어렵게 만들어져 있는 API는 왜그리 많은지. 그런데 몽고디비는 깔끔하다. 진입장벽이 낮다. 정말이다.

문서는 RDB의 행(row)다.

아니 사실은 그 이상이다. 엄청난 표현이 가능하다. 몽고디비의 핵심이기도 한 문서는 (키와 값)들의 집합이다. 키 + 값들이 아니라 (키+값)들이다. JSON을 생각하면 매우 간단하다. 그게 그러니까 한줄로 저장되는 거라 생각하면 된다. 어디에? RDB라면 테이블일텐데 여기서는 컬렉션이다. 그러나 몽고디비에서는 데이터 형이 있다.

  • 3와 "3"은 다르게 취급된다.

문서의 키/값의 쌍은 정렬되어 있기에 JSON으로 나타내어 똑같더라도 다르게 취급된다.

  • {a:1,b:2}와 {b:2,a:1}은 다르게 취급된다.

당연하게도 원래는 저게 똑같게 취급되는 경우가 더 많지만, 얘는 그렇다.

컬렉션은 테이블이다.

문서들이 저장되는 장소가 컬렉션이다. 이름에서 느껴지듯 말이다. 컬렉션은 테이블과 달리 스키마가 없다. 아니 있긴 있다. 사실 아에 규칙없이 컬렉션에 문서를 모으면 재앙이다. 어떻게 컨트롤 할 것인가? 현대의 거의 모든 언어는 타입이 있고 담아올 VO들도 스키마가 있는데 말이다. 그러니 뭐 강제는 안하지만 몽고디비에도 스키마가 있긴 있는 거다.

  • 컬렉션으로 구별해서 저장해 두라는 것. 데이터 지역성 측면에서도, 구분에서도 좋잖아. 그리고 그렇게 해야 인덱스도 효율적으로 만들 수 있다.

뭐야 그럼, 어차피 있구만
이라고 생각할 수도 있는데 뭐 이런거다. 강제로 지키는 것과 자율적으로 지키는 것의 차이?

컬렉션은 테이블처럼 이름을 가진다.

테이블 명 처럼 컬렉션 명이 있다. 이때 서브 컬렉션이라는게 있는데 이건 사실 말뿐인 것이다. RDB로 예를 들어보자. IMAGE가 있고 Thumbnail_IMAGE가 있는데 이걸 하나의 테이블에 넣진 않을 것이다. 그런데 둘다 이미지지 않은가? 몽고디비에서는 이를 위해 이름을 지을 때 '.'으로 둘을 구별하는 것을 권장한다.

서브 컬렉션이라는게 있다!

image가 있고, image.thumbnail 이런식으로 말이다. 근데 두 컬렉션이 관계있다는건 사람이 읽을 때 뿐이지, 몽고 디비가 저 두게를 연결 지어 관리하거나 그러지는 않는다. 전혀 무관. 그냥 이름에 점을 찍을 수 있는 거라고나 할까.

데이터베이스에 컬렉션을 그룹지어 놓는다.

컬렉션은 알겠다. 데이터베이스는 뭐냐? 몽고 디비는 단일 인스턴스를 가지고 여러 데이터베이스를 호스팅 할 수 있다. 이건 뭐 MYSQL도 그렇지 않은가? 예를 들어 우리 팀 이름이 tworoom이라 Mysql과 똑같은 친척(?)인 MariaDB에 tworoom이란 디비를 만들어 두었다 생각해 보자. (실제로 소마에서 우리팀 이름이 tworoom이고 실제로 tworoom 디비가 있다!)

친구가 근데 해커톤을 한단다. 디비가 필요한데 없어서 디비하나만 임시로 만들어달라고 부탁해서 apple이라는 디비를 만들어줬다 치자. 가능한 시나리오지 않은가? 이것과 같은 맥락이다. 몽고디비도 그렇게 쓸 수 있다는 거다. 각 데이터베이스는 독립적으로 취급되며, 자체적인 권한 설정이 가능하고 따로 파일시스템에 하나의 파일로 저장된다. 따라서 64바이트 이내의 이름이 설정 가능하고, 빈 문자열은 불가능하며 파일 시스템에서 지원하지 않는 특수기호는 사용이 불가능하다! 물론 대소문자도 구별된다. 사진파일이나 텍스트 파일등 일반적인 파일이 그렇듯이!

특별한 데이터 베이스들이 있다.

이미 몽고디비가 특수한 용도로 쓰려고 예약해둔 데이터 베이스들도 있다.

  • admin : 그냥 얘가 우리가 아는 root 데이터베이스다. 여기에 추가된 사용자는 전체 몽고디비 내의 모든 데이터베이스에 대하여 모든 권한을 획득한다. 서버 전역에 걸친 모든 명령어는 이곳에서만 실행 가능하다. 예를들어 디비 목록조회나 시작과 중지등등.
  • local : 이 디비는 특정 서버에만 보관하는 정보를 담는 곳이다. 복제가 불가능하다.
  • config : 몽고디비는 자체로 샤딩를 지원한다. 이 디비는 샤드 정보를 저장하는데 사용된다.

여기까지!

공부를 오랜만에 해서 머리가 아프다. 몽고 디비를 막연히 사용만 했지 제대로 이해하려 한 적이 없었는데 기본적인 것을 훑고나니 조금 더 친해진 느낌이다. 더 친근하고 좋구만. 필자 뿐만 아니라 모두가 그랬으면 좋겠다! 더 잘 쓰지 못해 아쉽다.

다음 시간에는 튜토리얼을 같이 해보도록 하자!

%23MongoDB%28%uBABD%uACE0%20%uB514%uBE44%29%20%uD2B9%uC9D5%20%uACF5%uBD80%uD558%uAE30.%0A----%0A%uC720%uBA85%uD558%uB2E4%20%uBABB%uD574%20%uBAA8%uB974%uB294%20%uC0AC%uB78C%uC774%20%uC5C6%uC744%20%uB9CC%uD07C%20%uB9CE%uC774%20%uC785%uC5D0%20%uC624%uB974%uB0B4%uB9AC%uB294%20%uB514%uBE44%20%uC911%20%uD558%uB098%uC778%20%uBABD%uACE0%uB514%uBE44%uB294%20%uC608%uC804%uBD80%uD130%2C%20%uC544%uB2C8%20%uC9C0%uAE08%uB3C4%20%uD544%uC790%uAC00%20%uC790%uC8FC%20%uC0AC%uC6A9%uD574%20%uC624%uB358%20NoSQL%uC774%uB2E4.%20%uD574%uCEE4%uD1A4%uAC19%uC774%20%uC9E7%uC740%20%uC2DC%uAC04%uC5D0%20%uAC1C%uBC1C%uD560%20%uB54C%uC5D0%uB294%20%uC2A4%uD0A4%uB9C8%uAC00%20%uC5C6%uC73C%uBA74%uC11C%20%uC124%uC815%uB3C4%20%uAC04%uB2E8%uD558%uACE0%20%uBE60%uB978%20%uC131%uB2A5%uC744%20%uAC00%uC9C4%20%uBABD%uACE0%uB514%uBE44%uAC00%20%uAC15%uB825%uAC15%uB825%uAC15%uB825%20%uC815%uB9D0%20**%uAC15%uB825%uD55C**%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uB85C%20%uC0AC%uC6A9%uB420%20%uC218%20%uC788%uB2E4.%20%uB450%uBC88%20%uC0AC%uC6A9%uD574%uC57C%20%uD55C%uB2E4.%20%uADF8%uB7EC%uB098%20%uC548%uC815%uC131%20%uBB38%uC81C%uAC00%20%uAC70%uB860%uB418%uBA70%20%uCD5C%uADFC%20%uB4B7%uB2F4%uD558%uB294%20%uAC1C%uBC1C%uC790%uAC00%20%uB9CE%uC740%20%uB514%uBE44%uAE30%uB3C4%20%uD558%uB2E4.%20%uC774%uCC38%uC5D0%20%uD2B9%uC9D5%uC5D0%20%uB300%uD574%20%uC81C%uB300%uB85C%20%uACF5%uBD80%uD558%uACE0%20%uC2F6%uC5B4%20%uCC45%uC744%20%uCC3E%uC544%uAC00%uBA70%2C%20%uC778%uD130%uB137%uC744%20%uB4A4%uC838%uAC00%uBA70%20%uC815%uB9AC%uD574%uBCF4%uC558%uB2E4.%0A%0A%23%23%20%uBB38%uC11C%uC9C0%uD5A5%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4.%0A%uBABD%uACE0%20%uB514%uBE44%uB294%20%uAC15%uB825%uD558%uACE0%20%uC720%uC5F0%uD558%uBA70%20%uD655%uC7A5%uC131%uC774%20%uB192%uC740%20%uB3C4%uD050%uBA3C%uD2B8%20%uBCA0%uC774%uC2A4%28%uBB38%uC11C%20%uC9C0%uD5A5%29%uC758%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uC774%uB2E4.%20NoSQL%20%uC911%20%uB9E4%uC6B0%20%uC720%uBA85%uD55C%20%uB188%uC774%uAE30%uB3C4%20%uD558%uB2E4.%20%uBB38%uC11C%20%uC9C0%uD5A5%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uC5D0%uC11C%uB294%20%uD589%20%uAC1C%uB150%20%uB300%uC2E0%uC5D0%20%uBCF4%uB2E4%20%uC720%uC5F0%uD55C%20%uBAA8%uB378%uC778%20%uBB38%uC11C%uB97C%20%uC774%uC6A9%uD558%uB294%uB370%2C%20**%uB0B4%uC7A5%20%uBB38%uC11C**%uC640%20**%uBC30%uC5F4**%uB530%uC704%uC758%20%uD45C%uD604%uC774%20%uAC00%uB2A5%uD574%uC11C%20%uBCF5%uC7A1%uD55C%20%uAC1D%uCCB4%uC758%20%uACC4%uCE35%20%uAD00%uACC4%uB97C%20%uD558%uB098%uC758%20%uB808%uCF54%uB4DC%28%uC5F4%29%uB85C%20%uD45C%uD604%uD560%20%uC218%20%uC788%uB2E4.%20%uC774%uAC83%uC740%20%uC790%uBC14%uB098%20%uD30C%uC774%uC36C%20%uAC19%uC740%20%uCD5C%uC2E0%20%uAC1D%uCCB4%uC9C0%uD5A5%20%uC5B8%uC5B4%uB4E4%uC744%20%uC0AC%uC6A9%uD558%uB294%20%uAC1C%uBC1C%uC790%uC5D0%20%uB9E4%uC6B0%20%uD3B8%uB9AC%uD568%uC744%20%uAC00%uC838%uB2E4%20%uC900%uB2E4.%0A%0A%23%23%uC2A4%uD0A4%uB9C8%uAC00%20%uC5C6%uB2E4.%0A%uBABD%uACE0%20%uB514%uBE44%uC758%20%uD2B9%uC9D5%20%uC911%20%uAC00%uC7A5%20%uC720%uBA85%uD55C%20%uAC83%uC740%20%uC2A4%uD0A4%uB9C8%uAC00%20%uC5C6%uB2E4%uB294%20%uAC83%uC774%uB2E4.%20%uC774%uAC83%uC740%20%uD544%uC694%uD560%20%uB54C%20%uB9C8%uB2E4%20%uD544%uB4DC%uB97C%20%uCD94%uAC00%uD558%uAC70%uB098%20%uC81C%uAC70%uD558%uB294%20%uAC83%uC774%20%uB9E4%uC6B0%20%uC26C%uC6CC%uC84C%uC74C%uC744%20%uC758%uBBF8%uD55C%uB2E4.%20%uC0AC%uC2E4%uC740%20%uD544%uB4DC%uB77C%uB294%uAC8C%20%uC5C6%uB294%uAC70%uB098%20%uB9C8%uCC2C%uAC00%uC9C0%uB2C8%uAE4C.%20%uB530%uB77C%uC11C%20%uAC1C%uBC1C%20%uACFC%uC815%uC774%20%uB9E4%uC6B0%20%uB2E8%uC21C%uD574%uC9C0%uACE0%20%uBE60%uB974%uAC8C%20%uAC1C%uBC1C%uC774%20%uAC00%uB2A5%uD558%uAC8C%20%uB41C%uB2E4.%0A%0A%23%23%uC2A4%uCF00%uC77C%20%uC544%uC6C3%uC774%20%uAC00%uB2A5%uD558%uB2E4.%0A%uC18C%uD504%uD2B8%uC6E8%uC5B4%20%uB9C8%uC5D0%uC2A4%uD2B8%uB85C%uC5D0%uC11C%20**%uB274%uC2A4%20%uCD94%uCC9C%20%uC11C%uBE44%uC2A4**%uB97C%20%uD504%uB85C%uC81D%uD2B8%uB85C%20%uD558%uACE0%20%uC788%uB2E4.%20%uC5B8%uB860%uC0AC%uB4E4%uC744%20%uD06C%uB864%uB7EC%uAC00%20%uB3CC%uBA70%20%uB274%uC2A4%uB97C%20%uC218%uC9D1%uD558%uC5EC%20%uAC1C%uC778%uC758%20%uC120%uD638%uC5D0%20%uB9DE%uAC8C%20%uCD94%uCC9C%uD558%uB294%20%uC11C%uBE44%uC2A4%uB2E4.%20%uC774%uB54C%20%uC5C4%uCCAD%uB09C%20%uC591%uC758%20%uC0AC%uC6A9%uC790%20%uC120%uD638%20%uB85C%uADF8%uB370%uC774%uD130%uAC00%20%uD544%uC694%uD560%20%uB54C%20%uB9C8%uB2E4%20%uD544%uB4DC%uB97C%20%uBC14%uAFB8%uBA70%20%uBE60%uB978%20%uC18D%uB3C4%uB85C%20%uC313%uC5EC%uC57C%20%uD558%uB294%uB370%2C%20%uC774%uB54C%20%uB9E4%uC6B0%20%uC801%uD569%uD558%uB2E4%uACE0%20%uD310%uC815%uB41C%uAC8C%20%uBABD%uACE0%uB514%uBE44%uB2E4.%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uC5D0%20%uC5C4%uCCAD%uB09C%20%uB85C%uADF8%uAC00%20%uC313%uC5EC%uC57C%uD558%uB294%uB370%20Scale%20out%uB3C4%20%uAC00%uB2A5%uD560%20%uBFD0%uB354%uB7EC%28%uB514%uBE44%20%uC790%uCCB4%uC801%uC73C%uB85C%20%uC9C0%uC6D0%uD55C%uB2E4.%20%uC774%uB97C%20%uC5FC%uB450%uC5D0%20%uB450%uACE0%20%uC124%uACC4%uB418%uC5C8%uB2E4.%20%uC54C%uC544%uC11C%20%uBB38%uC11C%uB97C%20%uC7AC%uBD84%uBC30%uD558%uACE0%20%uB77C%uC6B0%uD305%uAE4C%uC9C0%20%uC644%uBCBD%uD788%20%uCC98%uB9AC%uD55C%uB2E4.%29%20%uC2A4%uD0A4%uB9C8%uAC00%20%uC5C6%uC5B4%20%uD544%uC694%uD560%20%uB54C%20%uB9C8%uB2E4%20%uD544%uB4DC%uB97C%20%uBCC0%uD615%20%uC2DC%uD0AC%20%uC218%20%uC788%uAE30%20%uB54C%uBB38%uC774%uB2E4.%0A%0A%23%23%uBC94%uC6A9%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4.%0A%uBABD%uACE0%20%uB514%uBE44%uB294%20%uBC94%uC6A9%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%20%uBAA9%uC801%uC73C%uB85C%20%uB9CC%uB4E4%uC5B4%20%uC84C%uB2E4.%20%uB530%uB77C%uC11C%20CRUD%uC758%20%uC791%uC5C5%uC678%uC5D0%uB3C4%20%uB2E4%uC591%uD55C%20%uAE30%uB2A5%uC744%20%uC81C%uACF5%uD55C%uB2E4.%20NoSQL%uC774%uC9C0%uB9CC%20%uCFFC%uB9AC%uAC00%20%uC788%uB2E4.%20%uC870%uAE08%20%uB354%uB7FD%uAE34%20%uD558%uC9C0%uB9CC.%20%uC544%uB798%uB294%20%uBABD%uACE0%20%uB514%uBE44%uAC00%20%uC81C%uACF5%uD558%uB294%20%uAE30%uB2A5%20%uC911%20%uC77C%uBD80%uC774%uB2E4.%0A-%20%uC778%uB371%uC2F1%20%uC81C%uACF5.%0A-%20%uC9D1%uACC4%20%uD30C%uC774%uD504%uB77C%uC778%uC758%20%uC9C0%uC6D0%0A-%20%uD2B9%uC218%uD55C%20%uCEEC%uB809%uC158%20%uC720%uD615%20%uC81C%uACF5.%20%28TTL%uB4F1%uACFC%20%uACE0%uC815%uD06C%uAE30%20%uCEEC%uB809%uC158%20%uB4F1.%29%0A-%20%uD30C%uC77C%20%uC800%uC7A5%uC18C%uC758%20%uC9C0%uC6D0.%0A%0A%23%23%uCE58%uBA85%uC801%uC774%uAC8C%uB3C4%20%uC870%uC778%uACFC%20%uD2B8%uB79C%uC7AD%uC158%20%uC5C6%uC74C.%0A%uAD00%uACC4%uD615%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uC5D0%uC11C%20%uB2F9%uC5F0%uD55C%uB4EF%20%uBA4B%uC9C0%uAC8C%20%uC9C0%uC6D0%uD558%uB294%20%uD2B8%uB79C%uC7AD%uC158%uACFC%20%uC870%uC778%uC774%20%uC5C6%uB2E4.%20%uC774%uAC83%uC740%20%uC815%uB9D0%20%uCE58%uBA85%uC801%uC778%uB370%20%uBABD%uACE0%20%uB514%uBE44%uB294%20%uBD84%uC0B0%20%uC2DC%uC2A4%uD15C%uC744%20%uC704%uD574%20%uD3EC%uAE30%uD588%uB2E4.%20%uD574%uB2F9%20%uAE30%uB2A5%uB4E4%uC744%20%uC81C%uACF5%uD558%uB294%20%uB370%uC5D0%20%uBE44%uC6A9%uC774%20%uD06C%uAE30%20%uB54C%uBB38%uC774%uB2E4.%0A%0A%23%23%uB9E4%uC6B0%20%uACE0%uC131%uB2A5%uC774%uB2E4.%0A%uBABD%uACE0%uB514%uBE44%uB294%20%uC4F0%uAE30%uC640%20%uC77D%uAE30%uC5D0%uC11C%20%uAE30%uC874%uC758%20RDB%uC758%20%uADF8%uAC83%uBCF4%uB2E4%20%uC218%uC2ED%uBC30%uC758%20%uC131%uB2A5%uC744%20%uBC1C%uD718%uD55C%uB2E4.%20%uB2F9%uC5F0%uD558%uAC8C%uB3C4%20%uC5EC%uB7EC%20%uC81C%uC57D%uC870%uAC74%uC5D0%20%uB300%uD55C%20%uCC98%uB9AC%uAC00%20%uC5C6%uAE30%20%uB54C%uBB38%uC774%uAE30%uB3C4%20%uD55C%uB370%2C%20%uC774%uAC83%uC744%20%uACE0%uC2A4%uB780%uD788%20%uC560%uD50C%uB9AC%uCF00%uC774%uC158%20%uAC1C%uBC1C%uC790%20%uD639%uC740%20%uB4DC%uB77C%uC774%uBC84%20%uAC1C%uBC1C%uC790%uC5D0%uAC8C%20%uB9E1%uACBC%uB2E4.%20%uB530%uB77C%uC11C%20%uC2E4%uC81C%20%uC11C%uBE44%uC2A4%uC5D0%uC11C%20%uC0AC%uC6A9%uD558%uB824%uBA74%20%uC0C1%uB2F9%uD788%20%uB9CE%uC740%20%uACF5%uC774%20%uD544%uC694%uD558%uB2E4.%20%uC190%uC218%20%uB2E4%20%uCC98%uB9AC%uD574%uC57C%uD558%uBBC0%uB85C.%20%uD2B8%uB79C%uC7AD%uC158%uAE4C%uC9C0........%0A%0A%23%23%uB0AE%uC740%20%uC9C4%uC785%uC7A5%uBCBD.%20%uB450%uBC88%uC4F0%uC790.%20%uB2E4%uC2DC%uBCF4%uC790.%0A%uAC1C%uBC1C%uC5D0%uC11C%20%uAC00%uC7A5%20%uD798%uB4E0%uAC74%20%uCF54%uB529%uC774%20%uC544%uB2C8%uB77C%20%uBC88%uC5ED%uC774%uB2E4.%20%uC815%uB9D0%20**%uBC88%uC5ED**%uC740%20%uC0AC%uB78C%uC744%20%uBBF8%uCE58%uAC8C%uD55C%uB2E4.%20%uC601%uC5B4%20%uD68C%uD654%uB294%20%uBAA8%uB974%uACA0%uB294%uB370%20%uC601%uC5B4%20%uAE00%uC740%20%uC880%20%uC77D%uB294%uB2E4%20%uC0DD%uAC01%uD588%uB294%uB370%20%uC548%uADF8%uB798%uB3C4%20%uB2E8%uC5B4%uB3C4%20%uC798%20%uBAA8%uB974%uB294%uB370%20%uC5B4%uB824%uC6B4%20%uB2E8%uC5B4%uAC00%20%uC794%uB729%20%uC4F0%uC5EC%uC788%uB294%20%uBB38%uC11C%uB294%20%uACE4%uC695%uC774%uB2E4.%20%uAC8C%uB2E4%uAC00%20%uC4F8%uB370%uC5C6%uC774%20%uB354%uB7FD%uACE0%20%uC0AC%uC6A9%uD558%uAE30%20%uC5B4%uB835%uAC8C%20%uB9CC%uB4E4%uC5B4%uC838%20%uC788%uB294%20API%uB294%20%uC65C%uADF8%uB9AC%20%uB9CE%uC740%uC9C0.%20%uADF8%uB7F0%uB370%20%uBABD%uACE0%uB514%uBE44%uB294%20%uAE54%uB054%uD558%uB2E4.%20%uC9C4%uC785%uC7A5%uBCBD%uC774%20%uB0AE%uB2E4.%20%uC815%uB9D0%uC774%uB2E4.%0A%0A%23%23%uBB38%uC11C%uB294%20RDB%uC758%20%uD589%28row%29%uB2E4.%0A*%uC544%uB2C8%20%uC0AC%uC2E4%uC740%20%uADF8%20%uC774%uC0C1%uC774%uB2E4.*%20%uC5C4%uCCAD%uB09C%20%uD45C%uD604%uC774%20%uAC00%uB2A5%uD558%uB2E4.%20%uBABD%uACE0%uB514%uBE44%uC758%20%uD575%uC2EC%uC774%uAE30%uB3C4%20%uD55C%20%uBB38%uC11C%uB294%20%28%uD0A4%uC640%20%uAC12%29%uB4E4%uC758%20%uC9D1%uD569%uC774%uB2E4.%20%uD0A4%20+%20%uAC12%uB4E4%uC774%20%uC544%uB2C8%uB77C%20%28%uD0A4+%uAC12%29%uB4E4%uC774%uB2E4.%20JSON%uC744%20%uC0DD%uAC01%uD558%uBA74%20%uB9E4%uC6B0%20%uAC04%uB2E8%uD558%uB2E4.%20%uADF8%uAC8C%20%uADF8%uB7EC%uB2C8%uAE4C%20%uD55C%uC904%uB85C%20%uC800%uC7A5%uB418%uB294%20%uAC70%uB77C%20%uC0DD%uAC01%uD558%uBA74%20%uB41C%uB2E4.%20%uC5B4%uB514%uC5D0%3F%20RDB%uB77C%uBA74%20%uD14C%uC774%uBE14%uC77C%uD150%uB370%20%uC5EC%uAE30%uC11C%uB294%20%uCEEC%uB809%uC158%uC774%uB2E4.%20%uADF8%uB7EC%uB098%20*%uBABD%uACE0%uB514%uBE44%uC5D0%uC11C%uB294%20%uB370%uC774%uD130%20%uD615%uC774%20%uC788%uB2E4.*%20%0A-%203%uC640%20%223%22%uC740%20%uB2E4%uB974%uAC8C%20%uCDE8%uAE09%uB41C%uB2E4.%0A%0A%uBB38%uC11C%uC758%20%uD0A4/%uAC12%uC758%20%uC30D%uC740%20%uC815%uB82C%uB418%uC5B4%20%uC788%uAE30%uC5D0%20JSON%uC73C%uB85C%20%uB098%uD0C0%uB0B4%uC5B4%20%uB611%uAC19%uB354%uB77C%uB3C4%20%uB2E4%uB974%uAC8C%20%uCDE8%uAE09%uB41C%uB2E4.%0A-%20%7Ba%3A1%2Cb%3A2%7D%uC640%20%7Bb%3A2%2Ca%3A1%7D%uC740%20%uB2E4%uB974%uAC8C%20%uCDE8%uAE09%uB41C%uB2E4.%0A%0A%uB2F9%uC5F0%uD558%uAC8C%uB3C4%20%uC6D0%uB798%uB294%20%uC800%uAC8C%20%uB611%uAC19%uAC8C%20%uCDE8%uAE09%uB418%uB294%20%uACBD%uC6B0%uAC00%20%uB354%20%uB9CE%uC9C0%uB9CC%2C%20%uC598%uB294%20%uADF8%uB807%uB2E4.%0A%0A%23%23%uCEEC%uB809%uC158%uC740%20%uD14C%uC774%uBE14%uC774%uB2E4.%0A%uBB38%uC11C%uB4E4%uC774%20%uC800%uC7A5%uB418%uB294%20%uC7A5%uC18C%uAC00%20%uCEEC%uB809%uC158%uC774%uB2E4.%20%uC774%uB984%uC5D0%uC11C%20%uB290%uAEF4%uC9C0%uB4EF%20%uB9D0%uC774%uB2E4.%20%uCEEC%uB809%uC158%uC740%20%uD14C%uC774%uBE14%uACFC%20%uB2EC%uB9AC%20%uC2A4%uD0A4%uB9C8%uAC00%20%uC5C6%uB2E4.%20%uC544%uB2C8%20%uC788%uAE34%20%uC788%uB2E4.%20%uC0AC%uC2E4%20%uC544%uC5D0%20%uADDC%uCE59%uC5C6%uC774%20%uCEEC%uB809%uC158%uC5D0%20%uBB38%uC11C%uB97C%20%uBAA8%uC73C%uBA74%20%uC7AC%uC559%uC774%uB2E4.%20%uC5B4%uB5BB%uAC8C%20%uCEE8%uD2B8%uB864%20%uD560%20%uAC83%uC778%uAC00%3F%20%uD604%uB300%uC758%20%uAC70%uC758%20%uBAA8%uB4E0%20%uC5B8%uC5B4%uB294%20%uD0C0%uC785%uC774%20%uC788%uACE0%20%uB2F4%uC544%uC62C%20VO%uB4E4%uB3C4%20%uC2A4%uD0A4%uB9C8%uAC00%20%uC788%uB294%uB370%20%uB9D0%uC774%uB2E4.%20%uADF8%uB7EC%uB2C8%20%uBB50%20%uAC15%uC81C%uB294%20%uC548%uD558%uC9C0%uB9CC%20%uBABD%uACE0%uB514%uBE44%uC5D0%uB3C4%20%uC2A4%uD0A4%uB9C8%uAC00%20%uC788%uAE34%20%uC788%uB294%20%uAC70%uB2E4.%0A-%20%uCEEC%uB809%uC158%uC73C%uB85C%20%uAD6C%uBCC4%uD574%uC11C%20%uC800%uC7A5%uD574%20%uB450%uB77C%uB294%20%uAC83.%20%uB370%uC774%uD130%20%uC9C0%uC5ED%uC131%20%uCE21%uBA74%uC5D0%uC11C%uB3C4%2C%20%uAD6C%uBD84%uC5D0%uC11C%uB3C4%20%uC88B%uC796%uC544.%20%uADF8%uB9AC%uACE0%20%uADF8%uB807%uAC8C%20%uD574%uC57C%20%uC778%uB371%uC2A4%uB3C4%20%uD6A8%uC728%uC801%uC73C%uB85C%20%uB9CC%uB4E4%20%uC218%20%uC788%uB2E4.%0A%0A***%uBB50%uC57C%20%uADF8%uB7FC%2C%20%uC5B4%uCC28%uD53C%20%uC788%uAD6C%uB9CC***%0A%uC774%uB77C%uACE0%20%uC0DD%uAC01%uD560%20%uC218%uB3C4%20%uC788%uB294%uB370%20%uBB50%20%uC774%uB7F0%uAC70%uB2E4.%20%uAC15%uC81C%uB85C%20%uC9C0%uD0A4%uB294%20%uAC83%uACFC%20%uC790%uC728%uC801%uC73C%uB85C%20%uC9C0%uD0A4%uB294%20%uAC83%uC758%20%uCC28%uC774%3F%0A%0A%23%23%uCEEC%uB809%uC158%uC740%20%uD14C%uC774%uBE14%uCC98%uB7FC%20%uC774%uB984%uC744%20%uAC00%uC9C4%uB2E4.%0A%uD14C%uC774%uBE14%20%uBA85%20%uCC98%uB7FC%20%uCEEC%uB809%uC158%20%uBA85%uC774%20%uC788%uB2E4.%20%uC774%uB54C%20%uC11C%uBE0C%20%uCEEC%uB809%uC158%uC774%uB77C%uB294%uAC8C%20%uC788%uB294%uB370%20%uC774%uAC74%20%uC0AC%uC2E4%20%uB9D0%uBFD0%uC778%20%uAC83%uC774%uB2E4.%20RDB%uB85C%20%uC608%uB97C%20%uB4E4%uC5B4%uBCF4%uC790.%20IMAGE%uAC00%20%uC788%uACE0%20Thumbnail_IMAGE%uAC00%20%uC788%uB294%uB370%20%uC774%uAC78%20%uD558%uB098%uC758%20%uD14C%uC774%uBE14%uC5D0%20%uB123%uC9C4%20%uC54A%uC744%20%uAC83%uC774%uB2E4.%20%uADF8%uB7F0%uB370%20%uB458%uB2E4%20%uC774%uBBF8%uC9C0%uC9C0%20%uC54A%uC740%uAC00%3F%20%uBABD%uACE0%uB514%uBE44%uC5D0%uC11C%uB294%20%uC774%uB97C%20%uC704%uD574%20%uC774%uB984%uC744%20%uC9C0%uC744%20%uB54C%20%27.%27%uC73C%uB85C%20%uB458%uC744%20%uAD6C%uBCC4%uD558%uB294%20%uAC83%uC744%20%uAD8C%uC7A5%uD55C%uB2E4.%20%0A%23%23%23%23%uC11C%uBE0C%20%uCEEC%uB809%uC158%uC774%uB77C%uB294%uAC8C%20%uC788%uB2E4%21%0A*image*%uAC00%20%uC788%uACE0%2C%20*image.thumbnail*%20%uC774%uB7F0%uC2DD%uC73C%uB85C%20%uB9D0%uC774%uB2E4.%20%uADFC%uB370%20%uB450%20%uCEEC%uB809%uC158%uC774%20%uAD00%uACC4%uC788%uB2E4%uB294%uAC74%20%uC0AC%uB78C%uC774%20%uC77D%uC744%20%uB54C%20%uBFD0%uC774%uC9C0%2C%20%uBABD%uACE0%20%uB514%uBE44%uAC00%20%uC800%20%uB450%uAC8C%uB97C%20%uC5F0%uACB0%20%uC9C0%uC5B4%20%uAD00%uB9AC%uD558%uAC70%uB098%20%uADF8%uB7EC%uC9C0%uB294%20%uC54A%uB294%uB2E4.%20%uC804%uD600%20%uBB34%uAD00.%20%uADF8%uB0E5%20%uC774%uB984%uC5D0%20%uC810%uC744%20%uCC0D%uC744%20%uC218%20%uC788%uB294%20%uAC70%uB77C%uACE0%uB098%20%uD560%uAE4C.%0A%0A%23%23%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uC5D0%20%uCF5C%uB809%uC158%uC744%20%uADF8%uB8F9%uC9C0%uC5B4%20%uB193%uB294%uB2E4.%0A%uCEEC%uB809%uC158%uC740%20%uC54C%uACA0%uB2E4.%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uB294%20%uBB50%uB0D0%3F%20%uBABD%uACE0%20%uB514%uBE44%uB294%20%uB2E8%uC77C%20%uC778%uC2A4%uD134%uC2A4%uB97C%20%uAC00%uC9C0%uACE0%20%uC5EC%uB7EC%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uB97C%20%uD638%uC2A4%uD305%20%uD560%20%uC218%20%uC788%uB2E4.%20%uC774%uAC74%20%uBB50%20MYSQL%uB3C4%20%uADF8%uB807%uC9C0%20%uC54A%uC740%uAC00%3F%20%uC608%uB97C%20%uB4E4%uC5B4%20%uC6B0%uB9AC%20%uD300%20%uC774%uB984%uC774%20tworoom%uC774%uB77C%20Mysql%uACFC%20%uB611%uAC19%uC740%20%uCE5C%uCC99%28%3F%29%uC778%20MariaDB%uC5D0%20tworoom%uC774%uB780%20%uB514%uBE44%uB97C%20%uB9CC%uB4E4%uC5B4%20%uB450%uC5C8%uB2E4%20%uC0DD%uAC01%uD574%20%uBCF4%uC790.%20*%28%uC2E4%uC81C%uB85C%20%uC18C%uB9C8%uC5D0%uC11C%20%uC6B0%uB9AC%uD300%20%uC774%uB984%uC774%20tworoom%uC774%uACE0%20%uC2E4%uC81C%uB85C%20tworoom%20%uB514%uBE44%uAC00%20%uC788%uB2E4%21%29*%0A%0A%uCE5C%uAD6C%uAC00%20%uADFC%uB370%20%uD574%uCEE4%uD1A4%uC744%20%uD55C%uB2E8%uB2E4.%20%uB514%uBE44%uAC00%20%uD544%uC694%uD55C%uB370%20%uC5C6%uC5B4%uC11C%20%uB514%uBE44%uD558%uB098%uB9CC%20%uC784%uC2DC%uB85C%20%uB9CC%uB4E4%uC5B4%uB2EC%uB77C%uACE0%20%uBD80%uD0C1%uD574%uC11C%20apple%uC774%uB77C%uB294%20%uB514%uBE44%uB97C%20%uB9CC%uB4E4%uC5B4%uC92C%uB2E4%20%uCE58%uC790.%20%uAC00%uB2A5%uD55C%20%uC2DC%uB098%uB9AC%uC624%uC9C0%20%uC54A%uC740%uAC00%3F%20%uC774%uAC83%uACFC%20%uAC19%uC740%20%uB9E5%uB77D%uC774%uB2E4.%20%uBABD%uACE0%uB514%uBE44%uB3C4%20%uADF8%uB807%uAC8C%20%uC4F8%20%uC218%20%uC788%uB2E4%uB294%20%uAC70%uB2E4.%20%uAC01%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uB294%20%uB3C5%uB9BD%uC801%uC73C%uB85C%20%uCDE8%uAE09%uB418%uBA70%2C%20%uC790%uCCB4%uC801%uC778%20%uAD8C%uD55C%20%uC124%uC815%uC774%20%uAC00%uB2A5%uD558%uACE0%20%uB530%uB85C%20%uD30C%uC77C%uC2DC%uC2A4%uD15C%uC5D0%20%uD558%uB098%uC758%20%uD30C%uC77C%uB85C%20%uC800%uC7A5%uB41C%uB2E4.%20%uB530%uB77C%uC11C%2064%uBC14%uC774%uD2B8%20%uC774%uB0B4%uC758%20%uC774%uB984%uC774%20%uC124%uC815%20%uAC00%uB2A5%uD558%uACE0%2C%20%uBE48%20%uBB38%uC790%uC5F4%uC740%20%uBD88%uAC00%uB2A5%uD558%uBA70%20%uD30C%uC77C%20%uC2DC%uC2A4%uD15C%uC5D0%uC11C%20%uC9C0%uC6D0%uD558%uC9C0%20%uC54A%uB294%20%uD2B9%uC218%uAE30%uD638%uB294%20%uC0AC%uC6A9%uC774%20%uBD88%uAC00%uB2A5%uD558%uB2E4%21%20%uBB3C%uB860%20%uB300%uC18C%uBB38%uC790%uB3C4%20%uAD6C%uBCC4%uB41C%uB2E4.%20%uC0AC%uC9C4%uD30C%uC77C%uC774%uB098%20%uD14D%uC2A4%uD2B8%20%uD30C%uC77C%uB4F1%20%uC77C%uBC18%uC801%uC778%20%uD30C%uC77C%uC774%20%uADF8%uB807%uB4EF%uC774%21%0A%0A%23%23%uD2B9%uBCC4%uD55C%20%uB370%uC774%uD130%20%uBCA0%uC774%uC2A4%uB4E4%uC774%20%uC788%uB2E4.%0A%uC774%uBBF8%20%uBABD%uACE0%uB514%uBE44%uAC00%20%uD2B9%uC218%uD55C%20%uC6A9%uB3C4%uB85C%20%uC4F0%uB824%uACE0%20%uC608%uC57D%uD574%uB454%20%uB370%uC774%uD130%20%uBCA0%uC774%uC2A4%uB4E4%uB3C4%20%uC788%uB2E4.%20%0A-%20admin%20%3A%20%uADF8%uB0E5%20%uC598%uAC00%20%uC6B0%uB9AC%uAC00%20%uC544%uB294%20root%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uB2E4.%20%uC5EC%uAE30%uC5D0%20%uCD94%uAC00%uB41C%20%uC0AC%uC6A9%uC790%uB294%20%uC804%uCCB4%20%uBABD%uACE0%uB514%uBE44%20%uB0B4%uC758%20%uBAA8%uB4E0%20%uB370%uC774%uD130%uBCA0%uC774%uC2A4%uC5D0%20%uB300%uD558%uC5EC%20%uBAA8%uB4E0%20%uAD8C%uD55C%uC744%20%uD68D%uB4DD%uD55C%uB2E4.%20%uC11C%uBC84%20%uC804%uC5ED%uC5D0%20%uAC78%uCE5C%20%uBAA8%uB4E0%20%uBA85%uB839%uC5B4%uB294%20%uC774%uACF3%uC5D0%uC11C%uB9CC%20%uC2E4%uD589%20%uAC00%uB2A5%uD558%uB2E4.%20%uC608%uB97C%uB4E4%uC5B4%20%uB514%uBE44%20%uBAA9%uB85D%uC870%uD68C%uB098%20%uC2DC%uC791%uACFC%20%uC911%uC9C0%uB4F1%uB4F1.%0A-%20local%20%3A%20%uC774%20%uB514%uBE44%uB294%20%uD2B9%uC815%20%uC11C%uBC84%uC5D0%uB9CC%20%uBCF4%uAD00%uD558%uB294%20%uC815%uBCF4%uB97C%20%uB2F4%uB294%20%uACF3%uC774%uB2E4.%20%uBCF5%uC81C%uAC00%20%uBD88%uAC00%uB2A5%uD558%uB2E4.%0A-%20config%20%3A%20%uBABD%uACE0%uB514%uBE44%uB294%20%uC790%uCCB4%uB85C%20%uC0E4%uB529%uB97C%20%uC9C0%uC6D0%uD55C%uB2E4.%20%uC774%20%uB514%uBE44%uB294%20%uC0E4%uB4DC%20%uC815%uBCF4%uB97C%20%uC800%uC7A5%uD558%uB294%uB370%20%uC0AC%uC6A9%uB41C%uB2E4.%0A%0A%23%23%uC5EC%uAE30%uAE4C%uC9C0%21%0A%uACF5%uBD80%uB97C%20%uC624%uB79C%uB9CC%uC5D0%20%uD574%uC11C%20%uBA38%uB9AC%uAC00%20%uC544%uD504%uB2E4.%20%uBABD%uACE0%20%uB514%uBE44%uB97C%20%uB9C9%uC5F0%uD788%20%uC0AC%uC6A9%uB9CC%20%uD588%uC9C0%20%uC81C%uB300%uB85C%20%uC774%uD574%uD558%uB824%20%uD55C%20%uC801%uC774%20%uC5C6%uC5C8%uB294%uB370%20%uAE30%uBCF8%uC801%uC778%20%uAC83%uC744%20%uD6D1%uACE0%uB098%uB2C8%20%uC870%uAE08%20%uB354%20%uCE5C%uD574%uC9C4%20%uB290%uB08C%uC774%uB2E4.%20%uB354%20%uCE5C%uADFC%uD558%uACE0%20%uC88B%uAD6C%uB9CC.%20%uD544%uC790%20%uBFD0%uB9CC%20%uC544%uB2C8%uB77C%20%uBAA8%uB450%uAC00%20%uADF8%uB7AC%uC73C%uBA74%20%uC88B%uACA0%uB2E4%21%20%uB354%20%uC798%20%uC4F0%uC9C0%20%uBABB%uD574%20%uC544%uC27D%uB2E4.%0A%23%23%23*%uB2E4%uC74C%20%uC2DC%uAC04%uC5D0%uB294%20%uD29C%uD1A0%uB9AC%uC5BC%uC744%20%uAC19%uC774%20%uD574%uBCF4%uB3C4%uB85D%20%uD558%uC790%21*


comments powered by Disqus
태그, 트랙백, 검색 상자 토글
    1     >>