[Project] TO-DO List

To Do List 프로젝트에 대해 (목표, 스택, 구현)

Posted by ChaelinJ on April 02, 2021

개인 프로젝트

To Do List 애플리케이션

목표

  • REST API HTTP API 구현하기
  • Spring Boot를 통해 Back end, React를 통해 Front end 구현하기

RESTful

처음 RESTful이란 것에 개념을 확실히 알지 못하고 위와 같은 목표를 잡았었는데, 아래 영상을 보고 나서야 제가 진짜 목표 했던 것은 REST API가 아님을 알게 되었습니다.

그런 REST API로 괜찮은가

제가 목표로 한 것은 긴 시간에 걸쳐 유지/보수 할 프로그램이 아니고, HTTP method를 익히기 위한 개인적인 프로젝트 수행이었기 때문에 REST의 제약 조건을 맞추는 것에 대한 난이도를 떠나서 다른 목적을 향한다고 결론 내렸습니다.

결론적으로 제 프로젝트는 REST API의 Self-Descriptive와 HATEOAS를 만족하지 않기에 REST API라 할 수 없습니다.

많은 애플리케이션이 REST를 만족하지 않음에도 REST API라고 지칭한다네요. 저는 엄격한 기준으로 보아서 REST API가 아님을 알려드립니다.

결론적으로 제 목표 자체는 HTTP API를 구현하는 것이었고 초기의 목표 설정에 실수가 있었습니다.

Stack

  1. Back end
    • Framework: Spring Boot
    • Database: Mongo DB
    • Library: Lombok
  2. Front end
    • Server: Node.js
    • Framework: React

구현

GET

POST

UPDATE

DELETE

docker

이 프로젝트는 React와 Http API를 익히기 위한 프로젝트였기 때문에 배포 계획 없는 로컬 프로젝트였지만 도커에 대해 알게 되고, 적용해 보는 좋은 기회였습니다.

추가적으로 Mongo DB를 로컬에 저장하지 않는다는 이점도 얻을 수 있었습니다.

전체 포스트

Spring Boot를 체계적으로 디자인 해 작성하는 경험을 통해 기존에 사용해 본 경험이 있지만 새로운 툴을 쓰는 듯한 느낌을 많이 받았습니다.

엄첨 큰 규모의 프로젝트는 아니었지만 혼자서 BE, FE를 다 구현한 경험이 많지 않은 저에게 큰 배움을 주었던 프로젝트였고, 그 사이 많은 오류와 무지 사이에서 고민한 시간도 길었습니다. 그 시간이 헛되지 않았음을 이 글을 정리하며 많이 느꼈습니다.

프로젝트를 진행하며 틈틈이 모르는 부분에 대한 공부를 병행했습니다. 최대한 깊게 공부하려는 생각이 있었지만 쉽지는 않았습니다. 부족한 부분을 느끼셨다면 꼭 댓글 달아주세요!

다음 프로젝트에선 이 프로젝트 이상의 무언가를 얻을 수 있을 거란 확신을 가지며 추가적으로 배포까지 할 수 있길 바라며 이번 프로젝트는 마무리 합니다.

감사합니다.

Text by Chaelin. Photographs by Chaelin, Unsplash.