{"id":30812,"date":"2023-11-29T10:51:07","date_gmt":"2023-11-29T01:51:07","guid":{"rendered":"http:\/\/nori.company\/?p=30812"},"modified":"2023-11-29T10:51:07","modified_gmt":"2023-11-29T01:51:07","slug":"river-go-postgres-%ec%9a%a9-%eb%b9%a0%eb%a5%b4%ea%b3%a0-%eb%8b%a8%eb%8b%a8%ed%95%9c-job-queue","status":"publish","type":"post","link":"https:\/\/nori.company\/?p=30812","title":{"rendered":"River &#8211; Go + Postgres \uc6a9 \ube60\ub974\uace0 \ub2e8\ub2e8\ud55c Job Queue"},"content":{"rendered":"<ul>\n<li>\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ub370\uc774\ud130\uc640 \uc791\uc5c5 \ub300\uae30\uc5f4\uc5d0 \ub3d9\uc77c\ud55c \ub370\uc774\ud130\ubca0\uc774\uc2a4(Postgres)\ub97c \uc0ac\uc6a9\ud558\ub3c4\ub85d \uad8c\uc7a5. \uc758\uc874\uc131 \ucd5c\uc18c\ud654<\/li>\n<li>\ub2e4\ub978 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubcc0\uacbd\uacfc \ud568\uaed8 \ud2b8\ub79c\uc7ad\uc158 \ubc29\uc2dd\uc73c\ub85c \uc791\uc5c5\uc744 \ud050\uc5d0 \ub300\uae30\uc2dc\ud0b4\uc73c\ub85c\uc368 \ubd84\uc0b0 \uc2dc\uc2a4\ud15c \uc804\uccb4 \ud074\ub798\uc2a4\uc758 \ubb38\uc81c\ub97c \ubc29\uc9c0\ud560 \uc218 \uc788\uc74c<\/li>\n<li>Transactional enqueueing : \uc791\uc5c5\uc740 \ud2b8\ub79c\uc7ad\uc158\uc774 \ucee4\ubc0b&#8230;\n<p>\ucd9c\ucc98 : <a href=\"https:\/\/news.hada.io\/topic?id=12078\" target=\"_blank\" rel=\"noopener\">GeekNews &#8211; \uac1c\ubc1c\/\uae30\uc220\/\uc2a4\ud0c0\ud2b8\uc5c5 \ub274\uc2a4 \uc11c\ube44\uc2a4 <\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ub370\uc774\ud130\uc640 \uc791\uc5c5 \ub300\uae30\uc5f4\uc5d0 \ub3d9\uc77c\ud55c \ub370\uc774\ud130\ubca0\uc774\uc2a4(Postgres)\ub97c \uc0ac\uc6a9\ud558\ub3c4\ub85d \uad8c\uc7a5. \uc758\uc874\uc131 \ucd5c\uc18c\ud654 \ub2e4\ub978 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubcc0\uacbd\uacfc \ud568\uaed8 \ud2b8\ub79c\uc7ad\uc158 \ubc29\uc2dd\uc73c\ub85c \uc791\uc5c5\uc744 \ud050\uc5d0 \ub300\uae30\uc2dc\ud0b4\uc73c\ub85c\uc368 \ubd84\uc0b0&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[138],"tags":[163],"class_list":["post-30812","post","type-post","status-publish","format-standard","hentry","category-it","tag-geeknews-----"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pa3PO4-80Y","jetpack-related-posts":[{"id":28700,"url":"https:\/\/nori.company\/?p=28700","url_meta":{"origin":30812,"position":0},"title":"Payload 2.0 &#8211; Headless CMS \uc624\ud508\uc18c\uc2a4","author":"\ub178\ub9ac\ucef4\ud37c\ub2c8","date":"2023\ub144 10\uc6d4 13\uc77c","format":false,"excerpt":"\uc6f9\uc0ac\uc774\ud2b8, \uc6f9\uc571, \ub124\uc774\ud2f0\ube0c \uc571\ub4f1\uc744 \uc704\ud55c Headless CMS Postgres \uc9c0\uc6d0 (1.0\uc740 MongoDB) \ubc0f Drizzle ORM \uc801\uc6a9 Adapter \ud328\ud134 : \ubaa8\ub4e0 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc778\ud130\ub799\uc158\uacfc \ubc88\ub4e4\ub7ec, \ud14d\uc2a4\ud2b8 \uc5d0\ub514\ud130\uc5d0 \uc801\uc6a9 \uc644\uc804\ud55c Migration \uae30\ub2a5 \uc81c\uacf5 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ud2b8\ub79c\uc7ad\uc158 \uc9c0\uc6d0 Vite \uc9c0\uc6d0(\uc5b4\ub311\ud130... \ucd9c\ucc98 : GeekNews - \uac1c\ubc1c\/\uae30\uc220\/\uc2a4\ud0c0\ud2b8\uc5c5 \ub274\uc2a4 \uc11c\ube44\uc2a4","rel":"","context":"&quot;IT&quot;\uc5d0\uc11c","block_context":{"text":"IT","link":"https:\/\/nori.company\/?cat=138"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28346,"url":"https:\/\/nori.company\/?p=28346","url_meta":{"origin":30812,"position":1},"title":"Pgroll: Postgres\ub97c \uc704\ud55c \uc81c\ub85c \ub2e4\uc6b4\ud0c0\uc784, \ub418\ub3cc\ub9b4 \uc218 \uc788\ub294 \uc2a4\ud0a4\ub9c8 \ub9c8\uc774\uadf8\ub808\uc774\uc158","author":"\ub178\ub9ac\ucef4\ud37c\ub2c8","date":"2023\ub144 10\uc6d4 5\uc77c","format":false,"excerpt":"\uc774 \uae30\uc0ac\uc5d0\uc11c\ub294 PostgreSQL\uc744 \uc704\ud55c \uc548\uc804\ud558\uace0 \ub418\ub3cc\ub9b4 \uc218 \uc788\ub294 \uc2a4\ud0a4\ub9c8 \ub9c8\uc774\uadf8\ub808\uc774\uc158\uc744 \uc704\ud574 \uc124\uacc4\ub41c \uc0c8\ub85c\uc6b4 \uba85\ub839 \uc904 \ub3c4\uad6c\uc778 pgroll\uc744 \uc18c\uac1c\ud569\ub2c8\ub2e4. \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc2a4\ud0a4\ub9c8 \ub9c8\uc774\uadf8\ub808\uc774\uc158\uc740 \uc2dc\uc2a4\ud15c \uc5c5\ub370\uc774\ud2b8\uc5d0 \ud544\uc218\uc801\uc774\uc9c0\ub9cc, \uc7a0\uc7ac\uc801\uc778 \ud30c\uad34\uc801 \ubcc0\ud654, \ubcf5\uc7a1\ud55c \ub2e4\ub2e8\uacc4 \ud504\ub85c\uc138\uc2a4, \uc608\uae30\uce58 \uc54a\uc740 \ub370\uc774... \ucd9c\ucc98 : GeekNews - \uac1c\ubc1c\/\uae30\uc220\/\uc2a4\ud0c0\ud2b8\uc5c5 \ub274\uc2a4 \uc11c\ube44\uc2a4","rel":"","context":"&quot;IT&quot;\uc5d0\uc11c","block_context":{"text":"IT","link":"https:\/\/nori.company\/?cat=138"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":25066,"url":"https:\/\/nori.company\/?p=25066","url_meta":{"origin":30812,"position":2},"title":"Kanel &#8211; PostgresSQL \uc5d0\uc11c Typescript types \uc0dd\uc131\ud558\uae30","author":"\ub178\ub9ac\ucef4\ud37c\ub2c8","date":"2023\ub144 7\uc6d4 18\uc77c","format":false,"excerpt":"\uc2e4\ud589\uc911\uc778 PostgreSQL DB\uc5d0\uc11c \uc2a4\ud0a4\ub9c8\ub97c \uc77d\uc5b4\uc11c \ud0c0\uc785\uc744 \uc0dd\uc131\ud558\ub294 Reverse ORM \uac19\uc740 \ub3c4\uad6c ORM\uc744 \uc2eb\uc5b4\ud558\uc9c0\ub9cc \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc811\uadfc \ucf54\ub4dc\uc5d0 \ub300\ud55c \uc778\ud154\ub9ac\uc13c\uc2a4 \ubc0f \ud0c0\uc785 \uccb4\ud0b9\uc744 \uc6d0\ud558\ub294 \uc0ac\ub78c\uc744 \uc704\ud55c \uac83 Postgres \uc811\uc18d \uc815\ubcf4\uc640 DB\ub9cc \uc8fc\uba74 \ub3d9\uc791 $ npx kanel -d postgresql:\/\/localhost:5432\/acm... \ucd9c\ucc98 : GeekNews - \uac1c\ubc1c\/\uae30\uc220\/\uc2a4\ud0c0\ud2b8\uc5c5 \ub274\uc2a4 \uc11c\ube44\uc2a4","rel":"","context":"&quot;IT&quot;\uc5d0\uc11c","block_context":{"text":"IT","link":"https:\/\/nori.company\/?cat=138"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27950,"url":"https:\/\/nori.company\/?p=27950","url_meta":{"origin":30812,"position":3},"title":"Postgres\uc5d0\uc11c \ubcc0\ud654\ub97c \ud3ec\ucc29\ud558\ub294 \ubc29\ubc95\ub4e4","author":"\ub178\ub9ac\ucef4\ud37c\ub2c8","date":"2023\ub144 9\uc6d4 24\uc77c","format":false,"excerpt":"\uae30\uc0ac\ub294 Postgres \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 \ubcc0\ud654\ub97c \ud3ec\ucc29\ud558\ub294 \ub2e4\uc591\ud55c \ubc29\ubc95\uc5d0 \ub300\ud574 \ub17c\uc758\ud569\ub2c8\ub2e4. Sequin\uc774\ub77c\ub294 \ud68c\uc0ac\ub294 Salesforce\uc640 HubSpot\uacfc \uac19\uc740 \uc81c3\uc790 API\ub85c\ubd80\ud130 \ub370\uc774\ud130\ub97c \ub3d9\uae30\ud654\ud558\uc5ec \uac1c\ubc1c\uc790\ub4e4\uc774 \uadf8\ub4e4\uc758 Postgres \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec API \ub370\uc774\ud130\ub97c \uad6c\ucd95\ud558\uac8c \ud569\ub2c8\ub2e4. Postgres\ub294 \ud14c\uc774\ube14 \ubcc0\ud654\uc5d0 \uae30... \ucd9c\ucc98 : GeekNews - \uac1c\ubc1c\/\uae30\uc220\/\uc2a4\ud0c0\ud2b8\uc5c5 \ub274\uc2a4 \uc11c\ube44\uc2a4","rel":"","context":"&quot;IT&quot;\uc5d0\uc11c","block_context":{"text":"IT","link":"https:\/\/nori.company\/?cat=138"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28008,"url":"https:\/\/nori.company\/?p=28008","url_meta":{"origin":30812,"position":4},"title":"Postgres \ud050 \uae30\uc220 \uc120\ud0dd","author":"\ub178\ub9ac\ucef4\ud37c\ub2c8","date":"2023\ub144 9\uc6d4 25\uc77c","format":false,"excerpt":"\"Postgres \ud050 \uae30\uc220 \uc0ac\uc6a9\uc758 \uc7a5\uc810\uc5d0 \ub300\ud55c \uae30\uc0ac, \ub2e4\ub978 '\ud655\uc7a5 \uac00\ub2a5\ud55c' \ud050 \uae30\uc220\ub4e4\uc5d0 \ube44\ud574 \uc6b0\uc6d4\ud558\ub2e4\ub294 \uc8fc\uc7a5\" \"Postgres \ud050 \uae30\uc220\uc774 \uc8fc\ub958\uac00 \uc544\ub2cc \uc774\uc720: \ub2e4\ub978 \ud050 \uae30\uc220\ub4e4\uc774 \ub354 \ud070 \ud655\uc7a5\uc131\uc744 \uc81c\uacf5\ud55c\ub2e4\ub294 \uc77c\ubc18\uc801\uc778 \uc0dd\uac01\" \"webapp.io\uc640 \uac19\uc740 \ud68c\uc0ac\ub4e4\uc774 \uc6b4\uc601\uc758 \ub2e8\uc21c\uc131, \uc720\uc9c0 \ubcf4\uc218\uc131... \ucd9c\ucc98 : GeekNews - \uac1c\ubc1c\/\uae30\uc220\/\uc2a4\ud0c0\ud2b8\uc5c5 \ub274\uc2a4 \uc11c\ube44\uc2a4","rel":"","context":"&quot;IT&quot;\uc5d0\uc11c","block_context":{"text":"IT","link":"https:\/\/nori.company\/?cat=138"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28586,"url":"https:\/\/nori.company\/?p=28586","url_meta":{"origin":30812,"position":5},"title":"pg_bm25 &#8211; Postgres\uc5d0\uc11c Elastic \uc218\uc900\uc758 \ud488\uc9c8\uc744 \uc81c\uacf5\ud558\ub294 Full-Text \uac80\uc0c9 \ud655\uc7a5","author":"\ub178\ub9ac\ucef4\ud37c\ub2c8","date":"2023\ub144 10\uc6d4 11\uc77c","format":false,"excerpt":"Rust \uae30\ubc18\uc758 Postgres \ud655\uc7a5\uc73c\ub85c Full Text \uac80\uc0c9\uc744 \ud5a5\uc0c1\uc2dc\ucf1c\uc90c \ucd5c\uc2e0 \uac80\uc0c9 \uc5d4\uc9c4\ub4e4\uc774 \uc774\uc6a9\ud558\ub294 BM25 \uc54c\uace0\ub9ac\ub4ec(\uac80\uc0c9 \uacb0\uacfc\uc758 \uad00\ub828\uc131 \uc810\uc218\ub97c \uacc4\uc0b0) \uae30\ubc18 \ud604\uc7ac Postgres \uac00 \uc0ac\uc6a9\ud558\ub294 tsvector \uae30\ubc18 \uac80\uc0c9\uc740 2\uac1c\uc758 \ubb38\uc81c\uac00 \uc788\uc74c \uc131\ub2a5 : \ub300\uaddc\ubaa8 \ud14c\uc774\ube14\uc5d0\uc11c\uc758 \uac80\uc0c9\uc774 \ub290\ub9bc \uae30\ub2a5 : \ud37c\uc9c0... \ucd9c\ucc98 : GeekNews - \uac1c\ubc1c\/\uae30\uc220\/\uc2a4\ud0c0\ud2b8\uc5c5 \ub274\uc2a4 \uc11c\ube44\uc2a4","rel":"","context":"&quot;IT&quot;\uc5d0\uc11c","block_context":{"text":"IT","link":"https:\/\/nori.company\/?cat=138"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/nori.company\/index.php?rest_route=\/wp\/v2\/posts\/30812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nori.company\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nori.company\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nori.company\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nori.company\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=30812"}],"version-history":[{"count":1,"href":"https:\/\/nori.company\/index.php?rest_route=\/wp\/v2\/posts\/30812\/revisions"}],"predecessor-version":[{"id":30813,"href":"https:\/\/nori.company\/index.php?rest_route=\/wp\/v2\/posts\/30812\/revisions\/30813"}],"wp:attachment":[{"href":"https:\/\/nori.company\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=30812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nori.company\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=30812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nori.company\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=30812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}