{"info":{"_postman_id":"8c949586-e2da-4297-965c-3caf5a0d6ba1","name":"Devfolio","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"14334640","collectionId":"8c949586-e2da-4297-965c-3caf5a0d6ba1","publishedId":"TzJuBdik","public":true,"customColor":{"top-bar":"ffffff","right-sidebar":"2D2D2D","highlight":"f08d49"},"publishDate":"2021-04-21T05:30:09.000Z"},"item":[{"name":"Project","item":[{"name":"프로젝트 전체 목록 불러오기","id":"837ebff1-2777-4408-87e2-35fc4acfa4bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://devfolio.world:3020/api/projects","urlObject":{"protocol":"http","port":"3020","path":["api","projects"],"host":["devfolio","world"],"query":[],"variable":[]}},"response":[],"_postman_id":"837ebff1-2777-4408-87e2-35fc4acfa4bd"},{"name":"프로젝트 등록","id":"15f68764-6186-4364-888f-65487d5713ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyLCJlbWFpbCI6ImZiZ2t3bnNAZ21haWwuY29tIiwibmFtZSI6IuulmO2VmOykgCIsInR5cGUiOiJnb29nbGUiLCJpYXQiOjE2MjIxODM5NjYsImV4cCI6MTYyMjc4ODc2Nn0.nedoa3-7vNHtLZXdtkELlwNJm46PFkzza1CtizGhK6Q","description":"<p>인증 토큰이 필수적으로 필요합니다.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"subject\": \"접근성을 고려한 웹 사이트 CAFE WW\",\n    \"thumbnail\": {\n        \"src\": \"https://github.com/HaJunRyu/FDS18_RWD/raw/master/_ASSETS_/cover.jpg\"\n    },\n    \"taemName\": \"팀명 입력 없다면 null값 할당\",\n    \"planIntention\": \"프로젝트의 기획, 설명을 작성\",\n    \"startDate\": \"2021-02-10T15:00:00.000Z\",\n    \"endDate\": \"2021-04-06T15:00:00.000Z\",\n    \"githubUrl\": \"프로젝트의 소스코드가 있는 github url 입력, 없다면 null\",\n    \"deployUrl\": null,\n    \"isPrivate\": \"0\",\n    \"mainContents\": \"<h1>프로젝트의 설명을 입력, 텍스트에디터의 데이터가 들어오기 때문에 HTML코드가 그대로 들어옴</h1>\",\n    \"userUserId\": 3,\n    \"techStacks\": [\n        \"React\",\n        \"Javascript\"\n    ],\n    \"teamMembers\": [\n        {\n            \"memberName\": \"HajunRyu\",\n            \"memberGithubUrl\": \"https://github.com/HaJunRyu\"\n        },\n        {\n            \"memberName\": \"bcround\",\n            \"memberGithubUrl\": \"https://github.com/bcround\"\n        },\n        {\n            \"memberName\": \"choisuhyeok\",\n            \"memberGithubUrl\": \"https://github.com/choisuhyeo1255\"\n        }\n    ]\n}"},"url":"http://devfolio.world:3020/api/project","description":"<ul>\n<li><p>isPrivate : 프로젝트의 공개여부를 0이나 1로 표현 공개: 0, 비공개: 1</p>\n</li>\n<li><p>userUserId : 프로젝트를 등록한 유저의 primary key 즉, 현재 로그인 한 유저의 고유한 Id값</p>\n</li>\n</ul>\n","urlObject":{"protocol":"http","port":"3020","path":["api","project"],"host":["devfolio","world"],"query":[],"variable":[]}},"response":[],"_postman_id":"15f68764-6186-4364-888f-65487d5713ac"},{"name":"프로젝트 수정","id":"258b2933-6fe7-4598-81ed-ddfd81919614","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyLCJlbWFpbCI6ImZiZ2t3bnNAZ21haWwuY29tIiwibmFtZSI6IuulmO2VmOykgCIsInR5cGUiOiJnb29nbGUiLCJpYXQiOjE2MjIxODM5NjYsImV4cCI6MTYyMjc4ODc2Nn0.nedoa3-7vNHtLZXdtkELlwNJm46PFkzza1CtizGhK6Q","description":"<p>인증 토큰이 필수적으로 필요합니다.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"subject\": \"프로젝트 수정\",\n    \"thumbnail\": {\n        \"src\": \"https://github.com/HaJunRyu/FDS18_RWD/raw/master/_ASSETS_/cover.jpg\"\n    },\n    \"taemName\": \"팀명 입력 없다면 null값 할당\",\n    \"planIntention\": \"기획의도, 설명 입력\",\n    \"startDate\": \"2021-02-10T15:00:00\",\n    \"endDate\": \"2021-04-06T15:00:00\",\n    \"githubUrl\": \"프로젝트의 소스코드가 있는 github url 입력, 없다면 null\",\n    \"deployUrl\": \"프로젝트를 배포했다면 배포 url 입력, 없다면 null\",\n    \"isPrivate\": 1,\n    \"mainContents\": \"<h1>프로젝트의 설명을 입력, 텍스트에디터의 데이터가 들어오기 때문에 HTML코드가 그대로 들어옴</h1>\",\n    \"techStacks\": [\n        \"React\",\n        \"Javascript\"\n    ],\n    \"teamMembers\": [\n        {\n            \"memberName\": \"HajunRyu\",\n            \"memberGithubUrl\": \"https://github.com/HaJunRyu\"\n        },\n        {\n            \"memberName\": \"bcround\",\n            \"memberGithubUrl\": \"https://github.com/bcround\"\n        },\n        {\n            \"memberName\": \"choisuhyeok\",\n            \"memberGithubUrl\": \"https://github.com/choisuhyeo1255\"\n        }\n    ]\n}"},"url":"http://devfolio.world:3020/api/project/:project_id","description":"<ul>\n<li>isPrivate : 프로젝트의 공개여부를 0이나 1로 표현 공개: 0, 비공개: 1</li>\n</ul>\n","urlObject":{"protocol":"http","port":"3020","path":["api","project",":project_id"],"host":["devfolio","world"],"query":[],"variable":[{"description":{"content":"<p>수정 할 프로젝트의 고유한 id를 path 파라미터로 전달해줍니다.</p>\n","type":"text/plain"},"type":"any","value":"101","key":"project_id"}]}},"response":[],"_postman_id":"258b2933-6fe7-4598-81ed-ddfd81919614"},{"name":"프로젝트 아이디로 특정 프로젝트 데이터 불러오기","id":"d2598a71-4489-4e0e-939d-fd08e5811f40","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://devfolio.world:3020/api/project/:project_id","urlObject":{"protocol":"http","port":"3020","path":["api","project",":project_id"],"host":["devfolio","world"],"query":[{"disabled":true,"key":"","value":null}],"variable":[{"type":"any","value":"103","key":"project_id"}]}},"response":[{"id":"f36324d5-1524-4315-9209-9a372266043c","name":"프로젝트 아이디로 특정 프로젝트 데이터 불러오기","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://devfolio.world:3020/api/project/:project_id","protocol":"http","host":["devfolio","world"],"port":"3020","path":["api","project",":project_id"],"query":[{"key":"","value":null,"type":"text","disabled":true}],"variable":[{"key":"project_id","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1112"},{"key":"ETag","value":"W/\"458-Usx+xP50wKYfKA/OGbRJ0UrZrI0\""},{"key":"Date","value":"Wed, 21 Apr 2021 14:58:37 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"responseMessage\": \"success\",\n    \"responseData\": {\n        \"projectData\": {\n            \"project_id\": 1,\n            \"subject\": \"프로젝트 제목 입력\",\n            \"thumbnail\": \"https://github.com/HaJunRyu/FDS18_RWD/raw/master/_ASSETS_/cover.jpg\",\n            \"team_name\": null,\n            \"plan_intention\": \"기획의도 입력\",\n            \"start_date\": \"2021-02-10T06:00:00.000Z\",\n            \"end_date\": \"2021-04-06T06:00:00.000Z\",\n            \"github_url\": \"프로젝트의 소스코드가 있는 github url 입력, 없다면 null\",\n            \"deploy_url\": \"프로젝트를 배포했다면 배포 url 입력, 없다면 null\",\n            \"is_private\": 0,\n            \"main_contents\": \"프로젝트의 설명을 입력, 텍스트에디터의 데이터가 들어오기 때문에 HTML코드가 그대로 들어올것이다.\",\n            \"created\": \"2021-04-21T07:27:46.000Z\",\n            \"user_user_id\": 1\n        },\n        \"projectTechStacks\": [\n            {\n                \"project_tech_stacks_id\": 1,\n                \"tech_name\": \"React\",\n                \"project_project_id\": 1\n            },\n            {\n                \"project_tech_stacks_id\": 2,\n                \"tech_name\": \"Vue\",\n                \"project_project_id\": 1\n            },\n            {\n                \"project_tech_stacks_id\": 3,\n                \"tech_name\": \"Svelte\",\n                \"project_project_id\": 1\n            },\n            {\n                \"project_tech_stacks_id\": 4,\n                \"tech_name\": \"Angular\",\n                \"project_project_id\": 1\n            },\n            {\n                \"project_tech_stacks_id\": 5,\n                \"tech_name\": \"Javascript\",\n                \"project_project_id\": 1\n            }\n        ]\n    }\n}"}],"_postman_id":"d2598a71-4489-4e0e-939d-fd08e5811f40"},{"name":"프로젝트 삭제","id":"c8f47e71-503d-4f3b-a250-3a38afb84b42","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyLCJlbWFpbCI6ImZiZ2t3bnNAZ21haWwuY29tIiwibmFtZSI6IuulmO2VmOykgCIsInR5cGUiOiJnb29nbGUiLCJpYXQiOjE2MjIxODM5NjYsImV4cCI6MTYyMjc4ODc2Nn0.nedoa3-7vNHtLZXdtkELlwNJm46PFkzza1CtizGhK6Q","type":"text"}],"url":"http://devfolio.world:3020/api/project/:project_id","urlObject":{"protocol":"http","port":"3020","path":["api","project",":project_id"],"host":["devfolio","world"],"query":[{"disabled":true,"key":"","value":null}],"variable":[{"type":"any","value":"104","key":"project_id"}]}},"response":[],"_postman_id":"c8f47e71-503d-4f3b-a250-3a38afb84b42"},{"name":"해당 유저가 프로젝트에 좋아요를 눌렀는지 판단하는 api","id":"b1bce982-4c06-4c3d-8706-80522058ae49","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"","description":"<p>인증 토큰이 필수적으로 필요합니다.</p>\n","type":"text"}],"url":"http://devfolio.world:3020/api/project_like?project_id=1&user_id=1","urlObject":{"protocol":"http","port":"3020","path":["api","project_like"],"host":["devfolio","world"],"query":[{"key":"project_id","value":"1"},{"key":"user_id","value":"1"}],"variable":[]}},"response":[{"id":"12d343a3-e368-4866-a5f1-18cab84144f5","name":"해당 유저가 좋아요를 누르지 않았다면 반환되는 response객체","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"","description":"인증 토큰이 필수적으로 필요합니다.","type":"text"}],"url":{"raw":"http://devfolio.world:3020/api/project_like?project_id=1&user_id=1","protocol":"http","host":["devfolio","world"],"port":"3020","path":["api","project_like"],"query":[{"key":"project_id","value":"1"},{"key":"user_id","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"48"},{"key":"ETag","value":"W/\"30-GrCAbc94lYR0NfgStwe4Tg1+wTc\""},{"key":"Date","value":"Wed, 21 Apr 2021 14:52:50 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"responseMessage\": \"success\",\n    \"existeLike\": false\n}"},{"id":"e5b0b475-a994-4feb-b79f-de2a99eb5193","name":"해당 유저가 좋아요를 이미 눌렀다면 반환되는 response객체","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"","description":"인증 토큰이 필수적으로 필요합니다.","type":"text"}],"url":{"raw":"http://devfolio.world:3020/api/project_like?project_id=1&user_id=1","protocol":"http","host":["devfolio","world"],"port":"3020","path":["api","project_like"],"query":[{"key":"project_id","value":"1"},{"key":"user_id","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"47"},{"key":"ETag","value":"W/\"2f-M8ceASqrlYL4hBkv3usChGbF3z4\""},{"key":"Date","value":"Wed, 21 Apr 2021 14:53:38 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"responseMessage\": \"success\",\n    \"existeLike\": true\n}"}],"_postman_id":"b1bce982-4c06-4c3d-8706-80522058ae49"},{"name":"프로젝트에 좋아요 추가","id":"e2eb2aa8-576d-41f9-8a95-6609209a0a61","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyLCJlbWFpbCI6ImZiZ2t3bnNAZ21haWwuY29tIiwibmFtZSI6IuulmO2VmOykgCIsInR5cGUiOiJnb29nbGUiLCJpYXQiOjE2MjIxODM5NjYsImV4cCI6MTYyMjc4ODc2Nn0.nedoa3-7vNHtLZXdtkELlwNJm46PFkzza1CtizGhK6Q","description":"<p>인증 토큰이 필수적으로 필요합니다.</p>\n","type":"text"}],"url":"http://devfolio.world:3020/api/project_like?project_id=131&user_id=2","urlObject":{"protocol":"http","port":"3020","path":["api","project_like"],"host":["devfolio","world"],"query":[{"key":"project_id","value":"131"},{"key":"user_id","value":"2"}],"variable":[]}},"response":[{"id":"cfcfcce4-1937-4e14-bade-ccbc8a2a013d","name":"프로젝트에 좋아요 추가에 대한 reponse객체","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"","description":"인증 토큰이 필수적으로 필요합니다.","type":"text"}],"url":{"raw":"http://devfolio.world:3020/api/project_like?project_id=1&user_id=1","protocol":"http","host":["devfolio","world"],"port":"3020","path":["api","project_like"],"query":[{"key":"project_id","value":"1"},{"key":"user_id","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"43"},{"key":"ETag","value":"W/\"2b-mC60VG03Vb53aXT4fH2jIlXc0xY\""},{"key":"Date","value":"Wed, 21 Apr 2021 14:50:18 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"responseMessage\": \"success\",\n    \"likeCount\": 2\n}"}],"_postman_id":"e2eb2aa8-576d-41f9-8a95-6609209a0a61"},{"name":"프로젝트에 좋아요 취소","id":"f53dbc42-4026-46a9-97aa-4cb6632e0f99","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyLCJlbWFpbCI6ImZiZ2t3bnNAZ21haWwuY29tIiwibmFtZSI6IuulmO2VmOykgCIsInR5cGUiOiJnb29nbGUiLCJpYXQiOjE2MjIxODM5NjYsImV4cCI6MTYyMjc4ODc2Nn0.nedoa3-7vNHtLZXdtkELlwNJm46PFkzza1CtizGhK6Q","description":"<p>인증 토큰이 필수적으로 필요합니다.</p>\n","type":"text"}],"url":"http://devfolio.world:3020/api/project_like?project_id=131&user_id=2","urlObject":{"protocol":"http","port":"3020","path":["api","project_like"],"host":["devfolio","world"],"query":[{"disabled":true,"key":"","value":null},{"key":"project_id","value":"131"},{"key":"user_id","value":"2"}],"variable":[]}},"response":[{"id":"feeee4ed-85f4-4c27-a95c-14a962bcc329","name":"프로젝트에 좋아요 취소에 대한 response 객체","originalRequest":{"method":"DELETE","header":[{"key":"Authorization","value":"","description":"인증 토큰이 필수적으로 필요합니다.","type":"text"}],"url":{"raw":"http://devfolio.world:3020/api/project_like?project_id=1&user_id=1","protocol":"http","host":["devfolio","world"],"port":"3020","path":["api","project_like"],"query":[{"key":"project_id","value":"1"},{"key":"","value":null,"type":"text","disabled":true},{"key":"user_id","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"43"},{"key":"ETag","value":"W/\"2b-8b9NqUyDlRy3/yrrmLvAWfJJL4I\""},{"key":"Date","value":"Wed, 21 Apr 2021 14:51:37 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"responseMessage\": \"success\",\n    \"likeCount\": 1\n}"},{"id":"7e9299d7-b2d5-431c-99ce-ea20bde5e7a7","name":"해당 유저가 해당 프로젝트에 좋아요를 누른적이 없을때 삭제를 할 경우의 response객체","originalRequest":{"method":"DELETE","header":[{"key":"Authorization","value":"","description":"인증 토큰이 필수적으로 필요합니다.","type":"text"}],"url":{"raw":"http://devfolio.world:3020/api/project_like?project_id=1&user_id=1","protocol":"http","host":["devfolio","world"],"port":"3020","path":["api","project_like"],"query":[{"key":"project_id","value":"1"},{"key":"user_id","value":"1"},{"key":"","value":null,"type":"text","disabled":true}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"65"},{"key":"ETag","value":"W/\"41-GNSbnHDAPDEaAVX9ql9aWxzAJ9k\""},{"key":"Date","value":"Wed, 21 Apr 2021 14:56:54 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"responseMessage\": \"The users likes do not exist for this post.\"\n}"}],"_postman_id":"f53dbc42-4026-46a9-97aa-4cb6632e0f99"},{"name":"유저가 좋아요를 누른 프로젝트만 불러오기","id":"92f7f71c-4bd1-43a5-8e27-d501879cd039","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://devfolio.world:3020/api/favorite_projects/:user_id?page=0&limit=12","urlObject":{"protocol":"http","port":"3020","path":["api","favorite_projects",":user_id"],"host":["devfolio","world"],"query":[{"description":{"content":"<p>현재 조회중인 페이지를 전달해줍니다.</p>\n","type":"text/plain"},"key":"page","value":"0"},{"description":{"content":"<p>하나의 페이지에서 몇개의 데이터를 요청할것인지 전달해줍니다.</p>\n","type":"text/plain"},"key":"limit","value":"12"}],"variable":[{"description":{"content":"<p>현재 로그인 중인 유저의 고유 id값을 전달해주시면 됩니다.</p>\n","type":"text/plain"},"type":"any","value":"2","key":"user_id"}]}},"response":[{"id":"0da547ef-b740-4496-a516-f98fa37c04a0","name":"유저가 좋아요를 누른 프로젝트만 불러오기","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:3020/api/favorite_projects/:user_id","protocol":"http","host":["localhost"],"port":"3020","path":["api","favorite_projects",":user_id"],"variable":[{"key":"user_id","value":"3","description":"현재 로그인 중인 유저의 고유 id값을 전달해주시면 됩니다."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"5543"},{"key":"ETag","value":"W/\"15a7-7ISdXKaS0mSZdzCydbK6bZWvlh4\""},{"key":"Date","value":"Thu, 20 May 2021 07:27:50 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"responseMessage\": \"success\",\n    \"projectsData\": [\n        {\n            \"project_id\": 12,\n            \"subject\": \"가장 쉬운 포트폴리오 관리 Devfolio\",\n            \"thumbnail\": \"https://aws-devfolio.s3.ap-northeast-2.amazonaws.com/devfolio%20cover.jpg\",\n            \"team_name\": \"BHC\",\n            \"plan_intention\": \"프로젝트가 끝난 후 하드디스크 또는 github 저장소에만 잠들어 있는게 아닌 여러사람에게 프로젝트를 공유하며 공유받고 더 넓은 생각을 하게 해주는 웹 애플리케이션 입니다.\",\n            \"start_date\": \"2021-04-08T06:00:00.000Z\",\n            \"end_date\": \"2021-04-29T06:00:00.000Z\",\n            \"github_url\": \"https://github.com/Devfolio-team/Devfolio-Client\",\n            \"deploy_url\": \"http://devfolio.world\",\n            \"is_private\": 0,\n            \"main_contents\": \"<h1>가장 쉬운 포트폴리오 관리 Devfolio</h1>\\n<p><img src=\\\"https://github.com/Devfolio-team/Devfolio-Client/raw/develop/public/assets/devfolio-cover.jpg\\\" alt=\\\"devfolio 커버 사진\\\"></p>\\n<h2><a href=\\\"http://devfolio.world\\\">HOME PAGE</a></h2>\\n<h2><a href=\\\"https://github.com/Devfolio-team/Devfolio-Client/wiki\\\">Devfolio Wiki</a></h2>\\n<h2>기획 의도</h2>\\n<p>프로젝트가 끝난 후 하드디스크 또는 github 저장소에만 잠들어 있는게 아닌 여러사람에게 프로젝트를 공유하며 공유받고 더 넓은 생각을 하면 좋겠다는 취지에서 개발한 웹 애플리케이션 입니다.</p>\\n<h2>프로젝트 목표</h2>\\n<ul>\\n<li>패스트 캠퍼스 프론트엔드 개발스쿨 과정에서 학습한 HTML5, CSS3, Javascript, React, Redux등의 지식들을 모두 활용하여 프로젝트에 임합니다.</li>\\n<li>결과보다 과정, 기술적 부채를 남기지 않으며 작업하는 습관을 키웁니다.</li>\\n<li>단순 토이 프로젝트가 아닌 팀원들과의 협업과정을 문서로 남기며 체계적으로 작업합니다.</li>\\n<li>접근성을 고려하여 일반적인 사용자뿐만 아니라 환경적으로 장애가 있는 사용자도 이용할 수 있는 웹 애플리케이션을 만듭니다.</li>\\n<li>디자인부터 개발, 배포의 과정까지 겪으며 간접적으로 서비스의 런칭을 경험합니다.</li>\\n</ul>\\n<h2>UI 디자인</h2>\\n<p>Figma 디자인 툴을 이용하여 프로젝트의 디자인 시안을 제작했습니다.</p>\\n<p><img src=\\\"https://github.com/Devfolio-team/Devfolio-Client/raw/develop/public/assets/figma%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%83%91-%EC%8B%9C%EC%95%88.png\\\" alt=\\\"devfolio 테스크탑 디자인 시안\\\"><br>\\n<img src=\\\"https://github.com/Devfolio-team/Devfolio-Client/raw/develop/public/assets/devfolio%EB%AA%A8%EB%B0%94%EC%9D%BC-%EC%8B%9C%EC%95%88.png\\\" alt=\\\"devfolio 모바일 디자인 시안\\\"></p>\\n<h2>✨ 기술 스택</h2>\\n<p><img src=\\\"https://github.com/Devfolio-team/Devfolio-Client/raw/develop/public/assets/devfolio%EA%B8%B0%EC%88%A0%EC%8A%A4%ED%83%9D.png\\\" alt=\\\"devfolio 기술스택 목록\\\"></p>\\n<h2>DB Model</h2>\\n<h3>👉&nbsp;<a href=\\\"https://documenter.getpostman.com/view/14334640/TzJuBdik#15f68764-6186-4364-888f-65487d5713ac\\\">Devfolio API Endpoints 보러가기&nbsp;</a>👈</h3>\\n<p><img src=\\\"https://github.com/Devfolio-team/Devfolio-Client/raw/develop/public/assets/devfolio-DB-Model.png\\\" alt=\\\"devfolio DB Model\\\"></p>\\n<h2>서비스 구성도</h2>\\n<p><img src=\\\"https://github.com/Devfolio-team/Devfolio-Client/raw/develop/public/assets/devfolio%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B5%AC%EC%84%B1%EB%8F%84.png\\\" alt=\\\"\\\"></p>\\n<h2>프로젝트 주요 기능</h2>\\n<h3>전체 프로젝트 인기 / 최신 조회</h3>\\n<p><img src=\\\"https://github.com/Devfolio-team/Devfolio-Client/raw/develop/public/assets/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%A0%84%EC%B2%B4-%EC%A1%B0%ED%9A%8C.png\\\" alt=\\\"\\\"></p>\\n<h3>프로젝트 상세 조회(썸네일)</h3>\\n<p><img src=\\\"https://github.com/Devfolio-team/Devfolio-Client/raw/develop/public/assets/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%81%EC%84%B8-%EC%A1%B0%ED%9A%8C-%EC%8D%B8%EB%84%A4%EC%9D%BC.png\\\" alt=\\\"\\\"></p>\\n<h3>프로젝트 상세 조회(기획의도, 기술스택)</h3>\\n<p><img src=\\\"https://github.com/Devfolio-team/Devfolio-Client/raw/develop/public/assets/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%82%AC%EC%9A%A9-%EA%B8%B0%EC%88%A0-%EC%8A%A4%ED%83%9D-%EC%A1%B0%ED%9A%8C.png\\\" alt=\\\"\\\"></p>\\n<h2>Devfolio와 함께한 사람들</h2>\\n<table>\\n<thead>\\n<tr>\\n<th align=\\\"center\\\"><a href=\\\"https://github.com/HaJunRyu\\\">류하준(HajunRyu)</a></th>\\n<th align=\\\"center\\\"><a href=\\\"https://github.com/bcround\\\">신봉철(Bcroun)</a></th>\\n<th align=\\\"center\\\"><a href=\\\"https://github.com/choisuhyeok1255\\\">최수혁(choisuhyeok1255)</a></th>\\n</tr>\\n</thead>\\n<tbody>\\n<tr>\\n<td align=\\\"center\\\"><img src=\\\"https://avatars.githubusercontent.com/u/71176945?v=4\\\" alt=\\\"류하준의 프로필 사진\\\"></td>\\n<td align=\\\"center\\\"><img src=\\\"https://avatars.githubusercontent.com/u/71061236?v=4\\\" alt=\\\"신봉철의 프로필 사진\\\"></td>\\n<td align=\\\"center\\\"><img src=\\\"https://avatars.githubusercontent.com/u/72919631?v=4\\\" alt=\\\"최수혁의 프로필 사진\\\"></td>\\n</tr>\\n</tbody>\\n</table>\\n<h2>프로젝트 사용법</h2>\\n<pre class=\\\"lang-sh\\\"><code data-language=\\\"sh\\\">npm i\\nnpm start\\n# or\\nyarn add\\nyarn start\\n</code></pre>\\n<p><strong>root경로에 .env파일이 필요합니다.</strong></p>\\n<pre class=\\\"lang-sh\\\"><code data-language=\\\"sh\\\"># /.env\\nREACT_APP_API_URL=[API url]\\n</code></pre>\\n\",\n            \"created\": \"2021-04-29T15:19:23.000Z\",\n            \"user_user_id\": 2,\n            \"nickname\": \"HajunRyu\",\n            \"profile_photo\": \"https://lh3.googleusercontent.com/a-/AOh14GhtpT7YH6EriNYjuPcuXRK6J-weil804Xl8sNWl=s350-c\",\n            \"likeCount\": 4\n        }\n    ]\n}"}],"_postman_id":"92f7f71c-4bd1-43a5-8e27-d501879cd039"},{"name":"제목으로 프로젝트 검색","id":"980d2a79-09e2-4f15-871f-d7e23ece18c5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://devfolio.world:3020/api/projects/search?q=Dev","urlObject":{"protocol":"http","port":"3020","path":["api","projects","search"],"host":["devfolio","world"],"query":[{"key":"q","value":"Dev"}],"variable":[]}},"response":[],"_postman_id":"980d2a79-09e2-4f15-871f-d7e23ece18c5"}],"id":"2f75a04f-299c-4a12-8e98-18e1ce6dfa09","_postman_id":"2f75a04f-299c-4a12-8e98-18e1ce6dfa09","description":""},{"name":"Auth","item":[{"name":"구글 계정으로 회원가입 및 로그인","id":"beed84be-e1cb-4c50-a768-b8ba084a4184","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://devfolio.world:3020/auth/google","urlObject":{"protocol":"http","port":"3020","path":["auth","google"],"host":["devfolio","world"],"query":[],"variable":[]}},"response":[],"_postman_id":"beed84be-e1cb-4c50-a768-b8ba084a4184"},{"name":"깃허브 계정으로 회원가입 및 로그인","id":"ad106c63-e122-4656-8d04-44dbf4df95c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://devfolio.world:3020/auth/github","urlObject":{"protocol":"http","port":"3020","path":["auth","github"],"host":["devfolio","world"],"query":[],"variable":[]}},"response":[],"_postman_id":"ad106c63-e122-4656-8d04-44dbf4df95c0"},{"name":"소셜 인증 후 토큰을 이용하여 로그인","id":"47d070d4-b79d-467f-93dd-9529ece9ca41","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"authentication\": \"소셜 회원가입, 로그인 시 발급받은 인증토큰\"\n}","options":{"raw":{"language":"json"}}},"url":"http://devfolio.world:3020/auth/github","urlObject":{"protocol":"http","port":"3020","path":["auth","github"],"host":["devfolio","world"],"query":[],"variable":[]}},"response":[],"_postman_id":"47d070d4-b79d-467f-93dd-9529ece9ca41"},{"name":"회원 탈퇴","id":"13621f30-0b17-4ce5-950e-2c0feed06be5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://devfolio.world:3020/auth/10","urlObject":{"protocol":"http","port":"3020","path":["auth","10"],"host":["devfolio","world"],"query":[],"variable":[]}},"response":[],"_postman_id":"13621f30-0b17-4ce5-950e-2c0feed06be5"}],"id":"874f985c-f958-44ae-9e2e-3a61685c19e2","_postman_id":"874f985c-f958-44ae-9e2e-3a61685c19e2","description":""},{"name":"Image","item":[{"name":"S3에 이미지 업로드","id":"c92d3674-e565-4364-8a09-067a65607dd9","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"image","type":"file","src":"/Users/hajun/Downloads/기술 스택/1_nvHO6KuxX5B6FVXZ_hqTZw.png"}]},"url":"http://devfolio.world:3020/api/image","urlObject":{"protocol":"http","port":"3020","path":["api","image"],"host":["devfolio","world"],"query":[],"variable":[]}},"response":[],"_postman_id":"c92d3674-e565-4364-8a09-067a65607dd9"}],"id":"9915d4f9-fd53-456d-809e-32eec64c5a83","_postman_id":"9915d4f9-fd53-456d-809e-32eec64c5a83","description":""},{"name":"TechStacks","item":[{"name":"기술스택을 추가, 검색할때 기술 스택의 목록 가져오기","id":"34854480-64e5-484f-b938-d807a9485cfe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://devfolio.world:3020/api/tech_stacks","urlObject":{"protocol":"http","port":"3020","path":["api","tech_stacks"],"host":["devfolio","world"],"query":[],"variable":[]}},"response":[],"_postman_id":"34854480-64e5-484f-b938-d807a9485cfe"}],"id":"820eb0c3-f690-4ee0-b0d8-69587499f25c","_postman_id":"820eb0c3-f690-4ee0-b0d8-69587499f25c","description":""},{"name":"Portfolio","item":[{"name":"포트폴리오 수정","id":"ab20c45d-95e8-4b6c-9f0b-142e9f04bf18","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyLCJlbWFpbCI6ImZiZ2t3bnNAZ21haWwuY29tIiwibmFtZSI6IuulmO2VmOykgCIsInR5cGUiOiJnb29nbGUiLCJpYXQiOjE2MjIxODM5NjYsImV4cCI6MTYyMjc4ODc2Nn0.nedoa3-7vNHtLZXdtkELlwNJm46PFkzza1CtizGhK6Q","description":"<p>인증 토큰이 필수적으로 필요합니다.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"fbgkwns@gmail.com\",\n    \"name\": \"류하준\",\n    \"nickname\": \"HajunRyu\",\n    \"profilePhoto\": { \"src\":\"https://lh3.googleusercontent.com/a-/AOh14GhtpT7YH6EriNYjuPcuXRK6J-weil804Xl8sNWl=s350-c\" },\n    \"githubUrl\": \"https://github.com/HaJunRyu\",\n    \"blogUrl\": \"https://dev-junn.netlify.app\",\n    \"introduce\": \"<h1>끊임없이 도전하는 개발자</h1> <p>웹 프론트엔드 엔지니어 류하준 입니다. 여러 프로젝트를 수행하면서 개발 역량을 쌓아왔고, 현재는 React와 Redux를 사용하여 프로젝트를 진행 하고 있습니다. 리액트 프레임워크를 사용한 웹 프론트엔드 개발에 가장 익숙합니다.</p> <p>자기개발에 손을 놓지 않습니다. 퇴근 후는 사이드프로젝트를 하며 공부합니다. 개인적으로 진행하는 프로젝트와 팀원 들과 협업하는 프로젝트를 병행하고 있습니다.</p> <p>1인 개발 프로젝트를 개발 시작부터 배포까지 혼자 진행해보며, 프론트엔드 말고도 백엔드와 디자인 직군의 역할의 이해도를 키웠습니다.</p> <p>여러 프로젝트에서 디자인부분까지 맡으면서 디자인 역량도 조금이나마 쌓게 되었고, 현재는 어느정도의 디자인 감각이 있는 프론트엔드 개발자를 지향하고 있습니다.</p> <p>또한, 여러 협업 프로젝트를 진행하면서 다른 직군과 소통하는 것의 중요성을 알게 되었고, 프로젝트 시 주기적으로 회의하고 수시로 소통합니다. 슬랙, 노션, 제플린 등의 협업 툴 활용능력도 쌓으며 다양한 프로젝트에 적용하고 있습니다.</p> <p>거의 모든 프로젝트를 깃허브를 활용해 관리하며 진행하고 있습니다.</p> \",\n    \"techStacks\": [\"React\", \"Styled Components\", \"Vue\", \"Javascript\", \"Java\", \"C\"]\n}","options":{"raw":{"language":"json"}}},"url":"http://devfolio.world:3020/api/portfolio?user_id=2","urlObject":{"protocol":"http","port":"3020","path":["api","portfolio"],"host":["devfolio","world"],"query":[{"key":"user_id","value":"2"}],"variable":[]}},"response":[],"_postman_id":"ab20c45d-95e8-4b6c-9f0b-142e9f04bf18"},{"name":"특정 유저의 포트폴리오 조회","id":"f501043a-cc9c-4e22-943a-5f6716098dc9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://devfolio.world:3020/api/portfolio?user_id=2","urlObject":{"protocol":"http","port":"3020","path":["api","portfolio"],"host":["devfolio","world"],"query":[{"key":"user_id","value":"2"}],"variable":[]}},"response":[],"_postman_id":"f501043a-cc9c-4e22-943a-5f6716098dc9"}],"id":"6c1daeed-fd32-47c5-a90a-80fc3e5191a9","_postman_id":"6c1daeed-fd32-47c5-a90a-80fc3e5191a9","description":""},{"name":"RequestTechStacks","item":[{"name":"기술스택 추가 요청","id":"37f86570-6ffa-4e8e-bd0d-72d93d6befe9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjo3LCJuYW1lIjoi6rmA7KeA7JuQIiwidHlwZSI6ImdpdGh1YiIsImlhdCI6MTYyMjIwMDIxMywiZXhwIjoxNjIyODA1MDEzfQ.8Ta3ka06wvwlEoJe3RjGItM_TtN-9bdsDu3zdWW638w","description":"<p>인증 토큰이 필수적으로 필요합니다.</p>\n","type":"text"}],"url":"http://devfolio.world:3020/api/request_tech_stacks?stack_name=ASDFG","urlObject":{"protocol":"http","port":"3020","path":["api","request_tech_stacks"],"host":["devfolio","world"],"query":[{"description":{"content":"<p>추가 할 기술스택의 이름을 query로 넣어줍니다.</p>\n","type":"text/plain"},"key":"stack_name","value":"ASDFG"}],"variable":[]}},"response":[],"_postman_id":"37f86570-6ffa-4e8e-bd0d-72d93d6befe9"},{"name":"요청된 기술스택 목록 가져오기","id":"39195cc8-bc9d-4fe7-93f7-fbdb6b17c1f0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://devfolio.world:3020/api/request_tech_stacks","urlObject":{"protocol":"http","port":"3020","path":["api","request_tech_stacks"],"host":["devfolio","world"],"query":[],"variable":[]}},"response":[],"_postman_id":"39195cc8-bc9d-4fe7-93f7-fbdb6b17c1f0"}],"id":"0667c3d1-34b5-42f0-bfc6-a561236580d7","_postman_id":"0667c3d1-34b5-42f0-bfc6-a561236580d7","description":""},{"name":"Comment","item":[{"name":"댓글 쓰기(추가)","id":"79ac7896-b13e-403b-8709-87e9da214995","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyLCJlbWFpbCI6ImZiZ2t3bnNAZ21haWwuY29tIiwibmFtZSI6IuulmO2VmOykgCIsInR5cGUiOiJnb29nbGUiLCJpYXQiOjE2MjIxODM5NjYsImV4cCI6MTYyMjc4ODc2Nn0.nedoa3-7vNHtLZXdtkELlwNJm46PFkzza1CtizGhK6Q","description":"<p>인증 토큰이 필수적으로 필요합니다.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"contents\": \"댓글을 작성합니다.\",\n    \"projectId\": 131,\n    \"userId\": 2,\n    \"seq\": 1,\n    \"parent\": null\n}","options":{"raw":{"language":"json"}}},"url":"http://devfolio.world:3020/api/comment","urlObject":{"protocol":"http","port":"3020","path":["api","comment"],"host":["devfolio","world"],"query":[],"variable":[]}},"response":[],"_postman_id":"79ac7896-b13e-403b-8709-87e9da214995"},{"name":"특정 프로젝트의 댓글 리스트 가져오기","id":"9baefc39-088b-4301-92d7-612bebe99d6a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://devfolio.world:3020/api/comment/:project_id","urlObject":{"protocol":"http","port":"3020","path":["api","comment",":project_id"],"host":["devfolio","world"],"query":[],"variable":[{"type":"any","value":"26","key":"project_id"}]}},"response":[],"_postman_id":"9baefc39-088b-4301-92d7-612bebe99d6a"},{"name":"댓글 내용 수정","id":"8be3a1ea-882a-44a7-9bad-db4cae1f0c1a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyLCJlbWFpbCI6ImZiZ2t3bnNAZ21haWwuY29tIiwibmFtZSI6IuulmO2VmOykgCIsInR5cGUiOiJnb29nbGUiLCJpYXQiOjE2MjIxODM5NjYsImV4cCI6MTYyMjc4ODc2Nn0.nedoa3-7vNHtLZXdtkELlwNJm46PFkzza1CtizGhK6Q","description":"<p>인증 토큰이 필수적으로 필요합니다.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"commentId\": 80,\n    \"contents\": \"댓글 내용을 수정하고 수정합니다.\",\n    \"projectId\": 131,\n    \"userId\": 2\n}","options":{"raw":{"language":"json"}}},"url":"http://devfolio.world:3020/api/comment","urlObject":{"protocol":"http","port":"3020","path":["api","comment"],"host":["devfolio","world"],"query":[],"variable":[]}},"response":[],"_postman_id":"8be3a1ea-882a-44a7-9bad-db4cae1f0c1a"},{"name":"댓글 삭제","id":"ce337f9a-5321-447a-97a5-9826f7330c5c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Authorization","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoyLCJlbWFpbCI6ImZiZ2t3bnNAZ21haWwuY29tIiwibmFtZSI6IuulmO2VmOykgCIsInR5cGUiOiJnb29nbGUiLCJpYXQiOjE2MjIxODM5NjYsImV4cCI6MTYyMjc4ODc2Nn0.nedoa3-7vNHtLZXdtkELlwNJm46PFkzza1CtizGhK6Q","description":"<p>인증 토큰이 필수적으로 필요합니다.</p>\n","type":"text"}],"url":"http://devfolio.world:3020/api/comment/:comment_id","urlObject":{"protocol":"http","port":"3020","path":["api","comment",":comment_id"],"host":["devfolio","world"],"query":[],"variable":[{"type":"any","value":"80","key":"comment_id"}]}},"response":[],"_postman_id":"ce337f9a-5321-447a-97a5-9826f7330c5c"}],"id":"fd2a4064-fafc-42b4-82af-0362c2bf6118","_postman_id":"fd2a4064-fafc-42b4-82af-0362c2bf6118","description":""}]}