처음 RESTful이란 것에 개념을 확실히 알지 못하고 위와 같은 목표를 잡았었는데, 아래 영상을 보고 나서야 제가 진짜 목표 했던 것은 REST API가 아님을 알게 되었습니다.
제가 목표로 한 것은 긴 시간에 걸쳐 유지/보수 할 프로그램이 아니고, HTTP method를 익히기 위한 개인적인 프로젝트 수행이었기 때문에 REST의 제약 조건을 맞추는 것에 대한 난이도를 떠나서 다른 목적을 향한다고 결론 내렸습니다.
결론적으로 제 프로젝트는 REST API의 Self-Descriptive와 HATEOAS를 만족하지 않기에 REST API라 할 수 없습니다.
많은 애플리케이션이 REST를 만족하지 않음에도 REST API라고 지칭한다네요. 저는 엄격한 기준으로 보아서 REST API가 아님을 알려드립니다.
결론적으로 제 목표 자체는 HTTP API를 구현하는 것이었고 초기의 목표 설정에 실수가 있었습니다.
이 프로젝트는 React와 Http API를 익히기 위한 프로젝트였기 때문에 배포 계획 없는 로컬 프로젝트였지만 도커에 대해 알게 되고, 적용해 보는 좋은 기회였습니다.
추가적으로 Mongo DB를 로컬에 저장하지 않는다는 이점도 얻을 수 있었습니다.
Spring Boot를 체계적으로 디자인 해 작성하는 경험을 통해 기존에 사용해 본 경험이 있지만 새로운 툴을 쓰는 듯한 느낌을 많이 받았습니다.
엄첨 큰 규모의 프로젝트는 아니었지만 혼자서 BE, FE를 다 구현한 경험이 많지 않은 저에게 큰 배움을 주었던 프로젝트였고, 그 사이 많은 오류와 무지 사이에서 고민한 시간도 길었습니다. 그 시간이 헛되지 않았음을 이 글을 정리하며 많이 느꼈습니다.
프로젝트를 진행하며 틈틈이 모르는 부분에 대한 공부를 병행했습니다. 최대한 깊게 공부하려는 생각이 있었지만 쉽지는 않았습니다. 부족한 부분을 느끼셨다면 꼭 댓글 달아주세요!
다음 프로젝트에선 이 프로젝트 이상의 무언가를 얻을 수 있을 거란 확신을 가지며 추가적으로 배포까지 할 수 있길 바라며 이번 프로젝트는 마무리 합니다.
감사합니다.
Text by Chaelin. Photographs by Chaelin, Unsplash.