Thumbnail
지식공유자의 깜짝할인 중
BEST
개발 · 프로그래밍 백엔드

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발 대시보드

(4.8)
387개의 수강평 ∙  4,260명의 수강생

20%

23,760원

29,700원
지식공유자: Dowon Lee
총 52개 수업 (6시간 57분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

초급자를 위해 준비한
[웹 개발, 백엔드] 강의입니다.

이 강의는 Spring Boot를 이용해서 RESTful Web Services 애플리케이션을 개발하는 과정에 대해 학습하는 강의으로써, REST API 설계에 필요한 기본 지식에 대해 학습할 수 있습니다.

✍️
이런 걸
배워요!
Spring Boot
REST API
RESTful services
JPA
OAS 3.0 (Swagger Specification)

스프링 부트 RESTful API 입문의 바이블!

이도원 / Dowon Lee - Spring Boot (스프링부트) RESTful Web API

본 강의는 Spring Boot와 Spring Cloud를 이용한 Microservice를 개발하는 과정에 있어서 
RESTful 서비스를 설계하고, Spring Cloud API를 이용한 구현 및 운영에 관해 학습할 수 있도록 구성한 강의입니다.


📝 강의 소개

# 마이크로서비스(Microservices)란 무엇인가요?

"Microservices are a software development technique —a variant of the service-oriented architecture (SOA) structural style— that arranges an application as a collection of loosely coupled services. In a microservices architecture, services are fine-grained and the protocols are lightweight." - wikipedia

2011년 베니스에서 소프트웨어 아키텍처 워크숍이 개최된 이후 마이크로서비스라는 용어를 사용하기 시작했습니다. 애플리케이션 구축에 전통적인 모놀리스 개발 방식 대신 마이크로서비스 개발 방식을 도입함으로써, 개발뿐만 아니라 유지/보수에 있어서도 비용 절감 및 효율성 증가가 이루어졌으며 고객의 요구사항 또한 빠르게 처리할 수 있게 되었습니다. 이러한 마이크로 서비스의 인기와 더불어서 RESTful이라는 개발 방식도 많이 사용되고 있습니다. 

Microservice Architecture란 기존 하나의 큰 단위로 개발/운영되던 애플리케이션을 수십, 수백, 많게는 수천 개의 작은 서비스 단위로 쪼개서 애플리케이션을 개발/운영하는 방식을 말합니다. 이러한 Microservice를 개발하기 위해서는 각 서비스끼리 독립적으로 개발될 수 있어야 하며, 각 서비스에 최적화된 개발 언어와 데이터베이스를 선택할 수도 있는 Polyglot Programming(폴리글랏 프로그래밍)의 요건을 갖추어야 합니다. 

이렇게 이기종(異機種)으로 개발된 애플리케이션 간에 데이터 통신을 위해서 표준화된 HTTP 프로토콜을 사용하는 RESTful 서비스를 널리 사용하고 있습니다.

Spring Boot는 독립 운영 가능한 Spring 기반 애플리케이션을 쉽게 개발할 수 있도록 지원해주는 개발 도구이자 Spring Project입니다. Spring Boot를 사용하면 바로 실행 가능한 독립형 Spring 애플리케이션을 쉽게 작성할 수 있으며, Spring framework와 기타 Third-party 라이브러리에 대한 설정 작업을 최소화 할 수 있으며, 비즈니스 로직에 더 많은 시간을 투자할 수 있습니다. 또한 Spring Boot의 Starter 컴포넌트들을 이용하면, 상용화에 필요한 통계, 상태 체크, 외부 설정 등에 관한 작업도 쉽게 구성할 수 있습니다. 

우리의 최종 목표는 Spring BootSpring Cloud를 이용해서
마이크로서비스 아키텍처로 설계된 애플리케이션을
설계하고, 개발하는 것입니다.


✏️ 수업 과정

💡 본 과정을 통해 Spring Boot와 Spring Cloud를 이용하여 Microservice Architecure로 웹 서비스를 설계하고, 구현, 운영 관한 전반적인 과정을 학습하실 수 있습니다. (로드맵 보기)

첫번째 과정 (현재 강의)

REST API를 개발하기 위해 Spring Boot로 프로젝트를 생성하는 단계부터, REST API를 설계하고 애플리케이션을 구현하는 과정에 대해 학습합니다.

두번째 과정 (이어지는 강의)

Spring Boot와 Spring Cloud를 이용하여 Microservice Architecture를 설계, 구축하는 방법에 대해 학습합니다.

📢 수강 전 확인해주세요

  • 강의에 사용된 개발 툴 및 라이브러리는 다음과 같습니다. 
    • Java 17 + IntelliJ IDEA + Postman 
    • Spring Boot 3.1.5 (Spring Boot Security, Actuator, Starter, Spring Data JPA 등)
    • OpenAPI Specification 3.0  
    • Swagger UI 5.2.0
    • H2 2.1.214
  • 강의에 사용된 코드는 Github에서 확인해 보실 수 있습니다.

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
Spring Boot를 이용해서 웹 애플리케이션을 개발하려하는 분들
REST API 애플리케이션을 개발하려는 분들
마이크로서비스를 개발하려는 분들
📚
선수 지식,
필요할까요?
Java
Web Application
Spring framework에 대한 기본 지식

안녕하세요
Dowon Lee 입니다.
Dowon Lee의 썸네일

저는 IT 엔지니어입니다. 언젠가 직업란에 "회사원?", "개발자?", "강사?" 어떤 단어를 선택해야 할 지 고민이 되었던 때가 있었습니다. 그러다가, IT 엔지니어라는 표현이 제가 잘 어울리는 직업명이라는 생각이 들어 지금까지도 직업란에는 "IT 엔지니어"라고 적고 있습니다.

직업이라는 것은 자신의 일을 나타내는 것이고, 일이라는 것은 재미있고, 도움이 되는 일이면 좋겠다는 생각을 가지고 있습니다. 누구나 다 원하는대로 일을 하며 살수는 없지만, 저는 제가 하는 있는 이 일을 좋아하는 있고, 잘하고 싶어하는 사람입니다. 개발자로써, 강사로써, 컨설턴트로써의 역할을 해 오면서, 매번 새롭게 출시되고 변화하는 IT 신기술을 따라가기에 급급하지만, 그래도, 남들보다 조금이라도 먼저 접하고, 전파하고, 사용하고 싶은 사람 중 한명입니다. 

최근 관심을 가지고 있는 분야는 온라인 교육 컨설팅입니다. 그리고 관심있는 기술은 Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes 등입니다. 이러한 기술은 실제로 강의도 하고 있고 업무에 적용해서 사용도 하고 있습니다. 하지만, 워낙 방대한 주제이다 보니, 아직까지도 계속 공부하고 있습니다.

머리속에 가지고 있는 것은 진정한 지식이 아니라고 합니다. 저는 제가 가진 지식과 경험을 다양한 방벙을 통해 공유하려 합니다. 그리고, 새로운 분야, 새로운 기술에 계속 도전하고 있는 IT 엔지니어가 될 것입니다.  

 

 

  • ) 엔제이원컴퍼니 대표 
  • ) 동국대학교 국제정보대학원 정보보호학과 대우교수
  • ) JP Mogan Chase AMJ Tech consultant (일본)
  • ) 삼성 SDS CMS 사업본부 책임 엔지니어

 

 

커리큘럼 총 52 개 ˙ 6시간 57분의 수업
이 강의는 영상, 수업 노트가 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. Web Service & Web Application
섹션 2. User Service API 구현
User 도메인 클래스 생성 미리보기 12:42
사용자 목록 조회를 위한 API 구현 - HTTP GET method 09:54
사용자 등록을 위한 API 구현 - HTTP POST method 11:25
HTTP Status Code 제어 07:22
HTTP Status Code 제어를 위한 Exception Handling 09:16
Spring AOP를 이용한 Exception Handling 11:33
사용자 삭제를 위한 API 구현 - HTTP DELETE method 09:35
섹션 3. RESTful Service 기능 확장
Section 3 수업 소개 미리보기 02:41 유효성 체크를 위한 Validation API 사용 미리보기 13:14
다국어 처리를 위한 Internationalization 구현 방법 18:58
Response 데이터 형식 변환 - XML format 03:46
Response 데이터 제어를 위한 Filtering 05:47
프로그래밍으로 제어하는 Filtering - 개별 사용자 조회 10:16
프로그래밍으로 제어하는 Filtering - 전체 사용자 조회 05:31
Version 관리 - URI를 이용한 버전관리 10:04
Version 관리 - Paramter와 Header를 이용한 버전관리 13:08
섹션 4. Spring Boot API 사용
Section 4 수업 소개 미리보기 01:21 Level3 단계의 REST API 구현을 위한 HATEOAS 적용 미리보기 08:54
Swagger Documentation 구현 - Spring Boot 2.7 사용 ① 03:56
Swagger Documentation 구현 - Spring Boot 2.7 사용 ② 13:37
Swagger Documentation 구현 - Spring Boot 3.1 사용 ① 11:00
Swagger Documentation 구현 - Spring Boot 3.1 사용 ② 12:53
Spring Boot Actuator를 이용한 모니터링 및 Metrics 수집 04:49
HAL Explorer를 이용한 API 테스트 05:16
Spring Security를 이용한 인증 처리 04:22
API 사용을 위한 사용자 인증 처리 구현 10:15
섹션 5. Java Persistence API 사용
Section 5 수업 소개 미리보기 02:19 Java Persistence API의 개요 미리보기 05:06
JPA 사용을 위한 Dependency 추가와 Entity 설정 13:16
Spring Data JPA를 이용한 초기 데이터 생성 07:40
JPA Service 구현을 위한 Controller, Repository 생성 10:32
JPA를 이용한 개별 사용자 상세 조회 - HTTP Get method 05:45
JPA를 이용한 사용자 추가와 삭제 - HTTP POST/DELETE method 10:42
게시물 관리를 위한 Post Entity 추가와 초기 데이터 생성 11:57
게시물 조회를 위한 Post Entity와 User Entity와의 관계 설정 05:22
JPA를 이용한 새 게시물 추가 - HTTP POST Method 09:33
섹션 6. RESTful API 설계 가이드
Section 6 수업 소개 미리보기 01:26 Richardson Maturity Model 소개 미리보기 05:59
RESTful API 설계 시 고려해야 할 사항 04:47
강의를 마치며 02:09
강의 게시일 : 2020년 04월 01일 (마지막 업데이트일 : 2023년 11월 27일)
수강평 총 387개
수강생분들이 직접 작성하신 수강평입니다.
4.8
387개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
OMG thumbnail
5
인강임에도 시간당 1만원이 넘어가는 인프런 내의 강의들이 수두룩하고 부담도 많이 되는 가격이 많은데 그러한 강의들에 비해 상당히 저렴한 가격에 퀄리티 또한 비싼 강의들과 비교하여도 부족함이 전혀 없는 강의라고 생각합니다. 다음 강의도 기대하겠습니다! 좋은 강의 감사해요 :)
2020-04-21
김태윤 thumbnail
3
내용 : 상 준비 : 상 버벅거림 아예없을정도로 준비많이하시는듯 아주좋은강의입니다. 최대단점 : 목소리도 좋으신분이 녹음을 어떻게 햇는지 소리가 너무너무너무너무너무작습니다. 정말 작아서 스트레스받을정도에요 부디 다음강의부터는 신경써주시길 바랍니다. ---완강후--- 정말정말정말 잘들었습니다. 다른강의들랑 비교되는 강의력 가지고 계셔요. 두번빠르게 돌리고 깃에 정리했습니다. 나도모르는새에 많은것을 배웠네요 연속된 강의가 없기에 다른 강의를 들으러 가보겠습니다. 추후 강의 오픈하면 또 구매해서 듣도록 하겠습니다 다른강의들으로가는데 DAWON 강사님과 비교되서 걱정이네요.ㅎㅎ 무튼 잘듣고갑니다. ps.소리는 볼륨30에서도 충분히 들리도록 설정해주세요! 강의를 위해 소리를 100으로 해놓고 듣다가 다른 알람등이 울리면 귀가터집니다ㅜㅜ.
2020-05-12
지식공유자 Dowon Lee
안녕하세요, 이도원입니다. 강의 녹화 후, 인프런 담당 매니저와 상의했던 부분인데, 윈도우, 맥환경에 테스트 시 중간 이상 볼륨일 경우 수업에 지정이 없었기에, 그대로 강의를 공개했었습니다. 불편을 드려 죄송하며, 추후에 강의 공개할 때는 신경쓰도록 하겠습니다. 감사합니다.
2020-05-12
Ppojin thumbnail
5
잘들었습니다. 지금까지 스프링 부트에 대해서 잘 모르고 있었는데, 이렇게 많은 기능들이 있고 그 기능들을 한번씩 써보면서 이제 스프링 부트가 뭔지 어떻게 써야 하는지에 대해서 조금은 알게된것 같습니다.
2020-04-11
kang thumbnail
5
Rest api기본입문으로 아주 좋네요.감사합니다. 딱 원하던 강의 였습니다. SpringBoot2.2이상일때 Swagger가 추가된경우 HATEOS사용에러발생합니다. 저처럼 삽질하는 사람이 있을까봐 ... NoUniqueBeanDefinitionException발생 해결:Swagger설정파일클래스에 이하추가. @Primary @Bean public LinkDiscoverers discoverers() { List<LinkDiscoverer> plugins = new ArrayList<>(); plugins.add(new CollectionJsonLinkDiscoverer()); return new LinkDiscoverers(SimplePluginRegistry.create(plugins)); }
2020-05-10
Olive thumbnail
5
완강했습니다. 스프링 기초적인 지식만 있다면 부트 REST API 입문 강의로 너무 좋은 것 같습니다!! 후속 강좌 나오면 꼭 보러 오겠습니다
2020-04-15
연관 로드맵
이 강의가 포함된 잘 짜여진 로드맵을 따라 학습해 보세요!