강의

멘토링

로드맵

개발 · 프로그래밍

/

백엔드

가장 쉽고 깊게 알려주는 MongoDB 완벽 가이드 [ By. 비전공자 & Kakao 개발자 ]

이 강의는 MongoDB의 기본 원리와 실전 활용법을 정석적으로 다루는 마스터 클래스입니다. MongoDB의 핵심 개념부터 시작해 데이터베이스 설계, CRUD 연산, 인덱싱, 집계 파이프라인, 성능 최적화, 트랜잭션, 보안 등 실무에서 반드시 알아야 할 내용을 체계적으로 학습합니다. 초보자도 이해할 수 있도록 단계별로 설명하며, 실습과 예제를 통해 MongoDB의 동작 원리를 깊이 있게 익힐 수 있습니다. 실무에 강한 MongoDB 역량을 쌓고 싶은 개발자를 위한 최고의 입문 및 실전 강의입니다.

(4.2) 수강평 12개

수강생 82명

  • Hong
실습 중심
데이터
데이터베이스
데이터모델링
취업
JavaSQLMySQLMongoDBdatabase

먼저 경험한 수강생들의 후기

이런 걸 배울 수 있어요

  • MongoDB를 통한 스키마 설계 패턴

  • MongoDB에서의 5가지 인덱스 설계 방식

  • MongoDB에서의 Preference Option

  • RDBMS와 NoSQL의 스키마 설계 차이

  • MongoDB를 활용한 CRUD

  • MongoDB에서의 다양한 연산자

  • MongoDB에서의 대표적인 특징 [ 데이터 캐싱 처리 or 구조 ]

  • 샤딩, 메모리 맵핑, 레플리카 셋

  • 플랫폼에 따른 Schema 설계 예제

정석에 가깝고 기본에 충실한 최고의 MongoDB 마스터 클래스

여러분들은 Database를 선별하는 과정에 있어서 어떤 부분을 고려하시나요??

  • 높은 트래픽을 견딜 수 있는 확장성

  • 빠르고 안정적인 데이터 처리 성능

  • 다양한 데이터 구조에 대한 유연한 지원

  • 장애 발생 시에도 데이터의 안전성과 일관성 보장


이러한 요소들은 모두 현대적인 서비스에서 반드시 고민해야 하는 필수 조건입니다.

그리고 실제로 이 조건들을 만족시키기 위해 데이터베이스 구조와 활용 방법에 대해 깊이 있게 고민하게 됩니다. 그렇다면, 이런 다양한 요구사항을 모두 충족할 수 있는 데이터베이스는 무엇일까요? 바로, MongoDB입니다.


많은 자료와 강의들이 MongoDB를 소개할 때

  • 단순한 이론 설명에 그치거나,

  • 내부 구조가 '이렇게 되어 있다'는 수준의 개념적 정보에 머무르는 경우가 많습니다.


하지만 이 강의는 다릅니다.

  • 실제 플랫폼/서비스 환경에 맞춘 다양한 스키마 설계 예시를 제공

  • 실무에서 바로 활용할 수 있는 패턴과 노하우

  • 레플리카 셋, 샤딩, 메모리 맵핑 파일 등 필수 아키텍처를 실습

  • 심화된 과정으로 Cache와 현대적인 아키텍처의 CAP 이론

  • SQL에 대비되는 MongoDB의 CRUD

이론으로만 끝나지 않고, 실제 서비스에 바로 적용 가능한 기술을 여러분의 것으로 만들어 보세요. 함께 고민하고, 성장하는 시간이 될 것입니다.

MongoDB 왜 배워야 하지...?

MongoDB는 현대적인 프로그래밍을 지원하고 다양한 요구사항에 맞춰 유연하게 적용가능한 NoSQL database입니다.

📚동적 스키마(Dynamic Schema)


데이터 구조가 변경될 때마다 테이블을 Alter하지 않아도 되며, 새로운 필드를 자유롭게 추가하거나 일부 도큐먼트에만 다른 구조를 적용할 수 있습니다. 이로인해 빠른 프로토타이핑과 잦은 요구사항 변경에 최적화되어 있습니다.

📚Document-Oriented, BSON 기반 저장


