{"componentChunkName":"component---src-templates-blog-post-js","path":"/study/Spring-Boot를-활용한-Rest-API-개발/","result":{"data":{"site":{"siteMetadata":{"title":"Bottlehs Tech Blog","description":"웹·앱·AI 개발자 전병훈(bottlehs)의 기술 블로그. AI·LLM, JavaScript·Vue, Spring Boot, 알고리즘, 블록체인 실무 가이드를 다룹니다","siteUrl":"https://www.bottlehs.dev","author":{"name":"Jeon Byung Hun","summary":"개발을 즐기는 bottlehs - Engineer, MS, AI, FE, BE, OS, IOT, Blockchain, 설계, 테스트"},"social":{"github":"bottlehs","codepen":"bottlehs"}}},"markdownRemark":{"id":"e78a9f5c-26b5-51cb-ae0b-96008543f110","excerpt":"목표 Spring Boot 를 활용하여 Rest API 를 개발 할 수 있다. Swagger UI 를 활용하여 동적 API 명세서를 제공 할 수 있다. 자바 ORM 기술을 사용 할 수 있다. Spring Boot & MariaDB, & JPA 를 활용한 Rest API…","html":"<h2 id=\"목표\" style=\"position:relative;\"><a href=\"#%EB%AA%A9%ED%91%9C\" aria-label=\"목표 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>목표</h2>\n<ul>\n<li>Spring Boot 를 활용하여 Rest API 를 개발 할 수 있다.</li>\n<li>Swagger UI 를 활용하여 동적 API 명세서를 제공 할 수 있다.</li>\n<li>자바 ORM 기술을 사용 할 수 있다.</li>\n<li>Spring Boot &#x26; MariaDB, &#x26; JPA 를 활용한 Rest API 개발 할 수 있다.</li>\n</ul>\n<h2 id=\"커리큘럼\" style=\"position:relative;\"><a href=\"#%EC%BB%A4%EB%A6%AC%ED%81%98%EB%9F%BC\" aria-label=\"커리큘럼 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>커리큘럼</h2>\n<h3 id=\"1주차--스프링-부트-프레임워크-구조\" style=\"position:relative;\"><a href=\"#1%EC%A3%BC%EC%B0%A8--%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-%EA%B5%AC%EC%A1%B0\" aria-label=\"1주차  스프링 부트 프레임워크 구조 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1주차 : 스프링 부트 프레임워크 구조</h3>\n<ul>\n<li>\n<p>스프링 부트 프로젝트 구조</p>\n<ul>\n<li><a href=\"/springboot/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-%EA%B5%AC%EC%A1%B0/\" title=\"스프링 부트 구조\">스프링 부트 구조</a></li>\n</ul>\n</li>\n<li>\n<p>스프링 프레임워크 기본 개념</p>\n<ul>\n<li><a href=\"/springboot/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-%EC%86%8C%EA%B0%9C/\" title=\"스프링 부트 소개\">스프링 부트 소개</a></li>\n</ul>\n</li>\n<li>\n<p>Gradle, Maven 기본 개념</p>\n<ul>\n<li><a href=\"/springboot/gradle-maven-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90/\" title=\"Gradle, Maven 기본 개념과 Gradle Multi Project\">Gradle, Maven 기본 개념과 Gradle Multi Project</a></li>\n</ul>\n</li>\n<li>\n<p>HTTP, HTTP2 기본 개념</p>\n<ul>\n<li><a href=\"/springboot/http-1-http2-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90/\" title=\"HTTP, HTTP2 기본 개념\">HTTP, HTTP2 기본 개념</a></li>\n</ul>\n</li>\n<li>\n<p>Custom Annotation(커스텀 어노테이션), GET 요청 ~ JSON 응답</p>\n<ul>\n<li><a href=\"/springboot/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-custom-annotation/\" title=\"스프링 부트 Custom Annotation(커스텀 어노테이션), GET 요청 ~ JSON 응답\">스프링 부트 Custom Annotation(커스텀 어노테이션), GET 요청 ~ JSON 응답</a></li>\n</ul>\n</li>\n</ul>\n<h3 id=\"2주차--스프링-부트-프레임워크-api-설계-및-exception-처리\" style=\"position:relative;\"><a href=\"#2%EC%A3%BC%EC%B0%A8--%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-api-%EC%84%A4%EA%B3%84-%EB%B0%8F-exception-%EC%B2%98%EB%A6%AC\" aria-label=\"2주차  스프링 부트 프레임워크 api 설계 및 exception 처리 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2주차 : 스프링 부트 프레임워크 API 설계 및 Exception 처리</h3>\n<ul>\n<li>MariaDB 연동</li>\n<li>Swagger API 문서 자동화</li>\n<li>API 인터페이스 및 결과 데이터 구조 설계</li>\n<li>ControllerAdvice를 활용한 Exception 처리</li>\n<li>MessageSource를 활용한 Exception 처리</li>\n<li>SpringSecurity를 활용한 인증 및 권한부여</li>\n<li>Spring Starter Unit Test</li>\n</ul>\n<h3 id=\"3주차--jpa-를-활용한-게시판-개발\" style=\"position:relative;\"><a href=\"#3%EC%A3%BC%EC%B0%A8--jpa-%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EA%B0%9C%EB%B0%9C\" aria-label=\"3주차  jpa 를 활용한 게시판 개발 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3주차 : JPA 를 활용한 게시판 개발</h3>\n<ul>\n<li>JPA 를 활용한 게시판 제작</li>\n</ul>","tableOfContents":"<ul>\n<li><a href=\"/study/Spring-Boot%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-Rest-API-%EA%B0%9C%EB%B0%9C/#%EB%AA%A9%ED%91%9C\">목표</a></li>\n<li>\n<p><a href=\"/study/Spring-Boot%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-Rest-API-%EA%B0%9C%EB%B0%9C/#%EC%BB%A4%EB%A6%AC%ED%81%98%EB%9F%BC\">커리큘럼</a></p>\n<ul>\n<li><a href=\"/study/Spring-Boot%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-Rest-API-%EA%B0%9C%EB%B0%9C/#1%EC%A3%BC%EC%B0%A8--%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-%EA%B5%AC%EC%A1%B0\">1주차 : 스프링 부트 프레임워크 구조</a></li>\n<li><a href=\"/study/Spring-Boot%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-Rest-API-%EA%B0%9C%EB%B0%9C/#2%EC%A3%BC%EC%B0%A8--%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-api-%EC%84%A4%EA%B3%84-%EB%B0%8F-exception-%EC%B2%98%EB%A6%AC\">2주차 : 스프링 부트 프레임워크 API 설계 및 Exception 처리</a></li>\n<li><a href=\"/study/Spring-Boot%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-Rest-API-%EA%B0%9C%EB%B0%9C/#3%EC%A3%BC%EC%B0%A8--jpa-%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EA%B2%8C%EC%8B%9C%ED%8C%90-%EA%B0%9C%EB%B0%9C\">3주차 : JPA 를 활용한 게시판 개발</a></li>\n</ul>\n</li>\n</ul>","wordCount":{"words":149},"fields":{"slug":"/study/Spring-Boot를-활용한-Rest-API-개발/","image":null,"faq":[]},"frontmatter":{"title":"Spring Boot를 활용한 Rest API 개발","date":"2021년 3월 17일","dateISO":"2021-03-17T20:29:29.537Z","updatedISO":null,"category":"study","description":"스프링 부트를 활용하여 REST API를 개발하고 Swagger UI 로 API 문서화 자동화에 대해 학습 하고, Spring Boot & MariaDB, & JPA 를 활용해 REST API 를 개발 합니다.","tags":["스프링","스프링부트","Spring","SpringBoot","Java","프레임워크","REST API"]}}},"pageContext":{"slug":"/study/Spring-Boot를-활용한-Rest-API-개발/","previous":{"fields":{"slug":"/study/Vue-JS를-활용한-프론트엔드-개발/"},"frontmatter":{"title":"Vue JS를 활용한 프론트엔드 개발","tags":["Vue.js","JamStack","Netlify","Nuxt.js","JavaScript"]}},"next":{"fields":{"slug":"/springboot/http-1-http2-기본-개념/"},"frontmatter":{"title":"HTTP, HTTP2 기본 개념","tags":["HTTP","HTTP/1","HTTP/2"]}}}},"staticQueryHashes":["213619243","3262363727"]}