기존 Express 서버를 지속적으로 개발해가면서 스프링부트에도 많은 관심을 갖고 있었다.
코딩테스트에서만 사용하던 자바, 스프링에서 사용되는 언어의 불친절함(Bean, IoC, Container, 여러 annotation...) 으로 인해 API 서버는 노드로 선택했지만, 서버 엔지니어가 되기 위해서는 필수적인 요소라고 생각해서 사이드프로젝트로 함께 진행해보고자 한다.
위와 같이 기본적으로 Spring 은 MVC 형태를 근간으로 해서 여러 레이어와 함께 역할을 나눠놓고 관리한다. 이게 확실히 유지보수에 큰 도움이 된다. 여기서 DTO는 해당 레이어 간에 데이터를 전달하는 객체라고 생각하면 좋다.
클라이언트가 요청이 들어오면 내부 비지니스 로직을 처리 후, json 형태로 response 를 전달하는 만큼 일반적으로 getter, setter 만 존재한다. (심지어 setter는 없고 생성과 함께 처리하는 경우도 부지기수)