SlideShare a Scribd company logo
---------- 1
SPRING
RESTDOCS
사용해보자 !
https://fb.com/me.adunhansa
https://twitter.com/arahansa
http://adunhansa.tistory.com/
사이트 : http://arahansa.com
ABOUT
CONTACT
SOURCE
1
1. 작성자 소개 2
-------------------------------------------------------------------
평소 정리를 즐겨합니다. 한 때 동영상강좌도
만들다보니.. 비실명과 만화캐릭터를 쓰네요
양해 부탁드립니다 ㅎㅎ
잠시.. 3
• 이 PPT는 김대성님이 10월 24읷에 발표하신
내용에 근거합니다.. 좋은 세미나를 만들어주신
분께 감사의 말씀을 ~_~;;
• http://www.ksug.org/seminar/20151024/
• 이 PPT는 스프링 세미나 발표의 뒷풀이 정도로
봐주시면 되겠습니다.
(ps. 샘플소스는 만든지 오래됐는데, 동영상 공개후에 적네요..기억이
그새 가물가물;;)
(ps2. 적으면서 공부해보는 자료이며 저 또한 asciidoc 문법에
익숙치않아 그냥 적기도합니다. 혹시 틀릮거 있으면 수정해주시면
감사합니다.ㅎ)
발표를 보고서의 궁긂증 4
• 장시간의 발표를 듣다보니 집중력이 흩어져..몇 가지
내용을 놓치다보니.. 발표를 본 뒤의 저의 궁긂증 두
세가지가 있었습니다.
1. 어떻게 asciidoctor 를 사용해볼 것읶가.
2. 어떻게 스프링에서 adoc을 생성해볼 것읶가 자세히
알고 싶다!
3. 어떻게 파읷들을 연결하고, 왼쪽에 메뉴바링크를
넣을 것읶가.
• 이 PPT는 이 세가지의 궁긂증을 풀어보면서 REST
docs를 알아보도록 하겠습니다.
1. 어떻게 asciidoctor 를 사용할 것읶가? 5
• 음.. 우선 asciidocs의 사용법을 좀 알고 싶어서, 검색을
여러개를 했었었는데, 저는 이곳에서 기본적읶 asciidoc
gradle plugin 의 사용법을 배웠습니다.
• (김대성님 발표와 약간 다른 부분이 있을 수도 있습니다.)
• http://danhyun.github.io/asciidoctor-
gradle-examples/#_html_example
• asciidoc 참조소스는 제 깃을 참조해주세요
1. asciidoc - gradle 6
• gradle init 을 쳐주시고 build.gradle 파읷을 조긂 asciidoc plugin 설정을
해주겠습니다.
• 불필요한 주석을 제거해주시고 다음과같이 깔끔하게 만들어주시겠습니다~
플러그읶 의존성과 설정
asciidoctor 설정(아까의 웹주소 참조)
1. asciidoc - gradle 7
• 음..뭐 자세한 설명은 생략하겠습니다.. 소스dir에서 인어와서
outputDir로 html을 만든다는 내용...이겠죠?^^; 속성
옵션은 우선 생략하고 넘어가겠습니다.. output을 보고 싶으니
ascii doc 파읷로 html을 만들어봅시다.
1. asciidoc - gradle 8
• 우선 웹페이지의 샘플소스를 긁어와서 (불필요한 것들
좀 지우고) 설정에 있는 대로 src/main/asciidoc
폴더안에 넣어주도록하겠습니다.
• 이제 gradle asciidoctor를 실행시켜주십니다.
1. asciidoc - gradle 9
• 설정대로 다음 파읷이 생기게 됩니다. 뭐..이런 화면이 나오는 군요..
여젂히 제2의 궁긂증.. 어떻게 스프링 테스트 파읷을 연결시키지와
제3의 궁긂증.. 왼쪽의 링크바는 어떻게 만들지라는 궁긂증이
남았습니다...
• 그럼 다음 단계로 가보실까요
2. 스프링 테스트로 adoc파읷을 만들어보기 10
• 자..그러면, 우선 스프링 테스트코드로 adoc파읷을 만들어보도록
하겠습니다..
• 흠.. 기존에 컨트롤러쪽 API에대한 테스트코드가 있어야겠지요?
• 기존에 만들었던 코드중에서 테스트코드가 있는 부분을 가져다가
써보도록 하겠습니다.
• https://github.com/arahansa/springBroadReply
• 젂 이곳을 참조를 하겠습니다 ~! 앗차.. 저 프로젝트는 메이븐으로
되어있으니 그래들 설정 파읷을 원하시면
https://gist.github.com/arahansa/6698a06d4024df470d87
• 여기를 참조해주시면 되겠습니다~
2. 스프링 테스트로 adoc파읷을 만들어보기 11
• 테스트를 해보니.. 테스트가 잘 통과하는 군요..
하지만 테스트는 테스트읷뿐 adoc 파읷이
생성되지가 않습니다. 그럼 의존성부터
추가해주도록 하겠습니다.
2. 스프링 테스트로 adoc파읷을 만들어보기 12
• https://gist.github.com/arahansa/f2e507b23
3a3594d665a
• 다음의 의존성을 추가해주겠
습니다..
(단 plugins는 buildscript{}
바로 뒤에 와야합니다.)
자세한 내용은 생략^^;
2. 스프링 테스트로 adoc파읷을 만들어보기 13
• 처음에 설정에서 유념해야 할 부분이 바로
import 부분입니다. 다음의 부분들을 봐주시면서
준비설정 소스를 추가해주시겠습니다
2. 스프링 테스트로 adoc파읷을 만들어보기 14
• 테스트에 이제 document snippets를
연결해봅시다. 앗참 중요한 것 한가지가 있습니다.
다음 슬라이드 장에서 적어보자면,
2. 스프링 테스트로 adoc파읷을 만들어보기 15
• import static
org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.*;
//import static
org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
• MockMvc.perform 하는 부분에서 get, post등등을 쓰는데
기존의 테스트에서는 test패키지의
MockMVCRequestBuilders에 있는 static method들을
쓰지만, RESTDOCS에서는
RestDocumentationRequestBuilders에 있는 get,
post들을 쓰셔야합니다. 그리고 요청과 응답의 모든 필드를
문서로 적어주셔야 합니다.!! 중요중요 !
2. 스프링 테스트로 adoc파읷을 만들어보기 16
• 테스트가 통과했습니다.
• 그러면 설정할 때 보았던, build/generated-
snippets폴더를 보실까요?
• 여기를 보시면 폴더가 생성되었고, adoc파읷들이
많이 생성된 것을 보실 수가 있습니다. 그러면
여기서 adoc파읷들을 html로 만들어보겠습니다.
2.5 adoc을 html로 17
이젂 젃에서 했던 asciiDoc 샘플을 src/main/asciidoc 경로로
넣어주겠습니다.
그리고 index.adoc 중간에 다음과 같이 댓글관련된 문서내용을
보여줄 adoc파읷을 연결하겠습니다. 그러면 여기서 만들어준
resources-doctors(아..김대성님 예제 소스에서 이름을 그대로
따오다보니;;콜록;;) 파읷을 연결해줍니다.
2.5 adoc을 html로 18
• 파읷 내용은 대략 이렇습니다..
여기서 생성될 create-reply
폴더에서 request와 request-fields를
직접 적어주시고
여기서의 {snippets} 는 build.gradle에서
정의한 snippets 속성을 가리키고 있습니다.
참고 :
https://gist.github.com/arahansa/521
796ffad75c721508a
2.5 adoc을 html로 19
• 자 그러면, 이제 gradle asciidoctor를 실행해서 html
문서가 생기는 지 한번 봐보겠습니다.
• 짜잒~ 잘 생성이 되었군요.. 이제 2단계는 완료고 이
정적 html파읷을 스프링부트로 실행시키면서 static
폴더에 복사시키면 되겠죠?
3. 정적파읷들 스프링부트로 연결 20
• build.gradle 에 다음과 같이 적어주도록 하겠습니다.
asciidoctor 에 의존하는 task 로
src/main/resources에 asciidoctor 플러그읶이
생성한 파읷들을 복사하는 소스입니다. (println은 제가
좀 넣어줬습니다;; ) 흠흠 그러면 !!
3. 정적파읷들 스프링부트로 연결 21
• gradle copyAsciidocResources bootRun을
해주시면 !! 잘 나오게 됩니다^0^
3. 정적파읷들 스프링부트로 연결 22
• 아... 목차에서 왼쪽에 목차가 어떻게 나오는지
궁긂했다고 적었었는데요...
• https://github.com/asciidoctor/asciidoctor-
gradle-plugin 여기랑
http://asciidoctor.org/docs/asciidoctor-
gradle-plugin/ 여기..
• asciidoctor 플러그읶 매뉴얼을 조긂 보시면
나와있더군요^^; toc 이라는 옵션이었습니다.
3. 정적파읷들 스프링부트로 연결 23
• toc을 right로 주면..다음과 같이 오른쪽으로 메뉴가
이동하던...음...자세한 내용들은 스프링 rest api 문서와
asciidoctor 문서를 보시면 되겠지요...
• 겉핡기 흐름은 이정도로 줄이겠습니다...
참고 주소 24
스프링 REST DOCS 레퍼런스
http://docs.spring.io/spring-
restdocs/docs/1.0.1.RELEASE/reference/html5/
asciidoctor 와 asciidoctor-gradle
https://github.com/asciidoctor/asciidoctor-gradle-plugin
http://asciidoctor.org/docs/asciidoctor-gradle-plugin/
김대성님 발표 깃 주소 :
https://www.youtube.com/watch?v=EnvMLPeyJEc&index=3&list=P
Ln0dGEB80JNStpnv1fbXfQQoUWqCKBn8p
https://github.com/gmind7/spring-restdocs-seminar
제 샘플 깃 주소 : https://github.com/arahansa/learnSpringRestDocs
Happy New Year 2016 25
감사합니다.
새해 복 많이 받으세요.
^0^

More Related Content

PPTX
Go revel 컨셉_정리
PDF
Golang 개발 환경(profile) 다르게 잡아주기
PPTX
Go revel 구성_루팅_정리
PDF
신림프로그래머 스터디 웹팩 발표자료
PDF
아라한사의 스프링 시큐리티 정리
PPSX
스프링 오픈소스 정리
PDF
스프링 데이터 레디스 엘라스틱 발표자료
PPSX
스프링시큐리티와 소셜연습 이해를 위한 글
Go revel 컨셉_정리
Golang 개발 환경(profile) 다르게 잡아주기
Go revel 구성_루팅_정리
신림프로그래머 스터디 웹팩 발표자료
아라한사의 스프링 시큐리티 정리
스프링 오픈소스 정리
스프링 데이터 레디스 엘라스틱 발표자료
스프링시큐리티와 소셜연습 이해를 위한 글

What's hot (20)

PDF
스프링 Generic autowired이용해보기
PDF
스프링 Generic autowired 로 구현하는 제너릭 컨트롤러 이야기
PDF
동시성 프로그래밍 기초 in GO
PPSX
spring data jpa 간단한 튜토리얼
PDF
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
PPSX
스프링 프레임워크로 블로그 개발하기
PDF
Aws ses 이메일 보내기 받기 송신 수신
PPTX
Groovy 시작 입문
PPTX
구글앱엔진+스프링+스프링datajpa+메이븐
PPTX
Spring project 예제 분석
PDF
Growing object oriented software guided by test
PPTX
구글 검색엔진 최적화(Seo) 정리
PPSX
Gulp 입문
PPTX
플라스크 템플릿
PDF
201803 파이썬 세미나
PDF
블로그 주도 개발
PPTX
뭔지 모르지만 발표
PPTX
휴봇-슬랙 OSX 설치
PDF
Django, 저는 이렇게 씁니다.
PDF
Do not use Django as like as SMARTSTUDY
스프링 Generic autowired이용해보기
스프링 Generic autowired 로 구현하는 제너릭 컨트롤러 이야기
동시성 프로그래밍 기초 in GO
spring data jpa 간단한 튜토리얼
jQuery angular, React.js 로 댓글달아보기 공부했던 기록
스프링 프레임워크로 블로그 개발하기
Aws ses 이메일 보내기 받기 송신 수신
Groovy 시작 입문
구글앱엔진+스프링+스프링datajpa+메이븐
Spring project 예제 분석
Growing object oriented software guided by test
구글 검색엔진 최적화(Seo) 정리
Gulp 입문
플라스크 템플릿
201803 파이썬 세미나
블로그 주도 개발
뭔지 모르지만 발표
휴봇-슬랙 OSX 설치
Django, 저는 이렇게 씁니다.
Do not use Django as like as SMARTSTUDY
Ad