MongoDB는 데이터를 JSON과 유사한 BSON(Binary JSON) 포맷의 “도큐먼트” 단위로 저장하게 되며, 각 도큐먼트는 독립적으로 구조를 가질 수 있어, RDBMS와 달리 컬럼 제약 없이 매우 유연하게 데이터를 다룰 수 있습니다.

📚복잡한 데이터 구조의 내장 지원 (Embedded Documents & Arrays)


배열, 중첩 도큐먼트(객체 속 객체), 리스트 등 복합 데이터 구조를 한 도큐먼트 안에 직접 저장 가능하기 떄문에, 조인 없이 관련 데이터를 한 번에 조회할 수 있어, 읽기 성능이 뛰어납니다.

📚강력한 수평적 확장성 (Built-in Sharding)


MongoDB는 기본적으로 샤딩(Sharding) 기능을 내장하고 있어, 데이터가 커지면 여러 서버에 자동 분산 저장이 가능합니다. 이로인해 대규모 트래픽과 데이터 볼륨을 다루는 서비스에서 수평 확장이 매우 쉽습니다.

강의에서 다루는 주요 내용

대표적인 주제에 대해서만 나열을 해두었고, 더 다양한 내용을 강의에 녹여놨으니, 이 강의를 통해서 함께 MongoDB의 매력에 빠지시길 바라겠습니다!

📚 MongoDB의 기본 개념과 아키텍처

NoSQL, Document-Oriented Database의 특징과 BSON 포맷과 Document 구조를 이해하며 RDBMS와의 차이를 현실적으로 이해합니다.

📚 인덱스와 성능 최적화

단일/복합/텍스트/TTL/멀티키 인덱스에 대해서 이해하고, 이를 기반으로 인덱스를 설계하는 패턴과 방식을 학습하시게 됩니다.

📚 MongoDB의 스키마 패턴

시스템 환경과 설계에 따라서 스키마를 구성하는 방법과 상황에 따라서 고려하기 좋은 여러가지 스미카 설계 패턴을 제공합니다.

📚Preference Option에 대한 이해 및 예외 처리 방법

MongoDB에서의 Preference Option을 이해하고, 이를 기반으로 분산 처리를 위해 적용하는 방법과 실무에서의 잘못된 케이스를 해결하는 방법을 예시로 제공하며 학습하시게 됩니다.

📚다중 Trasnaction 처리 방식 이해하기

MongoDB 4.0 이상에서는 MySQL과 동일하게 다중 트랜잭션을 지원하며 이를 통해 데이터의 일관성을 보장 할 수 있습니다. 하지만 MySQL과는 다른 동작 방식으로 인해 Write Conflict가 발생하는데, 이에 대해서 같이 학습하시게 됩니다.

📚MongoDB에서의 다양한 연산자

실전 쿼리 작성을 위해 또는 서비스의 데이터 제공을 위해 사용하는 여러가지 연산자에 대해서 학습하시게 되고, 이러한 연산자를 사용하였을 떄 주의해야 하는 부분과 고려해야하는 부분을 함께 학습하시게 됩니다.

📚MongoDB의 특징 및 장점

MongoDB에서의 성능을 위해 내부적으로 사용하는 구조와 고가용성을 위해 적용하고 있는 다양한 방식을 다루게 됩니다. 이를 통해서 MongoDB에서는 어떻게 고가용성과 성능을 보장하기 위한 설정이 있는지 학습하실 수 있습니다.

📚동시성 처리를 위한 Lock 매커니즘 [심화]

MongoDB는 내부적으로 동시다발적인 트래픽을 어떻게 핸들링 할까요?? 데이터의 일관성을 보장하기 위한 락 메커니즘과 MVCC를 예시를 통해 확인해보실 수 있습니다.

강의 내용 맛보기

📚'실무 예시로 보는 MongoDB 문서 설계' 수업 中

📚'인덱스 구조와 접두사 규칙' 수업 中

📚실전 쿼리 작성하기' 수업 中

중요하게 여기는 4가지 가치관

1. 강의는 인간적이어야 한다.

전문성이 떨어지는 모습으로 여겨질지라도 보여주기 편한 강의는 강의가 아니라고 생각합니다. 디버깅도 진행하는 시간또한 강의의 일부 입니다.

