지난 2월 22일 토요일, 세종대학교 광개토관에서 열린 ‘제 14회 한국자바개발자 컨퍼런스(http://www.jcoconference.co.kr/)’가 열렸다.
이 컨퍼런스의 커뮤니티 세션에서 ‘REST API 설계와 구현(A부터 I까지)’이라는 제목으로 발표를 진행했다.
- 발표자료: REST API 설계와 구현
- 발표자료 소스: 20140222 JCO - Dropbox
이 바닥에 개발자로 뛰어든지 5년만에 이룬 쾌거다. 개발자로서 30대 중반에는 한번 해봐야지 하고 계획했던 일 중에 하나.
시작하게 된 계기는 의외로 단촐했다.
JCO 커뮤니티 트랙에서 스프링 4.0에 대한 발표와 관련한 회의를 하다가 불쑥 결정되었을 뿐이다.
지난 해부터 꾸준하게 REST API에 대한 내용으로 누군가가 발표를 해주었으면 좋겠다고 이야기를 하고 있었는데
그럼 네가 하면 되겠네.
라는 이야기와 함께 순식간에 결정되어버렸다. 하아…
하기로 결정된 것, 번복하기에는 이미 늦어버린 상황이라, 한 달정도의 기간이 남은 상황에서 준비를 시작한다.
SLiPP.net 에서 발표했던 내용을 조금 더 다듬어서 준비하면 되겠지 하는 안.일.한. 생각으로 준비를 했다.
처음에 계획했을 때는,
REST API 에 대한 이야기(A부터 I까지). 모바일 시대에 들어서면서 다시한번 개발자들의 관심을 받기 시작한 REST API. 그 근간이 되는 리소스에 대한 이야기부터 REST API 설계, 스프링을 이용한 구현, 테스트와 문서화에 대해 이야기한다.
라는 주제를 잡고 이야기를 시작했는데, 정작 발표하겠다고 준비하는 내용은 REST API의 이론적인 설명에 대한 이야기들로 가득했다. 나도 모르게 ‘45분 이라는 발표시간만 채우면 되지.’ 라는 안일한 생각을 품고 있었을 것이다. 사실… 하기 싫… 주변에서는 ‘좋은 기회’라고 하는데 그게 막상 내가 하게 되니까 꼭 그렇지는 않더라. 배부른 소리하고 있는거지…. 누군가에게는 간절히 바라는 것일텐데.
발표를 몇일 앞두고, 커뮤니티의 리뷰가 있었다. 한창 발표자료와 발표예제(Rocking the REST API - github)를 작성하고 있는 상황이었다(지금도 작성하고 있지만… 추가적으로 사용하는 예로 AngularJS를 이용한 프론트 프로젝트(Rocking the REST API View)도 조금씩 만들고 있고). 내 발표내용을 들으신 분들의 이야기는 무엇을 말하고 싶은 것인지 정확히 모르겠다
였다. 여기서 덜컥하는 마음이 들었다. 이대로하면 안되겠구나….
집으로 가는 길에 어떻게 해야하나 궁리를 한다. 그리고는 ‘하나의 이야기를 만들어 그 이야기를 따라서 발표를 하자.’라고 기본 가닥을 다시 잡고 발표내용을 싸그리 뒤집었다. 이야기의 흐름은 ‘사용자가 커뮤니티(처음에는 그룹이었는데 Group 이라는 이름이 DB의 예약어와 충돌하면서 테이블이 생성되지 않는 문제가 있어서 커뮤니티로 교체했다. 마음이 조급하니까 이 문제를 파악하는데 상당한 시간이 소요되었다. 하아… )를 만들고 회원으로 가입하여 글을 쓰는 서비스를 만든다.’ 라는 가닥을 잡았다.
그리고 발표내용을 싸사삭 바꾸고, 발표예제도 싸악 바뀌었다. 발표내용과 발표예제를 맞추는 작업이 생각보다 많은 수고스러움을 야기한다. 발표를 할 때는 발표에 사용할 PPT와 발표와 관련된 내을 전달하는 문서(Word or Markdown)와 발표내용으로 구성된 예제를 보여주는 것이 좋겠다는 생각을 가지고 있는 나였기에 좀 무리를 했다. ㅡ_-);;; 어쨌든, 스프링 프레임워크를 기반으로 해서 동작하는 REST API 프로젝트를 만들어 제공하고 싶었다.
- 프로젝트 구성(https://github.com/ihoneymon/rocking-the-rest-api/blob/master/build.gradle)
- gradle
- Spring Framework 4.0.1
- Spring CORE
- Spring MVC
- Spring Data JPA
- Spring Data Redis
- Hibernate 4.3.0 Final
- Google Guava, Lombok, H2Database …
을 사용한 예제를 만들었다. 발표용 PPT는 발표날 새벽에 만들어졌고, 발표예제는 발표전까지도 계속 개발되었다…. 하아.
벼락치는 삶의 일부로구나. 커피와 포션으로 점철된 발표날이었다.
그리고 발표가 시작되었다.
45분의 발표시간이 어떻게 지나갔는지 잘 모르겠다. 그래도 사람들 앞에서 하는 두번째 발표라고 나름 여유가 생겼는지 사람들을 살펴보기도 하고 시간 조절(생각해보면 발표내용은 실제로 35분 정도 밖에 안되었다… 급 내용변경을 하면서 충분하게 채워넣질 못했어)도 하면서 무사히 발표를 마쳤다. 너무 많은 분들이 오셔서 오히려 내가 미안할 지경이다.
발표내용에 어느정도 공감을 해주셨을까?
발표를 마치고 난 후에는 긴장감이 풀려서는 아무 것도 하기가 싫었다. 그래서 지인들과 근처의 카페에 자리를 잡고 수다를 떨다가 어린이대공원을 산책하며 긴장했던 몸과 마음을 이완시켰다. 뒷풀이도 잘 끝나고 무사히 잘 마쳤다.
발표를 끝내고 난 뒤, 여러가지 아쉬움이 많이 남아있었다.
‘내가 좀 더 많은 경험과 지식을 가지고 있었다면 더 좋은 내용들을 전달할 수 있었을텐데’하는 아쉬움이 제일 컸고 이 아쉬움은 지금까지도 남아있다. 나보다 더 많은 경험과 노하우를 가지고 계신 분들이 이 바닥에 많으실텐데… 그 분들의 이야기를 듣고 싶은데 그 분들은 잘 드러나지 않는다. 내가 제대로 모르는 것인지도 모르지만…
다른 사람들의 발표를 듣고서 이런저런 이야기만 하던 입장에서 사람들 앞에서 발표하는 입장을 겪고 보니, 다른 사람들 앞에서 발표를 하는 게 결코 쉬운 일이 아니라는 것을 알게 되었다. 발표를 듣기 위해 오는 사람들이 어떨지 예측하기도 쉽지 않다. 그래서 ‘REST API에 대해 호기심을 가지고 있는 초보자’라고 청중을 특정짓고 이야기를 꾸려갔다.
난 지금도, 기술관련 발표라면 그 기술을 이해할 수 있도록 다각적인 발표자료가 준비되어야 한다고 본다.
- 발표내용을 훑어볼 수 있는 ppt
- 발표내용에 대한 상세한 설명된 문서
- 실행가능한 예제
… 이거 준비하려면 발표하기 오래전부터 준비를 해둬야한다는 게 흠이고… 효율성은 많이 떨어진다. 그래야 조금이라도 도움이 된다고 생각한다. 실제로 보면 하찮거나 별거아닌 쉬운 기술일지도 모르지만, 그것을 어떻게 구성하고 어떻게 동작하는지 살펴볼 수 있으면 더욱 이해하는데 도움이 된다고 생각하니까.
발표를 끝내고 나니,
이제 발표 안할거야.
라는 생각이 절로 든다.
발표가 끝나고… 난 강릉으로 떠났다.
2014/03/02 - [허니몬의 취미생활/여행객!] - 20140224 바우길 1코스 - 선자령 풍차길
'허니몬의 IT 이야기 > 프로그래머, '코드 엔지니어'' 카테고리의 다른 글
20141120 구매서적 (0) | 2014.11.21 |
---|---|
마크다운 사용하기 (0) | 2014.10.22 |
손님은 왕이다? 프로그래머가 말한다. 세상은 평등하게 변했다. 무... 물론 부익부 빈익빈 하긴하다. (0) | 2014.03.09 |
제 14회 한국자바개발자 컨퍼런스(2014/02/22, 토)가 열립니다. (0) | 2014.01.30 |
스프링캠프SpringCamp 2013 이 열립니다. (0) | 2013.09.22 |