{"info":{"_postman_id":"d400ba67-257e-4e1c-901e-70f2c777d226","name":"Local API","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"31047574","collectionId":"d400ba67-257e-4e1c-901e-70f2c777d226","publishedId":"2s9YsDmb8v","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-01-02T06:05:49.000Z"},"item":[{"name":"auth&member","item":[{"name":"회원 로그인(github)","id":"04dec5d3-0b0d-491e-9dab-3e7688746d21","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"code\": \"fc14f2abfb93081c3288\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/auth/login","urlObject":{"path":["api","auth","login"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"dbd2b8fa-11ca-4da2-b382-bee815288235","name":"200","originalRequest":{"method":"POST","header":[{"key":"code","value":"","type":"text","disabled":true}],"body":{"mode":"raw","raw":"{\n    \"code\": \"fc14f2abfb93081c3288\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 15 Nov 2023 08:32:32 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"new-pow\",\n        \"profile\": \"https://avatars.githubusercontent.com/u/103120173?v=4\",\n    }\n}"}],"_postman_id":"04dec5d3-0b0d-491e-9dab-3e7688746d21"},{"name":"회원 이름으로 검색","id":"6df5bd8a-8898-48ff-9fdc-c416f04eb1ec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/members?name=이새힘","urlObject":{"path":["api","members"],"host":["http://localhost:8080"],"query":[{"key":"name","value":"이새힘"}],"variable":[]}},"response":[{"id":"eb5cfa13-7425-4281-b332-87d14d42ef39","name":"200 검색 결과 없음","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/members?name=이새힘","protocol":"http","host":["localhost"],"port":"8080","path":["api","members"],"query":[{"key":"name","value":"이새힘"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Fri, 17 Nov 2023 01:58:53 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": []\n}"},{"id":"5d413eca-0fef-4cb1-a649-0bcfd5fdb52b","name":"200 검색 결과 있음","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/api/members?name=new-pow","protocol":"http","host":["localhost"],"port":"8080","path":["api","members"],"query":[{"key":"name","value":"new-pow"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Fri, 17 Nov 2023 01:59:38 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"new-pow\",\n            \"email\": \"i.newpow.dev@gmail.com\",\n            \"profileImageUrl\": \"https://avatars.githubusercontent.com/u/103120173?v=4\"\n        }\n    ]\n}"}],"_postman_id":"6df5bd8a-8898-48ff-9fdc-c416f04eb1ec"}],"id":"45ac6649-018a-43e3-855e-8bbb7fece094","_postman_id":"45ac6649-018a-43e3-855e-8bbb7fece094","description":""},{"name":"admin","item":[{"name":"관리자 로그인","id":"f5cbef26-a44f-4764-b9c3-f5571231376d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"code\": \"파리지옥-이린-감자-에이프-지니-듀이_20230316\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/admin/login","urlObject":{"path":["api","admin","login"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"ef83a944-2c02-4131-93cc-19d919c5d898","name":"200","originalRequest":{"method":"POST","header":[{"key":"code","value":"","type":"text","disabled":true}],"body":{"mode":"raw","raw":"{\n    \"code\": \"fc14f2abfb93081c3288\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 15 Nov 2023 08:32:32 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"admin\",\n        \"profile\": \"https://avatars.githubusercontent.com/u/86359180?v=4\"\n    }\n}"},{"id":"44a3de84-c82a-4533-bf8a-ed9db649442f","name":"관리자 로그인","originalRequest":{"method":"POST","header":[{"key":"code","value":"","type":"text","disabled":true}],"body":{"mode":"raw","raw":"{\n    \"code\": \"파리지옥-이린-감자-에이프-지니-듀이_20230316\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/admin/login"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Set-Cookie","value":"JSESSIONID=NjM2ZDVjYmYtYzIzMy00ZGM2LWFkNTItNGU4M2I0MTIxMzUw; Path=/; HttpOnly; SameSite=Lax"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Tue, 21 May 2024 22:28:55 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"admin\",\n        \"profile\": \"https://avatars.githubusercontent.com/u/86359180?v=4\"\n    }\n}"}],"_postman_id":"f5cbef26-a44f-4764-b9c3-f5571231376d"},{"name":"게시글 수집 시작","id":"cd907cfe-44cf-4630-9335-e61e3bac547a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"url":"http://localhost:8080/api/admin/post-collection/start","urlObject":{"path":["api","admin","post-collection","start"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"cd907cfe-44cf-4630-9335-e61e3bac547a"},{"name":"게시글 수집 중지","id":"64c43a5a-443d-49fd-b911-de188d78abf5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"url":"http://localhost:8080/api/admin/post-collection/stop","urlObject":{"path":["api","admin","post-collection","stop"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"64c43a5a-443d-49fd-b911-de188d78abf5"},{"name":"게시글 수집 한 사이클 실행","id":"f4aa1381-0ccc-4b6c-ad47-73d97955ae9b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"batchSize\": 1255\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/admin/post-collection/cycle","urlObject":{"path":["api","admin","post-collection","cycle"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"f4aa1381-0ccc-4b6c-ad47-73d97955ae9b"},{"name":"게시글 수집 배치 사이즈 변경","id":"1c1bf98e-6da1-444e-b0c5-d55b8332034d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"batchSize\": 28\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/admin/post-collection/batch-size","urlObject":{"path":["api","admin","post-collection","batch-size"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"1c1bf98e-6da1-444e-b0c5-d55b8332034d"},{"name":"게시글 수집 딜레이 변경","id":"9561f586-4f52-4546-aaae-b9e68db205f9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"delay\": 50000\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/admin/post-collection/delay","urlObject":{"path":["api","admin","post-collection","delay"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"9561f586-4f52-4546-aaae-b9e68db205f9"},{"name":"게시글 수집 코어 스레드 수 변경","id":"571f7558-715d-4796-a34c-3a93105bd45a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"coreSize\": 2\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/admin/post-collection/core-size","urlObject":{"path":["api","admin","post-collection","core-size"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"571f7558-715d-4796-a34c-3a93105bd45a"}],"id":"94e3a1e1-74e5-4e43-9508-65f8def7540c","_postman_id":"94e3a1e1-74e5-4e43-9508-65f8def7540c","description":""},{"name":"folder","item":[{"name":"구독 폴더 생성","id":"04381d12-3125-450e-a5c5-61f0ee789dfc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\":\"testFolder\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders","urlObject":{"path":["api","folders"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"1cbf64b2-7ad8-4227-820a-503d837ffaa1","name":"200","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\":\"test\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Fri, 17 Nov 2023 15:09:12 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"folderId\": 3,\n        \"folderName\": \"test\"\n    }\n}"},{"id":"a98f13af-9b88-4dce-88b3-cb0115137a8c","name":"400 공백으로 요청할 때","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\":\"\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Fri, 17 Nov 2023 15:44:31 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"name\",\n    \"message\": \"공백은 안됩니다.\"\n}"},{"id":"9e86253c-e5ba-40da-93ce-69b7eee1ae15","name":"401 로그인이 안되어 있음","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\":\"\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"plain","header":[{"key":"Accept-Charset","value":"utf-8"},{"key":"Content-Length","value":"51"},{"key":"Date","value":"Fri, 17 Nov 2023 16:01:37 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n\"errorCode\":\"login\",\n\"message\":\"Not logged in\"\n}\n"},{"id":"a4e30e67-2240-4640-8424-3bb59540d76e","name":"400 너무 긴 이름","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\":\"ㅣㅏㅁ넝리;ㅏㅓㅁ;ㅣ다ㅓ기ㅏㅓㅏㅍ머농라ㅓㅣ힌ㅁ;asdasdfadsfadsfauhlgfkhlksadhflkjwehkfjhdslkjfhlkdshflkjasdnvlkjnalkdfhkjahsflkjwen,jfnkjsdnvkjjshadkjfhjkasdfhkwenfkjshkjvhkjsakejbfrjkhflkvfauhlgfkhlksadhflkjwehkfjhdslkjfhlkdshflkjasdnvlkjnalkdfhkjahsflkjwen,jfnkjsdnvkjjshadkjfhjkasdfhkwenfkjshkjvhkjsakejbfrjkhflkvfauhlgfkhlksadhflkjwehkfjhdslkjfhlkdshflkjasdnvlkjnalkdfhkjahsflkjwen,jfnkjsdnvkjjshadkjfhjkasdfhkwenfkjshkjvhkjsakejbfrjkhflkvhaf;lkwaej;lkfjlaskdjfl;kj;asd\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Fri, 17 Nov 2023 16:04:25 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"name\",\n    \"message\": \"크기가 0에서 255 사이여야 합니다\"\n}"}],"_postman_id":"04381d12-3125-450e-a5c5-61f0ee789dfc"},{"name":"구독 폴더 이름 변경","id":"245fb7e7-bd99-4f15-ab4f-bd0ad9a9e6e9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"name\":\"newFolder\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1","urlObject":{"path":["api","folders","1"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"090b113c-50a9-4b30-b810-85ba105f014a","name":"200","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"name\":\"newFolder\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 20 Nov 2023 05:01:52 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"folderId\": 1,\n        \"folderName\": \"newFolder\"\n    }\n}"},{"id":"cf5457b9-1243-4360-97c2-a039fb8036e7","name":"400 해당하는 id의 folder가 없을 때","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"name\":\"newFolder\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/10"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 20 Nov 2023 07:10:59 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"Folder\",\n    \"message\": \"💣 No such domain = Folder\"\n}"},{"id":"35ea99c0-8236-4d8b-9d1c-1c6de7b8d151","name":"401 로그인 안되어 있음","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"name\":\"newFolder\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Set-Cookie","value":"JSESSIONID=ZDMxODYwN2YtZThiNi00YzQ2LTg1MmYtNmM0YjdiMDIyNDg3; Path=/; HttpOnly; SameSite=Lax"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 20 Nov 2023 06:26:31 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"login\",\n    \"message\": \"로그인이 필요한 기능입니다.\"\n}"},{"id":"b3341b66-fb4a-4a79-a2e3-b07798a48a5c","name":"401 다른 사람의 폴더일 때","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"name\":\"newFolder\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 20 Nov 2023 06:34:56 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"folder_1\",\n    \"message\": \"💣 Not Belong to Login Member = folder_1\"\n}"}],"_postman_id":"245fb7e7-bd99-4f15-ab4f-bd0ad9a9e6e9"},{"name":"구독 폴더 삭제","id":"41af7fc8-d96e-47f1-ae34-6f5f264662c5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/4","urlObject":{"path":["api","folders","4"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"cf6379a9-c03a-43c8-a650-17ff3122cd11","name":"204","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/2"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Content-Type","value":"application/json"},{"key":"Date","value":"Mon, 20 Nov 2023 11:47:00 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":null},{"id":"53ad6464-daae-4df9-a1bc-bddfbcc36835","name":"400 해당하는 폴더 없음","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 20 Nov 2023 11:46:43 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"Folder\",\n    \"message\": \"💣 No such domain = Folder\"\n}"},{"id":"1c1668be-4803-4be6-a8cd-a3d6c55b1088","name":"401 다른 사람의 폴더일 때","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/3"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 20 Nov 2023 11:47:41 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"folder_3\",\n    \"message\": \"💣 Not Belong to Login Member = folder_3\"\n}"}],"_postman_id":"41af7fc8-d96e-47f1-ae34-6f5f264662c5"},{"name":"구독 폴더 리스트 조회","id":"c728e7e1-1aeb-4b8e-beb4-47809aaf045b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/folders","urlObject":{"path":["api","folders"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"35c738b1-74aa-47a6-ae67-ad9373b89035","name":"200 구독 폴더 리스트 조회","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/folders"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"c728e7e1-1aeb-4b8e-beb4-47809aaf045b"}],"id":"95487489-5e5c-4221-8db4-fcf8eb397ff1","_postman_id":"95487489-5e5c-4221-8db4-fcf8eb397ff1","description":""},{"name":"shared folder","item":[{"name":"폴더에 회원 초대","id":"1d7f51b5-56b5-4ec0-9041-ad413b137450","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"inviteeId\":2\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/2/members","urlObject":{"path":["api","folders","2","members"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"5c39df4f-3f00-4025-a8d4-8cca8a017a74","name":"200","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"inviteeId\":2\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1/members"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Tue, 21 Nov 2023 06:47:23 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": \"success\"\n}"},{"id":"84acfa07-586b-45ea-b324-2827e43502a6","name":"400 이미 초대되어 있을 때","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"inviteeId\":2\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/2/members"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 22 Nov 2023 02:11:34 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"input error\",\n    \"message\": \"이미 초대된 폴더입니다.\"\n}"},{"id":"ee7d7a11-e1fe-49bf-a971-3a8b36d34b48","name":"401 초대 권한이 없을 때","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"inviteeId\":2\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1/members"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 22 Nov 2023 02:08:40 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"login\",\n    \"message\": \"💣 Not Belong to Login Member = folder_1\"\n}"}],"_postman_id":"1d7f51b5-56b5-4ec0-9041-ad413b137450"},{"name":"폴더에 회원 추방","id":"0b2c3bdb-43af-4932-a623-863343cb4376","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/2/members/1","urlObject":{"path":["api","folders","2","members","1"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"300d1d12-4baa-42b4-864d-0ef3d30f720b","name":"200","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1/members/2"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 22 Nov 2023 02:31:20 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": \"success\"\n}"},{"id":"3bc19828-4d3b-462a-8a98-1b0316c2cd1a","name":"401 추방 권한이 없을 때","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1/members/2"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 22 Nov 2023 02:31:45 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"login\",\n    \"message\": \"💣 Not Belong to Login Member = folder_1\"\n}"},{"id":"f4dcbe45-04ae-4693-bf3d-49c96c4c3e10","name":"400 폴더에 추가되어있지 않은 멤버 삭제시","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/2/members/2"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 22 Nov 2023 02:38:53 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"errorCode\": \"input error\",\n    \"message\": \"초대되지 않은 멤버를 삭제할 수 없습니다.\"\n}"}],"_postman_id":"0b2c3bdb-43af-4932-a623-863343cb4376"},{"name":"폴더에서 떠나기","id":"1265c2fe-49c1-40a9-a5f1-4a8483a4adcb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/folders/4/members/me","urlObject":{"path":["api","folders","4","members","me"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"1265c2fe-49c1-40a9-a5f1-4a8483a4adcb"}],"id":"0a370112-b85c-452e-870a-1c6290b5aee0","_postman_id":"0a370112-b85c-452e-870a-1c6290b5aee0","description":""},{"name":"subscribe","item":[{"name":"폴더에 블로그 추가하기 (폴더 접근 권한이 있는 모두)","id":"8aa8ce9d-c6df-4e1f-b20f-7ebc3b7eb41a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"blogUrl\": \"https://v2.velog.io/rss/jinny-l\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1/rss","urlObject":{"path":["api","folders","1","rss"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"8aa8ce9d-c6df-4e1f-b20f-7ebc3b7eb41a"},{"name":"폴더에 블로그 삭제하기 (폴더 접근 권한이 있는 모두)","id":"bfd2c67d-2ea3-47c8-8824-85124a1a60b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/folders/1/rss/1","urlObject":{"path":["api","folders","1","rss","1"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"bfd2c67d-2ea3-47c8-8824-85124a1a60b8"},{"name":"구독한 블로그 출력","id":"8ae5f6cc-1312-4ad4-a7a5-6a220eb56510","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/folders/1/rss","urlObject":{"path":["api","folders","1","rss"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"8ae5f6cc-1312-4ad4-a7a5-6a220eb56510"}],"id":"175a6619-6ab0-448f-bb4a-7e2aa68ff3fd","_postman_id":"175a6619-6ab0-448f-bb4a-7e2aa68ff3fd","description":""},{"name":"post","item":[{"name":"블로그 게시글 목록 불러오기","id":"3b5984e7-ccc6-40f3-99c7-45735f8835e7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/subscribes/1/posts","urlObject":{"path":["api","subscribes","1","posts"],"host":["http://localhost:8080"],"query":[{"disabled":true,"key":"keyword","value":"회고"},{"disabled":true,"key":"read","value":"true"},{"disabled":true,"key":"start","value":"0"},{"disabled":true,"key":"end","value":"9999999999999"},{"disabled":true,"key":"size","value":"1"},{"disabled":true,"key":"page","value":"0"}],"variable":[]}},"response":[{"id":"a2c2d5ae-79ed-4c9d-b770-4e06afe1ea54","name":"블로그 게시글 목록 불러오기","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:80/api/posts?page=50","protocol":"http","host":["localhost"],"port":"80","path":["api","posts"],"query":[{"key":"keyword","value":"회고","disabled":true},{"key":"read","value":"true","disabled":true},{"key":"start","value":"0","type":"text","disabled":true},{"key":"end","value":"9999999999999","type":"text","disabled":true},{"key":"size","value":"1","disabled":true},{"key":"page","value":"50"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.3"},{"key":"Date","value":"Sat, 23 Dec 2023 08:31:35 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"posts\": [\n            {\n                \"id\": 4769,\n                \"guid\": \"99dd966a-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4899\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4899\",\n                \"description\": \"Description 4899\",\n                \"pubDate\": \"2023-09-26T21:56:17Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4398,\n                \"guid\": \"99d281ac-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4528\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4528\",\n                \"description\": \"Description 4528\",\n                \"pubDate\": \"2023-09-26T21:56:17Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 3825,\n                \"guid\": \"995b0a87-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 3955\",\n                \"thumbnailUrl\": \"Thumbnail_URL 3955\",\n                \"description\": \"Description 3955\",\n                \"pubDate\": \"2023-09-26T21:56:16Z\",\n                \"subscribeTitle\": \"janeljs.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 2225,\n                \"guid\": \"992c8bbc-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 2355\",\n                \"thumbnailUrl\": \"Thumbnail_URL 2355\",\n                \"description\": \"Description 2355\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"janeljs.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 20,\n                \"guid\": \"98efa77b-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 150\",\n                \"thumbnailUrl\": \"Thumbnail_URL 150\",\n                \"description\": \"Description 150\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 287,\n                \"guid\": \"98f40b25-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 417\",\n                \"thumbnailUrl\": \"Thumbnail_URL 417\",\n                \"description\": \"Description 417\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"gamja.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 288,\n                \"guid\": \"98f40cdb-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 418\",\n                \"thumbnailUrl\": \"Thumbnail_URL 418\",\n                \"description\": \"Description 418\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 568,\n                \"guid\": \"98f9543e-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 698\",\n                \"thumbnailUrl\": \"Thumbnail_URL 698\",\n                \"description\": \"Description 698\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"조금씩, 꾸준히, 자주\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 619,\n                \"guid\": \"98fb3848-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 749\",\n                \"thumbnailUrl\": \"Thumbnail_URL 749\",\n                \"description\": \"Description 749\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"gamja.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 2184,\n                \"guid\": \"992b5f2f-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 2314\",\n                \"thumbnailUrl\": \"Thumbnail_URL 2314\",\n                \"description\": \"Description 2314\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4377,\n                \"guid\": \"99d25928-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4507\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4507\",\n                \"description\": \"Description 4507\",\n                \"pubDate\": \"2023-09-25T21:56:17Z\",\n                \"subscribeTitle\": \"gamja.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4561,\n                \"guid\": \"99d7cd31-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4691\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4691\",\n                \"description\": \"Description 4691\",\n                \"pubDate\": \"2023-09-25T21:56:17Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 3920,\n                \"guid\": \"996f7cf0-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4050\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4050\",\n                \"description\": \"Description 4050\",\n                \"pubDate\": \"2023-09-25T21:56:16Z\",\n                \"subscribeTitle\": \"조금씩, 꾸준히, 자주\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 3823,\n                \"guid\": \"995b089e-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 3953\",\n                \"thumbnailUrl\": \"Thumbnail_URL 3953\",\n                \"description\": \"Description 3953\",\n                \"pubDate\": \"2023-09-25T21:56:16Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 2187,\n                \"guid\": \"992b675b-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 2317\",\n                \"thumbnailUrl\": \"Thumbnail_URL 2317\",\n                \"description\": \"Description 2317\",\n                \"pubDate\": \"2023-09-25T21:56:15Z\",\n                \"subscribeTitle\": \"조금씩, 꾸준히, 자주\",\n                \"open\": false,\n                \"bookmark\": false\n            }\n        ]\n    }\n}"},{"id":"c74456a1-87a4-44b0-8003-1925e8df7704","name":"블로그 게시글 목록 불러오기","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:80/api/posts?start=0&end=9999999999999","protocol":"http","host":["localhost"],"port":"80","path":["api","posts"],"query":[{"key":"keyword","value":"회고","disabled":true},{"key":"read","value":"true","disabled":true},{"key":"start","value":"0","type":"text"},{"key":"end","value":"9999999999999","type":"text"},{"key":"size","value":"1","disabled":true},{"key":"page","value":"50","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.3"},{"key":"Date","value":"Sat, 23 Dec 2023 08:36:58 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"posts\": [\n            {\n                \"id\": 4931,\n                \"guid\": \"https://new-pow.tistory.com/95\",\n                \"title\": \"2023-W50 회고 :  느슨하게 내 영역에 두는 방법\",\n                \"thumbnailUrl\": \"https://blog.kakaocdn.net/dn/cghEI5/btsCg09qfeL/4qVWzhq9TJlDcSCrhf0cuK/img.png\",\n                \"description\": \"<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>이번 주에 한 것</b></h2>\\n<p><figure class='imageblock alignCenter' data-origin-width='1278' data-origin-height='1420' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/cghEI5/btsCg09qfeL/4qVWzhq9TJlDcSCrhf0cuK/img.png' data-lightbox='lightbox' data-alt=''><img src='https://blog.kakaocdn.net/dn/cghEI5/btsCg09qfeL/4qVWzhq9TJlDcSCrhf0cuK/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcghEI5%2FbtsCg09qfeL%2F4qVWzhq9TJlDcSCrhf0cuK%2Fimg.png' width='450' height='500' data-ke-mobilestyle='alignCenter'/></span></figure></p>\\n<h3 data-ke-size=\\\"size23\\\"><b>What is New?!</b></h3>\\n<ul style=\\\"list-style-type: disc;\\\" data-ke-list-type=\\\"disc\\\">\\n<li>한 주동안 활동했던 스터디 혹은 취준 모임을 1개만 빼고 모두 정리했습니다.</li>\\n<li>그동안 코어타임을 가졌던 `RSS-Project`의 코어타임을 끝나고 이제 운영 및 유지보수의 단계를 생각해보게 되었습니다.</li>\\n<li>프로젝트에서 이미지가 90도 돌아가는 에러를 잡길 시도했으나 실패... 살짝 지쳐서 쉬었다가 다음주에 다시 시도하기로  </li>\\n<li>2023년도의 올해의 OOO을 작성하기 시작함</li>\\n</ul>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<hr contenteditable=\\\"false\\\" data-ke-type=\\\"horizontalRule\\\" data-ke-style=\\\"style1\\\" />\\n<h2 data-ke-size=\\\"size26\\\"><b>What I Leanred</b></h2>\\n<h3 data-ke-size=\\\"size23\\\"><b>코어 타임 이후의 프로젝트는 어떻게 운영하지?</b></h3>\\n<p style=\\\"text-align: left;\\\" data-ke-size=\\\"size16\\\">지난 한 주는 정리의 연속이었습니다. 아무래도 직장이라는 집중해야할 일이 생기니 하루 중 가장 큰 시간을 할애할 필요가 생겼습니다. 가장 크게는 스터디들. 하고 있던 프로젝트를 정리하는 것이었는데요.</p>\\n<p style=\\\"text-align: left;\\\" data-ke-size=\\\"size16\\\">문제는 이 프로젝트를 어떻게 잘 '정리'하느냐 였습니다.</p>\\n<p style=\\\"text-align: left;\\\" data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p style=\\\"text-align: left;\\\" data-ke-size=\\\"size16\\\">최근 코어타임을 하고 있었던 프로젝트는 <a href=\\\"https://github.com/Flytrap-Ware/RSS-Reader\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">RSS-Reader</a>&nbsp; 프로젝트였어요. 여기저기 플랫폼에 산재된 동료들의 블로그 새 글을 피드 형태로 보고, slack이나 discord에서 알람을 받을 수 있는 서비스를 기획하고 개발했는데요. 이 프로젝트의 사실 거대한(...) 목적은 현재 함께 공부하고 있는 스터디의 관리 플랫폼을 만드는 데에 가장 작은 유닛이었어요. 그러니까 계속해서 개발하고 발전시키는 데 목적이 있습니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">이것에 대한 코어타임을 끝내고 유지보수 개선 단계로 넘어가려니 사실 어떻게 해야할 지 잘 몰랐어요.</p>\\n<p data-ke-size=\\\"size16\\\">서버의 어플리케이션에서 오류가 생기거나 꺼지지 않게 잘 모니터링하고 있다가 문제가 생기면 대처하고 하는 식이어야 하는데, 늘 문제가 터진 다음에야 알게되었고 오류를 발견했을 때 공유체계도 잘 잡혀있지 않아서 발견한 사람이 고치는 일도 더러 있었거든요.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">그래서 이렇게 모니터링과 로깅에 관심을 가지게 되었습니다.</p>\\n<p data-ke-size=\\\"size16\\\">이에 대한 학습 자료나 어떻게 해야 좋다는 식의 정보가 하나도 없었고, 현업에서는 DataDog 등 모니터링 툴을 구매해서 사용하는 것이 일반적이라고해서 막막했었는데요. 앞서 관심을 갖고&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<hr contenteditable=\\\"false\\\" data-ke-type=\\\"horizontalRule\\\" data-ke-style=\\\"style1\\\" />\\n<h2 data-ke-size=\\\"size26\\\"><b>다음 주에 할 것</b></h2>\\n<p><figure class='imageblock alignCenter' data-origin-width='1278' data-origin-height='940' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/t7Rmz/btsCAhXj5oR/vUjB5Tq0RSj2K7hkfvhcb1/img.png' data-lightbox='lightbox' data-alt=''><img src='https://blog.kakaocdn.net/dn/t7Rmz/btsCAhXj5oR/vUjB5Tq0RSj2K7hkfvhcb1/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft7Rmz%2FbtsCAhXj5oR%2FvUjB5Tq0RSj2K7hkfvhcb1%2Fimg.png' width='450' height='331' data-ke-mobilestyle='alignCenter'/></span></figure></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\",\n                \"pubDate\": \"2023-12-23T01:28:57Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4932,\n                \"guid\": \"https://new-pow.tistory.com/94\",\n                \"title\": \"MySQL에서 `Process`의 의미 : 단일 프로세스의 프로세스를 종료할 수 있다고요?\",\n                \"thumbnailUrl\": \"https://blog.kakaocdn.net/dn/O2w22/btsCshjFMUZ/kRqGKaYHKuqwqKtKkzvCI0/img.png\",\n                \"description\": \"<h2 data-ke-size=\\\"size26\\\"><br /><b>궁금했던 것</b></h2>\\n<p data-ke-size=\\\"size16\\\">RealMySQL에서 다음과 같은 구절이 나옵니다. (Lock 챕터 중...)</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\">강제&nbsp;잠금을&nbsp;해제하려면&nbsp;KILL&nbsp;명령을&nbsp;통해&nbsp;MySQL&nbsp;서버의&nbsp;프로세스를&nbsp;강제로&nbsp;종료하면&nbsp;됩니다.</blockquote>\\n<p data-ke-size=\\\"size16\\\"><br />그런데,&nbsp;Process를&nbsp;죽인다는&nbsp;것이&nbsp;가능한&nbsp;것일까요?<br />제가 아는 바로는 MySQL은 단일 프로세스이기 때문에 Process를 죽이면 MySQL이 종료되지 않을까 생각했습니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p><figure class='imageblock alignCenter' data-origin-width='1280' data-origin-height='429' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/O2w22/btsCshjFMUZ/kRqGKaYHKuqwqKtKkzvCI0/img.png' data-lightbox='lightbox' data-alt='.. 하나도 몰랐던 사람의 리액션'><img src='https://blog.kakaocdn.net/dn/O2w22/btsCshjFMUZ/kRqGKaYHKuqwqKtKkzvCI0/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO2w22%2FbtsCshjFMUZ%2FkRqGKaYHKuqwqKtKkzvCI0%2Fimg.png' width='500' height='168' data-ke-mobilestyle='alignCenter'/></span><figcaption>.. 하나도 몰랐던 사람의 리액션</figcaption></figure></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">그런데 이것은 `Process`라는 용어가 OS와 MySQL DBMS 내부에서 다르게 쓰인다는 것을 모를 때 생각한 의문이었습니다.</p>\\n<p data-ke-size=\\\"size16\\\">이에 대해서 알아본 바를 간단하게 서술해보려고 합니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">혹시 잘못된 것이 있다면 꼭 알려주세요  </p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>MySQL은 스레드 기반으로 작동합니다.</b></h2>\\n<blockquote data-ke-style=\\\"style3\\\">MySQL 서버는 프로세스 기반이 아니라 스레드 기반으로 작동하며, 크게 포그라운드(Foreground) 스레드와 백그라운드(Background) 스레드로 구분할 수 있다.<br /><br /><i>*Real&nbsp;MySQL&nbsp;8.0&nbsp;80page*</i></blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">동일 책에서도 언급되다 시피 MySQL은 스레드 기반으로 작동합니다. 단일 프로세스로 작동되며 이 프로세스의 내붕에서 여러 스레드들이 메모리 자원을 공유하며 동작하게 됩니다.</p>\\n<ul style=\\\"list-style-type: disc;\\\" data-ke-list-type=\\\"disc\\\">\\n<li><a href=\\\"https://charlezz.medium.com/process%EC%99%80-thread-%EC%9D%B4%EC%95%BC%EA%B8%B0-5b96d0d43e37\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">참고링크 : 프로세스와 스레드의 차이</a></li>\\n</ul>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">그래서 이를 기반으로 MySQL 8.0의 공식 문서는 어떻게 언급하고 있는지 찾아보았습니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\"><b>`mysqld` 실제 서비스 데몬. 데이터베이스 엔진과 상호작용하며 SQL 쿼리를 처리합니다.</b><br /><br />MySQL 설치 시 대부분의 작업을 수행하는 단일 다중 스레드 프로그램입니다. 추가 프로세스를 생성하지 않습니다. MySQL 서버는 데이터베이스와 테이블이 포함된 MySQL 데이터 디렉터리에 대한 액세스를 관리합니다.</blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\"><b>`mysqld_safe` 서버 시작 스크립트 : MySQL이&nbsp;비정상적으로&nbsp;종료되는&nbsp;경우,&nbsp;다시&nbsp;기동합니다.</b><br /><br />오류 발생 시 서버를 다시 시작하고 런타임 정보를 오류 로그에 기록하는 등 일부 안전 기능을 추가합니다. <a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/mysqld-safe.html\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">[참고링크]</a></blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\"><b>`mysql.server`&nbsp;서버&nbsp;시작&nbsp;스크립트</b><br /><br />Unix 및 Unix 계열 시스템의 MySQL 배포판에는 <a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/mysqld-safe.html\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">mysqld_safe</a>를 사용하여 MySQL 서버를 시작하는 <a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/mysql-server.html\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">mysql.server</a>라는 스크립트가 포함되어 있습니다 .</blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\"><b>`mysqld_multi`&nbsp;여러&nbsp;MySQL&nbsp;서버&nbsp;관리</b><br /><br />다양한 Unix 소켓 파일과 TCP/IP 포트에서 연결을 수신하는 <a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/mysqld.html\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">multi mysqld</a>프로세스를&nbsp;관리하도록&nbsp;설계되었습니다&nbsp;서버를&nbsp;시작&nbsp;또는&nbsp;중지하거나&nbsp;현재&nbsp;상태를&nbsp;보고할&nbsp;수&nbsp;있습니다.</blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">결국 `mysqld` 만이 유일한 SQL 쿼리를 처리하는 프로세스라는 문서 내용이었습니다. <a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/mysqld.html](https://dev.mysql.com/doc/refman/8.0/en/mysqld.html\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">[참고 링크]</a></p>\\n<p data-ke-size=\\\"size16\\\">그&nbsp;프로세스&nbsp;내에서&nbsp;포그라운드&nbsp;스레드와&nbsp;백그라운드&nbsp;스레드로&nbsp;나뉘며&nbsp;각&nbsp;스레드의&nbsp;역할을&nbsp;수행합니다.<br />클라이언트의&nbsp;쿼리&nbsp;요청을&nbsp;처리하는&nbsp;것은&nbsp;포그라운드&nbsp;스레드에서&nbsp;이루어집니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p><figure class='imageblock alignCenter' data-origin-width='1280' data-origin-height='780' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/bxalaI/btsCpenJ9mC/2y9oQuBUQmkOQDFZ7BHf91/img.png' data-lightbox='lightbox' data-alt='참고 : 80 페이지 MySQL 스레딩 모델'><img src='https://blog.kakaocdn.net/dn/bxalaI/btsCpenJ9mC/2y9oQuBUQmkOQDFZ7BHf91/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxalaI%2FbtsCpenJ9mC%2F2y9oQuBUQmkOQDFZ7BHf91%2Fimg.png' width='500' height='305' data-ke-mobilestyle='alignCenter'/></span><figcaption>참고 : 80 페이지 MySQL 스레딩 모델</figcaption></figure></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>그럼&nbsp;`processlist`의&nbsp;정체는&nbsp;무엇일까?</b></h2>\\n<p data-ke-size=\\\"size16\\\">다음의 쿼리로 MySQL의 processlist를 조회할 수 있습니다. 대체&nbsp;이&nbsp;process는&nbsp;무엇일까요?</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<pre id=\\\"code_1703164900954\\\" class=\\\"sql\\\" data-ke-language=\\\"sql\\\" data-ke-type=\\\"codeblock\\\"><code>SHOW FULL PROCESSLIST;\\n\\n+----+---------------+-------------------+-------------+-------+------+----------------------+-----------------------------------------------------------------------------------------+\\n|ID  |USER           |HOST               |DB           |COMMAND|TIME  |STATE                 |INFO                                                                                     |\\n+----+---------------+-------------------+-------------+-------+------+----------------------+-----------------------------------------------------------------------------------------+\\n|1364|root           |192.168.228.1:38667|secondhand-db|Query  |0     |executing             |/* ApplicationName=IntelliJ IDEA 2022.1.3 */ SELECT * FROM information_schema.PROCESSLIST|\\n|5   |event_scheduler|localhost          |NULL         |Daemon |643686|Waiting on empty queue|NULL                                                                                     |\\n|1303|root           |192.168.228.1:38417|rss_reader   |Sleep  |17744 |                      |NULL                                                                                     |\\n+----+---------------+-------------------+-------------+-------+------+----------------------+-----------------------------------------------------------------------------------------+</code></pre>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">위에서&nbsp;언급한&nbsp;OS의&nbsp;프로세스와는&nbsp;다르게&nbsp;이&nbsp;`processlist`는&nbsp;MySQL&nbsp;서버&nbsp;내에서&nbsp;실행중인&nbsp;스레드&nbsp;집합에&nbsp;의해&nbsp;수행되는&nbsp;작업&nbsp;단위를&nbsp;모아둔&nbsp;리스트입니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\">  `processlist`란 무엇일까?<br /><br />MySQL 프로세스 목록은 서버 내에서 실행 중인 스레드 집합에 의해 현재 수행되고 있는 작업을 나타냅니다.</blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;그래서 process kill 이 가능한 것이지요. OS kill 구문과 같아서 헷갈릴 수 있지만 이 \\\"쿼리\\\"로 진행중인 프로세스를 강제 종료시킬 수 있으며, 이 때 해당 process 수행 중에 획득했던 lock을 다시 반납하게 되는 것입니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<pre id=\\\"code_1703164959254\\\" class=\\\"sql\\\" data-ke-language=\\\"sql\\\" data-ke-type=\\\"codeblock\\\"><code>kill [process id];</code></pre>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h4 data-ke-size=\\\"size20\\\"><b>OS의 작업단위인 thread와는 무슨 관계가 있나요?</b></h4>\\n<p data-ke-size=\\\"size16\\\">다음의 쿼리를 통해 현재 MySQL 프로세스 내부에서 작동중인 스레드 리스트를 확인할 수 있습니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<pre id=\\\"code_1703165004267\\\" class=\\\"sql\\\" data-ke-language=\\\"sql\\\" data-ke-type=\\\"codeblock\\\"><code>select * From performance_schema.threads;\\n\\n+---------+-------------------------------------------+----------+--------------+----------------+----------------+--------------+-------------------+----------------+--------------------------+-------------------------------------------------------------------------------------+----------------+----+------------+-------+---------------+------------+--------------+----------------+-----------------+---------------------+------------+----------------+----------------+\\n|THREAD_ID|NAME                                       |TYPE      |PROCESSLIST_ID|PROCESSLIST_USER|PROCESSLIST_HOST|PROCESSLIST_DB|PROCESSLIST_COMMAND|PROCESSLIST_TIME|PROCESSLIST_STATE         |PROCESSLIST_INFO                                                                     |PARENT_THREAD_ID|ROLE|INSTRUMENTED|HISTORY|CONNECTION_TYPE|THREAD_OS_ID|RESOURCE_GROUP|EXECUTION_ENGINE|CONTROLLED_MEMORY|MAX_CONTROLLED_MEMORY|TOTAL_MEMORY|MAX_TOTAL_MEMORY|TELEMETRY_ACTIVE|\\n+---------+-------------------------------------------+----------+--------------+----------------+----------------+--------------+-------------------+----------------+--------------------------+-------------------------------------------------------------------------------------+----------------+----+------------+-------+---------------+------------+--------------+----------------+-----------------+---------------------+------------+----------------+----------------+\\n|1        |thread/sql/main                            |BACKGROUND|NULL          |NULL            |NULL            |mysql         |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |1           |SYS_default   |PRIMARY         |480              |66992                |1228598     |1249003         |NO              |\\n|3        |thread/innodb/io_ibuf_thread               |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |84          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|4        |thread/innodb/io_read_thread               |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |85          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|5        |thread/innodb/io_read_thread               |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |86          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|6        |thread/innodb/io_read_thread               |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |87          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|7        |thread/innodb/io_read_thread               |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |88          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|8        |thread/innodb/io_write_thread              |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |89          |SYS_default   |PRIMARY         |0                |0                    |0           |36              |NO              |\\n|9        |thread/innodb/io_write_thread              |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |90          |SYS_default   |PRIMARY         |0                |0                    |0           |76              |NO              |\\n|10       |thread/innodb/io_write_thread              |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |91          |SYS_default   |PRIMARY         |0                |0                    |0           |76              |NO              |\\n|11       |thread/innodb/io_write_thread              |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |92          |SYS_default   |PRIMARY         |0                |0                    |0           |76              |NO              |\\n|12       |thread/innodb/page_flush_coordinator_thread|BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |93          |SYS_default   |PRIMARY         |240              |240                  |1978        |1978            |NO              |\\n|14       |thread/innodb/log_checkpointer_thread      |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |95          |SYS_default   |PRIMARY         |0                |0                    |0           |1728            |NO              |\\n|15       |thread/innodb/log_flush_notifier_thread    |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |96          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|16       |thread/innodb/log_flusher_thread           |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |97          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|17       |thread/innodb/log_write_notifier_thread    |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |98          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|18       |thread/innodb/log_writer_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |99          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|19       |thread/innodb/log_files_governor_thread    |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |100         |SYS_default   |PRIMARY         |0                |0                    |0           |120             |NO              |\\n|24       |thread/innodb/srv_lock_timeout_thread      |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |105         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|25       |thread/innodb/srv_error_monitor_thread     |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |106         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|26       |thread/innodb/srv_monitor_thread           |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |107         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|27       |thread/innodb/buf_resize_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |108         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|28       |thread/innodb/srv_master_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |109         |SYS_default   |PRIMARY         |240              |240                  |1978        |2082            |NO              |\\n|29       |thread/innodb/dict_stats_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |110         |SYS_default   |PRIMARY         |240              |240                  |3354        |32434           |NO              |\\n|30       |thread/innodb/fts_optimize_thread          |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |111         |SYS_default   |PRIMARY         |240              |240                  |2962        |2962            |NO              |\\n|31       |thread/mysqlx/worker                       |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |112         |USR_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|32       |thread/mysqlx/worker                       |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |113         |USR_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|33       |thread/mysqlx/acceptor_network             |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |114         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|37       |thread/innodb/buf_dump_thread              |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |118         |SYS_default   |PRIMARY         |0                |0                    |0           |14256           |NO              |\\n|38       |thread/innodb/clone_gtid_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |waiting for handler commit|NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |119         |SYS_default   |PRIMARY         |108512           |108512               |585233      |623781          |NO              |\\n|39       |thread/innodb/srv_purge_thread             |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |120         |SYS_default   |PRIMARY         |240              |240                  |2266        |43832           |NO              |\\n|40       |thread/innodb/srv_worker_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |121         |SYS_default   |PRIMARY         |240              |240                  |3610        |85282           |NO              |\\n|41       |thread/innodb/srv_worker_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |122         |SYS_default   |PRIMARY         |240              |240                  |2890        |93178           |NO              |\\n|42       |thread/innodb/srv_worker_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |123         |SYS_default   |PRIMARY         |240              |240                  |2074        |43644           |NO              |\\n|43       |thread/sql/event_scheduler                 |FOREGROUND|5             |event_scheduler |localhost       |NULL          |Daemon             |643829          |Waiting on empty queue    |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |124         |SYS_default   |PRIMARY         |0                |0                    |16665       |16665           |NO              |\\n|44       |thread/sql/signal_handler                  |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |125         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|46       |thread/mysqlx/acceptor_network             |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |127         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|47       |thread/sql/compress_gtid_table             |FOREGROUND|7             |NULL            |NULL            |NULL          |Daemon             |643829          |Suspending                |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |128         |SYS_default   |PRIMARY         |8240             |8240                 |14432       |14496           |NO              |\\n|1404     |thread/sql/one_connection                  |FOREGROUND|1364          |root            |192.168.228.1   |secondhand-db |Query              |0               |executing                 |/* ApplicationName=IntelliJ IDEA 2022.1.3 */ select * From performance_schema.threads|NULL            |NULL|YES         |YES    |SSL/TLS        |244         |USR_default   |PRIMARY         |1094784          |1107120              |1339154     |1374270         |NO              |\\n|1343     |thread/sql/one_connection                  |FOREGROUND|1303          |root            |192.168.228.1   |rss_reader    |Sleep              |17887           |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |SSL/TLS        |245         |USR_default   |PRIMARY         |1067328          |1107360              |1160552     |1200413         |NO              |\\n+---------+-------------------------------------------+----------+--------------+----------------+----------------+--------------+-------------------+----------------+--------------------------+-------------------------------------------------------------------------------------+----------------+----+------------+-------+---------------+------------+--------------+----------------+-----------------+---------------------+------------+----------------+----------------+</code></pre>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">위 조회 결과에서 `THREAD_OS_ID` 가 OS 상에서 할당된 thread에 대한 id 값입니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<ul style=\\\"list-style-type: disc;\\\" data-ke-list-type=\\\"disc\\\">\\n<li>MySQL 스레드가 수명 기간 동안 동일한 운영 체제 스레드와 연결되어 있는 경우 THREAD_OS_ID에는 운영 체제 스레드 ID가 포함됩니다.</li>\\n<li>Windows의 경우 THREAD_OS_ID는 프로세스 탐색기([<a href=\\\"https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx](https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx))에\\\" target=\\\"_blank\\\" rel=\\\"noopener&nbsp;noreferrer\\\">https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx](https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx))에</a> 표시되는&nbsp;스레드&nbsp;ID에&nbsp;해당합니다.</li>\\n<li>Linux의 경우 THREAD_OS_ID는 gettid() 함수의 값에 해당합니다. 이 값은 예를 들어 perf 또는 ps -L 명령을 사용하거나 proc 파일 시스템(/proc/[pid]/task/[tid])에서 노출됩니다.</li>\\n</ul>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<hr contenteditable=\\\"false\\\" data-ke-type=\\\"horizontalRule\\\" data-ke-style=\\\"style1\\\" />\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>Refs.</b></h2>\\n<ul style=\\\"list-style-type: disc;\\\" data-ke-list-type=\\\"disc\\\">\\n<li>[27.12.21.8 The threads Table](<a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/performance-schema-threads-table.html)\\\" target=\\\"_blank\\\" rel=\\\"noopener&nbsp;noreferrer\\\">https://dev.mysql.com/doc/refman/8.0/en/performance-schema-threads-table.html)</a></li>\\n<li>[MySQL Architecture - 3. Thread](<a href=\\\"https://blog.ex-em.com/1681)\\\">https://blog.ex-em.com/1681)</a></li>\\n</ul>\",\n                \"pubDate\": \"2023-12-21T13:25:48Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4933,\n                \"guid\": \"https://new-pow.tistory.com/93\",\n                \"title\": \"Error: Permission to {repository} denied to github-actions[bot]\",\n                \"thumbnailUrl\": \"https://blog.kakaocdn.net/dn/c6mYtv/btsCtbXgjDX/VkNqCF864TSNZclta39JR0/img.png\",\n                \"description\": \"<h2 data-ke-size=\\\"size26\\\"><b>발생 상황</b></h2>\\n<p data-ke-size=\\\"size16\\\">`README.md` 를 자동으로 생성해주는 Action을 시행하다 이와 같은 Github action 에러를 맞이했습니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<pre id=\\\"code_1703147359284\\\" class=\\\"bash\\\" data-ke-language=\\\"bash\\\" data-ke-type=\\\"codeblock\\\"><code># update 관련 내용 생략\\n\\ngit add README.md &amp;&amp; git commit -m \\\"Updated README\\\"\\n[main 88ac2d7] Updated README\\n 1 file changed, 25 insertions(+), 2 deletions(-)\\ngit push\\nremote: Permission to new-pow/bookshelf.git denied to github-actions[bot].\\nfatal: unable to access 'https://github.com/new-pow/bookshelf/': The requested URL returned error: 403</code></pre>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>발생 원인</b></h2>\\n<p data-ke-size=\\\"size16\\\">저장소 세팅에서 `Workflow`의 권한이 제한되어있었기 때문입니다.</p>\\n<p data-ke-size=\\\"size16\\\">이를 수정하여 문제를 해결할 수 있습니다.</p>\\n<p><figure class='imageblock alignCenter' data-origin-width='1166' data-origin-height='652' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/c6mYtv/btsCtbXgjDX/VkNqCF864TSNZclta39JR0/img.png' data-lightbox='lightbox' data-alt=''><img src='https://blog.kakaocdn.net/dn/c6mYtv/btsCtbXgjDX/VkNqCF864TSNZclta39JR0/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6mYtv%2FbtsCtbXgjDX%2FVkNqCF864TSNZclta39JR0%2Fimg.png' width='500' height='280' data-ke-mobilestyle='alignCenter'/></span></figure></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>대처</b></h2>\\n<p data-ke-size=\\\"size16\\\"><span style=\\\"text-align: left;\\\">`Settings -&gt; Action -&gt; General -&gt; Workflow permissions` 에서 `Read and write permissions` 를 선택합니다.</span></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p><figure class='imageblock alignCenter' data-origin-width='1640' data-origin-height='790' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/buJATc/btsCo4ZBgeq/yhKk7hv7QHqkGjvGCkOvXK/img.png' data-lightbox='lightbox' data-alt=''><img src='https://blog.kakaocdn.net/dn/buJATc/btsCo4ZBgeq/yhKk7hv7QHqkGjvGCkOvXK/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuJATc%2FbtsCo4ZBgeq%2FyhKk7hv7QHqkGjvGCkOvXK%2Fimg.png' width='500' height='241' data-ke-mobilestyle='alignCenter'/></span></figure></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\"><span style=\\\"text-align: left;\\\">바로 성공  </span></p>\\n<hr data-ke-style=\\\"style1\\\" />\\n<h2 data-ke-size=\\\"size26\\\"><b>Refs.</b></h2>\\n<ul style=\\\"list-style-type: disc;\\\" data-ke-list-type=\\\"disc\\\">\\n<li><a href=\\\"https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403\\\" target=\\\"_blank\\\" rel=\\\"noopener&nbsp;noreferrer\\\">https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403</a></li>\\n</ul>\\n<figure id=\\\"og_1703147553261\\\" contenteditable=\\\"false\\\" data-ke-type=\\\"opengraph\\\" data-ke-align=\\\"alignCenter\\\" data-og-type=\\\"website\\\" data-og-title=\\\"Permission denied to github-actions[bot]. The requested URL returned error: 403\\\" data-og-description=\\\"I want to push files into the current repository using Github Actions. I've written a basic configuration that uses the official actions/checkout@v3 action. My configuration is almost the same as i...\\\" data-og-host=\\\"stackoverflow.com\\\" data-og-source-url=\\\"https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403\\\" data-og-url=\\\"https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403\\\" data-og-image=\\\"https://scrap.kakaocdn.net/dn/8Y4aW/hyUPKOzQlu/qwHsKmvSrHUio5ojJuRDkK/img.png?width=316&amp;height=316&amp;face=0_0_316_316\\\"><a href=\\\"https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\" data-source-url=\\\"https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403\\\">\\n<div class=\\\"og-image\\\" style=\\\"background-image: url('https://scrap.kakaocdn.net/dn/8Y4aW/hyUPKOzQlu/qwHsKmvSrHUio5ojJuRDkK/img.png?width=316&amp;height=316&amp;face=0_0_316_316');\\\">&nbsp;</div>\\n<div class=\\\"og-text\\\">\\n<p class=\\\"og-title\\\" data-ke-size=\\\"size16\\\">Permission denied to github-actions[bot]. The requested URL returned error: 403</p>\\n<p class=\\\"og-desc\\\" data-ke-size=\\\"size16\\\">I want to push files into the current repository using Github Actions. I've written a basic configuration that uses the official actions/checkout@v3 action. My configuration is almost the same as i...</p>\\n<p class=\\\"og-host\\\" data-ke-size=\\\"size16\\\">stackoverflow.com</p>\\n</div>\\n</a></figure>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\",\n                \"pubDate\": \"2023-12-21T08:33:39Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4822,\n                \"guid\": \"99df2719-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4952\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4952\",\n                \"description\": \"Description 4952\",\n                \"pubDate\": \"2023-12-20T21:56:17Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4308,\n                \"guid\": \"99d12226-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4438\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4438\",\n                \"description\": \"Description 4438\",\n                \"pubDate\": \"2023-12-20T21:56:17Z\",\n                \"subscribeTitle\": \"janeljs.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 3446,\n                \"guid\": \"9950c86f-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 3576\",\n                \"thumbnailUrl\": \"Thumbnail_URL 3576\",\n                \"description\": \"Description 3576\",\n                \"pubDate\": \"2023-12-20T21:56:16Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 2518,\n                \"guid\": \"9933b648-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 2648\",\n                \"thumbnailUrl\": \"Thumbnail_URL 2648\",\n                \"description\": \"Description 2648\",\n                \"pubDate\": \"2023-12-20T21:56:15Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 1517,\n                \"guid\": \"991888f3-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 1647\",\n                \"thumbnailUrl\": \"Thumbnail_URL 1647\",\n                \"description\": \"Description 1647\",\n                \"pubDate\": \"2023-12-20T21:56:15Z\",\n                \"subscribeTitle\": \"조금씩, 꾸준히, 자주\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4787,\n                \"guid\": \"99ddbcd0-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4917\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4917\",\n                \"description\": \"Description 4917\",\n                \"pubDate\": \"2023-12-19T21:56:17Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4805,\n                \"guid\": \"99deff59-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4935\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4935\",\n                \"description\": \"Description 4935\",\n                \"pubDate\": \"2023-12-19T21:56:17Z\",\n                \"subscribeTitle\": \"janeljs.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4332,\n                \"guid\": \"99d1ea16-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4462\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4462\",\n                \"description\": \"Description 4462\",\n                \"pubDate\": \"2023-12-19T21:56:17Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4368,\n                \"guid\": \"99d247d6-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4498\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4498\",\n                \"description\": \"Description 4498\",\n                \"pubDate\": \"2023-12-19T21:56:17Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4162,\n                \"guid\": \"99cdfab7-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4292\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4292\",\n                \"description\": \"Description 4292\",\n                \"pubDate\": \"2023-12-19T21:56:17Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 3414,\n                \"guid\": \"99508b50-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 3544\",\n                \"thumbnailUrl\": \"Thumbnail_URL 3544\",\n                \"description\": \"Description 3544\",\n                \"pubDate\": \"2023-12-19T21:56:16Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 2089,\n                \"guid\": \"99298ce3-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 2219\",\n                \"thumbnailUrl\": \"Thumbnail_URL 2219\",\n                \"description\": \"Description 2219\",\n                \"pubDate\": \"2023-12-19T21:56:15Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            }\n        ]\n    }\n}"}],"_postman_id":"3b5984e7-ccc6-40f3-99c7-45735f8835e7"},{"name":"블로그 게시글 목록 불러오기 V2 NoOffset","id":"84a5c2ab-e559-4e5c-ba71-92258609fd2f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/subscribes/1/posts","urlObject":{"path":["api","subscribes","1","posts"],"host":["http://localhost:8080"],"query":[{"disabled":true,"key":"keyword","value":"회고"},{"disabled":true,"key":"read","value":"true"},{"disabled":true,"key":"start","value":"0"},{"disabled":true,"key":"end","value":"9999999999999"},{"disabled":true,"key":"size","value":"1"},{"disabled":true,"key":"page","value":"0"}],"variable":[]}},"response":[{"id":"2f3c0457-b2c0-4440-98ca-ca2c0c8541fc","name":"블로그 게시글 목록 불러오기","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:80/api/posts?page=50","protocol":"http","host":["localhost"],"port":"80","path":["api","posts"],"query":[{"key":"keyword","value":"회고","disabled":true},{"key":"read","value":"true","disabled":true},{"key":"start","value":"0","type":"text","disabled":true},{"key":"end","value":"9999999999999","type":"text","disabled":true},{"key":"size","value":"1","disabled":true},{"key":"page","value":"50"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.3"},{"key":"Date","value":"Sat, 23 Dec 2023 08:31:35 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"posts\": [\n            {\n                \"id\": 4769,\n                \"guid\": \"99dd966a-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4899\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4899\",\n                \"description\": \"Description 4899\",\n                \"pubDate\": \"2023-09-26T21:56:17Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4398,\n                \"guid\": \"99d281ac-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4528\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4528\",\n                \"description\": \"Description 4528\",\n                \"pubDate\": \"2023-09-26T21:56:17Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 3825,\n                \"guid\": \"995b0a87-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 3955\",\n                \"thumbnailUrl\": \"Thumbnail_URL 3955\",\n                \"description\": \"Description 3955\",\n                \"pubDate\": \"2023-09-26T21:56:16Z\",\n                \"subscribeTitle\": \"janeljs.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 2225,\n                \"guid\": \"992c8bbc-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 2355\",\n                \"thumbnailUrl\": \"Thumbnail_URL 2355\",\n                \"description\": \"Description 2355\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"janeljs.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 20,\n                \"guid\": \"98efa77b-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 150\",\n                \"thumbnailUrl\": \"Thumbnail_URL 150\",\n                \"description\": \"Description 150\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 287,\n                \"guid\": \"98f40b25-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 417\",\n                \"thumbnailUrl\": \"Thumbnail_URL 417\",\n                \"description\": \"Description 417\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"gamja.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 288,\n                \"guid\": \"98f40cdb-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 418\",\n                \"thumbnailUrl\": \"Thumbnail_URL 418\",\n                \"description\": \"Description 418\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 568,\n                \"guid\": \"98f9543e-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 698\",\n                \"thumbnailUrl\": \"Thumbnail_URL 698\",\n                \"description\": \"Description 698\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"조금씩, 꾸준히, 자주\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 619,\n                \"guid\": \"98fb3848-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 749\",\n                \"thumbnailUrl\": \"Thumbnail_URL 749\",\n                \"description\": \"Description 749\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"gamja.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 2184,\n                \"guid\": \"992b5f2f-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 2314\",\n                \"thumbnailUrl\": \"Thumbnail_URL 2314\",\n                \"description\": \"Description 2314\",\n                \"pubDate\": \"2023-09-26T21:56:15Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4377,\n                \"guid\": \"99d25928-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4507\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4507\",\n                \"description\": \"Description 4507\",\n                \"pubDate\": \"2023-09-25T21:56:17Z\",\n                \"subscribeTitle\": \"gamja.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4561,\n                \"guid\": \"99d7cd31-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4691\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4691\",\n                \"description\": \"Description 4691\",\n                \"pubDate\": \"2023-09-25T21:56:17Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 3920,\n                \"guid\": \"996f7cf0-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4050\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4050\",\n                \"description\": \"Description 4050\",\n                \"pubDate\": \"2023-09-25T21:56:16Z\",\n                \"subscribeTitle\": \"조금씩, 꾸준히, 자주\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 3823,\n                \"guid\": \"995b089e-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 3953\",\n                \"thumbnailUrl\": \"Thumbnail_URL 3953\",\n                \"description\": \"Description 3953\",\n                \"pubDate\": \"2023-09-25T21:56:16Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 2187,\n                \"guid\": \"992b675b-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 2317\",\n                \"thumbnailUrl\": \"Thumbnail_URL 2317\",\n                \"description\": \"Description 2317\",\n                \"pubDate\": \"2023-09-25T21:56:15Z\",\n                \"subscribeTitle\": \"조금씩, 꾸준히, 자주\",\n                \"open\": false,\n                \"bookmark\": false\n            }\n        ]\n    }\n}"},{"id":"26318201-8d09-45e2-8950-d8151b3d3ba9","name":"블로그 게시글 목록 불러오기","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:80/api/posts?start=0&end=9999999999999","protocol":"http","host":["localhost"],"port":"80","path":["api","posts"],"query":[{"key":"keyword","value":"회고","disabled":true},{"key":"read","value":"true","disabled":true},{"key":"start","value":"0","type":"text"},{"key":"end","value":"9999999999999","type":"text"},{"key":"size","value":"1","disabled":true},{"key":"page","value":"50","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.3"},{"key":"Date","value":"Sat, 23 Dec 2023 08:36:58 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"posts\": [\n            {\n                \"id\": 4931,\n                \"guid\": \"https://new-pow.tistory.com/95\",\n                \"title\": \"2023-W50 회고 :  느슨하게 내 영역에 두는 방법\",\n                \"thumbnailUrl\": \"https://blog.kakaocdn.net/dn/cghEI5/btsCg09qfeL/4qVWzhq9TJlDcSCrhf0cuK/img.png\",\n                \"description\": \"<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>이번 주에 한 것</b></h2>\\n<p><figure class='imageblock alignCenter' data-origin-width='1278' data-origin-height='1420' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/cghEI5/btsCg09qfeL/4qVWzhq9TJlDcSCrhf0cuK/img.png' data-lightbox='lightbox' data-alt=''><img src='https://blog.kakaocdn.net/dn/cghEI5/btsCg09qfeL/4qVWzhq9TJlDcSCrhf0cuK/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcghEI5%2FbtsCg09qfeL%2F4qVWzhq9TJlDcSCrhf0cuK%2Fimg.png' width='450' height='500' data-ke-mobilestyle='alignCenter'/></span></figure></p>\\n<h3 data-ke-size=\\\"size23\\\"><b>What is New?!</b></h3>\\n<ul style=\\\"list-style-type: disc;\\\" data-ke-list-type=\\\"disc\\\">\\n<li>한 주동안 활동했던 스터디 혹은 취준 모임을 1개만 빼고 모두 정리했습니다.</li>\\n<li>그동안 코어타임을 가졌던 `RSS-Project`의 코어타임을 끝나고 이제 운영 및 유지보수의 단계를 생각해보게 되었습니다.</li>\\n<li>프로젝트에서 이미지가 90도 돌아가는 에러를 잡길 시도했으나 실패... 살짝 지쳐서 쉬었다가 다음주에 다시 시도하기로  </li>\\n<li>2023년도의 올해의 OOO을 작성하기 시작함</li>\\n</ul>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<hr contenteditable=\\\"false\\\" data-ke-type=\\\"horizontalRule\\\" data-ke-style=\\\"style1\\\" />\\n<h2 data-ke-size=\\\"size26\\\"><b>What I Leanred</b></h2>\\n<h3 data-ke-size=\\\"size23\\\"><b>코어 타임 이후의 프로젝트는 어떻게 운영하지?</b></h3>\\n<p style=\\\"text-align: left;\\\" data-ke-size=\\\"size16\\\">지난 한 주는 정리의 연속이었습니다. 아무래도 직장이라는 집중해야할 일이 생기니 하루 중 가장 큰 시간을 할애할 필요가 생겼습니다. 가장 크게는 스터디들. 하고 있던 프로젝트를 정리하는 것이었는데요.</p>\\n<p style=\\\"text-align: left;\\\" data-ke-size=\\\"size16\\\">문제는 이 프로젝트를 어떻게 잘 '정리'하느냐 였습니다.</p>\\n<p style=\\\"text-align: left;\\\" data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p style=\\\"text-align: left;\\\" data-ke-size=\\\"size16\\\">최근 코어타임을 하고 있었던 프로젝트는 <a href=\\\"https://github.com/Flytrap-Ware/RSS-Reader\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">RSS-Reader</a>&nbsp; 프로젝트였어요. 여기저기 플랫폼에 산재된 동료들의 블로그 새 글을 피드 형태로 보고, slack이나 discord에서 알람을 받을 수 있는 서비스를 기획하고 개발했는데요. 이 프로젝트의 사실 거대한(...) 목적은 현재 함께 공부하고 있는 스터디의 관리 플랫폼을 만드는 데에 가장 작은 유닛이었어요. 그러니까 계속해서 개발하고 발전시키는 데 목적이 있습니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">이것에 대한 코어타임을 끝내고 유지보수 개선 단계로 넘어가려니 사실 어떻게 해야할 지 잘 몰랐어요.</p>\\n<p data-ke-size=\\\"size16\\\">서버의 어플리케이션에서 오류가 생기거나 꺼지지 않게 잘 모니터링하고 있다가 문제가 생기면 대처하고 하는 식이어야 하는데, 늘 문제가 터진 다음에야 알게되었고 오류를 발견했을 때 공유체계도 잘 잡혀있지 않아서 발견한 사람이 고치는 일도 더러 있었거든요.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">그래서 이렇게 모니터링과 로깅에 관심을 가지게 되었습니다.</p>\\n<p data-ke-size=\\\"size16\\\">이에 대한 학습 자료나 어떻게 해야 좋다는 식의 정보가 하나도 없었고, 현업에서는 DataDog 등 모니터링 툴을 구매해서 사용하는 것이 일반적이라고해서 막막했었는데요. 앞서 관심을 갖고&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<hr contenteditable=\\\"false\\\" data-ke-type=\\\"horizontalRule\\\" data-ke-style=\\\"style1\\\" />\\n<h2 data-ke-size=\\\"size26\\\"><b>다음 주에 할 것</b></h2>\\n<p><figure class='imageblock alignCenter' data-origin-width='1278' data-origin-height='940' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/t7Rmz/btsCAhXj5oR/vUjB5Tq0RSj2K7hkfvhcb1/img.png' data-lightbox='lightbox' data-alt=''><img src='https://blog.kakaocdn.net/dn/t7Rmz/btsCAhXj5oR/vUjB5Tq0RSj2K7hkfvhcb1/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft7Rmz%2FbtsCAhXj5oR%2FvUjB5Tq0RSj2K7hkfvhcb1%2Fimg.png' width='450' height='331' data-ke-mobilestyle='alignCenter'/></span></figure></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\",\n                \"pubDate\": \"2023-12-23T01:28:57Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4932,\n                \"guid\": \"https://new-pow.tistory.com/94\",\n                \"title\": \"MySQL에서 `Process`의 의미 : 단일 프로세스의 프로세스를 종료할 수 있다고요?\",\n                \"thumbnailUrl\": \"https://blog.kakaocdn.net/dn/O2w22/btsCshjFMUZ/kRqGKaYHKuqwqKtKkzvCI0/img.png\",\n                \"description\": \"<h2 data-ke-size=\\\"size26\\\"><br /><b>궁금했던 것</b></h2>\\n<p data-ke-size=\\\"size16\\\">RealMySQL에서 다음과 같은 구절이 나옵니다. (Lock 챕터 중...)</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\">강제&nbsp;잠금을&nbsp;해제하려면&nbsp;KILL&nbsp;명령을&nbsp;통해&nbsp;MySQL&nbsp;서버의&nbsp;프로세스를&nbsp;강제로&nbsp;종료하면&nbsp;됩니다.</blockquote>\\n<p data-ke-size=\\\"size16\\\"><br />그런데,&nbsp;Process를&nbsp;죽인다는&nbsp;것이&nbsp;가능한&nbsp;것일까요?<br />제가 아는 바로는 MySQL은 단일 프로세스이기 때문에 Process를 죽이면 MySQL이 종료되지 않을까 생각했습니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p><figure class='imageblock alignCenter' data-origin-width='1280' data-origin-height='429' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/O2w22/btsCshjFMUZ/kRqGKaYHKuqwqKtKkzvCI0/img.png' data-lightbox='lightbox' data-alt='.. 하나도 몰랐던 사람의 리액션'><img src='https://blog.kakaocdn.net/dn/O2w22/btsCshjFMUZ/kRqGKaYHKuqwqKtKkzvCI0/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO2w22%2FbtsCshjFMUZ%2FkRqGKaYHKuqwqKtKkzvCI0%2Fimg.png' width='500' height='168' data-ke-mobilestyle='alignCenter'/></span><figcaption>.. 하나도 몰랐던 사람의 리액션</figcaption></figure></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">그런데 이것은 `Process`라는 용어가 OS와 MySQL DBMS 내부에서 다르게 쓰인다는 것을 모를 때 생각한 의문이었습니다.</p>\\n<p data-ke-size=\\\"size16\\\">이에 대해서 알아본 바를 간단하게 서술해보려고 합니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">혹시 잘못된 것이 있다면 꼭 알려주세요  </p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>MySQL은 스레드 기반으로 작동합니다.</b></h2>\\n<blockquote data-ke-style=\\\"style3\\\">MySQL 서버는 프로세스 기반이 아니라 스레드 기반으로 작동하며, 크게 포그라운드(Foreground) 스레드와 백그라운드(Background) 스레드로 구분할 수 있다.<br /><br /><i>*Real&nbsp;MySQL&nbsp;8.0&nbsp;80page*</i></blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">동일 책에서도 언급되다 시피 MySQL은 스레드 기반으로 작동합니다. 단일 프로세스로 작동되며 이 프로세스의 내붕에서 여러 스레드들이 메모리 자원을 공유하며 동작하게 됩니다.</p>\\n<ul style=\\\"list-style-type: disc;\\\" data-ke-list-type=\\\"disc\\\">\\n<li><a href=\\\"https://charlezz.medium.com/process%EC%99%80-thread-%EC%9D%B4%EC%95%BC%EA%B8%B0-5b96d0d43e37\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">참고링크 : 프로세스와 스레드의 차이</a></li>\\n</ul>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">그래서 이를 기반으로 MySQL 8.0의 공식 문서는 어떻게 언급하고 있는지 찾아보았습니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\"><b>`mysqld` 실제 서비스 데몬. 데이터베이스 엔진과 상호작용하며 SQL 쿼리를 처리합니다.</b><br /><br />MySQL 설치 시 대부분의 작업을 수행하는 단일 다중 스레드 프로그램입니다. 추가 프로세스를 생성하지 않습니다. MySQL 서버는 데이터베이스와 테이블이 포함된 MySQL 데이터 디렉터리에 대한 액세스를 관리합니다.</blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\"><b>`mysqld_safe` 서버 시작 스크립트 : MySQL이&nbsp;비정상적으로&nbsp;종료되는&nbsp;경우,&nbsp;다시&nbsp;기동합니다.</b><br /><br />오류 발생 시 서버를 다시 시작하고 런타임 정보를 오류 로그에 기록하는 등 일부 안전 기능을 추가합니다. <a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/mysqld-safe.html\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">[참고링크]</a></blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\"><b>`mysql.server`&nbsp;서버&nbsp;시작&nbsp;스크립트</b><br /><br />Unix 및 Unix 계열 시스템의 MySQL 배포판에는 <a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/mysqld-safe.html\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">mysqld_safe</a>를 사용하여 MySQL 서버를 시작하는 <a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/mysql-server.html\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">mysql.server</a>라는 스크립트가 포함되어 있습니다 .</blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\"><b>`mysqld_multi`&nbsp;여러&nbsp;MySQL&nbsp;서버&nbsp;관리</b><br /><br />다양한 Unix 소켓 파일과 TCP/IP 포트에서 연결을 수신하는 <a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/mysqld.html\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">multi mysqld</a>프로세스를&nbsp;관리하도록&nbsp;설계되었습니다&nbsp;서버를&nbsp;시작&nbsp;또는&nbsp;중지하거나&nbsp;현재&nbsp;상태를&nbsp;보고할&nbsp;수&nbsp;있습니다.</blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">결국 `mysqld` 만이 유일한 SQL 쿼리를 처리하는 프로세스라는 문서 내용이었습니다. <a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/mysqld.html](https://dev.mysql.com/doc/refman/8.0/en/mysqld.html\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">[참고 링크]</a></p>\\n<p data-ke-size=\\\"size16\\\">그&nbsp;프로세스&nbsp;내에서&nbsp;포그라운드&nbsp;스레드와&nbsp;백그라운드&nbsp;스레드로&nbsp;나뉘며&nbsp;각&nbsp;스레드의&nbsp;역할을&nbsp;수행합니다.<br />클라이언트의&nbsp;쿼리&nbsp;요청을&nbsp;처리하는&nbsp;것은&nbsp;포그라운드&nbsp;스레드에서&nbsp;이루어집니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p><figure class='imageblock alignCenter' data-origin-width='1280' data-origin-height='780' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/bxalaI/btsCpenJ9mC/2y9oQuBUQmkOQDFZ7BHf91/img.png' data-lightbox='lightbox' data-alt='참고 : 80 페이지 MySQL 스레딩 모델'><img src='https://blog.kakaocdn.net/dn/bxalaI/btsCpenJ9mC/2y9oQuBUQmkOQDFZ7BHf91/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxalaI%2FbtsCpenJ9mC%2F2y9oQuBUQmkOQDFZ7BHf91%2Fimg.png' width='500' height='305' data-ke-mobilestyle='alignCenter'/></span><figcaption>참고 : 80 페이지 MySQL 스레딩 모델</figcaption></figure></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>그럼&nbsp;`processlist`의&nbsp;정체는&nbsp;무엇일까?</b></h2>\\n<p data-ke-size=\\\"size16\\\">다음의 쿼리로 MySQL의 processlist를 조회할 수 있습니다. 대체&nbsp;이&nbsp;process는&nbsp;무엇일까요?</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<pre id=\\\"code_1703164900954\\\" class=\\\"sql\\\" data-ke-language=\\\"sql\\\" data-ke-type=\\\"codeblock\\\"><code>SHOW FULL PROCESSLIST;\\n\\n+----+---------------+-------------------+-------------+-------+------+----------------------+-----------------------------------------------------------------------------------------+\\n|ID  |USER           |HOST               |DB           |COMMAND|TIME  |STATE                 |INFO                                                                                     |\\n+----+---------------+-------------------+-------------+-------+------+----------------------+-----------------------------------------------------------------------------------------+\\n|1364|root           |192.168.228.1:38667|secondhand-db|Query  |0     |executing             |/* ApplicationName=IntelliJ IDEA 2022.1.3 */ SELECT * FROM information_schema.PROCESSLIST|\\n|5   |event_scheduler|localhost          |NULL         |Daemon |643686|Waiting on empty queue|NULL                                                                                     |\\n|1303|root           |192.168.228.1:38417|rss_reader   |Sleep  |17744 |                      |NULL                                                                                     |\\n+----+---------------+-------------------+-------------+-------+------+----------------------+-----------------------------------------------------------------------------------------+</code></pre>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">위에서&nbsp;언급한&nbsp;OS의&nbsp;프로세스와는&nbsp;다르게&nbsp;이&nbsp;`processlist`는&nbsp;MySQL&nbsp;서버&nbsp;내에서&nbsp;실행중인&nbsp;스레드&nbsp;집합에&nbsp;의해&nbsp;수행되는&nbsp;작업&nbsp;단위를&nbsp;모아둔&nbsp;리스트입니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<blockquote data-ke-style=\\\"style3\\\">  `processlist`란 무엇일까?<br /><br />MySQL 프로세스 목록은 서버 내에서 실행 중인 스레드 집합에 의해 현재 수행되고 있는 작업을 나타냅니다.</blockquote>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;그래서 process kill 이 가능한 것이지요. OS kill 구문과 같아서 헷갈릴 수 있지만 이 \\\"쿼리\\\"로 진행중인 프로세스를 강제 종료시킬 수 있으며, 이 때 해당 process 수행 중에 획득했던 lock을 다시 반납하게 되는 것입니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<pre id=\\\"code_1703164959254\\\" class=\\\"sql\\\" data-ke-language=\\\"sql\\\" data-ke-type=\\\"codeblock\\\"><code>kill [process id];</code></pre>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h4 data-ke-size=\\\"size20\\\"><b>OS의 작업단위인 thread와는 무슨 관계가 있나요?</b></h4>\\n<p data-ke-size=\\\"size16\\\">다음의 쿼리를 통해 현재 MySQL 프로세스 내부에서 작동중인 스레드 리스트를 확인할 수 있습니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<pre id=\\\"code_1703165004267\\\" class=\\\"sql\\\" data-ke-language=\\\"sql\\\" data-ke-type=\\\"codeblock\\\"><code>select * From performance_schema.threads;\\n\\n+---------+-------------------------------------------+----------+--------------+----------------+----------------+--------------+-------------------+----------------+--------------------------+-------------------------------------------------------------------------------------+----------------+----+------------+-------+---------------+------------+--------------+----------------+-----------------+---------------------+------------+----------------+----------------+\\n|THREAD_ID|NAME                                       |TYPE      |PROCESSLIST_ID|PROCESSLIST_USER|PROCESSLIST_HOST|PROCESSLIST_DB|PROCESSLIST_COMMAND|PROCESSLIST_TIME|PROCESSLIST_STATE         |PROCESSLIST_INFO                                                                     |PARENT_THREAD_ID|ROLE|INSTRUMENTED|HISTORY|CONNECTION_TYPE|THREAD_OS_ID|RESOURCE_GROUP|EXECUTION_ENGINE|CONTROLLED_MEMORY|MAX_CONTROLLED_MEMORY|TOTAL_MEMORY|MAX_TOTAL_MEMORY|TELEMETRY_ACTIVE|\\n+---------+-------------------------------------------+----------+--------------+----------------+----------------+--------------+-------------------+----------------+--------------------------+-------------------------------------------------------------------------------------+----------------+----+------------+-------+---------------+------------+--------------+----------------+-----------------+---------------------+------------+----------------+----------------+\\n|1        |thread/sql/main                            |BACKGROUND|NULL          |NULL            |NULL            |mysql         |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |1           |SYS_default   |PRIMARY         |480              |66992                |1228598     |1249003         |NO              |\\n|3        |thread/innodb/io_ibuf_thread               |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |84          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|4        |thread/innodb/io_read_thread               |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |85          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|5        |thread/innodb/io_read_thread               |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |86          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|6        |thread/innodb/io_read_thread               |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |87          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|7        |thread/innodb/io_read_thread               |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |88          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|8        |thread/innodb/io_write_thread              |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |89          |SYS_default   |PRIMARY         |0                |0                    |0           |36              |NO              |\\n|9        |thread/innodb/io_write_thread              |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |90          |SYS_default   |PRIMARY         |0                |0                    |0           |76              |NO              |\\n|10       |thread/innodb/io_write_thread              |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |91          |SYS_default   |PRIMARY         |0                |0                    |0           |76              |NO              |\\n|11       |thread/innodb/io_write_thread              |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |92          |SYS_default   |PRIMARY         |0                |0                    |0           |76              |NO              |\\n|12       |thread/innodb/page_flush_coordinator_thread|BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |93          |SYS_default   |PRIMARY         |240              |240                  |1978        |1978            |NO              |\\n|14       |thread/innodb/log_checkpointer_thread      |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |95          |SYS_default   |PRIMARY         |0                |0                    |0           |1728            |NO              |\\n|15       |thread/innodb/log_flush_notifier_thread    |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |96          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|16       |thread/innodb/log_flusher_thread           |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |97          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|17       |thread/innodb/log_write_notifier_thread    |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |98          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|18       |thread/innodb/log_writer_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |99          |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|19       |thread/innodb/log_files_governor_thread    |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |100         |SYS_default   |PRIMARY         |0                |0                    |0           |120             |NO              |\\n|24       |thread/innodb/srv_lock_timeout_thread      |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |105         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|25       |thread/innodb/srv_error_monitor_thread     |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |106         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|26       |thread/innodb/srv_monitor_thread           |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |107         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|27       |thread/innodb/buf_resize_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |108         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|28       |thread/innodb/srv_master_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |109         |SYS_default   |PRIMARY         |240              |240                  |1978        |2082            |NO              |\\n|29       |thread/innodb/dict_stats_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |110         |SYS_default   |PRIMARY         |240              |240                  |3354        |32434           |NO              |\\n|30       |thread/innodb/fts_optimize_thread          |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |111         |SYS_default   |PRIMARY         |240              |240                  |2962        |2962            |NO              |\\n|31       |thread/mysqlx/worker                       |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |112         |USR_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|32       |thread/mysqlx/worker                       |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |113         |USR_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|33       |thread/mysqlx/acceptor_network             |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |114         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|37       |thread/innodb/buf_dump_thread              |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |118         |SYS_default   |PRIMARY         |0                |0                    |0           |14256           |NO              |\\n|38       |thread/innodb/clone_gtid_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |waiting for handler commit|NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |119         |SYS_default   |PRIMARY         |108512           |108512               |585233      |623781          |NO              |\\n|39       |thread/innodb/srv_purge_thread             |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |120         |SYS_default   |PRIMARY         |240              |240                  |2266        |43832           |NO              |\\n|40       |thread/innodb/srv_worker_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |121         |SYS_default   |PRIMARY         |240              |240                  |3610        |85282           |NO              |\\n|41       |thread/innodb/srv_worker_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |122         |SYS_default   |PRIMARY         |240              |240                  |2890        |93178           |NO              |\\n|42       |thread/innodb/srv_worker_thread            |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |643829          |NULL                      |NULL                                                                                 |NULL            |NULL|YES         |YES    |NULL           |123         |SYS_default   |PRIMARY         |240              |240                  |2074        |43644           |NO              |\\n|43       |thread/sql/event_scheduler                 |FOREGROUND|5             |event_scheduler |localhost       |NULL          |Daemon             |643829          |Waiting on empty queue    |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |124         |SYS_default   |PRIMARY         |0                |0                    |16665       |16665           |NO              |\\n|44       |thread/sql/signal_handler                  |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |125         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|46       |thread/mysqlx/acceptor_network             |BACKGROUND|NULL          |NULL            |NULL            |NULL          |NULL               |NULL            |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |127         |SYS_default   |PRIMARY         |0                |0                    |0           |0               |NO              |\\n|47       |thread/sql/compress_gtid_table             |FOREGROUND|7             |NULL            |NULL            |NULL          |Daemon             |643829          |Suspending                |NULL                                                                                 |1               |NULL|YES         |YES    |NULL           |128         |SYS_default   |PRIMARY         |8240             |8240                 |14432       |14496           |NO              |\\n|1404     |thread/sql/one_connection                  |FOREGROUND|1364          |root            |192.168.228.1   |secondhand-db |Query              |0               |executing                 |/* ApplicationName=IntelliJ IDEA 2022.1.3 */ select * From performance_schema.threads|NULL            |NULL|YES         |YES    |SSL/TLS        |244         |USR_default   |PRIMARY         |1094784          |1107120              |1339154     |1374270         |NO              |\\n|1343     |thread/sql/one_connection                  |FOREGROUND|1303          |root            |192.168.228.1   |rss_reader    |Sleep              |17887           |NULL                      |NULL                                                                                 |1               |NULL|YES         |YES    |SSL/TLS        |245         |USR_default   |PRIMARY         |1067328          |1107360              |1160552     |1200413         |NO              |\\n+---------+-------------------------------------------+----------+--------------+----------------+----------------+--------------+-------------------+----------------+--------------------------+-------------------------------------------------------------------------------------+----------------+----+------------+-------+---------------+------------+--------------+----------------+-----------------+---------------------+------------+----------------+----------------+</code></pre>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">위 조회 결과에서 `THREAD_OS_ID` 가 OS 상에서 할당된 thread에 대한 id 값입니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<ul style=\\\"list-style-type: disc;\\\" data-ke-list-type=\\\"disc\\\">\\n<li>MySQL 스레드가 수명 기간 동안 동일한 운영 체제 스레드와 연결되어 있는 경우 THREAD_OS_ID에는 운영 체제 스레드 ID가 포함됩니다.</li>\\n<li>Windows의 경우 THREAD_OS_ID는 프로세스 탐색기([<a href=\\\"https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx](https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx))에\\\" target=\\\"_blank\\\" rel=\\\"noopener&nbsp;noreferrer\\\">https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx](https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx))에</a> 표시되는&nbsp;스레드&nbsp;ID에&nbsp;해당합니다.</li>\\n<li>Linux의 경우 THREAD_OS_ID는 gettid() 함수의 값에 해당합니다. 이 값은 예를 들어 perf 또는 ps -L 명령을 사용하거나 proc 파일 시스템(/proc/[pid]/task/[tid])에서 노출됩니다.</li>\\n</ul>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<hr contenteditable=\\\"false\\\" data-ke-type=\\\"horizontalRule\\\" data-ke-style=\\\"style1\\\" />\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>Refs.</b></h2>\\n<ul style=\\\"list-style-type: disc;\\\" data-ke-list-type=\\\"disc\\\">\\n<li>[27.12.21.8 The threads Table](<a href=\\\"https://dev.mysql.com/doc/refman/8.0/en/performance-schema-threads-table.html)\\\" target=\\\"_blank\\\" rel=\\\"noopener&nbsp;noreferrer\\\">https://dev.mysql.com/doc/refman/8.0/en/performance-schema-threads-table.html)</a></li>\\n<li>[MySQL Architecture - 3. Thread](<a href=\\\"https://blog.ex-em.com/1681)\\\">https://blog.ex-em.com/1681)</a></li>\\n</ul>\",\n                \"pubDate\": \"2023-12-21T13:25:48Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4933,\n                \"guid\": \"https://new-pow.tistory.com/93\",\n                \"title\": \"Error: Permission to {repository} denied to github-actions[bot]\",\n                \"thumbnailUrl\": \"https://blog.kakaocdn.net/dn/c6mYtv/btsCtbXgjDX/VkNqCF864TSNZclta39JR0/img.png\",\n                \"description\": \"<h2 data-ke-size=\\\"size26\\\"><b>발생 상황</b></h2>\\n<p data-ke-size=\\\"size16\\\">`README.md` 를 자동으로 생성해주는 Action을 시행하다 이와 같은 Github action 에러를 맞이했습니다.</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<pre id=\\\"code_1703147359284\\\" class=\\\"bash\\\" data-ke-language=\\\"bash\\\" data-ke-type=\\\"codeblock\\\"><code># update 관련 내용 생략\\n\\ngit add README.md &amp;&amp; git commit -m \\\"Updated README\\\"\\n[main 88ac2d7] Updated README\\n 1 file changed, 25 insertions(+), 2 deletions(-)\\ngit push\\nremote: Permission to new-pow/bookshelf.git denied to github-actions[bot].\\nfatal: unable to access 'https://github.com/new-pow/bookshelf/': The requested URL returned error: 403</code></pre>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>발생 원인</b></h2>\\n<p data-ke-size=\\\"size16\\\">저장소 세팅에서 `Workflow`의 권한이 제한되어있었기 때문입니다.</p>\\n<p data-ke-size=\\\"size16\\\">이를 수정하여 문제를 해결할 수 있습니다.</p>\\n<p><figure class='imageblock alignCenter' data-origin-width='1166' data-origin-height='652' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/c6mYtv/btsCtbXgjDX/VkNqCF864TSNZclta39JR0/img.png' data-lightbox='lightbox' data-alt=''><img src='https://blog.kakaocdn.net/dn/c6mYtv/btsCtbXgjDX/VkNqCF864TSNZclta39JR0/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6mYtv%2FbtsCtbXgjDX%2FVkNqCF864TSNZclta39JR0%2Fimg.png' width='500' height='280' data-ke-mobilestyle='alignCenter'/></span></figure></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<h2 data-ke-size=\\\"size26\\\"><b>대처</b></h2>\\n<p data-ke-size=\\\"size16\\\"><span style=\\\"text-align: left;\\\">`Settings -&gt; Action -&gt; General -&gt; Workflow permissions` 에서 `Read and write permissions` 를 선택합니다.</span></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p><figure class='imageblock alignCenter' data-origin-width='1640' data-origin-height='790' data-ke-mobilestyle='alignCenter'><span data-url='https://blog.kakaocdn.net/dn/buJATc/btsCo4ZBgeq/yhKk7hv7QHqkGjvGCkOvXK/img.png' data-lightbox='lightbox' data-alt=''><img src='https://blog.kakaocdn.net/dn/buJATc/btsCo4ZBgeq/yhKk7hv7QHqkGjvGCkOvXK/img.png' srcset='https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuJATc%2FbtsCo4ZBgeq%2FyhKk7hv7QHqkGjvGCkOvXK%2Fimg.png' width='500' height='241' data-ke-mobilestyle='alignCenter'/></span></figure></p>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\\n<p data-ke-size=\\\"size16\\\"><span style=\\\"text-align: left;\\\">바로 성공  </span></p>\\n<hr data-ke-style=\\\"style1\\\" />\\n<h2 data-ke-size=\\\"size26\\\"><b>Refs.</b></h2>\\n<ul style=\\\"list-style-type: disc;\\\" data-ke-list-type=\\\"disc\\\">\\n<li><a href=\\\"https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403\\\" target=\\\"_blank\\\" rel=\\\"noopener&nbsp;noreferrer\\\">https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403</a></li>\\n</ul>\\n<figure id=\\\"og_1703147553261\\\" contenteditable=\\\"false\\\" data-ke-type=\\\"opengraph\\\" data-ke-align=\\\"alignCenter\\\" data-og-type=\\\"website\\\" data-og-title=\\\"Permission denied to github-actions[bot]. The requested URL returned error: 403\\\" data-og-description=\\\"I want to push files into the current repository using Github Actions. I've written a basic configuration that uses the official actions/checkout@v3 action. My configuration is almost the same as i...\\\" data-og-host=\\\"stackoverflow.com\\\" data-og-source-url=\\\"https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403\\\" data-og-url=\\\"https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403\\\" data-og-image=\\\"https://scrap.kakaocdn.net/dn/8Y4aW/hyUPKOzQlu/qwHsKmvSrHUio5ojJuRDkK/img.png?width=316&amp;height=316&amp;face=0_0_316_316\\\"><a href=\\\"https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\" data-source-url=\\\"https://stackoverflow.com/questions/73687176/permission-denied-to-github-actionsbot-the-requested-url-returned-error-403\\\">\\n<div class=\\\"og-image\\\" style=\\\"background-image: url('https://scrap.kakaocdn.net/dn/8Y4aW/hyUPKOzQlu/qwHsKmvSrHUio5ojJuRDkK/img.png?width=316&amp;height=316&amp;face=0_0_316_316');\\\">&nbsp;</div>\\n<div class=\\\"og-text\\\">\\n<p class=\\\"og-title\\\" data-ke-size=\\\"size16\\\">Permission denied to github-actions[bot]. The requested URL returned error: 403</p>\\n<p class=\\\"og-desc\\\" data-ke-size=\\\"size16\\\">I want to push files into the current repository using Github Actions. I've written a basic configuration that uses the official actions/checkout@v3 action. My configuration is almost the same as i...</p>\\n<p class=\\\"og-host\\\" data-ke-size=\\\"size16\\\">stackoverflow.com</p>\\n</div>\\n</a></figure>\\n<p data-ke-size=\\\"size16\\\">&nbsp;</p>\",\n                \"pubDate\": \"2023-12-21T08:33:39Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4822,\n                \"guid\": \"99df2719-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4952\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4952\",\n                \"description\": \"Description 4952\",\n                \"pubDate\": \"2023-12-20T21:56:17Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4308,\n                \"guid\": \"99d12226-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4438\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4438\",\n                \"description\": \"Description 4438\",\n                \"pubDate\": \"2023-12-20T21:56:17Z\",\n                \"subscribeTitle\": \"janeljs.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 3446,\n                \"guid\": \"9950c86f-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 3576\",\n                \"thumbnailUrl\": \"Thumbnail_URL 3576\",\n                \"description\": \"Description 3576\",\n                \"pubDate\": \"2023-12-20T21:56:16Z\",\n                \"subscribeTitle\": \"✨ iirin's space\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 2518,\n                \"guid\": \"9933b648-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 2648\",\n                \"thumbnailUrl\": \"Thumbnail_URL 2648\",\n                \"description\": \"Description 2648\",\n                \"pubDate\": \"2023-12-20T21:56:15Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 1517,\n                \"guid\": \"991888f3-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 1647\",\n                \"thumbnailUrl\": \"Thumbnail_URL 1647\",\n                \"description\": \"Description 1647\",\n                \"pubDate\": \"2023-12-20T21:56:15Z\",\n                \"subscribeTitle\": \"조금씩, 꾸준히, 자주\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4787,\n                \"guid\": \"99ddbcd0-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4917\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4917\",\n                \"description\": \"Description 4917\",\n                \"pubDate\": \"2023-12-19T21:56:17Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4805,\n                \"guid\": \"99deff59-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4935\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4935\",\n                \"description\": \"Description 4935\",\n                \"pubDate\": \"2023-12-19T21:56:17Z\",\n                \"subscribeTitle\": \"janeljs.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4332,\n                \"guid\": \"99d1ea16-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4462\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4462\",\n                \"description\": \"Description 4462\",\n                \"pubDate\": \"2023-12-19T21:56:17Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4368,\n                \"guid\": \"99d247d6-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4498\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4498\",\n                \"description\": \"Description 4498\",\n                \"pubDate\": \"2023-12-19T21:56:17Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 4162,\n                \"guid\": \"99cdfab7-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4292\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4292\",\n                \"description\": \"Description 4292\",\n                \"pubDate\": \"2023-12-19T21:56:17Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 3414,\n                \"guid\": \"99508b50-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 3544\",\n                \"thumbnailUrl\": \"Thumbnail_URL 3544\",\n                \"description\": \"Description 3544\",\n                \"pubDate\": \"2023-12-19T21:56:16Z\",\n                \"subscribeTitle\": \"louie.log\",\n                \"open\": false,\n                \"bookmark\": false\n            },\n            {\n                \"id\": 2089,\n                \"guid\": \"99298ce3-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 2219\",\n                \"thumbnailUrl\": \"Thumbnail_URL 2219\",\n                \"description\": \"Description 2219\",\n                \"pubDate\": \"2023-12-19T21:56:15Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": false\n            }\n        ]\n    }\n}"}],"_postman_id":"84a5c2ab-e559-4e5c-ba71-92258609fd2f"},{"name":"폴더 게시글 목록 불러오기","id":"47ec23ca-6869-46e9-ae02-7f91ef8431b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/folders/1/posts","urlObject":{"path":["api","folders","1","posts"],"host":["http://localhost:8080"],"query":[{"disabled":true,"key":"keyword","value":"회고"},{"disabled":true,"key":"read","value":"false"},{"disabled":true,"key":"start","value":"0"},{"disabled":true,"key":"end","value":"9999999999999"},{"disabled":true,"key":"size","value":"1"},{"disabled":true,"key":"page","value":"0"}],"variable":[]}},"response":[],"_postman_id":"47ec23ca-6869-46e9-ae02-7f91ef8431b7"},{"name":"전체 게시글 목록 불러오기","id":"fd80a114-d2d5-45b9-bfd9-59224f33ff34","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/posts","urlObject":{"path":["api","posts"],"host":["http://localhost:8080"],"query":[{"disabled":true,"key":"keyword","value":"회고"},{"disabled":true,"key":"read","value":"false"},{"disabled":true,"key":"start","value":"0"},{"disabled":true,"key":"end","value":"9999999999999"},{"disabled":true,"key":"size","value":"1"},{"disabled":true,"key":"page","value":"3"}],"variable":[]}},"response":[],"_postman_id":"fd80a114-d2d5-45b9-bfd9-59224f33ff34"},{"name":"게시물 조회","id":"e6c171e7-dc12-4104-a8e9-41e66b6c7709","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/posts/1","urlObject":{"path":["api","posts","1"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"e6c171e7-dc12-4104-a8e9-41e66b6c7709"},{"name":"테스트 콜렉트","id":"8eff9ed3-cb84-4583-a421-ede20fae4c9c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"8eff9ed3-cb84-4583-a421-ede20fae4c9c"}],"id":"e32996ee-5cc6-4055-a1f9-5c26b24c6483","_postman_id":"e32996ee-5cc6-4055-a1f9-5c26b24c6483","description":""},{"name":"bookmark","item":[{"name":"북마크 게시글 목록 불러오기","id":"2a7831b0-e837-4046-8ea2-0cff8807efb4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/bookmarks","urlObject":{"path":["api","bookmarks"],"host":["http://localhost:8080"],"query":[{"disabled":true,"key":"keyword","value":"회고"},{"disabled":true,"key":"read","value":"false"},{"disabled":true,"key":"start","value":"0"},{"disabled":true,"key":"end","value":"9999999999999"},{"disabled":true,"key":"size","value":"1"},{"disabled":true,"key":"page","value":"3"}],"variable":[]}},"response":[],"_postman_id":"2a7831b0-e837-4046-8ea2-0cff8807efb4"},{"name":"북마크 추가하기","id":"2b8b956a-be91-4b29-b9f1-c877477b341e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"http://localhost:8080/api/post/5/bookmarks","urlObject":{"path":["api","post","5","bookmarks"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"2b8b956a-be91-4b29-b9f1-c877477b341e"},{"name":"북마크 제거하기","id":"dea51d46-746c-414f-8fd9-a4beccda078e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/post/1/bookmarks","urlObject":{"path":["api","post","1","bookmarks"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"dea51d46-746c-414f-8fd9-a4beccda078e"}],"id":"6e5cfdea-5822-4021-8cc5-9711e856b006","_postman_id":"6e5cfdea-5822-4021-8cc5-9711e856b006","description":""},{"name":"reaction","item":[{"name":"리액션 추가","id":"9697f9bb-1018-4bca-a435-5206a8f4e557","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"9697f9bb-1018-4bca-a435-5206a8f4e557"}],"id":"40e6d702-e5f8-4c38-b61c-110c3a1b761f","_postman_id":"40e6d702-e5f8-4c38-b61c-110c3a1b761f","description":""},{"name":"alert","item":[{"name":"알림 웹 훅 리스트 조회 (폴더별)","id":"30b5e20e-97c0-4b6b-a49b-65b959745720","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/api/folders/1/alerts","urlObject":{"path":["api","folders","1","alerts"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"9d8c80cf-ebf2-43d2-8570-e16c18c7bc2e","name":"알림 웹 훅 리스트 조회 (폴더별)","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/api/folders/1/alerts"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"alerts\": [\n            {\n                \"id\": 1,\n                \"platform\": \"DISCORD\",\n                \"webhookUrl\": \"url_1\"\n            },\n            {\n                \"id\": 2,\n                \"platform\": \"SLACK\",\n                \"webhookUrl\": \"url_2\"\n            }\n        ]\n    }\n}"}],"_postman_id":"30b5e20e-97c0-4b6b-a49b-65b959745720"},{"name":"알림 웹 훅 등록","id":"df031032-952a-4795-808f-1d9d753d5be7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"webhookUrl\": \"https://discord.com/api/webhooks/test-url\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1/alerts","urlObject":{"path":["api","folders","1","alerts"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"2f550be3-b7ec-4125-a5f6-80176c0852b0","name":"200","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"webhookUrl\": \"https://discord.com/api/webhooks/test-url\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/api/folders/1/alerts"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 2,\n        \"platform\": \"DISCORD\",\n        \"webhookUrl\": \"https://discord.com/api/webhooks/test-url\"\n    }\n}"}],"_postman_id":"df031032-952a-4795-808f-1d9d753d5be7"},{"name":"알림 웹 훅 삭제","id":"88261f0a-a089-4d50-8d2f-401ed9415aee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/folders/1/alerts/2","urlObject":{"path":["api","folders","1","alerts","2"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"2d0ee4bd-0f24-41ef-8928-f677ad2afc38","name":"200","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8080/api/folders/1/alerts/2"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": \"알람이 삭제되었습니다. ID = 2\"\n}"}],"_postman_id":"88261f0a-a089-4d50-8d2f-401ed9415aee"},{"name":"Test Webhook","id":"b1e3b4ae-dcee-4267-b50c-2d4e6e29b250","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"b1e3b4ae-dcee-4267-b50c-2d4e6e29b250"}],"id":"966104d8-5db0-4856-a690-80cfe1b7d6a1","_postman_id":"966104d8-5db0-4856-a690-80cfe1b7d6a1","description":""},{"name":"post open","item":[{"name":"게시물 조회 기록 삭제","id":"dc41efd2-2da5-4303-b9d3-900d8cea1053","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"dc41efd2-2da5-4303-b9d3-900d8cea1053"}],"id":"c02c6dae-fb13-4b12-99f4-3c01a0c00439","_postman_id":"c02c6dae-fb13-4b12-99f4-3c01a0c00439","description":""},{"name":"hashtag","item":[{"name":"해시태그 목록 조회","id":"0e8da947-9330-4bb3-85c2-4ba6bae04272","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/hashtags","urlObject":{"path":["hashtags"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"2753c9ca-f52b-4da2-ae7f-76148c2de7f7","name":"성공: 200 OK","originalRequest":{"method":"GET","header":[],"url":"{{BE domain local}}/hashtags"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"hashtags\": [\n            {\n                \"id\": 1,\n                \"name\": \"Java\",\n                \"postCount\": 5\n            },\n            {\n                \"id\": 2,\n                \"name\": \"Spring\",\n                \"postCount\": 10\n            }\n        ]\n    }\n}"}],"_postman_id":"0e8da947-9330-4bb3-85c2-4ba6bae04272"},{"name":"해시태그 게시글 목록 조회","id":"1fd954c4-798a-4e95-9531-c882dd0c43f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8080/posts/hashtags?name=Java","urlObject":{"path":["posts","hashtags"],"host":["http://localhost:8080"],"query":[{"key":"name","value":"Java"}],"variable":[]}},"response":[{"id":"027b7372-422d-4cbd-966e-d3c55ed0e36c","name":"성공: 200 OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{BE domain local}}/posts/hashtags?name=Java","host":["{{BE domain local}}"],"path":["posts","hashtags"],"query":[{"key":"name","value":"Java"}]}},"code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"posts\": [\n            {\n                \"id\": 4822,\n                \"guid\": \"99df2719-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4952\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4952\",\n                \"description\": \"Description 4952\",\n                \"pubDate\": \"2023-12-20T21:56:17Z\",\n                \"subscribeTitle\": \"ape.log\",\n                \"open\": false,\n                \"bookmark\": true,\n                \"hashtags\": [\n                    {\n                        \"id\": 1,\n                        \"name\": \"Java\"\n                    },\n                    {\n                        \"id\": 2,\n                        \"name\": \"Spring\"\n                    }\n                ]\n            },\n            {\n                \"id\": 4308,\n                \"guid\": \"99d12226-9f82-11ee-aaea-0242ac130004\",\n                \"title\": \"Title 4438\",\n                \"thumbnailUrl\": \"Thumbnail_URL 4438\",\n                \"description\": \"Description 4438\",\n                \"pubDate\": \"2023-12-20T21:56:17Z\",\n                \"subscribeTitle\": \"janeljs.log\",\n                \"open\": false,\n                \"bookmark\": true,\n                \"hashtags\": [\n                    {\n                        \"id\": 1,\n                        \"name\": \"Java\"\n                    },\n                    {\n                        \"id\": 2,\n                        \"name\": \"Spring\"\n                    }\n                ]\n            }\n        ]\n    }\n}"}],"_postman_id":"1fd954c4-798a-4e95-9531-c882dd0c43f2"},{"name":"해시태그 생성","id":"24627af2-2a5b-40af-ab5a-123db8b2b64f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"postId\": 1,\n    \"hashTagName\": \"Java\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/hashtags","urlObject":{"path":["hashtags"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"1c036707-f364-4972-a476-604a08e46175","name":"성공: 201 Create","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"postId\": 1,\n    \"hashTagName\": \"Java\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/hashtags"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\":\n        {\n            \"id\": 1,\n            \"name\": \"Java\"\n        }\n}"}],"_postman_id":"24627af2-2a5b-40af-ab5a-123db8b2b64f"},{"name":"해시태그 수정","id":"aca3d43c-b38e-403a-9972-78f9d71ff67c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"id\": 1,\n    \"Name\": \"java\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/hashtags","urlObject":{"path":["hashtags"],"host":["http://localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"efea78bd-b1da-4a72-8cac-e7436cf3e7f6","name":"성공: 200 OK","originalRequest":{"method":"PATCH","header":[],"url":{"raw":"http://localhost:8080/hashtags/:id","host":["http://localhost:8080"],"path":["hashtags",":id"],"variable":[{"key":"id","value":"1"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\":\n        {\n            \"id\": 1,\n            \"name\": \"Kotlin\"\n        }\n}"}],"_postman_id":"aca3d43c-b38e-403a-9972-78f9d71ff67c"},{"name":"해시태그 삭제","id":"c389db98-007c-4a63-be62-aa272f11a499","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8080/hashtags/:id","urlObject":{"path":["hashtags",":id"],"host":["http://localhost:8080"],"query":[],"variable":[{"type":"any","value":"1","key":"id"}]}},"response":[{"id":"7c256156-3a07-41b7-9364-a0c3b85384e9","name":"성공: 200 OK","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"http://localhost:8080/hashtags/:id","host":["http://localhost:8080"],"path":["hashtags",":id"],"variable":[{"key":"id","value":"1"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": \"해시태그가 삭제되었습니다. hashTagId = 1\"\n}"}],"_postman_id":"c389db98-007c-4a63-be62-aa272f11a499"}],"id":"e7fd62d8-5b9e-4907-a22c-ceb60a0d0a7f","_postman_id":"e7fd62d8-5b9e-4907-a22c-ceb60a0d0a7f","description":""}],"event":[{"listen":"prerequest","script":{"id":"7d13d947-f653-416e-910d-80c6d05d44bf","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"20445748-3471-4c0e-8670-108afaaf1f3d","type":"text/javascript","exec":[""]}}],"variable":[{"key":"url","value":"http://localhost:8080","type":"string"}]}