사이드 프로젝트 시작하는데 DB 뭐 쓸지부터 막혔습니다. 지금까지 회사에서 시키는 대로 MySQL만 써봐서 관계형은 어느 정도 익숙한데, 요즘 MongoDB 같은 NoSQL 얘기가 하도 많이 나와서 이번엔 한번 써볼까 하다가도 이걸 언제 써야 맞는 건지 판단이 안 서네요.
검색해보면 NoSQL은 스키마가 유연하고 수평 확장이 쉽고 빠르다 이런 말이 나오는데, 그럼 그냥 다 NoSQL 쓰면 되는 거 아닌가 싶다가도 그건 아닌 거 같고요. 반대로 관계형은 조인이 강력하고 트랜잭션이 확실하다는데 그럼 또 관계형이 나은가 싶고 계속 왔다갔다 합니다.
제가 만들려는 건 대략 이런 데이터예요.
- 사용자, 게시글, 댓글, 좋아요 (서로 관계가 꽤 있음)
- 사용자 행동 로그 (양이 엄청 많고 구조는 단순)
이런 경우엔 둘을 섞어 쓰는 게 맞나요? 아니면 하나로 통일하는 게 나은지 궁금합니다.
구체적으로 궁금한 점은요.
1. NoSQL이 유연하다는 게 정확히 무슨 뜻인가요? 관계형도 컬럼 추가하면 되는 거 아닌가요?
2. 조인이 필요한 데이터를 NoSQL에 넣으면 어떻게 되나요? 애초에 안 맞는 건가요?
3. 요즘은 관계형도 JSON 컬럼 지원한다던데 그럼 굳이 NoSQL 안 써도 되는 거 아닌가요?
선택 기준 잡는 데 도움 주시면 감사하겠습니다.