mongos, mongod에 대한 차이를 잘 모르겠어서, 저번에 mongodb 에 대한 이해가 부족했던 것 같아서 다시 한번 찾아보았다. 일단 mongodb 에 대한 개념은 https://velog.io/@wjdgkrud/MongoDB-vs-PostgreSQL ← 여기에 잘 설명을 해놓은 것 같아서 mongod, mongos 등에 대해서 알아보도록 하겠다.
몽고디비를 위한 데몬(멀티태스킹 운영 체제에서 사용자가 직접적으로 접근하지 않고, 백그라운드에서 여러 작업을 수행하는 프로그램)서버라고 볼 수 있다. 데이타 요청, 접근에 대해 핸들링/관리를 진행하고, 백그라운드 관리 작업을 수행해준다. 위에서 설명했듯이 사용자가 직접적으로 접근하지 않기 떄문에 mongoShell을 통해 요청문(쿼리 등)을 통해 접근하거나 몽고에서 제공하는 다른 방법들을 통해 접근이 가능하다.
DB데이터는 가지고 있지 않고 단순히 샤드에 접근할 수 있도록 하는 프록시역할을 한다. 샤드정보찾기위해 config server 라는 것을 두어 metadata 를 cache로 저장해둔다.
몽고디비 서버(mongod)와 상호작용하기 위한 쉘들이다. 기존에는 Mongo 로 사용되었으나 2020년 7월 mongosh 로 새로 바뀌어 나왔다. 어떤 것을 사용해도 상관없으나 새로운 쉘 기능들을 사용하기 위해서는 mongosh 를 사용하는 것이 좋다.
참고: https://velog.io/@sunnysideup0w0/MongoDB-Mongod
https://www.helenjoscott.com/2022/01/29/mongod-mongo-mongosh-mongos-what-now/
https://spidyweb.tistory.com/166