스프링 기반 REST API 개발

스프링 기반 REST API 개발

(19개의 수강평)

608명의 수강생

88,000원

백기선
평생
활용
수료증
42개 수업, 총 8시간 0분
Wishlist

스프링 기반 REST API 개발

이 강좌에서는 다양한 스프링 기술을 사용하여 Self-Descriptive Message와 HATEOAS(Hypermedia as the engine of application state)를 만족하는 REST API를 개발합니다.

2017년 네이버가 주관한 Deview라는 개발자 컨퍼런스에서 이응준님께서 그런 REST API로 괜찮은가라는 발표를 했습니다. 발표의 핵심은 이러합니다. 현재 REST API로 불리는 대부분의 API가 실제로는 로이 필딩이 정의한 REST를 따르고 있지 않으며, 그중에서도 특히 Self-Descriptive Message와 HATEOAS가 지켜지지 않음을 지적했고, 그에 대한 대안을 제시했습니다.

이번 강좌는 해당 발표에 영감을 받아 만들었으며, KSUG에서 동일한 이름으로 2018년 11월 세미나를 진행한 경험이 있습니다. 4시간이라는 짧지 않은 발표였지만, 준비한 내용에 비해 시간이 부족할 수 있었기 때문에 진행을 빨리하느라 충분히 설명하지 못하고 넘어갔던 부분이 있었습니다. 모자란 부분을 보충하고, 또 해결하려는 문제에 대한 여러 선택지를 제공하는 것이 좋을 것 같아 이 강좌를 만들었습니다. 그리고 코딩하는 중에 제가 주로 사용하는 인텔리J 단축키도 설명합니다.

이 강좌에서는 다음의 다양한 스프링 기술을 사용하여 REST API를 개발합니다.
* 스프링 프레임워크
* 스프링 부트
* 스프링 데이터 JPA
* 스프링 HATEOAS
* 스프링 REST Docs
* 스프링 시큐리티 OAuth2
또한 개발은 테스트 주도 개발(TDD)로 진행하기 때문에 평소 테스트 또는 TDD에 관심 있는 개발자에게도 도움이 될 것으로 기대합니다.

 학습 목표

  • Self-Describtive Message와 HATEOAS를 만족하는 REST API를 이해합니다.
  • 다양한 스프링 기술을 활용하여 REST API를 개발할 수 있습니다.
  • 스프링 HATEOAS와 스프링 REST Docs 프로젝트를 활용할 수 있습니다.
  • 테스트 주도 개발(TDD)에 익숙해집니다.

 도움이 되는 분들

  • 다양한 스프링 기술을 활용하는 방법을 학습하고 싶은 개발자 또는 학생
  • REST API를 개발하는 방법을 학습하고 싶은 개발자 또는 학생
  • TDD에 익숙해지고 싶은 개발자 또는 학생

지식공유자 소개

백기선
현재 마이크로소프트에서 개발자로 재직 중입니다. 이전에 아마존과 네이버에서 일했습니다. 스프링 프레임워크와 하이버네이트(JPA)를 사용해서 개발하는 것을 좋아합니다. 온라인에서 강좌를 만들거나 유튜브에 코딩 관련 동영상을 올리며 학습하고 또 공유하고 있습니다.

지식공유자 소개

백기선

교육과정

0. 소개
강좌 소개
05 : 00
강사 소개
01 : 00
강의자료
1. REST API 및 프로젝트 소개
REST API
20 : 00
Event REST API
06 : 00
Postman & Restlet
13 : 00
Project 만들기
11 : 00
이벤트 도메인 구현
14 : 00
이벤트 비즈니스 로직
05 : 00
2. 이벤트 생성 API 개발
이벤트 API 테스트 클래스 생성
09 : 00
201 응답 받기
12 : 00
이벤트 Repository
10 : 00
입력값 제한하기
17 : 00
입력값 이외에 에러 발생
07 : 00
Bad Request 처리
21 : 00
Bad Request 응답
15 : 00
비즈니스 로직 적용
10 : 00
매개변수를 이용한 테스트
10 : 00
3. HATEOAS와 Self-Describtive Message 적용
스프링 HATEOAS 소개
08 : 00
스프링 HATEOAS 적용
16 : 00
스프링 REST Docs 소개
11 : 00
스프링 REST Docs 적용
09 : 00
스프링 REST Docs 각종 문서 조각 생성하기
19 : 00
스프링 REST Docs 문서 빌드
15 : 00
테스트용 DB와 설정 분리하기
14 : 00
API 인덱스 만들기
12 : 00
4. 이벤트 조회 및 수정 REST API 개발
이벤트 목록 조회 API 구현
18 : 00
이벤트 조회 API 구현
10 : 00
이벤트 수정 API 구현
19 : 00
테스트 코드 리팩토링
04 : 00
5. REST API 보안 적용
Account 도메인 추가
06 : 00
스프링 시큐리티 적용
18 : 00
예외 테스트
06 : 00
스프링 시큐리티 기본 설정
14 : 00
스프링 시큐리티 폼 인증 설정
09 : 00
스프링 시큐리티 OAuth2 인증 서버 설정
18 : 00
리소스 서버 설정
19 : 00
문자열을 외부 설정으로 빼내기
14 : 00
이벤트 API 점검
06 : 00
현재 사용자 조회
22 : 00
출력값 제한하기
07 : 00
깨진 테스트 살펴보기

