{"info":{"_postman_id":"c72e9f9d-9df8-413f-bb1a-81e41cbc7ce0","name":"[김규빈] CMS REST API - 맑은기술 신입 백엔드 채용 과제","description":"<html><head></head><body><h3 id=\"맑은기술-신입-백엔드-채용-과제-콘텐츠-관리-시스템cms의-rest-api-문서입니다\">맑은기술 신입 백엔드 채용 과제 콘텐츠 관리 시스템(CMS)의 REST API 문서입니다.</h3>\n<p>도메인</p>\n<p>• user : 회원가입<br>• auth : 로그인, 로그아웃<br>• content : 콘텐츠 CRUD</p>\n<p>모든 응답 형식은 다음과 같습니다.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">{\n    \"data\": {},\n    \"message\": \"회원가입이 완료되었습니다.\",\n    \"success\": true\n}\n\n</code></pre>\n<ul>\n<li><p>data : 실제 응답 데이터(회원 정보, 콘텐츠 내용 등)</p>\n</li>\n<li><p>message : 백엔드에서 전달할 메시지</p>\n</li>\n<li><p>success : 성공 여부</p>\n</li>\n</ul>\n<p>Http 상태 코드는 표준에 맞게 관리했습니다.</p>\n<ul>\n<li><p>200 : 성공</p>\n</li>\n<li><p>400 : 요청 값이 잘못됨, 제약조건 위반</p>\n</li>\n<li><p>401 : 인증 실패(로그인 실패)</p>\n</li>\n<li><p>403 : 권한 없음</p>\n</li>\n<li><p>404 : 요청한 데이터가 존재하지 않음</p>\n</li>\n<li><p>409 : 충돌(회원가입시 중복 아이디 입력시 발생)</p>\n</li>\n<li><p>500 : 그 외 서버 에러</p>\n</li>\n</ul>\n<p>회원가입, 로그인 외 기능은 모두 로그인이 필요하며 로그인이 안 된 경우 403 에러가 발생합니다.</p>\n<p>각 기능은 모두 예외처리도 되어있으며 오른쪽에 '회원가입 완료'와 같은 버튼을 누르면 예외 상황의 응답도 확인할 수 있습니다.</p>\n<img src=\"https://content.pstmn.io/a17b1c50-239c-403f-9cb8-c08c4bcfb2d7/aW1hZ2UucG5n\" alt=\"예시%20이미지\" width=\"111\" height=\"48\"></body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"52990603","collectionId":"c72e9f9d-9df8-413f-bb1a-81e41cbc7ce0","publishedId":"2sBXcLgHQT","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"0088d4"},"publishDate":"2026-03-08T07:33:11.000Z"},"item":[{"name":"user","item":[{"name":"회원가입","event":[{"listen":"test","script":{"id":"fb47ec9e-3ce2-44c0-be68-337c35db904f","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","});"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"a9976be4-3735-4a5a-ba3b-41a94137d58e","request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"dev_kimkyubeen\",\r\n    \"password\":\"qwer1234\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/user/register","description":"<p>일반 회원으로 회원가입</p>\n<ul>\n<li><p>400 : 제약조건 위반</p>\n</li>\n<li><p>409 : 중복 아이디</p>\n</li>\n</ul>\n<p>제약 조건</p>\n<ul>\n<li><p>username : 2~50자</p>\n</li>\n<li><p>password : 8~30자</p>\n</li>\n</ul>\n","urlObject":{"port":"8080","path":["user","register"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"933e4f9e-a256-41c3-97d5-c6365ec7ebf3","name":"회원가입 완료","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"dev_kimkyubeen\",\r\n    \"password\":\"qwer1234\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/user/register"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 05:48:35 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"createdDate\": \"2026-03-08T14:48:35.797248\",\n        \"role\": \"ROLE_USER\",\n        \"username\": \"dev_kimkyubeen\"\n    },\n    \"message\": \"회원가입이 완료되었습니다.\",\n    \"success\": true\n}"},{"id":"74ff9f79-8dde-4c79-8139-20966ebf1e99","name":"회원가입 실패 제약조건 위반","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"\",\r\n    \"password\":\"qwer1234\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/user/register"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 05:49:15 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"username: 아이디는 2~50자 사이여야 합니다.\",\n    \"success\": false\n}"},{"id":"ca97d85e-7d79-42b2-9014-911781a185cc","name":"회원가입 실패 아이디 중복","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\":\"dev_kim\",\r\n    \"password\":\"qwer1234\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/user/register"},"status":"Conflict","code":409,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 05:50:39 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"이미 존재하는 아이디입니다.\",\n    \"success\": false\n}"}],"_postman_id":"a9976be4-3735-4a5a-ba3b-41a94137d58e"}],"id":"e586e1ea-d9cf-4b08-a63e-30826543cbe2","_postman_id":"e586e1ea-d9cf-4b08-a63e-30826543cbe2","description":""},{"name":"auth","item":[{"name":"로그인","event":[{"listen":"test","script":{"id":"c66460bb-16b9-4938-93db-389ceee2359b","exec":["pm.test(\"Successful POST request\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200, 201]);","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"96c131d8-d53d-437c-a7d5-df1b420f2678","request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"username\": \"dev_kim\",\n    \"password\": \"qwer1234\"\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/auth/login","description":"<ul>\n<li><p>400 : 제약조건 위반</p>\n</li>\n<li><p>401 : 아이디 또는 비밀번호가 일치하지 않음</p>\n</li>\n</ul>\n<p>제약조건</p>\n<ul>\n<li>모든 입력값은 NonBlank</li>\n</ul>\n","urlObject":{"port":"8080","path":["auth","login"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"3c81d0dd-629a-4272-b175-14805af20e7b","name":"로그인 성공","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"username\": \"dev_kim\" ,\n    \"password\": \"qwer1234\"\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 05:51:54 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"role\": \"ROLE_USER\",\n        \"username\": \"dev_kim\"\n    },\n    \"message\": \"로그인에 성공했습니다.\",\n    \"success\": true\n}"},{"id":"4035e2ed-6b66-46f2-b016-9d34ca0d4845","name":"로그인 실패 제약조건 위반","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"username\": \"\" ,\n    \"password\": \"qwer1234\"\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/auth/login"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 05:52:48 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"username: 필수 입력 항목입니다.\",\n    \"success\": false\n}"},{"id":"fec831bf-0029-4f92-93e4-28b877b19be8","name":"로그인 실패 아이디 또는 비밀번호 불일치","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"username\": \"dev_kim\" ,\n    \"password\": \"qwer\"\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/auth/login"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 05:53:23 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"아이디 또는 비밀번호가 올바르지 않습니다.\",\n    \"success\": false\n}"}],"_postman_id":"96c131d8-d53d-437c-a7d5-df1b420f2678"},{"name":"로그아웃","id":"1cd33e02-2f0b-4540-970e-0bf8fba23955","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"localhost:8080/auth/logout","urlObject":{"port":"8080","path":["auth","logout"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"1ffb7337-e3f9-49be-b52f-f87a98f95a74","name":"로그아웃 성공","originalRequest":{"method":"POST","header":[],"url":"localhost:8080/auth/logout"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 05:57:26 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"로그아웃 되었습니다.\",\n    \"success\": true\n}"},{"id":"b9d73598-c2b5-43e4-9ece-45fba1d9e4c9","name":"로그아웃 실패 권한 없음","originalRequest":{"method":"POST","header":[],"url":"localhost:8080/auth/logout"},"status":"Forbidden","code":403,"_postman_previewlanguage":null,"header":[{"key":"Set-Cookie","value":"JSESSIONID=14D212534A89CA7C5A70CB849C211099; Path=/; HttpOnly"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json;charset=UTF-8"},{"key":"Content-Length","value":"71"},{"key":"Date","value":"Sun, 08 Mar 2026 05:57:43 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"인증에 실패했습니다.\",\n    \"success\": false\n}"}],"_postman_id":"1cd33e02-2f0b-4540-970e-0bf8fba23955"}],"id":"999894be-bb68-42d3-a638-ceee10c830c2","_postman_id":"999894be-bb68-42d3-a638-ceee10c830c2","description":""},{"name":"content","item":[{"name":"콘텐츠 상세 조회","id":"3e4716bf-c6c8-4ec4-b817-884e5002f36a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"localhost:8080/content/24","description":"<p>콘텐츠 1개의 내용을 상세 조회</p>\n<p>PathVariable 사용</p>\n<ul>\n<li>404 : 존재하지 않는 콘텐츠</li>\n</ul>\n","urlObject":{"port":"8080","path":["content","24"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"091268d1-c7a3-4666-93a1-4ec6466e4003","name":"콘텐츠 상세 조회 성공","originalRequest":{"method":"GET","header":[],"url":"localhost:8080/content/24"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 06:04:41 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"createdBy\": \"dev_kim\",\n        \"createdDate\": \"2026-03-07T20:34:49.965535\",\n        \"description\": \"수정된 내용입니다.\",\n        \"id\": 24,\n        \"lastModifiedBy\": \"dev_kim\",\n        \"lastModifiedDate\": \"2026-03-08T15:03:57.899779\",\n        \"title\": \"수정된 제목\",\n        \"viewCount\": 860\n    },\n    \"message\": \"콘텐츠 상세 조회 내용입니다.\",\n    \"success\": true\n}"},{"id":"7328d08a-5503-4aa5-ab8d-2467343fcb25","name":"콘텐츠 상세 조회 실패 존재하지 않는 콘텐츠","originalRequest":{"method":"GET","header":[],"url":"localhost:8080/content/35"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 06:04:59 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"콘텐츠를 찾을 수 없습니다.\",\n    \"success\": false\n}"}],"_postman_id":"3e4716bf-c6c8-4ec4-b817-884e5002f36a"},{"name":"콘텐츠 목록 조회","id":"58b8e4aa-a214-4835-bfb3-b1423d136785","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"localhost:8080/content?page=1&size=10","description":"<p>콘텐츠 목록을 페이징 처리를 통해 조회</p>\n<ul>\n<li><p>200 : 성공</p>\n</li>\n<li><p>400 : 제약조건 위반</p>\n</li>\n</ul>\n<p>제약조건</p>\n<ul>\n<li><p>page : 1 ~ 10000</p>\n</li>\n<li><p>size : 1 ~ 50</p>\n</li>\n</ul>\n","urlObject":{"port":"8080","path":["content"],"host":["localhost"],"query":[{"key":"page","value":"1"},{"key":"size","value":"10"}],"variable":[]}},"response":[{"id":"8aace99a-e834-4451-8246-7e854583f114","name":"콘텐츠 목록 조회 성공","originalRequest":{"method":"GET","header":[],"url":{"raw":"localhost:8080/content?page=1&size=10","host":["localhost"],"port":"8080","path":["content"],"query":[{"key":"page","value":"1"},{"key":"size","value":"10"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 06:02:46 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"content\": [\n            {\n                \"createdBy\": \"dev_kim\",\n                \"createdDate\": \"2026-03-08T14:59:45.656488\",\n                \"id\": 29,\n                \"title\": \"안녕하세요. 개발자 김규빈입니다.\",\n                \"viewCount\": 0\n            },\n            {\n                \"createdBy\": \"admin\",\n                \"createdDate\": \"2026-03-08T09:34:49.965535\",\n                \"id\": 28,\n                \"title\": \"Spring Boot 성능 튜닝\",\n                \"viewCount\": 1580\n            },\n            {\n                \"createdBy\": \"backend_kyubeen\",\n                \"createdDate\": \"2026-03-08T02:34:49.965535\",\n                \"id\": 26,\n                \"title\": \"API 응답 표준화\",\n                \"viewCount\": 970\n            },\n            {\n                \"createdBy\": \"admin\",\n                \"createdDate\": \"2026-03-07T22:34:49.965535\",\n                \"id\": 25,\n                \"title\": \"Spring Boot 스케줄링\",\n                \"viewCount\": 1100\n            },\n            {\n                \"createdBy\": \"dev_kim\",\n                \"createdDate\": \"2026-03-07T20:34:49.965535\",\n                \"id\": 24,\n                \"title\": \"JPA 벌크 연산 사용법\",\n                \"viewCount\": 860\n            },\n            {\n                \"createdBy\": \"backend_kyubeen\",\n                \"createdDate\": \"2026-03-07T18:34:49.965535\",\n                \"id\": 23,\n                \"title\": \"Spring Boot 환경 변수 관리\",\n                \"viewCount\": 920\n            },\n            {\n                \"createdBy\": \"admin\",\n                \"createdDate\": \"2026-03-07T14:34:49.965535\",\n                \"id\": 22,\n                \"title\": \"CI/CD 파이프라인 구축\",\n                \"viewCount\": 1480\n            },\n            {\n                \"createdBy\": \"dev_kim\",\n                \"createdDate\": \"2026-03-07T14:34:49.965535\",\n                \"id\": 21,\n                \"title\": \"Spring Boot 배포 전략\",\n                \"viewCount\": 1650\n            },\n            {\n                \"createdBy\": \"admin\",\n                \"createdDate\": \"2026-03-06T14:34:49.965535\",\n                \"id\": 20,\n                \"title\": \"Swagger API 문서화\",\n                \"viewCount\": 1870\n            },\n            {\n                \"createdBy\": \"backend_kyubeen\",\n                \"createdDate\": \"2026-03-06T14:34:49.965535\",\n                \"id\": 19,\n                \"title\": \"Spring Boot 파일 업로드\",\n                \"viewCount\": 980\n            }\n        ],\n        \"first\": true,\n        \"last\": false,\n        \"pageNumber\": 1,\n        \"pageSize\": 10,\n        \"totalElements\": 28,\n        \"totalPages\": 3\n    },\n    \"message\": \"콘텐츠 목록 조회 내용입니다.\",\n    \"success\": true\n}"},{"id":"3b6e2356-1719-424f-a0c9-55833b1f1e89","name":"콘텐츠 목록 조회 실패 제약조건 위반","originalRequest":{"method":"GET","header":[],"url":{"raw":"localhost:8080/content?page=100000000&size=10","host":["localhost"],"port":"8080","path":["content"],"query":[{"key":"page","value":"100000000"},{"key":"size","value":"10"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 06:03:01 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"page: 10000 이하여야 합니다\",\n    \"success\": false\n}"}],"_postman_id":"58b8e4aa-a214-4835-bfb3-b1423d136785"},{"name":"콘텐츠 추가","id":"4973e293-cb43-4f6a-a0e6-58e140bc85d4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\":\"안녕하세요. 개발자 김규빈입니다.\",\r\n    \"description\":\"잘 부탁드립니다.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/content","description":"<ul>\n<li><p>200 : 성공</p>\n</li>\n<li><p>400 : 제약조건 위반</p>\n</li>\n</ul>\n<p>제약조건</p>\n<ul>\n<li><p>title : 100자 미만, NotBlank</p>\n</li>\n<li><p>description : NotBlank</p>\n</li>\n</ul>\n","urlObject":{"port":"8080","path":["content"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"31884a6e-8977-417f-b612-9998e2844a79","name":"콘텐츠 추가 성공","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\":\"안녕하세요. 개발자 김규빈입니다.\",\r\n    \"description\":\"잘 부탁드립니다.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/content"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 05:59:45 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"createDate\": \"2026-03-08T14:59:45.6564883\",\n        \"id\": 29\n    },\n    \"message\": \"콘텐츠를 추가했습니다.\",\n    \"success\": true\n}"},{"id":"425797cd-b022-4b6d-9036-16611d7cac14","name":"콘텐츠 추가 실패 제약조건 위반","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\":\"\",\r\n    \"description\":\"잘 부탁드립니다.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/content"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 06:00:02 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"title: 필수 입력 항목입니다.\",\n    \"success\": false\n}"}],"_postman_id":"4973e293-cb43-4f6a-a0e6-58e140bc85d4"},{"name":"콘텐츠 수정","id":"0e76631b-9fe1-44bb-84e6-59eaab3c1cdd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\":\"수정된 제목\",\r\n    \"description\":\"수정된 내용입니다.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/content/24","description":"<p>PathVariable 사용</p>\n<ul>\n<li><p>200 : 성공</p>\n</li>\n<li><p>400 : 제약조건 위반</p>\n</li>\n<li><p>403 : 본인이 작성하지 않은 콘텐츠</p>\n</li>\n<li><p>404 : 존재하지 않는 콘텐츠</p>\n</li>\n</ul>\n<p>제약조건</p>\n<ul>\n<li><p>title : 100자 미만, NotBlank</p>\n</li>\n<li><p>description : NotBlank</p>\n</li>\n</ul>\n","urlObject":{"port":"8080","path":["content","24"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"4c8b71d6-4dca-4836-b9c0-31eb50cc3b7f","name":"콘텐츠 수정 성공","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\":\"수정된 제목\",\r\n    \"description\":\"수정된 내용입니다.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/content/24"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 06:03:57 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"createdBy\": \"dev_kim\",\n        \"createdDate\": \"2026-03-07T20:34:49.965535\",\n        \"description\": \"수정된 내용입니다.\",\n        \"id\": 24,\n        \"lastModifiedBy\": \"dev_kim\",\n        \"lastModifiedDate\": \"2026-03-08T15:03:57.8997785\",\n        \"title\": \"수정된 제목\",\n        \"viewCount\": 860\n    },\n    \"message\": \"콘텐츠 수정이 완료되었습니다.\",\n    \"success\": true\n}"},{"id":"0a4151c9-402b-4583-af24-a216e6e64cd9","name":"콘텐츠 수정 실패 존재하지 않는 콘텐츠","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\":\"수정된 제목\",\r\n    \"description\":\"수정된 내용입니다.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/content/35"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 06:04:16 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"콘텐츠를 찾을 수 없습니다.\",\n    \"success\": false\n}"},{"id":"f6552e9d-017f-476d-b609-5c13a5a9963f","name":"콘텐츠 수정 실패 제약조건 위반","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\":\"\",\r\n    \"description\":\"수정된 내용입니다.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/content/24"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 07:14:14 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"title: 필수 입력 항목입니다.\",\n    \"success\": false\n}"},{"id":"7c9ffa2e-d63f-4613-be56-ac7f6552717c","name":"콘텐츠 수정 실패 본인이 작성하지 않은 콘텐츠","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"title\":\"수정된 제목\",\r\n    \"description\":\"수정된 내용입니다.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8080/content/25"},"status":"Forbidden","code":403,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 07:20:15 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"권한이 없습니다.\",\n    \"success\": false\n}"}],"_postman_id":"0e76631b-9fe1-44bb-84e6-59eaab3c1cdd"},{"name":"콘텐츠 삭제","id":"7ba421e0-4191-4c88-9f04-149d081b1fbc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"DELETE","header":[],"url":"localhost:8080/content/27","description":"<p>PathVariable 사용</p>\n<ul>\n<li><p>200 : 성공</p>\n</li>\n<li><p>403 : 본인이 작성하지 않은 콘텐츠</p>\n</li>\n<li><p>404 : 존재하지 않는 콘텐츠</p>\n</li>\n</ul>\n","urlObject":{"port":"8080","path":["content","27"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"c5054a7f-bbac-45bf-ad1e-cc2bad088427","name":"콘텐츠 삭제 성공","originalRequest":{"method":"DELETE","header":[],"url":"localhost:8080/content/27"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 06:01:41 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"콘텐츠를 삭제했습니다.\",\n    \"success\": true\n}"},{"id":"45c2d097-cc7b-4e2c-940a-082c0908a2de","name":"콘텐츠 삭제 실패 존재하지 않는 콘텐츠","originalRequest":{"method":"DELETE","header":[],"url":"localhost:8080/content/35"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 06:02:02 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"콘텐츠를 찾을 수 없습니다.\",\n    \"success\": false\n}"},{"id":"7fd015dd-b5f8-4de2-a1cb-588556597710","name":"콘텐츠 삭제 실패 본인이 작성하지 않은 콘텐츠","originalRequest":{"method":"DELETE","header":[],"url":"localhost:8080/content/25"},"status":"Forbidden","code":403,"_postman_previewlanguage":null,"header":[{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 08 Mar 2026 07:21:10 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null,\n    \"message\": \"권한이 없습니다.\",\n    \"success\": false\n}"}],"_postman_id":"7ba421e0-4191-4c88-9f04-149d081b1fbc"}],"id":"e857c5da-26ad-48ee-ac97-88c00d045790","_postman_id":"e857c5da-26ad-48ee-ac97-88c00d045790","description":""}]}