2. 실무에 특화되어야 한다

개발은 말로하는것이 아닙니다. 실제 구현을 해보고 동작하는 과정을 함께 하실 수 있습니다.

  • 기획자분들... 살려주세요..

3. 수강생 분들에게 도움이 되어야 한다.

제가 실무에서 적용해서 효과를 보았던 개념들을 녹이고자 하였습니다. 이 과정을 통해서 실무를 간접적으로 체험하시거나 실무자라면 실무 환경에 더 뛰어난 퍼포먼스를 보여주실 수 있습니다.

4. 강의가 끝이 아니다.

강의를 진행하시면서 질의응답을 많이 남겨주시기를 바랍니다. 이 강의는 저 혼자만의 지식을 통해서 만들어지지 않았습니다. 다양한 대기업 개발자분들의 의견또한 취합되어 있습니다.

  • 강의 완성에 도움을 주신분들에 대한 간단한 이력은 다음과 같습니다.


private val supported_one = "카카오페이 플랫폼 백엔드 개발자" private val supported_two = "토스증권 API 서버 개발자" private val supported_three = "비밀로 해달라는 유니콘 스타트업 서버 개발자"

이 강의를 만든 사람

  • 비전공자로 시작하였고, 현재는 판교에서 플랫폼 백엔드 개발자로 근무하고 있는 개발자

  • 현실적인 개발 방식과 개발론을 알려드리는 것이 목표이고, 혼자가 아닌 주변 능력있는 지인들과 함께 강의를 만드는 지식 공유자

  • 열심히 활동한 덕분에 인프런에서 인터뷰 진행해 본 지식 공유자

이 강의에 참여한 사람

  • 인서울 대학에서 컴퓨터 공학을 전공한 전공자

  • 제 1금융권을 거쳐 현재는 카카오에서 백엔드 및 데이터 엔지니어로 개발하고 있는 개발자

  • Hong과 함께 다양한 강의를 만들고 현실적인 지식과 환경을 제공하는데 이바지하고 있는 개발자

수강 전 참고 사항

실습 환경

  • Macos M3를 사용하여 촬영되었습니다.

  • Mongo Compass 툴을 활용하며 강의가 구성되었습니다.

  • Mongo Atlas를 이용하여 클러스터를 활용하였습니다.

  • 모니터링 시스템 아키텍처에 대해서는 구성하지 않습니다.

🚨 필수 참고 사항 🚨

강의에서 직접 작성하는 쿼리나 스키마는 노트에 같이 정리해두었습니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • MongoDB를 처음 접하거나 기초부터 제대로 배우고 싶은 분

  • 실무에서 MongoDB를 사용하는 개발자 또는 엔지니어

  • 메모리 맵핑 파일, 레플리카 셋, 샤딩 등 MongoDB의 구조에 대해 이해하고 싶은 분

  • RDBMS와 NoSQL의 차이를 이해하고, MongoDB를 업무에 적용하고 싶은 분

  • 효율적인 인덱스 설계와 쿼리 최적화에 관심 있는 분

  • 백엔드 개발자, 데이터 엔지니어 등 데이터 저장소와 분산 시스템에 관심 있는 모든 분

안녕하세요
입니다.

3,785

수강생

282

수강평

104

답변

4.6

강의 평점

18

강의

자기 소개

집에서 빈둥대다 개발에 흥미를 느껴 개발 공부를 시작하였고 현재는 판교에서 플랫폼 서버 개발을 담당하여 진행하고 있습니다.

 

제가 공부를 했던 방법과 실무에서 접하실 수 있는 여러가지 문제점들과 해결책을 여러분들에게 제공하고 싶어 지식공유자 활동을 이어나가고 있습니다.

 

강의는 오로지 저만의 지식을 통해 만들어지지 않습니다. 모든 강의는 함께하시는 분들이 계십니다.

 

지식공유자 경력

[前] 샌드박스 블록체인 개발자

[前] 넥슨 자회사 백엔드 개발자

[] 판교에서 고여가는 서버 개발자

 

인터뷰 이력

커리큘럼

전체

33개 ∙ (4시간 35분)

강의 게시일: 
마지막 업데이트일: 

