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^
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