{"info":{"_postman_id":"d6138e04-2339-4cc1-9cad-d7650d03101e","name":"Spring Server","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"38856973","collectionId":"d6138e04-2339-4cc1-9cad-d7650d03101e","publishedId":"2sAYJ1khEE","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-12-18T11:27:14.000Z"},"item":[{"name":"Member","item":[{"name":"모듈간 통신","item":[{"name":"회원 생성","id":"47d35afc-9fee-4134-9c5c-b1ce306fc3d0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"role\" : \"ROLE_USER\",\n    \"name\" : \"namkikim0718\",\n    \"username\" : \"113903598\",\n    \"avatarUrl\" : \"https://avatars.githubusercontent.com/u/113903598?v=4\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8081/api/members","urlObject":{"path":["api","members"],"host":["http://localhost:8081"],"query":[],"variable":[]}},"response":[],"_postman_id":"47d35afc-9fee-4134-9c5c-b1ce306fc3d0"},{"name":"username으로 회원 ID 조회","id":"2339a28e-e64e-4b89-bc2c-8454eccd524e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8081/api/members?username=113903598","urlObject":{"path":["api","members"],"host":["http://localhost:8081"],"query":[{"key":"username","value":"113903598"}],"variable":[]}},"response":[],"_postman_id":"2339a28e-e64e-4b89-bc2c-8454eccd524e"}],"id":"ca2b1a32-7a00-4cd2-9ae1-13d089218078","_postman_id":"ca2b1a32-7a00-4cd2-9ae1-13d089218078","description":""},{"name":"내 정보 조회","id":"022541e1-c6ef-42e4-a5a2-b4786a87eb23","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[{"key":"access","value":"eyJhbGciOiJIUzI1NiJ9.eyJjYXRlZ29yeSI6ImFjY2VzcyIsInVzZXJuYW1lIjoiMTEzOTAzNTk4Iiwicm9sZSI6IlJPTEVfVVNFUiIsIm1lbWJlcklkIjoxLCJpYXQiOjE3Mjg1NTA3NzAsImV4cCI6MTcyODU1MTM3MH0.ncyAkVs_q2T3DvrKtFMYITupxnqyMizhB4l4-o2V_7w","type":"text"}],"url":"http://localhost:8081/api/members/me","urlObject":{"path":["api","members","me"],"host":["http://localhost:8081"],"query":[],"variable":[]}},"response":[{"id":"f7319617-98eb-41db-ad18-00d03e7c26e8","name":"내 정보 조회","originalRequest":{"method":"GET","header":[{"key":"access","value":"eyJhbGciOiJIUzI1NiJ9.eyJjYXRlZ29yeSI6ImFjY2VzcyIsInVzZXJuYW1lIjoiMTEzOTAzNTk4Iiwicm9sZSI6IlJPTEVfVVNFUiIsIm1lbWJlcklkIjoxLCJpYXQiOjE3Mjg1NTA3NzAsImV4cCI6MTcyODU1MTM3MH0.ncyAkVs_q2T3DvrKtFMYITupxnqyMizhB4l4-o2V_7w","type":"text"}],"url":"http://localhost:8081/api/members/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 25 Nov 2024 10:36:38 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-11-25T19:36:38.411369\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": {\n        \"memberId\": 100001,\n        \"memberAdditionalInfoId\": \"67445303ef4c4c49fed690ea\",\n        \"nickname\": \"namkikim0718\",\n        \"name\": \"김남기\",\n        \"username\": \"113903598\",\n        \"githubName\": \"\",\n        \"avatarUrl\": \"https://avatars.githubusercontent.com/u/113903598?v=4\",\n        \"phoneNumber\": \"01055914273\",\n        \"email\": \"a49494273@gmail.com\",\n        \"position\": \"BACKEND\",\n        \"paidPlan\": \"FREE\",\n        \"remainingCount\": 3,\n        \"workExperiences\": [],\n        \"educations\": [],\n        \"certificates\": [],\n        \"links\": []\n    }\n}"}],"_postman_id":"022541e1-c6ef-42e4-a5a2-b4786a87eb23"},{"name":"회원 기본 정보 및 추가 정보 수정","id":"af2640ed-6147-457a-b2af-82858a887852","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"memberUpdateRequestDTO","value":"{\"name\" : \"김남기\", \"phoneNumber\" : \"01012341234\", \"email\" : \"a12345678@gmail.com\", \"position\" : \"BACKEND\"}","type":"text","contentType":"application/json"},{"key":"memberAdditionalRequestDTO","value":"{\n    \"workExperiences\" : [\n        {\n            \"companyName\" : \"수정\",\n            \"departmentName\" : \"수정\",\n            \"role\" : \"수정\",\n            \"workType\" : \"FULL_TIME\",\n            \"employmentStatus\" : \"EMPLOYMENT\",\n            \"startedAt\" : \"2022-03\",\n            \"endedAt\" : \"\"\n        }\n    ],\n    \"educations\" : [\n        {\n            \"schoolType\" : \"UNIVERSITY_BACHELOR\",\n            \"schoolName\" : \"수정\",\n            \"major\" : \"수정\",\n            \"graduationStatus\" : \"ATTENDING\",\n            \"startedAt\" : \"2019-03\",\n            \"endedAt\" : \"\"\n        }\n    ],\n    \"certificates\" : [\n        {\n            \"certificateName\" : \"정보처리기사\",\n            \"certificateGrade\" : \"기사\",\n            \"certificatedAt\" : \"2022-09\",\n            \"certificateOrganization\" : \"한국산업인력공단\"\n        }\n    ],\n    \"activities\" : [\n        {\n            \"activityName\" : \"멋쟁이사자처럼\",\n            \"activityYear\" : 2024,\n            \"activityDescription\" : \"\",\n            \"activityOrganization\" : \"멋쟁이사자처럼\"\n        }\n    ],\n    \"links\" : [\n        {\n            \"linkTitle\" : \"링크 이름\",\n            \"linkUrl\" : \"https://github.com\"\n        }\n    ]\n}","type":"text","contentType":"application/json"},{"key":"imageFile","type":"file","contentType":"multipart/form-data","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/Users/kimnamki/Desktop/스크린샷 2024-11-03 16.44.14.png"],"src":"postman-cloud:///1ef0852c-53a0-4870-949b-14f416549dfb"}]},"url":"http://localhost:8081/api/members/me","urlObject":{"path":["api","members","me"],"host":["http://localhost:8081"],"query":[],"variable":[]}},"response":[{"id":"4e86d056-821c-4a24-bd92-0397fc9d2576","name":"회원 기본 정보 및 추가 정보 수정","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"memberUpdateRequestDTO","value":"{\"name\" : \"김남기\", \"phoneNumber\" : \"01012341234\", \"email\" : \"a12345678@gmail.com\", \"position\" : \"BACKEND\"}","type":"text","contentType":"application/json"},{"key":"memberAdditionalRequestDTO","value":"{\n    \"workExperiences\" : [\n        {\n            \"companyName\" : \"수정\",\n            \"departmentName\" : \"수정\",\n            \"role\" : \"수정\",\n            \"workType\" : \"FULL_TIME\",\n            \"employmentStatus\" : \"EMPLOYMENT\",\n            \"startedAt\" : \"2022-03\",\n            \"endedAt\" : \"\"\n        }\n    ],\n    \"educations\" : [\n        {\n            \"schoolType\" : \"UNIVERSITY_BACHELOR\",\n            \"schoolName\" : \"수정\",\n            \"major\" : \"수정\",\n            \"graduationStatus\" : \"ATTENDING\",\n            \"startedAt\" : \"2019-03\",\n            \"endedAt\" : \"\"\n        }\n    ],\n    \"certificates\" : [\n        {\n            \"certificateName\" : \"정보처리기사\",\n            \"certificateGrade\" : \"기사\",\n            \"certificatedAt\" : \"2022-09\",\n            \"certificateOrganization\" : \"한국산업인력공단\"\n        }\n    ],\n    \"activities\" : [\n        {\n            \"activityName\" : \"멋쟁이사자처럼\",\n            \"activityYear\" : 2024,\n            \"activityDescription\" : \"\",\n            \"activityOrganization\" : \"멋쟁이사자처럼\"\n        }\n    ],\n    \"links\" : [\n        {\n            \"linkTitle\" : \"링크 이름\",\n            \"linkUrl\" : \"https://github.com\"\n        }\n    ]\n}","type":"text","contentType":"application/json"},{"key":"imageFile","type":"file","contentType":"multipart/form-data","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/Users/kimnamki/Desktop/스크린샷 2024-11-03 16.44.14.png"],"src":"postman-cloud:///1ef0852c-53a0-4870-949b-14f416549dfb"}]},"url":"http://localhost:8081/api/members/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 20 Nov 2024 11:05:23 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-11-20T20:05:23.054093\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": \"회원 기본 정보 수정이 완료되었습니다.\"\n}"}],"_postman_id":"af2640ed-6147-457a-b2af-82858a887852"},{"name":"레포 조회","id":"8f473510-c32b-4b47-883b-d5f8c35c21d1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8081/api/members/myRepo","urlObject":{"path":["api","members","myRepo"],"host":["http://localhost:8081"],"query":[],"variable":[]}},"response":[{"id":"09551280-b176-4b53-8751-97dc24ffe818","name":"레포 조회","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8081/api/members/myRepo"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sat, 16 Nov 2024 07:22:55 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-11-16T16:22:55.049575\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": [\n        {\n            \"repoId\": 865771867,\n            \"repoName\": \"gitfolio_back_spring\",\n            \"repoUrl\": \"https://github.com/KTB-Sixmen/gitfolio_back_spring\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-11-15T05:17:18Z\"\n        },\n        {\n            \"repoId\": 865770735,\n            \"repoName\": \"gitfolio_front\",\n            \"repoUrl\": \"https://github.com/KTB-Sixmen/gitfolio_front\",\n            \"topLanguage\": \"TypeScript\",\n            \"updatedAt\": \"2024-11-15T03:41:30Z\"\n        },\n        {\n            \"repoId\": 865768881,\n            \"repoName\": \"gitfolio_cloud\",\n            \"repoUrl\": \"https://github.com/KTB-Sixmen/gitfolio_cloud\",\n            \"topLanguage\": \"HCL\",\n            \"updatedAt\": \"2024-11-14T08:38:06Z\"\n        },\n        {\n            \"repoId\": 864440732,\n            \"repoName\": \"gitfolio_AI\",\n            \"repoUrl\": \"https://github.com/KTB-Sixmen/gitfolio_AI\",\n            \"topLanguage\": \"Python\",\n            \"updatedAt\": \"2024-11-11T08:48:53Z\"\n        },\n        {\n            \"repoId\": 883118324,\n            \"repoName\": \"gitfolio_back_spring\",\n            \"repoUrl\": \"https://github.com/namkikim0718/gitfolio_back_spring\",\n            \"topLanguage\": null,\n            \"updatedAt\": \"2024-11-04T12:09:20Z\"\n        },\n        {\n            \"repoId\": 801551631,\n            \"repoName\": \"2024_BEOTKKOTTHON_TEAM_11_BE\",\n            \"repoUrl\": \"https://github.com/namkikim0718/2024_BEOTKKOTTHON_TEAM_11_BE\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-11-01T02:11:44Z\"\n        },\n        {\n            \"repoId\": 854610128,\n            \"repoName\": \"ReBook_BE\",\n            \"repoUrl\": \"https://github.com/namkikim0718/ReBook_BE\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-11-01T01:49:08Z\"\n        },\n        {\n            \"repoId\": 666329059,\n            \"repoName\": \"Algorithm\",\n            \"repoUrl\": \"https://github.com/namkikim0718/Algorithm\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-10-24T08:33:29Z\"\n        },\n        {\n            \"repoId\": 780998466,\n            \"repoName\": \"2024_BEOTKKOTTHON_TEAM_11\",\n            \"repoUrl\": \"https://github.com/namkikim0718/2024_BEOTKKOTTHON_TEAM_11\",\n            \"topLanguage\": null,\n            \"updatedAt\": \"2024-10-17T14:15:35Z\"\n        },\n        {\n            \"repoId\": 855839683,\n            \"repoName\": \"ReBook\",\n            \"repoUrl\": \"https://github.com/namkikim0718/ReBook\",\n            \"topLanguage\": null,\n            \"updatedAt\": \"2024-10-17T14:05:05Z\"\n        },\n        {\n            \"repoId\": 865771153,\n            \"repoName\": \"gitfolio_back_nest\",\n            \"repoUrl\": \"https://github.com/KTB-Sixmen/gitfolio_back_nest\",\n            \"topLanguage\": \"TypeScript\",\n            \"updatedAt\": \"2024-10-02T13:15:23Z\"\n        },\n        {\n            \"repoId\": 693224778,\n            \"repoName\": \"namkikim0718\",\n            \"repoUrl\": \"https://github.com/namkikim0718/namkikim0718\",\n            \"topLanguage\": null,\n            \"updatedAt\": \"2024-09-28T07:01:39Z\"\n        },\n        {\n            \"repoId\": 829283575,\n            \"repoName\": \"ReBook\",\n            \"repoUrl\": \"https://github.com/5-ReBook/ReBook\",\n            \"topLanguage\": null,\n            \"updatedAt\": \"2024-09-20T06:48:28Z\"\n        },\n        {\n            \"repoId\": 836056653,\n            \"repoName\": \"ReBook_FE\",\n            \"repoUrl\": \"https://github.com/5-ReBook/ReBook_FE\",\n            \"topLanguage\": \"JavaScript\",\n            \"updatedAt\": \"2024-09-19T07:07:23Z\"\n        },\n        {\n            \"repoId\": 829283013,\n            \"repoName\": \"ReBook_BE\",\n            \"repoUrl\": \"https://github.com/5-ReBook/ReBook_BE\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-09-19T07:04:51Z\"\n        },\n        {\n            \"repoId\": 834017070,\n            \"repoName\": \"ReBook_AI\",\n            \"repoUrl\": \"https://github.com/5-ReBook/ReBook_AI\",\n            \"topLanguage\": \"Python\",\n            \"updatedAt\": \"2024-09-14T02:15:44Z\"\n        },\n        {\n            \"repoId\": 855526977,\n            \"repoName\": \"GithubActionWithDocker\",\n            \"repoUrl\": \"https://github.com/namkikim0718/GithubActionWithDocker\",\n            \"topLanguage\": \"HTML\",\n            \"updatedAt\": \"2024-09-11T05:18:19Z\"\n        },\n        {\n            \"repoId\": 854610356,\n            \"repoName\": \"ReBook_FE\",\n            \"repoUrl\": \"https://github.com/namkikim0718/ReBook_FE\",\n            \"topLanguage\": null,\n            \"updatedAt\": \"2024-09-09T13:31:35Z\"\n        },\n        {\n            \"repoId\": 853654664,\n            \"repoName\": \"FIT_MINDER_BE\",\n            \"repoUrl\": \"https://github.com/namkikim0718/FIT_MINDER_BE\",\n            \"topLanguage\": null,\n            \"updatedAt\": \"2024-09-07T06:35:23Z\"\n        },\n        {\n            \"repoId\": 839658229,\n            \"repoName\": \"Rebook_CD\",\n            \"repoUrl\": \"https://github.com/5-ReBook/Rebook_CD\",\n            \"topLanguage\": \"HCL\",\n            \"updatedAt\": \"2024-08-20T05:19:15Z\"\n        },\n        {\n            \"repoId\": 841950035,\n            \"repoName\": \"nick-ps\",\n            \"repoUrl\": \"https://github.com/namkikim0718/nick-ps\",\n            \"topLanguage\": null,\n            \"updatedAt\": \"2024-08-13T11:20:22Z\"\n        },\n        {\n            \"repoId\": 839272021,\n            \"repoName\": \"nick\",\n            \"repoUrl\": \"https://github.com/namkikim0718/nick\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-08-13T02:06:50Z\"\n        },\n        {\n            \"repoId\": 833023053,\n            \"repoName\": \"OAuth2WithJWT_Advanced\",\n            \"repoUrl\": \"https://github.com/namkikim0718/OAuth2WithJWT_Advanced\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-07-24T07:58:33Z\"\n        },\n        {\n            \"repoId\": 819258098,\n            \"repoName\": \"2024-Effective-Java-Study\",\n            \"repoUrl\": \"https://github.com/namkikim0718/2024-Effective-Java-Study\",\n            \"topLanguage\": null,\n            \"updatedAt\": \"2024-07-09T12:31:35Z\"\n        },\n        {\n            \"repoId\": 823501804,\n            \"repoName\": \"todo-react\",\n            \"repoUrl\": \"https://github.com/namkikim0718/todo-react\",\n            \"topLanguage\": \"JavaScript\",\n            \"updatedAt\": \"2024-07-03T07:22:04Z\"\n        },\n        {\n            \"repoId\": 787402717,\n            \"repoName\": \"stock_example\",\n            \"repoUrl\": \"https://github.com/namkikim0718/stock_example\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-06-05T12:00:48Z\"\n        },\n        {\n            \"repoId\": 808644080,\n            \"repoName\": \"malang-server\",\n            \"repoUrl\": \"https://github.com/namkikim0718/malang-server\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-05-31T14:10:46Z\"\n        },\n        {\n            \"repoId\": 807504948,\n            \"repoName\": \"OAuth2WithJWT\",\n            \"repoUrl\": \"https://github.com/namkikim0718/OAuth2WithJWT\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-05-29T13:08:57Z\"\n        },\n        {\n            \"repoId\": 743613798,\n            \"repoName\": \"malang-server\",\n            \"repoUrl\": \"https://github.com/inu-malang/malang-server\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-05-22T17:33:03Z\"\n        },\n        {\n            \"repoId\": 793431568,\n            \"repoName\": \"GithubAction\",\n            \"repoUrl\": \"https://github.com/namkikim0718/GithubAction\",\n            \"topLanguage\": \"Shell\",\n            \"updatedAt\": \"2024-04-29T13:35:50Z\"\n        },\n        {\n            \"repoId\": 791139543,\n            \"repoName\": \"async-programming\",\n            \"repoUrl\": \"https://github.com/namkikim0718/async-programming\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-04-24T07:45:51Z\"\n        },\n        {\n            \"repoId\": 780999296,\n            \"repoName\": \"course-registration\",\n            \"repoUrl\": \"https://github.com/namkikim0718/course-registration\",\n            \"topLanguage\": null,\n            \"updatedAt\": \"2024-04-02T15:03:18Z\"\n        },\n        {\n            \"repoId\": 780334770,\n            \"repoName\": \"malang-client\",\n            \"repoUrl\": \"https://github.com/inu-malang/malang-client\",\n            \"topLanguage\": \"Dart\",\n            \"updatedAt\": \"2024-04-01T09:05:19Z\"\n        },\n        {\n            \"repoId\": 779674000,\n            \"repoName\": \"malang-FE\",\n            \"repoUrl\": \"https://github.com/inu-malang/malang-FE\",\n            \"topLanguage\": null,\n            \"updatedAt\": \"2024-03-30T13:38:59Z\"\n        },\n        {\n            \"repoId\": 764516464,\n            \"repoName\": \"board_project\",\n            \"repoUrl\": \"https://github.com/namkikim0718/board_project\",\n            \"topLanguage\": \"Java\",\n            \"updatedAt\": \"2024-02-28T08:29:11Z\"\n        },\n        {\n            \"repoId\": 743633085,\n            \"repoName\": \"demo-repository\",\n            \"repoUrl\": \"https://github.com/inu-malang/demo-repository\",\n            \"topLanguage\": \"HTML\",\n            \"updatedAt\": \"2024-01-15T16:46:55Z\"\n        },\n        {\n            \"repoId\": 604044781,\n            \"repoName\": \"chrome-app-2023\",\n            \"repoUrl\": \"https://github.com/namkikim0718/chrome-app-2023\",\n            \"topLanguage\": \"HTML\",\n            \"updatedAt\": \"2023-03-30T02:08:33Z\"\n        },\n        {\n            \"repoId\": 594411921,\n            \"repoName\": \"Instagram-clone-2023\",\n            \"repoUrl\": \"https://github.com/namkikim0718/Instagram-clone-2023\",\n            \"topLanguage\": \"HTML\",\n            \"updatedAt\": \"2023-02-02T07:18:39Z\"\n        },\n        {\n            \"repoId\": 588458933,\n            \"repoName\": \"kakao-clone-2023\",\n            \"repoUrl\": \"https://github.com/namkikim0718/kakao-clone-2023\",\n            \"topLanguage\": \"HTML\",\n            \"updatedAt\": \"2023-01-18T10:42:23Z\"\n        }\n    ]\n}"}],"_postman_id":"8f473510-c32b-4b47-883b-d5f8c35c21d1"},{"name":"회원 탈퇴","id":"483ce547-9ff8-45c2-989f-34d1865b9194","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8081/api/members/me","urlObject":{"path":["api","members","me"],"host":["http://localhost:8081"],"query":[],"variable":[]}},"response":[{"id":"cf32e8f9-68ee-438f-a399-0d13a7a89491","name":"회원 탈퇴","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8081/api/members/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 20 Nov 2024 10:27:17 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-11-20T19:27:17.814221\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": \"회원 삭제가 완료되었습니다.\"\n}"}],"_postman_id":"483ce547-9ff8-45c2-989f-34d1865b9194"}],"id":"b4610dbf-7957-4a84-b979-ce290d7e5f7f","_postman_id":"b4610dbf-7957-4a84-b979-ce290d7e5f7f","description":""},{"name":"Resume","item":[{"name":"댓글","item":[{"name":"댓글 작성","id":"687536b6-edb7-48ca-95aa-8315564372ec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"content\" : \"좋은 이력서입니다!\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8082/api/resumes/:resumeId/comments","urlObject":{"path":["api","resumes",":resumeId","comments"],"host":["http://localhost:8082"],"query":[],"variable":[{"type":"any","value":"672c29966187ff601ffd2c98","key":"resumeId"}]}},"response":[],"_postman_id":"687536b6-edb7-48ca-95aa-8315564372ec"},{"name":"댓글 수정","id":"a61b0dfa-78b6-4f0a-9153-441ff20769c7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"content\" : \"별로입니다..\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8082/api/resumes/comments/:commentId","urlObject":{"path":["api","resumes","comments",":commentId"],"host":["http://localhost:8082"],"query":[],"variable":[{"type":"any","value":"1","key":"commentId"}]}},"response":[],"_postman_id":"a61b0dfa-78b6-4f0a-9153-441ff20769c7"},{"name":"댓글 삭제","id":"66e130ca-eadd-41dc-a549-6771ea9c8539","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8082/api/resumes/comments/:commentId","urlObject":{"path":["api","resumes","comments",":commentId"],"host":["http://localhost:8082"],"query":[],"variable":[{"type":"any","value":"","key":"commentId"}]}},"response":[],"_postman_id":"66e130ca-eadd-41dc-a549-6771ea9c8539"},{"name":"이력서별 댓글 조회","id":"b3e3bffc-2240-4f86-a55c-e32636e80420","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8082/api/resumes/:resumeId/comments","urlObject":{"path":["api","resumes",":resumeId","comments"],"host":["http://localhost:8082"],"query":[],"variable":[{"type":"any","value":"672c29966187ff601ffd2c98","key":"resumeId"}]}},"response":[],"_postman_id":"b3e3bffc-2240-4f86-a55c-e32636e80420"}],"id":"538672cd-d9bb-4d02-8f87-3ad66055bf35","_postman_id":"538672cd-d9bb-4d02-8f87-3ad66055bf35","description":""},{"name":"이력서 전체 조회","id":"6a076d7f-6098-4032-9246-972f28bb7579","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8082/api/resumes?tag&position=&techStack=&schoolType&sortOrder&page=0&size=10","urlObject":{"path":["api","resumes"],"host":["http://localhost:8082"],"query":[{"key":"tag","value":null},{"key":"position","value":""},{"key":"techStack","value":""},{"key":"schoolType","value":null},{"key":"sortOrder","value":null},{"key":"page","value":"0"},{"key":"size","value":"10"},{"disabled":true,"key":"liked","value":""}],"variable":[]}},"response":[{"id":"c6a4f91b-af75-4095-bc2b-ce4729816819","name":"이력서 전체 조회","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8082/api/resumes?tag&position=&techStack=&schoolType&sortOrder&page=0&size=10","host":["http://localhost:8082"],"path":["api","resumes"],"query":[{"key":"tag","value":null},{"key":"position","value":""},{"key":"techStack","value":""},{"key":"schoolType","value":null},{"key":"sortOrder","value":null},{"key":"page","value":"0"},{"key":"size","value":"10"},{"key":"liked","value":"","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 25 Nov 2024 01:40:50 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-11-25T10:40:51.328889\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": {\n        \"currentPage\": 0,\n        \"totalPages\": 1,\n        \"totalElements\": 8,\n        \"size\": 10,\n        \"content\": [\n            {\n                \"resumeId\": \"673efd459d8e3b179be44223\",\n                \"memberId\": 6,\n                \"avatarUrl\": \"https://avatars.githubusercontent.com/u/113903598?v=4\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! **고품질 시스템 구축과 성능 최적화에 열정을 가진 개발자**입니다. 나는 재고 관리 시스템 프로젝트에서 동시성 제어 문제를 해결하기 위해 다양한 락 전략을 비교하고 적용했습니다. 성능 테스트를 통해 시스템의 효율성을 높였고, 강력한 기술 스택을 바탕으로 협업과 성장의 가치를 소중히 여깁니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 0,\n                \"updatedAt\": \"2024-11-21T18:34:38.99\",\n                \"visibility\": \"PUBLIC\",\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"673ecd4dd086ed25a3f6135a\",\n                \"memberId\": 4,\n                \"avatarUrl\": \"https://avatars.githubusercontent.com/u/113903598?v=4\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! 다양한 동시성 문제를 해결하기 위해 노력하는 개발자입니다. Spring Boot와 JPA를 활용하여 안정적인 재고 관리 시스템을 구축했고, Redis와 MySQL을 통해 성능을 극대화하는 방안을 모색했습니다. 여러 가지 동시성 제어 방법을 비교하여 최적의 솔루션을 선택하는 과정에서 데이터 정합성 및 성능을 동시에 고려했습니다. 또한, 성능 테스트 도구인 k6를 사용하여 시스템의 안정성과 성능을 검증하였습니다. 항상 새로운 기술을 학습하며, 코드 품질을 유지하고 개선하는 데 힘쓰고 있습니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 0,\n                \"updatedAt\": \"2024-11-21T15:03:57.766\",\n                \"visibility\": \"PUBLIC\",\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"673ecb55d086ed25a3f61359\",\n                \"memberId\": 2,\n                \"avatarUrl\": \"https://avatars.githubusercontent.com/u/113903598?v=4\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! **동시성 문제 해결과 데이터 정합성을 중요시하는 개발자** 입니다. 비관적 락과 낙관적 락 등 다양한 동시성 제어 기법을 활용하여 안정적이고 성능 개선된 재고 관리 시스템을 구축하였습니다. 멀티스레드 환경에서의 경험을 통해 성능 최적화의 중요성을 깊이 이해하고 있으며, 팀과 함께 성장하는 문화를 추구합니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 0,\n                \"updatedAt\": \"2024-11-21T14:55:33.552\",\n                \"visibility\": \"PUBLIC\",\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"673e9080eb8efe56b7feeb88\",\n                \"memberId\": 2,\n                \"avatarUrl\": \"https://avatars.githubusercontent.com/u/113903598?v=4\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! **동시성 문제 해결을 통해 안정적인 재고 관리 시스템을 구축한 개발자**입니다. 다양한 동시성 제어 기법들을 실험하고 최적의 해결책을 찾아내는 데 주력하였으며, 성능 최적화와 안정성 확보에 기여했습니다. 팀과 함께 성장하며 복잡한 문제를 해결하는 것을 즐깁니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 0,\n                \"updatedAt\": \"2024-11-21T10:44:32.255\",\n                \"visibility\": \"PUBLIC\",\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"673e9061eb8efe56b7feeb87\",\n                \"memberId\": 2,\n                \"avatarUrl\": \"https://avatars.githubusercontent.com/u/113903598?v=4\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! 재고 관리 시스템의 동시성 문제를 해결하며 다양한 락 전략을 적용한 개발자입니다. Pessimistic Lock과 Optimistic Lock을 활용하여 데이터의 무결성을 보장하고, Redisson을 통해 분산 락 체계를 구현하였습니다. 복잡한 문제를 실용적으로 분석하고 그에 맞는 최적의 솔루션을 도출하는 데 자부심을 느끼고 있습니다. 또한, 동시 요청 처리 테스트를 설계하여 각 요청이 정상적으로 처리되는지 확인하였습니다. 문서화를 통해 다른 개발자들과의 소통에도 부가 가치를 더하고 있습니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 0,\n                \"updatedAt\": \"2024-11-21T10:44:01.197\",\n                \"visibility\": \"PUBLIC\",\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"6736f928aca5ed7bdd3c7d33\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/55165ea2-a61c-4de2-82eb-abdf7c8a2e3b.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! 동시성 제어 문제 해결에 집중하는 개발자입니다. 재고 관리 시스템 프로젝트를 통해 비관적 락, 낙관적 락 등의 기술을 활용하여 데이터 일관성을 유지하는 경험을 쌓았습니다. 또한, 성능 테스트와 트랜잭션 관리로 안정적인 시스템을 구축한 경험이 있습니다. 협업 환경에서의 역할을 중요시하며, 지속적인 성장을 위해 노력하고 있습니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 0,\n                \"updatedAt\": \"2024-11-15T16:32:56.044\",\n                \"visibility\": \"PUBLIC\",\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"673579b9ebdaf9716200d73e\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/55165ea2-a61c-4de2-82eb-abdf7c8a2e3b.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! **'동시성과 성능 최적화에 집중하는 개발자'**입니다. - 문제 해결 지향: 여러 동시 요청 처리 시 발생하는 `Race Condition` 문제를 효과적으로 해결하기 위해 다양한 락 기법을 분석하고 적용했습니다. - 실용적인 개발: MySQL과 Redis의 장단점을 파악하여 재고 관리 시스템의 성능을 극대화하며, 실무에 바로 적용 가능한 지침을 제공했습니다. - 협업과 문서화: 프로젝트 진행 중 README.md를 통해 문제 해결 과정과 테스트 방법을 체계적으로 문서화하여 팀원들과 지식을 공유하는 문화를 중요시합니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 2,\n                \"updatedAt\": \"2024-11-14T15:27:51.096\",\n                \"visibility\": \"PUBLIC\",\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"67357860ebdaf9716200d73d\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/55165ea2-a61c-4de2-82eb-abdf7c8a2e3b.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! 효율적이고 안정적인 재고 관리 시스템을 구축하는 개발자입니다. 동시성 제어 전략을 연구하고 구현하여 성능을 최적화하며, 멀티 쓰레드 환경에서 대량 요청을 처리하는 테스트 코드 작성을 통해 실질적인 성과를 도출해왔습니다. 개인적인 성장을 추구함은 물론 팀과 함께 발전하는 것을 중요하게 여깁니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 1,\n                \"updatedAt\": \"2024-11-14T13:11:32.497\",\n                \"visibility\": \"PUBLIC\",\n                \"isLiked\": false\n            }\n        ]\n    }\n}"}],"_postman_id":"6a076d7f-6098-4032-9246-972f28bb7579"},{"name":"이력서 상세 조회(커뮤니티)","id":"8fadeaf3-3c2e-448f-8e1c-fe56801b6f50","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8082/api/resumes/:resumeId/community","urlObject":{"path":["api","resumes",":resumeId","community"],"host":["http://localhost:8082"],"query":[],"variable":[{"type":"any","value":"67567ee9e8623a3f811408ef","key":"resumeId"}]}},"response":[{"id":"3bb321d9-d8f0-48af-9285-f06bb38727e7","name":"이력서 상세 조회","originalRequest":{"method":"GET","header":[{"key":"","value":"","type":"text","disabled":true}],"url":{"raw":"http://localhost:8082/api/resumes/:resumeId","host":["http://localhost:8082"],"path":["api","resumes",":resumeId"],"variable":[{"key":"resumeId","value":"673579b9ebdaf9716200d73e"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Thu, 14 Nov 2024 06:27:51 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-11-14T15:27:51.13998\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": {\n        \"resumeId\": \"673579b9ebdaf9716200d73e\",\n        \"memberId\": 5,\n        \"memberName\": \"김남기\",\n        \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/55165ea2-a61c-4de2-82eb-abdf7c8a2e3b.png\",\n        \"email\": \"a12345678@gmail.com\",\n        \"position\": \"BACKEND\",\n        \"techStack\": [\n            \"Java\",\n            \"Spring Boot\",\n            \"MySQL\",\n            \"Redis\",\n            \"Docker\",\n            \"JPA\",\n            \"Gradle\",\n            \"Junit5\"\n        ],\n        \"aboutMe\": \"안녕하세요! **'동시성과 성능 최적화에 집중하는 개발자'**입니다. - 문제 해결 지향: 여러 동시 요청 처리 시 발생하는 `Race Condition` 문제를 효과적으로 해결하기 위해 다양한 락 기법을 분석하고 적용했습니다. - 실용적인 개발: MySQL과 Redis의 장단점을 파악하여 재고 관리 시스템의 성능을 극대화하며, 실무에 바로 적용 가능한 지침을 제공했습니다. - 협업과 문서화: 프로젝트 진행 중 README.md를 통해 문제 해결 과정과 테스트 방법을 체계적으로 문서화하여 팀원들과 지식을 공유하는 문화를 중요시합니다.\",\n        \"tags\": null,\n        \"workExperiences\": [\n            {\n                \"companyName\": \"수정\",\n                \"departmentName\": \"수정\",\n                \"role\": \"수정\",\n                \"workType\": \"FULL_TIME\",\n                \"employmentStatus\": \"EMPLOYMENT\",\n                \"startedAt\": \"2022-03\",\n                \"endedAt\": \"\"\n            }\n        ],\n        \"projects\": [\n            {\n                \"projectName\": \"재고 관리 시스템\",\n                \"projectStartedAt\": \"2024.04\",\n                \"projectEndedAt\": \"2024.06\",\n                \"skillSet\": \"Java, Spring Boot, MySQL, Redis, Docker, JPA, Gradle, Junit5\",\n                \"projectDescription\": \"## 프로젝트 개요\\n\\n스프링 부트를 기반으로 한 재고 관리 시스템. 여러 동시 요청 처리 시 `Race Condition` 문제 해결 목표. MySQL, Redis 사용, 다양한 락 기법 성능 비교.\\n\\n### 핵심 내용\\n\\n1. **개발 환경**:\\n   - Java 17, Spring Boot 3.2.4\\n   - JPA, MySQL, Redis, Docker\\n   - Gradle, Junit5\\n\\n2. **문제 상황**:\\n   - 100개의 재고 감소 요청 시 데이터 누락 발생.\\n   - `Race Condition`으로 인한 병행 처리 문제.\\n\\n3. **해결 방법**:\\n   - **Synchronized**: 단일 서버의 기본 동시성 보장.\\n   - **Pessimistic Lock**: DB에서 충돌 방지.\\n   - **Optimistic Lock**: 성능 개선을 위해 애플리케이션 레벨에서 적용.\\n   - **Named Lock**: 별도 락 공간에 설정.\\n   - **Lettuce**: Redis와 통합된 락 기법.\\n   - **Redisson**: 분산 환경에서 효율적 동시성 제어.\\n\\n4. **MySQL vs Redis**:\\n   - MySQL: 안정성, 비용 없음. 성능 저하.\\n   - Redis: 높은 트래픽 성능 우수, 관리 비용 고려 필요.\\n\\n5. **테스트**:\\n   - `k6`를 사용하여 100개의 동시 요청 시뮬레이션.\\n   - 각 기법의 실제 재고 감소 검증.\\n\\n### 결과\\n\\n다양한 동시성 제어 방법을 통해 100개 요청 성공적 처리. 각 기법 장단점 파악, 실제 적용 가능성 확인. 실무 지침 제공, `Lettuce` 또는 `Redisson` 선택 가이드라인 마련.\\n\\n## 프로젝트 요약\\n\\n1. **락 메커니즘**:\\n   - 비관적 락: 충돌 가능성 높은 상황 유리.\\n   - 낙관적 락: 충돌 드문 경우 성능 개선.\\n   - 이름이 있는 락: 분산 환경에서 명시적 요청 제어.\\n\\n2. **테스트 케이스**:\\n   - 동시 요청 시나리오 테스트로 `Race Condition` 해결 확인.\\n\\n3. **기술 스택**:\\n   - Spring Boot: 프레임워크, Redis 관리.\\n   - JPA: 데이터베이스 상호작용 구현.\\n\\n4. **README.md 업데이트**:\\n   - 프로젝트 설정, 문제 해결 과정, 테스트 방법 문서화.\\n   - 동시성 문제 원인 및 해결 설명 추가.\\n\\n### 개인 기여 요약\\n\\n- 동시성 제어 방식 분석 및 적용 주도.\\n- 성능 테스트 설계 및 실행. \\n- README.md를 통한 명확한 문서화 진행. \\n\\n결과적으로, 다양한 락 기법을 활용하여 재고 관리 시스템의 안정성과 성능을 높였음.\\n\\n### 프로젝트 요약\\n 스프링 부트를 기반으로 한 재고 관리 시스템. 동시성 처리 시 `Race Condition` 문제 해결. 다양한 락 기법 분석 및 성능 비교.**\",\n                \"repoLink\": \"https://github.com/namkikim0718/stock_example\"\n            }\n        ],\n        \"links\": [\n            {\n                \"linkTitle\": \"링크 이름\",\n                \"linkUrl\": \"https://github.com\"\n            }\n        ],\n        \"educations\": [\n            {\n                \"schoolType\": \"UNIVERSITY_BACHELOR\",\n                \"schoolName\": \"수정\",\n                \"major\": \"수정\",\n                \"graduationStatus\": \"ATTENDING\",\n                \"startedAt\": \"2019-03\",\n                \"endedAt\": \"\"\n            }\n        ],\n        \"certificates\": [\n            {\n                \"certificateName\": \"정보처리기사\",\n                \"certificateGrade\": \"기사\",\n                \"certificatedAt\": \"2022-09\",\n                \"certificateOrganization\": \"한국산업인력공단\"\n            }\n        ],\n        \"likeCount\": 0,\n        \"viewCount\": 2,\n        \"updatedAt\": \"2024-11-14T15:27:51.096684\",\n        \"visibility\": \"PUBLIC\",\n        \"isLiked\": false\n    }\n}"},{"id":"5fb00b11-731c-42b7-ac29-abb911d79e60","name":"이력서 상세 조회","originalRequest":{"method":"GET","header":[{"key":"","value":"","type":"text","disabled":true}],"url":{"raw":"http://localhost:8082/api/resumes/:resumeId/community","host":["http://localhost:8082"],"path":["api","resumes",":resumeId","community"],"variable":[{"key":"resumeId","value":"674d74c867654c686c5f0740"}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 02 Dec 2024 08:51:57 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"timestamp\": \"2024-12-02T17:51:57.477318\",\n    \"status\": 403,\n    \"error\": \"FORBIDDEN\",\n    \"code\": \"RESUME_ACCESS_DENIED\",\n    \"message\": \"접근할 수 없는 이력서 입니다.\"\n}"}],"_postman_id":"8fadeaf3-3c2e-448f-8e1c-fe56801b6f50"},{"name":"이력서 상세 조회(내 이력서)","id":"980a3e56-5377-4a50-8cb9-92e111cc4304","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8082/api/resumes/:resumeId/myResume","urlObject":{"path":["api","resumes",":resumeId","myResume"],"host":["http://localhost:8082"],"query":[],"variable":[{"type":"any","value":"675138c6630080218a4bba8e","key":"resumeId"}]}},"response":[{"id":"408c55cc-a034-4cdc-b1ff-2b757247894d","name":"이력서 상세 조회","originalRequest":{"method":"GET","header":[{"key":"","value":"","type":"text","disabled":true}],"url":{"raw":"http://localhost:8082/api/resumes/:resumeId","host":["http://localhost:8082"],"path":["api","resumes",":resumeId"],"variable":[{"key":"resumeId","value":"673579b9ebdaf9716200d73e"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Thu, 14 Nov 2024 06:27:51 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-11-14T15:27:51.13998\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": {\n        \"resumeId\": \"673579b9ebdaf9716200d73e\",\n        \"memberId\": 5,\n        \"memberName\": \"김남기\",\n        \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/55165ea2-a61c-4de2-82eb-abdf7c8a2e3b.png\",\n        \"email\": \"a12345678@gmail.com\",\n        \"position\": \"BACKEND\",\n        \"techStack\": [\n            \"Java\",\n            \"Spring Boot\",\n            \"MySQL\",\n            \"Redis\",\n            \"Docker\",\n            \"JPA\",\n            \"Gradle\",\n            \"Junit5\"\n        ],\n        \"aboutMe\": \"안녕하세요! **'동시성과 성능 최적화에 집중하는 개발자'**입니다. - 문제 해결 지향: 여러 동시 요청 처리 시 발생하는 `Race Condition` 문제를 효과적으로 해결하기 위해 다양한 락 기법을 분석하고 적용했습니다. - 실용적인 개발: MySQL과 Redis의 장단점을 파악하여 재고 관리 시스템의 성능을 극대화하며, 실무에 바로 적용 가능한 지침을 제공했습니다. - 협업과 문서화: 프로젝트 진행 중 README.md를 통해 문제 해결 과정과 테스트 방법을 체계적으로 문서화하여 팀원들과 지식을 공유하는 문화를 중요시합니다.\",\n        \"tags\": null,\n        \"workExperiences\": [\n            {\n                \"companyName\": \"수정\",\n                \"departmentName\": \"수정\",\n                \"role\": \"수정\",\n                \"workType\": \"FULL_TIME\",\n                \"employmentStatus\": \"EMPLOYMENT\",\n                \"startedAt\": \"2022-03\",\n                \"endedAt\": \"\"\n            }\n        ],\n        \"projects\": [\n            {\n                \"projectName\": \"재고 관리 시스템\",\n                \"projectStartedAt\": \"2024.04\",\n                \"projectEndedAt\": \"2024.06\",\n                \"skillSet\": \"Java, Spring Boot, MySQL, Redis, Docker, JPA, Gradle, Junit5\",\n                \"projectDescription\": \"## 프로젝트 개요\\n\\n스프링 부트를 기반으로 한 재고 관리 시스템. 여러 동시 요청 처리 시 `Race Condition` 문제 해결 목표. MySQL, Redis 사용, 다양한 락 기법 성능 비교.\\n\\n### 핵심 내용\\n\\n1. **개발 환경**:\\n   - Java 17, Spring Boot 3.2.4\\n   - JPA, MySQL, Redis, Docker\\n   - Gradle, Junit5\\n\\n2. **문제 상황**:\\n   - 100개의 재고 감소 요청 시 데이터 누락 발생.\\n   - `Race Condition`으로 인한 병행 처리 문제.\\n\\n3. **해결 방법**:\\n   - **Synchronized**: 단일 서버의 기본 동시성 보장.\\n   - **Pessimistic Lock**: DB에서 충돌 방지.\\n   - **Optimistic Lock**: 성능 개선을 위해 애플리케이션 레벨에서 적용.\\n   - **Named Lock**: 별도 락 공간에 설정.\\n   - **Lettuce**: Redis와 통합된 락 기법.\\n   - **Redisson**: 분산 환경에서 효율적 동시성 제어.\\n\\n4. **MySQL vs Redis**:\\n   - MySQL: 안정성, 비용 없음. 성능 저하.\\n   - Redis: 높은 트래픽 성능 우수, 관리 비용 고려 필요.\\n\\n5. **테스트**:\\n   - `k6`를 사용하여 100개의 동시 요청 시뮬레이션.\\n   - 각 기법의 실제 재고 감소 검증.\\n\\n### 결과\\n\\n다양한 동시성 제어 방법을 통해 100개 요청 성공적 처리. 각 기법 장단점 파악, 실제 적용 가능성 확인. 실무 지침 제공, `Lettuce` 또는 `Redisson` 선택 가이드라인 마련.\\n\\n## 프로젝트 요약\\n\\n1. **락 메커니즘**:\\n   - 비관적 락: 충돌 가능성 높은 상황 유리.\\n   - 낙관적 락: 충돌 드문 경우 성능 개선.\\n   - 이름이 있는 락: 분산 환경에서 명시적 요청 제어.\\n\\n2. **테스트 케이스**:\\n   - 동시 요청 시나리오 테스트로 `Race Condition` 해결 확인.\\n\\n3. **기술 스택**:\\n   - Spring Boot: 프레임워크, Redis 관리.\\n   - JPA: 데이터베이스 상호작용 구현.\\n\\n4. **README.md 업데이트**:\\n   - 프로젝트 설정, 문제 해결 과정, 테스트 방법 문서화.\\n   - 동시성 문제 원인 및 해결 설명 추가.\\n\\n### 개인 기여 요약\\n\\n- 동시성 제어 방식 분석 및 적용 주도.\\n- 성능 테스트 설계 및 실행. \\n- README.md를 통한 명확한 문서화 진행. \\n\\n결과적으로, 다양한 락 기법을 활용하여 재고 관리 시스템의 안정성과 성능을 높였음.\\n\\n### 프로젝트 요약\\n 스프링 부트를 기반으로 한 재고 관리 시스템. 동시성 처리 시 `Race Condition` 문제 해결. 다양한 락 기법 분석 및 성능 비교.**\",\n                \"repoLink\": \"https://github.com/namkikim0718/stock_example\"\n            }\n        ],\n        \"links\": [\n            {\n                \"linkTitle\": \"링크 이름\",\n                \"linkUrl\": \"https://github.com\"\n            }\n        ],\n        \"educations\": [\n            {\n                \"schoolType\": \"UNIVERSITY_BACHELOR\",\n                \"schoolName\": \"수정\",\n                \"major\": \"수정\",\n                \"graduationStatus\": \"ATTENDING\",\n                \"startedAt\": \"2019-03\",\n                \"endedAt\": \"\"\n            }\n        ],\n        \"certificates\": [\n            {\n                \"certificateName\": \"정보처리기사\",\n                \"certificateGrade\": \"기사\",\n                \"certificatedAt\": \"2022-09\",\n                \"certificateOrganization\": \"한국산업인력공단\"\n            }\n        ],\n        \"likeCount\": 0,\n        \"viewCount\": 2,\n        \"updatedAt\": \"2024-11-14T15:27:51.096684\",\n        \"visibility\": \"PUBLIC\",\n        \"isLiked\": false\n    }\n}"},{"id":"48e1bc66-d40d-4700-9ee7-fabbce35c6ce","name":"이력서 상세 조회","originalRequest":{"method":"GET","header":[{"key":"","value":"","type":"text","disabled":true}],"url":{"raw":"http://localhost:8082/api/resumes/:resumeId/myResume","host":["http://localhost:8082"],"path":["api","resumes",":resumeId","myResume"],"variable":[{"key":"resumeId","value":"6731dd48c1230054028bd295"}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 02 Dec 2024 08:51:28 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"timestamp\": \"2024-12-02T17:51:28.943249\",\n    \"status\": 403,\n    \"error\": \"FORBIDDEN\",\n    \"code\": \"RESUME_ACCESS_DENIED\",\n    \"message\": \"접근할 수 없는 이력서 입니다.\"\n}"}],"_postman_id":"980a3e56-5377-4a50-8cb9-92e111cc4304"},{"name":"이력서 생성 요청","id":"d7c8d595-be69-4412-b24f-0bfe1805a5ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[{"key":"access","value":"eyJhbGciOiJIUzI1NiJ9.eyJjYXRlZ29yeSI6ImFjY2VzcyIsInVzZXJuYW1lIjoiMTEzOTAzNTk4Iiwicm9sZSI6IlJPTEVfVVNFUiIsIm1lbWJlcklkIjoxLCJpYXQiOjE3Mjg4OTc1MjIsImV4cCI6MTcyODg5ODEyMn0.GYSBB_S-HljJ2cLfKq425AUP1Cx-8CQBqLSq78aqLOo","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"selectedRepo\" : [\n        \"https://github.com/namkikim0718/stock_example\"\n    ],\n    \"requirements\" : \"동시성 제어 관련해서 강조해줘.\",\n    \"visibility\" : \"PUBLIC\",\n    \"template\" : \"GITFOLIO\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8082/api/resumes","urlObject":{"path":["api","resumes"],"host":["http://localhost:8082"],"query":[],"variable":[]}},"response":[{"id":"24c55ebc-e1e1-407f-8150-f26b85230ac8","name":"이력서 생성 요청","originalRequest":{"method":"POST","header":[{"key":"access","value":"eyJhbGciOiJIUzI1NiJ9.eyJjYXRlZ29yeSI6ImFjY2VzcyIsInVzZXJuYW1lIjoiMTEzOTAzNTk4Iiwicm9sZSI6IlJPTEVfVVNFUiIsIm1lbWJlcklkIjoxLCJpYXQiOjE3Mjg4OTc1MjIsImV4cCI6MTcyODg5ODEyMn0.GYSBB_S-HljJ2cLfKq425AUP1Cx-8CQBqLSq78aqLOo","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"selectedRepo\" : [\n        \"https://github.com/namkikim0718/stock_example\"\n    ],\n    \"requirements\" : \"동시성 제어 관련해서 강조해줘.\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8082/api/resumes"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 11 Nov 2024 10:32:40 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-11-11T19:32:40.532174\",\n    \"status\": \"CREATED\",\n    \"code\": \"201 CREATED\",\n    \"message\": \"이력서 생성에 성공했습니다.\",\n    \"result\": \"6731dd48c1230054028bd295\"\n}"}],"_postman_id":"d7c8d595-be69-4412-b24f-0bfe1805a5ea"},{"name":"내 이력서 목록 조회","event":[{"listen":"prerequest","script":{"id":"4cf04e7c-0c25-4ddf-adfc-63967f13a3a4","exec":[""],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"id":"28b467d6-f9f1-4fb6-9131-6edb313f8f88","exec":[""],"type":"text/javascript","packages":{}}}],"id":"276da2cd-d412-45e9-a44b-8426d509e3da","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8082/api/resumes/me?page=0&size=12","urlObject":{"path":["api","resumes","me"],"host":["http://localhost:8082"],"query":[{"key":"page","value":"0"},{"key":"size","value":"12"}],"variable":[]}},"response":[{"id":"24052ca2-4c6e-4fae-ba4b-4c608b18b1a3","name":"내 이력서 목록 조회","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8082/api/resumes/me?page=0&size=12","host":["http://localhost:8082"],"path":["api","resumes","me"],"query":[{"key":"page","value":"0"},{"key":"size","value":"12"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Fri, 15 Nov 2024 07:35:46 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-11-15T16:35:46.877716\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": {\n        \"currentPage\": 0,\n        \"totalPages\": 1,\n        \"totalElements\": 10,\n        \"size\": 12,\n        \"content\": [\n            {\n                \"resumeId\": \"6736f928aca5ed7bdd3c7d33\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/55165ea2-a61c-4de2-82eb-abdf7c8a2e3b.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! 동시성 제어 문제 해결에 집중하는 개발자입니다. 재고 관리 시스템 프로젝트를 통해 비관적 락, 낙관적 락 등의 기술을 활용하여 데이터 일관성을 유지하는 경험을 쌓았습니다. 또한, 성능 테스트와 트랜잭션 관리로 안정적인 시스템을 구축한 경험이 있습니다. 협업 환경에서의 역할을 중요시하며, 지속적인 성장을 위해 노력하고 있습니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 0,\n                \"updatedAt\": \"2024-11-15T16:32:56.044\",\n                \"visibility\": \"PUBLIC\",\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"673579b9ebdaf9716200d73e\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/55165ea2-a61c-4de2-82eb-abdf7c8a2e3b.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! **'동시성과 성능 최적화에 집중하는 개발자'**입니다. - 문제 해결 지향: 여러 동시 요청 처리 시 발생하는 `Race Condition` 문제를 효과적으로 해결하기 위해 다양한 락 기법을 분석하고 적용했습니다. - 실용적인 개발: MySQL과 Redis의 장단점을 파악하여 재고 관리 시스템의 성능을 극대화하며, 실무에 바로 적용 가능한 지침을 제공했습니다. - 협업과 문서화: 프로젝트 진행 중 README.md를 통해 문제 해결 과정과 테스트 방법을 체계적으로 문서화하여 팀원들과 지식을 공유하는 문화를 중요시합니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 2,\n                \"updatedAt\": \"2024-11-14T15:27:51.096\",\n                \"visibility\": \"PUBLIC\",\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"67357860ebdaf9716200d73d\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/55165ea2-a61c-4de2-82eb-abdf7c8a2e3b.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! 효율적이고 안정적인 재고 관리 시스템을 구축하는 개발자입니다. 동시성 제어 전략을 연구하고 구현하여 성능을 최적화하며, 멀티 쓰레드 환경에서 대량 요청을 처리하는 테스트 코드 작성을 통해 실질적인 성과를 도출해왔습니다. 개인적인 성장을 추구함은 물론 팀과 함께 발전하는 것을 중요하게 여깁니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 1,\n                \"updatedAt\": \"2024-11-14T13:11:32.497\",\n                \"visibility\": \"PUBLIC\",\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"673451ffbc905015855ac798\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/55165ea2-a61c-4de2-82eb-abdf7c8a2e3b.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! **사용자 경험 향상과 시스템 안정성을 최우선으로 하는 개발자**입니다. 다양한 백엔드 기술을 활용하여 애플리케이션의 사용자 인증 및 권한 관리 기능을 구현하였고, 효율적인 데이터베이스 연동과 RESTful API 제공을 통해 프론트엔드와의 원활한 통합을 도모했습니다. 문제 해결에 주도적으로 접근하며, 코드 최적화를 통해 성능을 개선하고 팀 내 지식 공유를 통해 협력적인 환경을 구축하는 것을 지향합니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 2,\n                \"updatedAt\": \"2024-11-13T19:02:19.457\",\n                \"visibility\": null,\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"67342806bc905015855ac797\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/c482ce1d-79af-4774-a585-dacde0ab4ac0.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! React를 활용한 TodoList 웹 애플리케이션을 개발한 경험이 있는 개발자입니다. 프로젝트를 통해 사용자가 할 일을 추가, 수정, 삭제할 수 있는 직관적인 UI를 구현하며 상태 관리의 중요성과 컴포넌트 설계 능력을 배양하였습니다. 특히, 효율적인 코드 작성을 통해 사용자 경험을 개선하는 데 집중하고 있습니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 1,\n                \"updatedAt\": \"2024-11-13T16:16:14.859\",\n                \"visibility\": null,\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"673427babc905015855ac796\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/c482ce1d-79af-4774-a585-dacde0ab4ac0.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! 동시성 제어와 성능 최적화에 열정을 가진 개발자입니다. 재고 관리 시스템에서 다양한 락 메커니즘을 적용하여 성능을 개선하고 안정성을 확보한 경험이 있습니다. 비관적 락, 낙관적 락, 그리고 Redisson을 활용한 분산 락 구현을 통해 문제를 해결했습니다. 기술의 장단점을 분석하여 최적의 솔루션을 도출하는 것을 좋아합니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 1,\n                \"updatedAt\": \"2024-11-13T13:15:06.198\",\n                \"visibility\": null,\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"6734271bbc905015855ac795\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/f6402561-9970-4d34-b4b4-e6e63f5140da.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! **동시성 제어와 성능 최적화에 주력하는 개발자**입니다. 다양한 동시성 제어 기법을 연구하고 이를 실무에 적용하여 시스템의 안정성과 데이터 일관성을 강화하는 데 집중하고 있습니다. 비관적 락과 낙관적 락 등 여러 접근 방법을 통해 성능 저하를 방지하며, Redis와 Redisson을 활용한 효율적인 락 관리로 분산 환경에서도 견고한 시스템을 구현하고 있습니다. 또한, k6를 이용한 성능 테스트로 실시간 요청 처리를 검증하여 사용자 요청에 일관되게 응답할 수 있는 환경을 조성하고 있습니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 0,\n                \"updatedAt\": \"2024-11-13T13:12:11.575\",\n                \"visibility\": null,\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"673426c6bc905015855ac794\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/f6402561-9970-4d34-b4b4-e6e63f5140da.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! React를 활용하여 직관적이고 사용자 친화적인 웹 애플리케이션을 개발하는 것을 목표로 하는 개발자입니다. TodoList 웹사이트 프로젝트를 통해 상태 관리와 UI/UX 디자인의 중요성을 깨달았고, 이를 최적화하여 사용자 경험을 향상시키는 데 집중하였습니다. Jest를 활용하여 신뢰성 높은 테스트를 작성하며, 지속가능한 코드 구조를 유지하려고 노력합니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 0,\n                \"updatedAt\": \"2024-11-13T13:10:46.033\",\n                \"visibility\": null,\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"6731a12df06df0217a2ad17c\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/f6402561-9970-4d34-b4b4-e6e63f5140da.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! ’Comfort-Zone에서 벗어나 끊임없이 도전을 하는 개발자’ 조일민입니다.\\n- Self-Motivation: 어떤 일이든 관심이 생기면 망설임 없이 도전하여 실행에 옮깁니다.\\n- Optimization-Driven: 코드 한 줄까지도 성능 최적화에 집중하여 시스템의 효율성과 비즈니스 가치를 극대화합니다.\\n- Collaborative Growth: 개인적인 성장을 넘어서, 함께 공유하며 발전하는 문화를 추구합니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 1,\n                \"updatedAt\": \"2024-11-12T14:23:49.78\",\n                \"visibility\": null,\n                \"isLiked\": false\n            },\n            {\n                \"resumeId\": \"6731ca57dc00d4407bd527d7\",\n                \"memberId\": 5,\n                \"avatarUrl\": \"https://gitfolio.s3.amazonaws.com/https://gitfolio.s3.amazonaws.com/f6402561-9970-4d34-b4b4-e6e63f5140da.png\",\n                \"position\": \"BACKEND\",\n                \"aboutMe\": \"안녕하세요! ’Comfort-Zone에서 벗어나 끊임없이 도전을 하는 개발자’ 조일민입니다.\\n- Self-Motivation: 어떤 일이든 관심이 생기면 망설임 없이 도전하여 실행에 옮깁니다.\\n- Optimization-Driven: 코드 한 줄까지도 성능 최적화에 집중하여 시스템의 효율성과 비즈니스 가치를 극대화합니다.\\n- Collaborative Growth: 개인적인 성장을 넘어서, 함께 공유하며 발전하는 문화를 추구합니다.\",\n                \"tags\": null,\n                \"likeCount\": 0,\n                \"viewCount\": 1,\n                \"updatedAt\": \"2024-11-11T18:12:15.619\",\n                \"visibility\": null,\n                \"isLiked\": false\n            }\n        ]\n    }\n}"}],"_postman_id":"276da2cd-d412-45e9-a44b-8426d509e3da"},{"name":"이력서 단건 삭제","id":"81ec90bb-afa5-44dc-92aa-25aebdba0670","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8082/api/resumes/:resumeId","urlObject":{"path":["api","resumes",":resumeId"],"host":["http://localhost:8082"],"query":[],"variable":[{"type":"any","value":"670ce7876f05c57294c51813","key":"resumeId"}]}},"response":[],"_postman_id":"81ec90bb-afa5-44dc-92aa-25aebdba0670"},{"name":"이력서 AI 수정 요청","id":"70bb5d2f-957b-4d58-acb1-1b5912a1cf41","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"selectedText\": \"안녕하세요! ’Comfort-Zone에서 벗어나 끊임없이 도전을 하는 개발자’ 조일민입니다.\\n - Self-Motivation: 어떤 일이든 관심이 생기면 망설임 없이 도전하여 실행에 옮깁니다.\\n -Optimization-Driven: 코드 한 줄까지도 성능 최적화에 집중하여 시스템의 효율성과 비즈니스 가치를 극대화합니다.\\n - Collaborative Growth: 개인적인 성장을 넘어서, 함께 공유하며 발전하는 문화를 추구합니다.\",\n\t\"requirement\": \"좀 더 다듬어줘\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8082/api/resumes/:resumeId","urlObject":{"path":["api","resumes",":resumeId"],"host":["http://localhost:8082"],"query":[],"variable":[{"type":"any","value":"67567ee9e8623a3f811408ef","key":"resumeId"}]}},"response":[{"id":"83d5905b-076f-4e63-ac6a-8ddb2add4230","name":"이력서 AI 수정 요청","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"selectedText\": \"안녕하세요! ’Comfort-Zone에서 벗어나 끊임없이 도전을 하는 개발자’ 조일민입니다.\\n - Self-Motivation: 어떤 일이든 관심이 생기면 망설임 없이 도전하여 실행에 옮깁니다.\\n -Optimization-Driven: 코드 한 줄까지도 성능 최적화에 집중하여 시스템의 효율성과 비즈니스 가치를 극대화합니다.\\n - Collaborative Growth: 개인적인 성장을 넘어서, 함께 공유하며 발전하는 문화를 추구합니다.\",\n\t\"requirement\": \"좀 더 다듬어줘\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://localhost:8082/api/resumes/:resumeId","host":["http://localhost:8082"],"path":["api","resumes",":resumeId"],"variable":[{"key":"resumeId","value":"67567ee9e8623a3f811408ef"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 09 Dec 2024 06:47:55 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-12-09T15:47:55.055643\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": {\n        \"resumeId\": \"67567ee9e8623a3f811408ef\",\n        \"memberId\": 2,\n        \"memberName\": \"김남기\",\n        \"avatarUrl\": \"https://avatars.githubusercontent.com/u/113903598?v=4\",\n        \"email\": \"a49494273@gmail.com\",\n        \"position\": \"BACKEND\",\n        \"techStack\": [\n            \"JUnit\",\n            \"Java\",\n            \"JavaScript\",\n            \"Spring\"\n        ],\n        \"aboutMe\": \"- Innovative Developer: Comfortably stepping out of my comfort zone, I continuously embrace challenges for personal and professional growth.\\n- Performance Optimization: I prioritize performance optimization at every level, ensuring that even a single line of code contributes to maximizing system efficiency and business value.\\n- Collaborative Growth: I strive for a culture of shared development, fostering not only my own growth but also the collective progress of my peers.\",\n        \"tags\": null,\n        \"workExperiences\": [],\n        \"projects\": [\n            {\n                \"projectName\": \"재고 관리 시스템\",\n                \"projectStartedAt\": \"2024.04\",\n                \"projectEndedAt\": \"2024.06\",\n                \"skillSet\": \"Java, Spring Boot, JPA, Docker, Redis, MySQL, Gradle, Junit5\",\n                \"projectDescription\": \"## 프로젝트 개요\\n- 재고 관리 시스템 구현\\n- 동시성 제어 방법 활용\\n- `Race Condition` 문제 해결\\n\\n### 주요 기술 스택\\n- **개발 환경**: IntelliJ IDEA, Mac OS Sonoma\\n- **서버**: Java 17, Spring Boot 3.2.4, JPA, Docker, Redis, MySQL, Gradle, Junit5\\n- **동시성 제어 방식**: 다양한 방법 적용\\n\\n### 문제 상세\\n- 비동기 요청이 1건만 발생하는 것을 개선\\n- 100건의 동시 요청 분산, 요청 분산 확인\\n- 원인: 반복적으로 발생하는 동시 요청을 처리하기/받기\\n\\n### 해결 방법\\n1. **synchronized**: 일반적 성능 보장.\\n2. **Pessimistic Lock**: 데이터 변경 시 배타적 보장, 맺음 말.\\n3. **Optimistic Lock**: 적절히 논리 실행, 발생한 문제.\\n4. **Named Lock**: 특정 조건 때 걸러내기.\\n5. **Lettuce**: Redis의 기초 라이브러리.\\n6. **Redisson**: 범위 사전, Pub-Sub 구조.\\n\\n### 성과 및 반영\\n- 100건의 요청시 재고 0 건 조회 확인.\\n- 모든 요청 패턴에 대한 성과도 정수.\\n\\n### 보완\\n- 동시성 문제 해결 예제로 간단 지표.\\n- SQL 및 Redis를 통한 매출 연결 기법 접목.\\n\\n## 프로젝트 목적\\n- Spring Boot 기반 재고 관리 시스템.\\n- 다양한 요청 패턴을 동시성 제어 문제 해결.\\n\\n### 프로젝트 계량\\n1. **재고 관리**: 재고 변경 예를 통해 고급 동시 제어 문제 해결.\\n2. **동시성 제어 방식**: 비구조적 패턴, 단권 처리 패턴, 소프트웨어 게이트웨이.\\n\\n### 코드 품질 관리 사항\\n- **README.md 구성**: 정리, 요청 패턴 관리 통합.\\n- **Facade 구현**: 요청 패턴 관리.\\n- **서블릿 데이터 확인**: 동시 요청 시세 승인을 만들기.\\n- **테스트 코드 완성**: 동시성 제어 및 신규 상태 생성을 통해 드러난 문제.\\n\\n### 동시성 문제 해결 강조\\n- 일반 요청 구획에 전달 100건 동시 요청으로 결정.\\n- `CountDownLatch`, `ExecutorService` 구조에 레버리지 통한 최적화 상태 논의.\\n\\n이 프로젝트는 한국의 차별 문제에서 저지른 동시성 문제가 드러나며, 다양한 요청 패턴을 통해 AI적 사용 가능성 제안. \\n\\n### 프로젝트 결과\\n- 요청 패턴 및 성과 기능의 각도 헤드에서의 시도 및 최적화 및 실패\\n\",\n                \"repoLink\": \"https://github.com/namkikim0718/stock_example\"\n            }\n        ],\n        \"links\": [],\n        \"educations\": [],\n        \"certificates\": []\n    }\n}"}],"_postman_id":"70bb5d2f-957b-4d58-acb1-1b5912a1cf41"},{"name":"이력서 좋아요","id":"ca118a71-91e6-4327-95fe-4517ed75cf6f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"url":"http://localhost:8082/api/resumes/:resumeId/likes","urlObject":{"path":["api","resumes",":resumeId","likes"],"host":["http://localhost:8082"],"query":[],"variable":[{"type":"any","value":"673464abf965341f80d1c1a3","key":"resumeId"}]}},"response":[],"_postman_id":"ca118a71-91e6-4327-95fe-4517ed75cf6f"},{"name":"이력서 공개여부 변경","id":"ad11c879-73dc-47bc-a547-c8837fe418c9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"visibility\" : \"PUBLIC\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8082/api/resumes/:resumeId/visibility","urlObject":{"path":["api","resumes",":resumeId","visibility"],"host":["http://localhost:8082"],"query":[],"variable":[{"type":"any","value":"67567ee9e8623a3f811408ef","key":"resumeId"}]}},"response":[{"id":"2062bb1a-c1c7-4c9a-ba02-d7ccfb897f2f","name":"이력서 공개여부 변경","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"visibility\" : \"PUBLIC\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://localhost:8082/api/resumes/:resumeId/visibility","host":["http://localhost:8082"],"path":["api","resumes",":resumeId","visibility"],"variable":[{"key":"resumeId","value":"673579b9ebdaf9716200d73e"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Thu, 14 Nov 2024 06:18:18 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-11-14T15:18:18.100604\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": \"이력서 공개 여부가 변경되었습니다.\"\n}"}],"_postman_id":"ad11c879-73dc-47bc-a547-c8837fe418c9"},{"name":"이력서 직접 수정","id":"b59c1866-cd85-4b42-8ade-faea74840e36","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"updateResumeRequestDTO","value":"{\n    \n\"aboutMe\": \"- Proactive Problem-Solver: 복잡한 상황에서도 명확한 해결책을 제시하며, 문제 해결을 위해 적극적으로 나섭니다.\\n- Collaborative Team Player: 팀원과의 소통을 통해 협력하여 공동의 목표를 달성하며, 팀의 성공을 위해 노력합니다.\\n- Excellence-Driven: 높은 기준을 가지고 성과를 추구하며, 지속적으로 성장하고 발전하기 위해 배움의 자세를 유지합니다.\",\n        \"tags\": null,\n        \"workExperiences\": [],\n        \"projects\": [\n            {\n                \"projectName\": \"OAuth2WithJWT\",\n                \"projectStartedAt\": \"2024.05\",\n                \"projectEndedAt\": \"2024.05\",\n                \"skillSet\": \"Spring Boot, OAuth2, JWT, JPA, CORS\",\n                \"projectDescription\": \"프로젝트 개요: **OAuth2WithJWT**\\n\\n- **프로젝트 목적**: Spring Boot 기반 OAuth2 인증 및 JWT를 활용한 사용자 인증 시스템 구축.\\n- **주요 특징**:\\n  1. Spring Boot 사용.\\n  2. OAuth2 인증 서버 구현.\\n  3. JWT 기반 사용자 인증 및 권한 부여.\\n  4. CORS 정책 설정.\\n  5. JPA를 통한 데이터베이스 통합.\\n\\n주요 구조:\\n- `MainController`, `MyController`: API 엔드포인트 설계.\\n- `SecurityConfig`: 보안 설정 및 JWT 필터 추가.\\n- `JWTUtil`: JWT 생성 및 검증.\\n- `CustomOAuth2UserService`: 사용자 정보 로딩 및 시퀀스 매핑.\\n- `Member` 엔티티: 사용자 정보 관리 JPA 엔티티.\\n- `CustomSuccessHandler`: 로그인 성공 시 처리 로직 관리.\\n\\n게시 및 활용 방안:\\n- **CORS 정책**: 충분한 조정으로 외부에서의 안전한 접근 보장.\\n- **JWT 예시**: 토큰 구조와 정책에 대한 모든 데이터 기반으로 보안 관리.\\n\\n개인화된 사전 관리 내역:\\n- 사용자 인증 필드 정제 및 디자인.\\n- 프론트엔드와의 데이터 연계를 체계화.\\n\\n성과 및 결과로, OAuth2 기반의 사용자 인증 시스템을 효율적으로 구현하며 개발자 및 사용자가 신뢰할 수 있는 환경을 제공하였습니다.\\n\\n### 프로젝트 세부 사항\\n - Spring Boot 기반 OAuth2 인증 구현\\n- JWT를 활용한 사용자 인증\\n- 신속한 보안 설정 및 검증\\n- 사용자 정보 안전 관리\\n- 효율적인 운영 및 데이터 관리 교육\\n- CORS 정책 다양한 구현.\",\n                \"repoLink\": \"https://github.com/namkikim0718/OAuth2WithJWT\"\n            }\n        ],\n        \"links\": [],\n        \"educations\": [],\n        \"certificates\": []\n}","type":"text","contentType":"application/json"},{"key":"imageFile","type":"file","contentType":"multipart/form-data","value":null}]},"url":"http://localhost:8082/api/resumes/:resumeId?isAiFixed=true","urlObject":{"path":["api","resumes",":resumeId"],"host":["http://localhost:8082"],"query":[{"key":"isAiFixed","value":"true"}],"variable":[{"type":"any","value":"6765163203fce549f6dc7c84","key":"resumeId"}]}},"response":[{"id":"527c97d2-d4bc-47aa-b6f5-9a2754649ffe","name":"이력서 직접 수정","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"updateResumeRequestDTO","value":"{\n    \n\"aboutMe\": \"안녕하세요! ’Comfort-Zone에서 벗어나 끊임없이 도전을 하는 개발자’ 조일민입니다.\\n- Self-Motivation: 어떤 일이든 관심이 생기면 망설임 없이 도전하여 실행에 옮깁니다.\\n -Optimization-Driven: 코드 한 줄까지도 성능 최적화에 집중하여 시스템의 효율성과 비즈니스 가치를 극대화합니다.\\n- Collaborative Growth: 개인적인 성장을 넘어서, 함께 공유하며 발전하는 문화를 추구합니다.\",\n    \"tags\": null,\n    \"workExperiences\": [\n        {\n            \"companyName\": \"수정\",\n            \"departmentName\": \"수정\",\n            \"role\": \"수정\",\n            \"workType\": \"FULL_TIME\",\n            \"employmentStatus\": \"EMPLOYMENT\",\n            \"startedAt\": \"2022-03\",\n            \"endedAt\": \"\"\n        }\n    ],\n    \"projects\": [\n        {\n            \"projectName\": \"DREAM, 생성형AI 스토리\",\n            \"projectStartedAt\": \"2024-09\",\n            \"projectEndedAt\": \"2024-09\",\n            \"skillSet\": \"RAG, Langchain, GPT4, DALL.E\",\n            \"projectDescription\": \"<p><strong>메시징 시스템 통계 조회 API 성능 개선 (4.75s -> 41ms)</strong></p><p>의사의 회진 일정을 환자에게 메시지로 전송하는 시스템의 통계 서비스 API의 성능을 개선했습니다.</p><p>한 달간의 통계를 조회할 때 약 5초가 소요되던 API의 병목 지점을 찾아내고 수정하여 50ms 이하의 속도로 개선했습니다.</p>\",\n            \"repoLink\": \"https://github.com/ilmin/gen-ai-dream\"\n        },\n        {\n            \"projectName\": \"추천 시스템 개발\",\n            \"projectStartedAt\": \"2024-07\",\n            \"projectEndedAt\": \"2024-08\",\n            \"skillSet\": \"KcELENTRA, BiLSTM, HDBSCAN\",\n            \"projectDescription\": \"<p><strong>식당 리뷰 기반 추천 시스템 개발</strong></p><p>HDBSCAN과 ONNX를 활용하여 리뷰 데이터를 기반으로 한 식당 추천 시스템을 구축했습니다.</p><p>KcELECTRA와 BiLSTM 앙상블 모델을 통해 응답 속도를 222초에서 26초로 개선했습니다.</p>\",\n            \"repoLink\": \"https://github.com/ilmin/recommendation-system\"\n        }\n    ],\n    \"links\": [\n        {\n            \"linkTitle\": \"링크 이름\",\n            \"linkUrl\": \"https://github.com\"\n        }\n    ],\n    \"educations\": [\n        {\n            \"schoolType\": \"UNIVERSITY_BACHELOR\",\n            \"schoolName\": \"수정\",\n            \"major\": \"수정\",\n            \"graduationStatus\": \"ATTENDING\",\n            \"startedAt\": \"2019-03\",\n            \"endedAt\": \"\"\n        }\n    ],\n    \"activities\": [\n        {\n            \"activityName\": \"멋쟁이사자처럼\",\n            \"activityYear\": 2024,\n            \"activityDescription\": \"\",\n            \"activityOrganization\": \"멋쟁이사자처럼\"\n        }\n    ],\n    \"certificates\": [\n        {\n            \"certificateName\": \"정보처리기사\",\n            \"certificateGrade\": \"기사\",\n            \"certificatedAt\": \"2022-09\",\n            \"certificateOrganization\": \"한국산업인력공단\"\n        }\n    ]\n}","type":"text","contentType":"application/json"}]},"url":{"raw":"http://localhost:8082/api/resumes/:resumeId","host":["http://localhost:8082"],"path":["api","resumes",":resumeId"],"variable":[{"key":"resumeId","value":"674d797e0f9ccf1ac92c10c8"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Thu, 05 Dec 2024 05:07:11 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-12-05T14:07:11.945598\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": \"이력서 수정이 완료되었습니다.\"\n}"}],"_postman_id":"b59c1866-cd85-4b42-8ade-faea74840e36"}],"id":"124540cb-cf80-442b-acde-39ddfe55c2fc","_postman_id":"124540cb-cf80-442b-acde-39ddfe55c2fc","description":""},{"name":"Auth","item":[{"name":"Access 토큰 재발급","id":"f90cd0a6-d66e-494f-9d07-7290d2b48e89","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{auth_base_url}}/api/auth/reissue","urlObject":{"path":["api","auth","reissue"],"host":["{{auth_base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"f90cd0a6-d66e-494f-9d07-7290d2b48e89"},{"name":"로그아웃","id":"e8851b99-4271-4c8d-bccf-781340b3ab81","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"url":"{{auth_base_url}}/api/auth/logout","urlObject":{"path":["api","auth","logout"],"host":["{{auth_base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e8851b99-4271-4c8d-bccf-781340b3ab81"}],"id":"54d80ba2-b2f7-4ad1-80dc-d71af35e5950","_postman_id":"54d80ba2-b2f7-4ad1-80dc-d71af35e5950","description":""},{"name":"Payment","item":[{"name":"결제 요청","id":"6530d190-9c70-4c75-bc32-32d824da11fc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"paidPlan\" : \"PRO\"\n}","options":{"raw":{"language":"json"}}},"url":"{{payment_base_url}}/api/payments/ready","urlObject":{"path":["api","payments","ready"],"host":["{{payment_base_url}}"],"query":[],"variable":[]}},"response":[{"id":"968b7e71-f65d-4303-9177-b6e5c7831f08","name":"결제 요청","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"paidPlan\" : \"PRO\"\n}","options":{"raw":{"language":"json"}}},"url":"{{payment_base_url}}/api/payments/ready"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 27 Nov 2024 12:15:02 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-11-27T21:15:02.195505\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": {\n        \"tid\": \"T7470d457f575eb08948\",\n        \"next_redirect_app_url\": \"https://online-payment.kakaopay.com/mockup/bridge/mobile-app/pg/one-time/payment/8ac4ff5e4afdca7b3d7dba7a0aa8cc9b99c6f4c5b1c93e10eadf1697c6c11585\",\n        \"next_redirect_mobile_url\": \"https://online-payment.kakaopay.com/mockup/bridge/mobile-web/pg/one-time/payment/8ac4ff5e4afdca7b3d7dba7a0aa8cc9b99c6f4c5b1c93e10eadf1697c6c11585\",\n        \"next_redirect_pc_url\": \"https://online-payment.kakaopay.com/mockup/bridge/pc/pg/one-time/payment/8ac4ff5e4afdca7b3d7dba7a0aa8cc9b99c6f4c5b1c93e10eadf1697c6c11585\",\n        \"android_app_scheme\": \"kakaotalk://kakaopay/pg?url=https://online-pay.kakao.com/pay/mockup/8ac4ff5e4afdca7b3d7dba7a0aa8cc9b99c6f4c5b1c93e10eadf1697c6c11585\",\n        \"ios_app_scheme\": \"kakaotalk://kakaopay/pg?url=https://online-pay.kakao.com/pay/mockup/8ac4ff5e4afdca7b3d7dba7a0aa8cc9b99c6f4c5b1c93e10eadf1697c6c11585\",\n        \"created_at\": \"2024-11-27T21:15:01\"\n    }\n}"}],"_postman_id":"6530d190-9c70-4c75-bc32-32d824da11fc"},{"name":"플랜 해지","id":"be21e2d6-4458-4576-9a6c-a8a5ae997d44","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PATCH","header":[],"url":"{{payment_base_url}}/api/payments/terminate","urlObject":{"path":["api","payments","terminate"],"host":["{{payment_base_url}}"],"query":[],"variable":[]}},"response":[{"id":"54811a2a-e9ab-4dc2-bf7d-d383fd974fee","name":"플랜 해지","originalRequest":{"method":"PATCH","header":[],"url":"{{payment_base_url}}/api/payments/terminate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Wed, 04 Dec 2024 08:24:24 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"time\": \"2024-12-04T17:24:24.77153\",\n    \"status\": \"OK\",\n    \"code\": \"200 OK\",\n    \"message\": \"요청에 성공했습니다.\",\n    \"result\": \"정기 결제가 해지되었습니다.\"\n}"}],"_postman_id":"be21e2d6-4458-4576-9a6c-a8a5ae997d44"}],"id":"7496fda6-8e63-48b8-9f9f-23f5d8f36bd7","_postman_id":"7496fda6-8e63-48b8-9f9f-23f5d8f36bd7","description":""},{"name":"Notification","item":[{"name":"안읽은 내 알림 조회","id":"b5070a38-737a-410a-9a79-4d4c73d27c9d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"{{notification_base_url}}/api/notifications/me","urlObject":{"path":["api","notifications","me"],"host":["{{notification_base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b5070a38-737a-410a-9a79-4d4c73d27c9d"},{"name":"알림 단건 보기","id":"cb8af583-8925-479d-b278-4ab6e528085a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"{{notification_base_url}}/api/notifications/:notificationId","urlObject":{"path":["api","notifications",":notificationId"],"host":["{{notification_base_url}}"],"query":[],"variable":[{"type":"any","value":"","key":"notificationId"}]}},"response":[],"_postman_id":"cb8af583-8925-479d-b278-4ab6e528085a"}],"id":"80a76dcd-7963-4fdf-ae82-5aff70d9161e","_postman_id":"80a76dcd-7963-4fdf-ae82-5aff70d9161e","description":""}],"event":[{"listen":"prerequest","script":{"id":"5d7f7383-5c35-4784-a29c-a2d3b2a426bf","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"1c1713f5-9e43-41bc-9b73-d5e7ec0068a2","type":"text/javascript","packages":{},"exec":[""]}}],"variable":[{"key":"base_url","value":"http://localhost:8080","type":"default"},{"key":"resume_base_url","value":"http://localhost:8082","type":"default"},{"key":"member_base_url","value":"http://localhost:8081","type":"default"},{"key":"accessToken","value":"eyJhbGciOiJIUzI1NiJ9.eyJjYXRlZ29yeSI6ImFjY2VzcyIsInVzZXJuYW1lIjoiNzk1MjE5NzIiLCJuaWNrbmFtZSI6InNwZWFyZHJhZ29uIiwicm9sZSI6IlJPTEVfVVNFUiIsIm1lbWJlcklkIjoyLCJpYXQiOjE3MzAxMDE5MDMsImV4cCI6MTczMDEwMjUwM30.CFO09lVK0dsoBB2_KwN-p4sTIdFNhRpAxcsmdRFq3Ok","type":"string"},{"key":"access_token","value":"","type":"default"}]}