수강 후기

4.5
19개의 수강평
Dong gyoo Park 12일 전
좋은 강좌 감사합니다. Spring api 개발해야하는데 큰 도움이 되었습니다.
Chang-soo Kim 1달 전
큰 도움이 되었씁니다.
차정현 1달 전
쪼금씩 쪼금씩 드디어 종강 일하면서 듣기 힘들었지만 드디어 종강 REST... 편한게 쓰라고 알고있어던걸 피나게 써야한다는걸 알게되었습니다 더불어 테스트의 중요성 꼼꼼하게 새겨 갑니다 감사합니다
홍성길 1달 전
책보다 동강 15년차 개발자입니다. 이번에 API 서버를 스프링부트로 개발해야 할 일이 생겼어요. 평소 그랬던 것처럼 스프링부트와 스프링시큐리티, OAuth 쿡북을 잔뜩 사서 책상에 쌓아 놓고 공부를 했습니다. 실무에서는 어떻게 쓰고 있는지 모르니 이게 맞는건지 아닌건지 책 내용을 어떻게 응용해야 하는지 감을 못잡고 있었습니다. 그렇게 방황하다가 백기선님의 인프런 강좌를 구매했습니다. 평이 좋아 잠자기 전에 가볍게 들어 보려고 구매했죠. 어라? 어라????? 어라?????? 강좌를 들으니 그 동안 답답했던 속이 뻥 뚫리는 기분이었습니다. TDD, RESTful API, 스프링부트, 스프링시큐리티, OAuth 전부 싹 훑어주는데 모두 다 이번 프로젝트에 그대로 반영해도 좋을 정도였습니다. 앞으로는 예전처럼 새로운 공부를 할 때 책을 먼저 찾기 보다는 이런 주옥같은 동영상 강좌를 먼저 찾아 볼 것 같습니다. 주위 사람들한테 강추하고 다닙니다. 여유되시면, 요즘 현업에서 많이 사용하고 있지만 정보가 터무니 없이 부족한 "OAuth 소셜 로그인과 스프링시큐리티" 관련한 강좌도 어디에선가 추가가 되었으면 합니다. 이런 좋은 강좌를 만들어 주셔서 진심으로 감사드립니다. 전 이만 백선생님 강좌 투어하러 갑니다.
Lee TaeKyung 2달 전
기존 피드백중 이게 REST API 강좌인지 TDD 강좌인지 헷갈린다는 의견덕에 TDD 를 잘 몰라 수강하였습니다.^^ ㄹ
coookk er 3달 전
좋은 강의 감사드립니다. tdd및 rest-api에 대해 많이 배울 수 있는 강의였습니다.
ㅇㅇ 3달 전
아쉽네요. 물론 사람마다 다르겠지만? 저는 이강의를 수강하면서 REST API 설계나 개발팁등을 원했습니다. 제목 그대로 REST API 에 대해 좀더 심화하고자 했는데, 80%는 TDD 작성이고 RESTAPI에 관한건 20%도 안되는 느낌입니다. 스프링부트는 재미있게 들었는데 이번강의는 곁가지들이 너무 많은 느낌이라 아쉽습니다. 산만하다는 느낌에 공감이 갑니다. 설마 이 리뷰 지워지진 않겠죠?
진인사 3달 전
rest api 강좌인데 너무 tdd 위주라 주객전도된 느낌 .. rest api 강좌인데 너무 test 위주로 강의해서.. 도대체 이강의강의 무슨 강의인지를 잘 모르겠어요. 제가 실력이 모자라서인지 모르겠지만. tdd 테스트 강좌인지 rest api 강좌인지 집중이 좀안 되는데요.. 브라우저 기반에 테스트 위주로 진행하고 추후에 tdd 테스트 코딩을 해야하지 않나요..? 전반적으로 강의 목적을 잘 모르겠어요.. 스프링 부트 강좌보다 더 산만한듯한 느낌.
SimonDev 3달 전
좋은 강의 감사드립니다. 최근에 우아한형제들 기술 블로그를 보면서 인상 깊은 부분이 있었는데요. 글은 교육 코스를 모집하는 내용이었습니다. 요지는 지식을 전달하는 것보다는 스스로의 힘으로 성장할 수 있는 근육을 키워주는 코스라고 하더군요. 이번 스프링 기반 REST API 개발 강좌를 다 듣고나니 이게 그런 강좌가 아닐까하는 생각이 듭니다. Roy Fielding이 정의한 REST API에 가까운 라이브러리를 만든다는 미션이 있을 때, 백기선 강사님께서 이 것을 어떻게 접근하고, 계획하고, 그리고 예상치 못한 문제가 발생했을 때는 어떻게 해결하시는지 엿볼 수 있었습니다. 개인적으로 '아 이렇게 흘러가는 것이구나' 하는 생각이 들었습니다. 나름 강의를 들으면서 정리를 했는데, 진짜 제것으로 만들려면 복습도 다시 하고, 아마 일정 시간동안 실무나 토이 프로젝트 등을 통해서 배운 내용을 써보긴 해야할 것 같습니다. 감사합니다.
Jongmin Kim 3달 전
시나리오를 기반으로 지루하지 않은 Spring 종합선물 셋트 강좌 TDD를 기반으로 Springboot부터 Spring security, Spring Oauth, Spring RestDoc, Spring HATEOAS를 Event를 생성을 하는 스토리 기반으로 스프링 종합 설물 셋트같은 강좌였고, Spring으로 개발 할때의 JsonSerialize와 Annotation Refactoring까지 개발의 노하우도 함께 배울수 있었습니다. 좋은 강좌 제공해주셔거 감사합니다.
서주원 4달 전
돈이 아깝지 않은 강좌 작년부터 백선장님 유튜브에서 강의를 보다 이렇게 인프런까지 찾아왔습니다. 프로젝트 설정부터 TDD 위주의 강좌로 테스트의 중요성을 배울수 있고, Rest API를 제대로 이해할수 있는 강좌중에서는 단연코 최고라 생각합니다. 덤으로 고급 개발자의 코딩스타일도 볼수 있어 개인적으론 그 점도 강좌를 수강하면서 많은 재미를 느낄수 있었습니다. 사실 강좌 난이도는 백선장님께서도 말씀하셨듯이 중급난이도라고 하시는데, 어느 정도 기초 지식이 없다면 한번에 이해하기 쉽지 않은 강좌라고 생각합니다. 저 같은 경우는 백선장님 유튜브를 보고 개인프로젝트로 혼자서 공부하며 학습하며 어느정도 기초 지식이 쌓인 후 이 강좌를 보면서 더 많은걸 배울수 있었습니다.
부종민 4달 전
좋습니다. 긴말해서 뭐합니까. 이어폰 꼽고 들으세요
프리라이프 4달 전
미드 보다 더 재미있는 백기선 강사님의 REST API 개발 강좌였습니다!! 정말 강추 합니다 !! 꼼꼼하게 정리하면서 직접 강사님 코딩하시는거 열심히 코딩하면서 강좌 수강했는데 4일 걸렸네요 그동안 스프링 부트 정말 반도 모르고 썼던 거 같습니다 각종 애노테이션 및 스프링 부트, 스프링에서 지원해주는 아주 좋고 편리하면서 타입 세이프 한 기능들을 사용해서 코딩하셔서 정말 많은 도움이 되었구요 정말 이렇게 REST API를 만들어야 되는거구나 진정한 REST API에 대해 깨닫게 된 시간이였던거 같습니다 100% 다 적용해서 완벽히 개발할 수 있게 되기에는 시간이 걸리겠지만 또 보고 또보고 해서 완전히 숙지해야겠네요 이번 강좌에서는 꽤 많은 디펜던시를 등록해서 사용한 것 같습니다 스프링 HATEOAS, JPA, Lombok, Spring Security OAuth2, H2 등등 스프링 REST Docs로 API 문서를 만들어내는 것도 너무 신선했습니다 개발할때 한번만 신경써주면 SwaggerAPI 처럼 많은 설정을 해주지 않아도 되서 좋은 것 같구요 문서 양식도 깔끔하고 정말 잘만들었네요 공부할 수록 정말 대단한 프레임워크 인 것을 실감합니다 그외에도 백기선 강사님의 노하우가 묻어있는 다양한 개발 기법에 대해서도 배워서 너무 좋은 것 같습니다 새로운 강의 나올때까지 책도보고 백기선 강사님 유튜브 강좌도 보고 여기 올려주신 강좌도 무한 반복으로 시청해야겠네요 앞으로도 좋은 강의 많이 올려주세요 ~ 이런 좋은 강의 올려주셔서 정말 감사드립니다 ~!
이상배 4달 전
너무 좋은강좌 감사합니다. 여태껏 그냥 복사 붙이기로만 사용했던 코드들이 어떤 방식으로 돌아가는지 또 왜 그렇게 설정해야했는지 이제 알았습니다. 정말 잘하는 사람들이나 다른 강사들중에 어렵게 설명하고 소소한 기능들은 무시하고 넘어가는 반면 하나하나 너무 잘 알려주십니다. 강의비 절대 안아깝습니다. 강의비보다 훨씬더 많은 효과가 바로 나타날거같아요. 다른 강의랑 앞으로 나오는 강의들 무조건 필수로 들어야겠습니다. 백기선님 정말 짱짱맨
zaccoding 4달 전
최고네요 1. TDD로 강의해주셔서, 평소 놓치던 부분을 많이 배웠습니다. 2. 평소 swagger만 사용했는데, 이번에 Rest Docs를 금방 배워서 테스트 할 수 있어서 좋았습니다. 3. Self-Describtive Message와 HATEOAS를 통해 좀 클라이언트와 서버가 좀 더 독립적으로 작동할 수 있는 Rest api 배워서 좋았네요 4. 개발하면서 에러 같은게 나면 어떻게 문제를 해결하는지 조금 엿볼 수 있어서 좋았습니다. 인터넷강의는 잘 안들었는데, 오랜만에 좋은 강의 들어서 좋네요 감사합니다
beom seok Kim 5달 전
실무뿐만 아니라 개인학습에도 정말 큰 도움이 강좌 이번에 스프링으로 REST API를 개발을 하게 되었는데 정말 큰 도움이 되었습니다. Self-Descriptive Message와 HATEOAS를 만족하는 REST API에 대한 개발, REST Docs, TDD 뿐만아니라 틈틈이 알려주시는 팁들은 정말 알토란 같습니다. 개인적으로 계속 강좌를 만들주기를 기대합니다. 특히, Security와 Webflux관련 강좌를 만들어 주시면 좋겠어요. 감사합니다!!^^
java_oop 5달 전
TDD 방식으로 진행하는 것이 많은 도움이 됬습니다. 실제 테스트 코드 작성으로 Rest Document 까지 작성하는 방법들이 도움이 많이 됬습니다. 딱 Rest API만 만드는 것이 아니라 전체 적으로 설명해주신 부분도 좋았습니다. 다음 강의 Spring MVC 에서도 좋은 강의 부탁드립니다. 또 Spring MVC 하실 때 Security에 대한 부분도 깊게 다뤄줬으면 합니다. 유독 국내에서는 Security에 대한 깊은 자료가 없는 부분이 있습니다.
오명운 5달 전
실무적으로 도움이 많이 되는 강좌입니다. 스프링 부트로 API 서버 개발 하는 일을 하고 있습니다. 하면서도 맞게 하고 있는 건가 싶은 생각도 많이 들었는데, 이 강좌를 보면서 여러 개선 사항도 찾을 수 있었고 맞게 하고 있다는 확신도 가질 수 있었습니다. 너무 늘어지지 않게 적당히 끊어가서 보기도 편했습니다. 좋은 강좌인 것 같아 추천합니다.
우종선 5달 전
2018/12/8 일 기준으로 Oauth2 영상 나옵니다 .
이성균 프로필

