이번주엔 springboot로 약 일주일간 개발하던 사내 익명게시판 프로젝트가 어느정도 마무리 됐기 때문에 후기 겸 주간회고를 작성하게 되었다.
개발하면서 가장 애먹었던 건 handlebars.js
였는데 helper가 등록되지 않는 이슈였다.
나는 hbs(handlebars 확장자)
파일을 html로 변경을 한 후 springboot properties에서 그 html을 hbs 로 인식하게 했다.helper
를 사용하고 싶으면, 그렇게 하면 안되는 거였다(어쩐지 구글링해도 안나오더라)
그렇게 약 3일을 삽질하다 helper를 사용하고 싶다면 html를 hbs로 인식하게 하는걸 해제하고, html에 helper와 hbs 파일(혹은 script id
및 type
에 handlebars template
를 삽입 하던가 )을
삽입해야 한다는 것을 알게 되었다.
혹은, Handlebar를 사용하여 배포까지 (+grunt +gradle) 이런 방법도 있다.
하지만 최대한 간단하고 빠르게 개발하고 싶었고(이미 기존에 쓰던 기술 대신 새로운 기술로 도입한 시점부터 빠르게 개발은 무리였던 것 같지만) 무언가를 더 늘리고 싶지 않았기 때문에
결국 handlebars는 순수하게 서버로부터 받아온 데이터를 보여주기만 했고, js(바닐라 및 jquery) 로 나머지.. DOM조작이라던지 를 했다.
JSP에 비해 코드가 깔끔해져서 좋았지만 handlebar에 helper를 등록해서 썼다면 더 좋았을 것 같아서 아쉬웠다.
JPA도 처음이었기 때문에 굉장히 고생했다. 처음엔 아무것도 모르고 늘상 하던 것 처럼 네이티브 쿼리를 짰다.
심지어, @Query에 nativequery=true
를 해서 쓰다가 뭔가 잘못됐음을 깨닫고, 뒤늦게 인프런에서 스프링 데이터 JPA를 수강하기 시작했다.
나는 학습을 탑 다운방식으로 한다. 새로운 기술을 배울때 문서를 읽지않고 일단 get started
혹은 example
을 보고 시작하는 것이다.
딱히 그게 좋아서 라기보단 그냥 탑 다운 방식에 익숙하기 때문인데, 그렇게 이번에 handlebars
및 JPA
를 시작했다가 호되게 당했다. 이론/원리에 대해 혹은 문서를 좀 더 학습한 후 개발했으면 좋았을텐데 라는 생각이 들었다.
아무튼, 잘못 짜고 있었다는 걸 뒤늦게 깨달았으므로 기존에 짰던건 그냥 남겨두고, 몇가지 함수만 변경했다.
이번에 이런 ORM을 사용해봤는데 기존의 방식과 많이 달라서 힘들었고 삽질도 많이 했지만 재밌었다. 좀 더 강의를 수강하고 다시 이번 프로젝트를 고쳐보고싶다.
이번 토이프로젝트를 개발할 때에 gitHub 의 issue
와 project
를 적극 활용해봤는데, 이슈관리하기도 편하고, 좀더 다음에 무엇을 개발해야할지 우선순위 혹은 집중하기가 좋았다.
이슈 하나 클리어 할 때 마다 Done 에 closed 된 이슈들이 차곡차곡 쌓이는 것도 좋았고, 이슈 넘버를 넣어서 커밋하면 자동으로 Done 으로 이동되는 것도 좋았다.
다음에 개발할때에도 적극 활용할 예정이다.
GitHub로 프로젝트 관리하기 Part1 - 이슈 발급 부터 코드리뷰까지
이 포스팅을 참고해서 다음엔 이슈관리를 해봐야겠다.
플라스크 학습을 시작했다. 이번주에 있을 해커톤 때문인데, sanic과 비슷해서 할만한 것 같다! 애당초 sanic이 flask의 철학을 이어받아(?) 개발되었다고 한다.
그래서 두 프레임워크가 비슷한 것 같다.
총평
써보고 싶던 기술을 써봐서 좋았고 학습할 수 있어서 좋았다! JPA에 대해 더 알아보고 싶다.
아쉬운 부분도 많았다. 특히, 탑다운 방식으로 학습하던 나는 호되게 당했다. 다음부턴 이론과 실습(?)이 핑퐁처럼 되도록 학습해야겠다.
이번 프로젝트에 대해선, 좀 더 공통적인 부분을 모듈화하고 싶고 전체적으로 리팩토링을 좀 하고싶다. 최대한 레거시가 되지 않도록 노력했지만 나름대로 리팩토링을 했었지만, 결국 레거시를 잔뜩 만들고야 말았다..
자꾸 많은것이 바뀌었었기 때문에 테스트코드 짜기가 힘들어서 테스트코드를 초반에만 조금 짜다가 포기했다.
나는 아직 TDD는.. 잘 모르겠다. 빠르게 개발하면서 많은것이 바뀌고 계속해서 리팩토링을 하는데, 그럴때마다 테스트코드 리팩토링 하기가 참 힘든 것 같다.
그래서 아직까진 다 짜둔 코드에대해(당분간 바뀌지 않을) 테스트 코드를 작성하는게 좋은 것 같다.
한주간 했던 것
- springboot 익명 게시판 프로젝트
- Flask 학습 시작
다음주 목표
- springboot 익명 게시판 프로젝트 리팩토링
- JPA 강의 학습
- Flask 학습