현재 팀원분과 함께 일이 없는 동안 사이드 프로젝트를 진행중인데, 나는 백엔드를 맡았다. SPA라서 따로 페이지 렌더링은 필요 없고 데이터만 뿌려주면 되는데, 백엔드를 node
에 TypeScript
를 얹어서 개발하고 있다.
지금도 물론 개발중이지만, 지금까지 느낀 점들을 한 번 정리해보고자 한다.
SPA를 가정해서 응답 데이터를 만들다보니까 가장 자연스럽게 들었던 생각이, 이 데이터는 이미 받은 데이터니까 굳이 다시 줄 필요 없겠지? 였다. 물론 이 생각에서 이미 받은 데이터라는 가정부터가 잘못되었는데, 사용자가 메인화면에서부터 링크로 타고 타고 특정 페이지에 도달할 수 있는게 아니라 라우팅 기능을 사용하고 있기 때문에, 바로 접근할 수도 있다는 것이다. 그럼 당연히 이미 받은 데이터라는 가정부터가 무너진다.
그러니까, 어떤 페이지에 필요한 데이터는 서버에서 기본적으로 모두 뿌려주게 만들고 나중에 이러한 캐시처리는 따로 프론트와 협의해서 구성해야 할 것 같다.
서버 어플리케이션을 구성하다보니, 데이터의 타입을 아래와 같이 4가지로 구분할 수 있는 것 같다.
이 데이터의 타입을 하나로 통일해서 사용할 수가 없다. 따라서, 각 데이터 타입을 엄격하게 정의하고 구분해서 사용해야 할 것 같다.
TDD를 지향하고자 노력하고 있는데, 오류 처리에 대한 환경 구분도 매우 중요한 것 같다. 뭔가 오류가 터졌는데, 어쩌다 보니까 이 오류를 테스트 환경에서도 감추게 개발해버렸다. 이건 큰 실수다. 이를 생각해서 테스트 환경을 구성해야 할 것 같다.
서버는 요청을 응답해주는 것이 기본이다. 그러면 테스트 코드를 작성할 때, 요청데이터와 응답데이터를 꼼꼼히 확인하는 모든 테스트를 작성해야 할 것이다.