이성균 5달 전
불편하다 인프런 안고쳐준다 인프런 말만하지 말고 좀 고쳐줘라

인프런 프로필

인프런 5달 전
영상 누락분 수정하도록 하겠습니다. 안녕하세요. 인프런 운영자 입니다. 말씀하신 영상 누락분을 확인했습니다. 내일의균 님의 말씀대로 저희 측의 잘못입니다. 영상 업로드 과정에서 인코딩에 문제가 생겨서 재업로드 중 입니다. 늦어도 오전중에 다시 확인해 보시면 학습가능하실거에요. 불편을 드려 죄송합니다. *12월 8일 현재 영상을 복구했습니다. 영상서버와 영상의 인코딩 방식이 맞지 않았는지, 잘 올라가고 재생되다가도 문제가 생기네요. 지금은 학습 가능하실테니 한번 더 확인해 주시면 감사하겠습니다. @내일의균 안녕하세요. 인프런 대표 이형주 입니다. 아픈 곳을 정확히 찔러주셨네요. 말씀하신대로 저희 서비스의 UX 나 속도가 아쉬운 부분이 많습니다. 솔찍히 제가 보기에도 그렇네요..ㅠㅠ 불편을 느끼게 해드려 정말 죄송합니다. 그동안 서비스의 전체적인 개선을 하려 했으나, 워낙 규모가 큰 일이라 어떻게 시작해야 할지 엄두가 잘 나지 않았었습니다. 다행히 몇달 전부터 리뉴얼 버전의 서비스를 열심히 개발중에 있습니다. 조금 기다려 주시면 훨씬더 빠르고 UX 적으로 개선된 인프런에서 편하게 학습하실 수 있으시도록 최선을 다해 빨리 '잘' 만들겠습니다. 좋은 말씀 감사합니다. 즐거운 하루 되세요!!