회고

2021-12-18 TIL

Facts (사실, 객관)

  • 엘리스 SW트랙 1차 프로젝트 진행 중
  • API 로직 구현

 

Feelings (느낌, 주관)

 

mongoDB 특정 컬렉션의 데이터를 바꾸기 위해선 관계(참조)하고 있는 다른 컬렉션의 필드(?)도 함께 수정해줘야 한다. 일일이 대상을 찾아 바꾸는 게 과연 옳은 방식일지 의구심이 들었다. 다른 방법을 고민하던 차에, 함께 백엔드를 담당하고 있는 동료님이 SQL에선 cascade라는 개념이 있다고 알려주셨다. mongoDB cascade라고 검색하니 mongoose middleware 작성을 통해 cascade와 유사한(?) 작업을 할 수 있음을 알게 되었다. 다만 스키마에서 미들웨어를 정의하는 부분에서 다른 모델을 참조하기 위해 import하는 부분과 미들웨어의 내부 로직을 좀 더 고민해봐야겠다고  느껴서 작업 우선순위에서 미루게 되었다.

 

오늘 시도했던 작업이 거의 모두 실패했다. cascade부터 express-flash를 적용하는 부분까지 내 맘대로 되지 않았다. 저녁에 알바를 가야해서 어쩔 수 없이 작업을 중단했다. 시도했던 작업이 지체되면서 다른 작업들도 계획대로 진행하지 못했다. 코딩을 하면서 처음으로 우선순위가 꼬인다는 것을 경험했다. 무엇을 먼저 해야 할지, 또 어떻게 구현해야 할지 충분히 정리되지 않은 상태에서 작업을 진행했기 때문에 초래된 결과라고 생각했다. 키보드에서 손을 올리기 전에 생각을 충분히 해봐야겠다.

 

Findings (배운 점)

  • 스키마에 pre()나 post() 메서드를 통해 미들웨어를 적용할 수 있다. 쿼리나 도큐먼트에 특정 메서드가 실행되기 전후로 처리되는 로직을 미들웨어에 포함시킬 수 있다.
 

Mongoose v6.1.2: Middleware

Middleware (also called pre and post hooks) are functions which are passed control during execution of asynchronous functions. Middleware is specified on the schema level and is useful for writing plugins. Mongoose has 4 types of middleware: document middl

mongoosejs.com

 

  • express-flash는 세션과 쿠키를 사용하기 때문에 세션과 쿠키를 불러온 다음에 실행시켜 줘야 한다. 하지만 그렇게 해도 원하는 대로 동작하지 않았다. 아직 이유를 찾지 못했다.

 

Things to do (해야 할 것들)

  • 필요한 API 로직 먼저 구성하기
  • express-flash 구현하기
  • mongoDB cascade 구현하기

 

Affirmation(자기 선언)

  • 작업을 하기 전에 작은 계획을 세우자

'회고' 카테고리의 다른 글

2021-12-21 TIL  (0) 2021.12.21
2021-12-20 TIL  (0) 2021.12.21
2021-12-17 TIL  (0) 2021.12.18
2021-12-16 TIL  (0) 2021.12.17
2021-12-15 TIL  (0) 2021.12.15