오늘은 전에 했던 주차들과는 다르게 알고리즘 수업을 들은 후 미니프로젝트에 대한 발표가 진행이 되었다. 각자의 기능들이 제대로 구현도 되고, 파이프라인도 어느정도 만들었다고 생각했지만, 발표 순서가 오니 너무 떨렸다. 그래도 무사히 기능들을 보여줄 수 있어서 잘 끝냈던 것 같다.
오후에는 객체지향프로그램, OOP에 대해 배우고, 클래스를 직접 만들어 적용해보는 실습을 했다. 클래스를 배울 때면 어느정도 적응이 됐다 생각하지만, 갑자기 익숙하지 않는 내용이 튀어나와 다시한번 혼란스러워진다. 여기서 더 익숙하지 않은 mvc패턴까지 적용해보는 시간을 가졌는데, 유지보수를 위해 파일을 나누는 작업인데, 전에 했던 퍼사드 패턴과 어느정도 비슷한 느낌이 든다.
Nest.js의 공식문서를 가보면 "효율적이고 확장 가능한 Node.js 서버측 애플리케이션을 구축하기 위한 프레임워크입니다." 라고 나온다. 전에 사용했던 Express는 굉장히 쉽게 서버를 만들 수 있게 만들어주지만, 디자인측면에선 지원하는게 없기 때문에 이러한 문제를 해결하기 위해 나온 것이 Nest.js이다.
Nest.js는 타입스크립트를 기반으로 하고 있기 때문에 자바스크립트로는 사용하기 어렵다. oop,fp,frp와 같은 기능들을 제공한다.
기존의 Express서버는 빠르게 구현이 가능하고, 구조에 대한 자유도가 높다는 장점이 있지만, 많은 개발자가 큰 프로젝트에 가담하는 경우, 각자가 편의에 따라 구조를 구현할거기 때문에 통일성을 해치게 된다는 단점 또한 존재합니다. 이러한 문제를 해결한 것이 Nest.js이다. 컨트롤러, 모듈, 서비스가 존재해서 각각의 역할이 있어 구조의 통일성을 제공한다. 그래서 제한이 생기긴 했지만, 통일성이 생겼고, 나중에는 생산성 향상에도 도움을 줄 것입니다.
그래서 요약을 하자면, Express는 가볍고 간편하고 빠르게 간단한 웹을 만드는데 유용하고, Nest.js는 통일성이 있고, 거대한 프로젝트를 할 때 사용하기 좋습니다.