수강평

전체

12개

4.2

12개의 수강평

  • sunrise21님의 프로필 이미지
    sunrise21

    수강평 2

    평균 평점 4.0

    수정됨

    3

    88% 수강 후 작성

    I had high expectations after seeing the course introduction. Perhaps that's why I was disappointed. If you just show one image and explain only verbally, it seems like an audio lecture would be sufficient. Even free YouTube lectures show dedication in their notes, but for a paid course to just pass like this, my disappointment is great. I recommend benchmarking other courses.

    • jhong
      지식공유자

      Hello kknd님, thank you for providing this feedback. First, I'd like to share some areas where my thoughts differ slightly!! Firstly, for the lecture content, I basically intended for users to refer to Inflearn's features. I thought it would be good to refer to this part since Inflearn already summarizes what I'm saying. Also, I believe the way to study is not by watching someone else's summary, but by summarizing it yourself while studying. I think it's meaningless if the listener doesn't understand, no matter how passionately I explain. From this perspective, I wanted those taking the course to understand what I'm saying and organize it in their own words. However, it seems the outcome differs from the expected effect I intended, which leaves me feeling regretful 😭😭 Of course, this lecture was also created by benchmarking other lectures. But I didn't want to create a lecture where everything is spoon-fed. Naturally, this type of format isn't of great help to those taking the course. Nevertheless, as you've given feedback, I will strive to provide more diverse satisfaction next time and accept the feedback. Thank you for taking the time to leave a review!! Have a great day!

    • You've left a reply. The misunderstanding about the intention has been cleared up, so I've revised the rating. However, it is still a bit hard to accept. From a student's perspective, the goal is fast learning, but with the current lecture style, learning will be slower. I have changed it to the average rating.

    • jhong
      지식공유자

      Thank you for your additional feedback like this. I think there are valid points in kknd's feedback as well 😭😭. Going forward, I will try to improve and prepare based on the feedback you've given. Have a great day!

  • ddddve님의 프로필 이미지
    ddddve

    수강평 9

    평균 평점 5.0

    5

    30% 수강 후 작성

    I am a server developer at Kakao who participated in creating this lecture together. I also mainly use MongoDB and utilize it as an attractive NoSQL. This time, the lecture content is a topic that mixes theoretical parts and practice. As such, I tried my best to help you understand MongoDB. You might think there aren't enough practical parts, but I believe that queries are something you really need to keep typing out yourself. Therefore, the recording focused mainly on which operators are available and the precautions associated with each operator. I hope this lecture, which I worked hard to create, will be of great help to those who watch it. Please show a lot of interest!! Have a good day~!

    • jhong
      지식공유자

      😆😆😆😆 Thank you very much for your help~ Let's do our best for the next lecture too!

  • boster62109528님의 프로필 이미지
    boster62109528

    수강평 9

    평균 평점 5.0

    5

    61% 수강 후 작성

    It's a lecture that mixes theoretical parts with some practical exercises. It seems to be roughly 60:40. Basically, it's very beneficial for beginners, but the advanced course seems to be a bit difficult. For me, it still seems like difficult content.

    • jhong
      지식공유자

      Hello Busta, thank you for leaving a good review. I think the topic of DB lectures is quite difficult. Even if I teach you a lot, you can't get familiar with it unless you actually try it yourself. Therefore, I think it would be great if you could try writing various queries based on the content I taught. Thank you!

  • changbinlim9346님의 프로필 이미지
    changbinlim9346

    수강평 2

    평균 평점 4.0

    5

    30% 수강 후 작성

    Good.

    • jhong
      지식공유자

      Hello Mr. Lim Changbin, thank you for leaving such a positive review. I will continue to work hard to provide more beneficial lectures in the future. Have a great day!!

  • ho6227574978님의 프로필 이미지
    ho6227574978

    수강평 9

    평균 평점 5.0

    5

    91% 수강 후 작성

    I enjoyed the good lecture.

    • jhong
      지식공유자

      Hello JIos Ho! Thank you so much for leaving such a great review!! I'll make sure to come back with even better lectures in the future!! Have a wonderful day!!

지식공유자의 깜짝할인 중 (1일 남음)

₩39

23%

₩64,900

Hong님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!