๐Ÿ’ฟ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค 2

[MongoDB: ์˜ค๋ฅ˜] TypeError: Class constructor ObjectId cannot be invoked without 'new'

newMeetupId ์˜ค๋ฅ˜ ๋ฐœ์ƒ Next.js ๊ฐ•์˜๋ฅผ ๋“ฃ๋˜ ๋„์ค‘ MongoDB์˜ ์ปฌ๋ ‰์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ณผ์ •์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋งˆ์ฃผํ–ˆ์Šต๋‹ˆ๋‹ค. TypeError: Class constructor ObjectId cannot be invoked without 'new' MongoDB์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ์ž์ฒด์ ์œผ๋กœ ์ €์žฅ๋˜๋Š” _id ๊ฐ’์ด ์žˆ๋Š”๋ฐ, ์ด _id์˜ ํƒ€์ž…์ด ๋ฐ”๋กœ ObjectId์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜ ์ฝ”๋“œ๋ผ ์ž์„ธํžˆ ์ž‘์„ฑํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ findOne() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด _id ๊ฐ’์œผ๋กœ ํ•„ํ„ฐ๋งํ•œ ํ•˜๋‚˜์˜ ๋ฌธ์„œ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋Š” ๋„์ค‘ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, string ํ˜•์‹์œผ๋กœ ๋˜์–ด ์žˆ๋Š” id ๊ฐ’์„ ๋‹ด์€ ๋ณ€์ˆ˜ testId ๊ฐ€ ์žˆ์„ ๋•Œ findOne({ _id: ObjectId(testId) }); ์œ„์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘..

Facebook์˜ Key-Value DB, "Rocksdb"

3ํ•™๋…„ ํ•˜๊ณ„๋ฐฉํ•™ ๋•Œ Facebook์—์„œ ๊ฐœ๋ฐœํ•œ Key-Value ์ €์žฅ์†Œ์ธ RocksDB์— ๋Œ€ํ•ด์„œ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ต์ˆ˜๋‹˜๊ณผ ์กฐ๊ต๋‹˜์˜ ์ง€๋„ ํ•˜์— ์—ฌ๋Ÿฌ ํŒ€๋“ค์ด ๊ฐ์ž ๊ด€์‹ฌ ์žˆ๋Š” ์ฃผ์ œ๋กœ ์—ฐ๊ตฌํ•˜๊ณ , ๋งค์ฃผ ์„ธ๋ฏธ๋‚˜์—์„œ ๊ณต์œ ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋Š”๋ฐ ์Šค์Šค๋กœ ๊ณต๋ถ€๋„ ๋งŽ์ด ํ–ˆ๊ณ  ๋‹ค๋ฅธ ํŒ€์˜ ๋ฐœํ‘œ๋„ ๋“ค์„ ์ˆ˜ ์žˆ์–ด ์œ ์ตํ•œ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค! 2๋‹ฌ๊ฐ„ ์ง„ํ–‰๋œ ๋ถ„์„ ์Šคํ„ฐ๋””๋ผ ๊นŠ์€ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ์ง„ ๋ชปํ–ˆ๊ณ , ์ด๋ฏธ ์—ฐ๊ตฌํ•œ ๋‚ด์šฉ๋“ค์€ README์— ์ •๋ฆฌํ•ด๋’€์ง€๋งŒ ํšŒ๊ณ ํ•˜๋Š” ์˜๋ฏธ์—์„œ ์ •๋ฆฌํ•ด๋‘๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜ RocksDB RocksDB๋ž€ Google์˜ LevelDB๋ฅผ ๊ธฐ๋ฐ˜(fork)์œผ๋กœ Facebook์—์„œ ๊ฐœ๋ฐœํ•œ Key-Value store์ด๋ฉฐ, ์„œ๋ฒ„์™€ ๊ฐ™์ด ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•˜๊ณ  SSD์™€ ๊ฐ™์€ ์Šคํ† ๋ฆฌ์ง€์—์„œ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์„ฑ๋Šฅ์„ ์ตœ๋Œ€ํ•œ ์ด๋Œ์–ด ๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ..