/pipeline-unsolved-list-APIs-project

db and server pipeline for saving APIs to database

Primary LanguagePython

๐Ÿ’พ APIs๊ฐ’์„ DB์— ๋„ฃ๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ


๋ฉ”์„ธ์ง€ ์†ก์‹  ๊ด€๋ จ

RabbitMQ์— ๋ฉ”์„ธ์ง€๋ฅผ ๋„ฃ๋Š”๋‹ค.

  • ํ์—๋Š” ์ค‘๋ณต๋œ ์ •๋ณด๊ฐ€ ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š”๋‹ค.
    • rabbitMQ-message-deduplication plugin ์‚ฌ์šฉํ•˜๊ธฐ
      • plugin queue bug๋กœ issue๊ฐ€ ์žˆ์Œ
    • ํ์—๋Š” ์œ ์ €์ด๋ฆ„-ํ‘ผ๋ฌธ์ œ์ˆ˜ ํ˜•ํƒœ๋กœ ๋ฉ”์„ธ์ง€๋ฅผ ๋„ฃ๋Š”๋‹ค.
  • db์™€ api์˜ ์œ ์ € ์ •๋ณด๋ฅผ ๋น„๊ตํ•ด ๊ฐฑ์‹ ํ•  ์œ ์ € ๋ชฉ๋ก์„ ์„ ์ •ํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

  • api์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜จ๋‹ค.
    • db์™€ api์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ํ†ต์ผํ•˜์—ฌ ๋น„๊ตํ•œ๋‹ค.
    • ๋น„๊ต ํ›„ api ์ •๋ณด๋ฅผ ํ†ตํ•ด db ์ •๋ณด๋ฅผ ์ตœ์‹ ํ™”ํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๋ณด ํ˜ธ์ถœ ์‹คํŒจ ์‹œ exception์„ ํ˜ธ์ถœ

๋ฉ”์„ธ์ง€ ์ˆ˜์‹  ๊ด€๋ จ

๋ฉ”์„ธ์ง€์—์„œ ๊ฐฑ์‹ ํ•  ์œ ์ € ์ด๋ฆ„์„ ๋ฐ›๋Š”๋‹ค.

  • 15๋ถ„์— 200๋ฒˆ์”ฉ ๊ฐฑ์‹ ์„ ์ง„ํ–‰ํ•œ๋‹ค.
  • ๋ฐ›์€ ์œ ์ €์˜ ํ‘ผ ๋ฌธ์ œ์ˆ˜์™€ db ์ •๋ณด๋ฅผ ๋น„๊ตํ•œ๋‹ค.
    • ์ž‘๊ฑฐ๋‚˜ ํฌ๋‹ค๋ฉด api๊ฐ’์„ ํ˜ธ์ถœํ•˜์—ฌ db๊ฐ’์„ ๊ฐฑ์‹ ํ•œ๋‹ค.
    • ๊ฐ™๋‹ค๋ฉด api๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ๊ฐฑ์‹ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋ฉ”์„ธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•œ ํ›„ ack๋ฅผ ๋ณด๋‚ธ๋‹ค.
    • ๊ฐฑ์‹  ํšŸ์ˆ˜ ๋ถ€์กฑ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ ack๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค.

โœ… ์ฒดํฌํ•  ๋กœ์ง ๋ชฉ๋ก

  • ์žฌ์ฑ„์ ์œผ๋กœ ์˜ค๋‹ต์ฒ˜๋ฆฌ ๋˜๋Š” ์ˆœ๊ฐ„์€ ์–ด์ฉŒ์ง€?
    • db์—์„œ api๊ฐ’ ์ฐจ์ด๋ฅผ ๊ตฌํ•ด์„œ delete๊ตฌ๋ฌธ์œผ๋กœ ๊ฐ€์•ผํ• ๊นŒ?
  • api๊ฐ’๊ณผ db๊ฐ’์„ ์–ด๋–ค ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ?
    • set์œผ๋กœ ๊ฒฐ์ •. (python์˜ set์€ hash ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๊ตฌํ˜„๋จ)
  • ์ž์ฃผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ •๋ณด๋ฅผ redis๋ฅผ ํ†ตํ•ด ์ €์žฅํ•˜๋ฉด ์ข‹์ง€ ์•Š์„๊นŒ?
  • 200๋ฒˆ ํ˜ธ์ถœํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์„๊นŒ?
  • print๋ฌธ๋“ค์„ log๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์—†์„๊นŒ?

๋ชจ๋ธ ๋””์ž์ธ

๋ชจ๋ธ ๊ฒฐ๊ณผ