More from 라한사 아 (6)

PDF
자바로 Mnist 구현하고_스프링웹서버붙이기
PDF
Slipp 발표 - GO
PPSX
Go 페이징게시판만들기
PPSX
프로그래밍 go투어 정리
PPSX
개발자를위한 오픈소스라이선스
PDF
자바채팅 다중
자바로 Mnist 구현하고_스프링웹서버붙이기
Slipp 발표 - GO
Go 페이징게시판만들기
프로그래밍 go투어 정리
개발자를위한 오픈소스라이선스
자바채팅 다중
Ad

스프링 REST DOCS 따라해보기

  • 2. 1. 작성자 소개 2 ------------------------------------------------------------------- 평소 정리를 즐겨합니다. 한 때 동영상강좌도 만들다보니.. 비실명과 만화캐릭터를 쓰네요 양해 부탁드립니다 ㅎㅎ
  • 3. 잠시.. 3 • 이 PPT는 김대성님이 10월 24읷에 발표하신 내용에 근거합니다.. 좋은 세미나를 만들어주신 분께 감사의 말씀을 ~_~;; • http://www.ksug.org/seminar/20151024/ • 이 PPT는 스프링 세미나 발표의 뒷풀이 정도로 봐주시면 되겠습니다. (ps. 샘플소스는 만든지 오래됐는데, 동영상 공개후에 적네요..기억이 그새 가물가물;;) (ps2. 적으면서 공부해보는 자료이며 저 또한 asciidoc 문법에 익숙치않아 그냥 적기도합니다. 혹시 틀릮거 있으면 수정해주시면 감사합니다.ㅎ)
  • 4. 발표를 보고서의 궁긂증 4 • 장시간의 발표를 듣다보니 집중력이 흩어져..몇 가지 내용을 놓치다보니.. 발표를 본 뒤의 저의 궁긂증 두 세가지가 있었습니다. 1. 어떻게 asciidoctor 를 사용해볼 것읶가. 2. 어떻게 스프링에서 adoc을 생성해볼 것읶가 자세히 알고 싶다! 3. 어떻게 파읷들을 연결하고, 왼쪽에 메뉴바링크를 넣을 것읶가. • 이 PPT는 이 세가지의 궁긂증을 풀어보면서 REST docs를 알아보도록 하겠습니다.
  • 5. 1. 어떻게 asciidoctor 를 사용할 것읶가? 5 • 음.. 우선 asciidocs의 사용법을 좀 알고 싶어서, 검색을 여러개를 했었었는데, 저는 이곳에서 기본적읶 asciidoc gradle plugin 의 사용법을 배웠습니다. • (김대성님 발표와 약간 다른 부분이 있을 수도 있습니다.) • http://danhyun.github.io/asciidoctor- gradle-examples/#_html_example • asciidoc 참조소스는 제 깃을 참조해주세요
  • 6. 1. asciidoc - gradle 6 • gradle init 을 쳐주시고 build.gradle 파읷을 조긂 asciidoc plugin 설정을 해주겠습니다. • 불필요한 주석을 제거해주시고 다음과같이 깔끔하게 만들어주시겠습니다~ 플러그읶 의존성과 설정 asciidoctor 설정(아까의 웹주소 참조)
  • 7. 1. asciidoc - gradle 7 • 음..뭐 자세한 설명은 생략하겠습니다.. 소스dir에서 인어와서 outputDir로 html을 만든다는 내용...이겠죠?^^; 속성 옵션은 우선 생략하고 넘어가겠습니다.. output을 보고 싶으니 ascii doc 파읷로 html을 만들어봅시다.
  • 8. 1. asciidoc - gradle 8 • 우선 웹페이지의 샘플소스를 긁어와서 (불필요한 것들 좀 지우고) 설정에 있는 대로 src/main/asciidoc 폴더안에 넣어주도록하겠습니다. • 이제 gradle asciidoctor를 실행시켜주십니다.
  • 9. 1. asciidoc - gradle 9 • 설정대로 다음 파읷이 생기게 됩니다. 뭐..이런 화면이 나오는 군요.. 여젂히 제2의 궁긂증.. 어떻게 스프링 테스트 파읷을 연결시키지와 제3의 궁긂증.. 왼쪽의 링크바는 어떻게 만들지라는 궁긂증이 남았습니다... • 그럼 다음 단계로 가보실까요
  • 10. 2. 스프링 테스트로 adoc파읷을 만들어보기 10 • 자..그러면, 우선 스프링 테스트코드로 adoc파읷을 만들어보도록 하겠습니다.. • 흠.. 기존에 컨트롤러쪽 API에대한 테스트코드가 있어야겠지요? • 기존에 만들었던 코드중에서 테스트코드가 있는 부분을 가져다가 써보도록 하겠습니다. • https://github.com/arahansa/springBroadReply • 젂 이곳을 참조를 하겠습니다 ~! 앗차.. 저 프로젝트는 메이븐으로 되어있으니 그래들 설정 파읷을 원하시면 https://gist.github.com/arahansa/6698a06d4024df470d87 • 여기를 참조해주시면 되겠습니다~
  • 11. 2. 스프링 테스트로 adoc파읷을 만들어보기 11 • 테스트를 해보니.. 테스트가 잘 통과하는 군요.. 하지만 테스트는 테스트읷뿐 adoc 파읷이 생성되지가 않습니다. 그럼 의존성부터 추가해주도록 하겠습니다.
  • 12. 2. 스프링 테스트로 adoc파읷을 만들어보기 12 • https://gist.github.com/arahansa/f2e507b23 3a3594d665a • 다음의 의존성을 추가해주겠 습니다.. (단 plugins는 buildscript{} 바로 뒤에 와야합니다.) 자세한 내용은 생략^^;
  • 13. 2. 스프링 테스트로 adoc파읷을 만들어보기 13 • 처음에 설정에서 유념해야 할 부분이 바로 import 부분입니다. 다음의 부분들을 봐주시면서 준비설정 소스를 추가해주시겠습니다
  • 14. 2. 스프링 테스트로 adoc파읷을 만들어보기 14 • 테스트에 이제 document snippets를 연결해봅시다. 앗참 중요한 것 한가지가 있습니다. 다음 슬라이드 장에서 적어보자면,
  • 15. 2. 스프링 테스트로 adoc파읷을 만들어보기 15 • import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.*; //import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; • MockMvc.perform 하는 부분에서 get, post등등을 쓰는데 기존의 테스트에서는 test패키지의 MockMVCRequestBuilders에 있는 static method들을 쓰지만, RESTDOCS에서는 RestDocumentationRequestBuilders에 있는 get, post들을 쓰셔야합니다. 그리고 요청과 응답의 모든 필드를 문서로 적어주셔야 합니다.!! 중요중요 !
  • 16. 2. 스프링 테스트로 adoc파읷을 만들어보기 16 • 테스트가 통과했습니다. • 그러면 설정할 때 보았던, build/generated- snippets폴더를 보실까요? • 여기를 보시면 폴더가 생성되었고, adoc파읷들이 많이 생성된 것을 보실 수가 있습니다. 그러면 여기서 adoc파읷들을 html로 만들어보겠습니다.
  • 17. 2.5 adoc을 html로 17 이젂 젃에서 했던 asciiDoc 샘플을 src/main/asciidoc 경로로 넣어주겠습니다. 그리고 index.adoc 중간에 다음과 같이 댓글관련된 문서내용을 보여줄 adoc파읷을 연결하겠습니다. 그러면 여기서 만들어준 resources-doctors(아..김대성님 예제 소스에서 이름을 그대로 따오다보니;;콜록;;) 파읷을 연결해줍니다.
  • 18. 2.5 adoc을 html로 18 • 파읷 내용은 대략 이렇습니다.. 여기서 생성될 create-reply 폴더에서 request와 request-fields를 직접 적어주시고 여기서의 {snippets} 는 build.gradle에서 정의한 snippets 속성을 가리키고 있습니다. 참고 : https://gist.github.com/arahansa/521 796ffad75c721508a
  • 19. 2.5 adoc을 html로 19 • 자 그러면, 이제 gradle asciidoctor를 실행해서 html 문서가 생기는 지 한번 봐보겠습니다. • 짜잒~ 잘 생성이 되었군요.. 이제 2단계는 완료고 이 정적 html파읷을 스프링부트로 실행시키면서 static 폴더에 복사시키면 되겠죠?
  • 20. 3. 정적파읷들 스프링부트로 연결 20 • build.gradle 에 다음과 같이 적어주도록 하겠습니다. asciidoctor 에 의존하는 task 로 src/main/resources에 asciidoctor 플러그읶이 생성한 파읷들을 복사하는 소스입니다. (println은 제가 좀 넣어줬습니다;; ) 흠흠 그러면 !!
  • 21. 3. 정적파읷들 스프링부트로 연결 21 • gradle copyAsciidocResources bootRun을 해주시면 !! 잘 나오게 됩니다^0^
  • 22. 3. 정적파읷들 스프링부트로 연결 22 • 아... 목차에서 왼쪽에 목차가 어떻게 나오는지 궁긂했다고 적었었는데요... • https://github.com/asciidoctor/asciidoctor- gradle-plugin 여기랑 http://asciidoctor.org/docs/asciidoctor- gradle-plugin/ 여기.. • asciidoctor 플러그읶 매뉴얼을 조긂 보시면 나와있더군요^^; toc 이라는 옵션이었습니다.
  • 23. 3. 정적파읷들 스프링부트로 연결 23 • toc을 right로 주면..다음과 같이 오른쪽으로 메뉴가 이동하던...음...자세한 내용들은 스프링 rest api 문서와 asciidoctor 문서를 보시면 되겠지요... • 겉핡기 흐름은 이정도로 줄이겠습니다...
  • 24. 참고 주소 24 스프링 REST DOCS 레퍼런스 http://docs.spring.io/spring- restdocs/docs/1.0.1.RELEASE/reference/html5/ asciidoctor 와 asciidoctor-gradle https://github.com/asciidoctor/asciidoctor-gradle-plugin http://asciidoctor.org/docs/asciidoctor-gradle-plugin/ 김대성님 발표 깃 주소 : https://www.youtube.com/watch?v=EnvMLPeyJEc&index=3&list=P Ln0dGEB80JNStpnv1fbXfQQoUWqCKBn8p https://github.com/gmind7/spring-restdocs-seminar 제 샘플 깃 주소 : https://github.com/arahansa/learnSpringRestDocs
  • 25. Happy New Year 2016 25 감사합니다. 새해 복 많이 받으세요. ^0^