게시판 CRUD를 제작해보면서 mongoose 스키마 설계와 모델을 만들고 모듈화 하는 과정, 라우팅을 하는 과정을 많은 실습문제를 통해 익숙해지는 좋은 공부가 되었다.
또한 Async Request Handler라는 좋은 코딩 기법을 알게 되었는데, try-catch 구문을 여러 번 작성할 필요 없이 미들웨어화 하여 작성하는 스킬을 배우게 되어 흥미로웠다.
PM2에 대해서도 간단히 소개 받았는데 한 번 사용해본적이 있는 것 같다.
또한 html form은 put, delete를 지원하지 않고 redirect는 get 요청이라는 소소하면서도 좋은 팁을 얻게 되었다.
그리고 Express.js의 app.locals 옵션을 활용하여 render 함수에 전역으로 값이나 함수를 넣을 수 있다는 것도 알게 되었다.
Pagination 부분이 좀 어려웠다. 아마 실제로 게시판 프로젝트를 할때 데이터베이스 파트에 이어 난관에 부딪힐 또 하나의 과제가 아닐까 싶다.
보통 form 요청을 많이 하는데 form은 보통 post 정도를 지원하는거 같다. put이나 delete를 form 태그로 하려면 restful하게 API를 만들 수 없을것 같은데 restful API를 작성하려면 form을 쓰면 안되니? 대체할게 있을까 궁금하다.
역시 실제로 코드를 작성하며 공부해야 익숙해지는것같다. 이해를 해도 코드를 작성해보지 않으면 금방 잊어버리게 되는거 같다. 오늘은 손으로 코드를 작성해보는 시간이 많아서 좋았다.
Pagination은 예전 PHP로 게시판을 만들때 어려움을 겪었던 기억이 있는데 이번 기회에 게시판을 만들어봄으로써 Paganation 포함 오늘 배운 것들을 직접 프로젝트로 만들어 보며 확실히 내 것으로 만들어야겠다. 게시판을 만들어 보며 CRUD에 익숙해져보라는 것은 많은 사람들의 공통된 의견 같다.