TIL 2023-05-02

오성인·2023년 5월 2일
0

TIL

목록 보기
22/66
post-thumbnail
post-custom-banner

1. 오늘 겪은 문제

  1. nest 구조와 layered architecture pattern 과 유사성
    & nest-> module -> singleton
  2. dto

2. 해본 시도

  1. nest를 시작했다. 일전에 경험했던 controller-service-repo 로 구성되어 있던 layered architecture pattern과 유사한 구조를 가지고 있었고, jest의 mocking을 이용한 DI(의존성 주입)을 통해 느꼈던 하나의 부품처럼 필요할 때마다 의존할 대상을 지정해서 사용하는 방식과 동일한 형태라는 것을 느낄 수 있었다.
    nest에서는 각각의 가장 큰영역을 module로 구분한다. 이러한 모듈은 singleton 패턴을 따르고 있다는 데, 이는 하나의 클래스(공장)이 한번에 하나의 인스턴스(상품)만 생성한다는 뜻으로, 우리가 명확하게 하나의 분야의 동작만 한다고 쉽게 떠올릴 수 있게한다.
  2. dto는 우리가 요청과 응답을 통해 서버와 클라이언트가 데이터를 교환할 때, 실제로 우리는 해당 데이터를 컨트롤러, 서비스, 레포지토리 계층에서 모두 넘겨주게 될 텐데 이때, 주고 받는 데이터에 변경사항이 생긴다면 모두 일일이 찾아가 변경해야한다. 이럴 때를 위해 생긴 것이 dto이다. dto를 만들어 주고 받을 데이터의 형식을 한번에 통합적으로 관리할 수 있다.

3. 해결 방법

  1. DTO 폴더를 하나 만들고, 주고받을 데이터를 정의한 dto파일을 만든다. 후에 해당 dto파일에 순수하게 데이터의 형식만을 정의하는 객체를 생성한 후 export하여 필요한 곳에 사용한다.

4. 새롭게 알게 된 점

  • nest, 그리고 typescript에 대해서 떠듬떠듬 알아가고 있는 중이다. 확실히 객체 지향적인 기법들을 찾아볼 수 있고, 구조가 갖춰진 프로그래밍을 할때 조금 불편해 보여도 반복을 줄일 수 있겠고 결국 이게 사실은 더 편한길이 아닐까 싶다.

5. 오늘 더 효율적으로 일할 수 있었을 것 같은 방법은?

  • 우리가 언어를 배우는 목적은 그 언어로 무언가 프로젝트를 만들어내기 위해서 이다. 다만 나는 오늘 언어 자체를 배우려다 시간을 많이 허비했다. 언어는 프로젝트를 하면서 배워도 문제될 것은 없다.
profile
기여하는 개발자
post-custom-banner

0개의 댓글